用windows2000实现双机热备

0

分类 : 技术文摘 | 发表时间 22-11-2005

在传统的终端/主机的网络模式时代,终端功能简单,无需维护工作,在主机一端进行专门的管理与维护,具有资源共享、便于管理的特点。但是,主机造价昂贵,终端没有处理能力,限制了网络的规模化发展。之后的客户机/服务器模式推进了计算产业的标准化和开发化的发展,为系统提供了相当大的灵活性,但是随着分布系统规模的规模扩大,系统的维护和管理带来了巨大的开销。

而服务器集群系统中,服务器不再分布在各处,而是集中在一起统一进行管理和维护。它保持了分布式客户机/服务器模式的开发性、可扩展性的优点,同时又具备了终端/主机模式的资源共享和集中易于管理的优点。相对集中的集群系统,降低了系统管理的成本,而且还提供了和大型服务器系统相媲美的处理能力。

面向Internet的服务型应用,需要高性能的硬件平台作为支持,将并行技术应用在服务器领域中,是计算机发展的必然趋势。并行处理技术在高性能计算领域中,高可用和高性能是集群服务器系统发展的两个重要方向。

集群的概念

集群英文名称是CLUSTER,是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
和传统的高性能计算机技术相比,集群技术可以利用各档次的服务器作为节点,系统造价低,可以实现很高的运算速度,完成大运算量的计算,具有较高的响应能力,能够满足当今日益增长的信息服务的需求。

集群技术应用的需求

Internet用户数量呈几何级数增长和科学计算的复杂性要求计算机有更高的处理能力,而CPU的发展无法跟上不断增长的需求,于是我们面临以下问题:

◇大规模计算如基因数据的分析、气象预报、石油勘探需要极高的计算性能。

◇应用规模的发展使单个服务器难以承担负载。

◇不断增长的需求需要硬件有灵活的可扩展性。

◇关键性的业务需要可靠的容错机制。

IA集群系统(CLUSTER)的特点

◇由若干完整的计算机互联组成一个统一的计算机系统;

◇可以采用现成的通用硬件设备或特殊应用的硬件设备,例如专用的通讯设备;

◇需要特殊软件支持,例如支持集群技术的操作系统或数据库等等;

◇可实现单一系统映像,即操作控制、IP登录点、文件结构、存储空间、I/O空间、作业管理系统等等的单一化;

◇在集群系统中可以动态地加入新的服务器和删除需要淘汰的服务器,从而能够最大限度地扩展系统以满足不断增长的应用的需要;

◇可用性是集群系统应用中最重要的因素,是评价和衡量系统的一个重要指标;

◇能够为用户提供不间断的服务,由于系统中包括了多个结点,当一个结点出现故障的时候,整个系统仍然能够继续为用户提供服务;

◇具有极高的性能价格比,和传统的大型主机相比,具有很大的价格优势;

◇资源可充分利用,集群系统的每个结点都是相对独立的机器,当这些机器不提供服务或者不需要使用的时候,仍然能够被充分利用。而大型主机上更新下来的配件就难以被重新利用了。

实现服务器集群的硬件配置
◇网络服务器 两台
◇服务器操作系统硬盘 两块
◇ULTRA 160 LVD SCSI磁盘阵列 一个
◇18G SCSI硬盘 三块
◇网络服务网卡 四块
服务器集群的实践步骤

◇在安装机群服务之前的准备:

1、 三块18G SCSI硬盘组成磁盘阵列,做RAID5。
2、 两台服务器要求都配置双网卡,分别安装Microsoft Windows 2000 Advance Server操作系统,并配置网络。
3、 所有磁盘必须设置成基本盘,阵列磁盘分区必须大于2个。
4、 每台服务器都要加入域当中,成为域成员,并且在每台服务器上都要有管理员权限。

◇安装配置服务器网络要点
1、在这一部分,每个服务器需要两个网络适配器,一个连接公众网,一个连接内部网(它只包含了群集节点)。 内部网适配器建立点对点的通信、群集状态信号和群集管理。每个节点的公众网适配器连接该群集到公众网上,并在此驻留客户。
2、安装Microsoft Windows 2000 Adwance Server 操作系统后,开始配置每台服务器的网络。在网络连接中我们给连接公众网的命名为“外网”,连接内部网的命名为“内网”并分别指定IP地址为:
节点1:内网:ip:10.10.10.11 外网ip:192.168.0.192 子网掩码:255.255.255.0 网关:192.168.0.191(主域控制器ip)
节点2:内网:ip:10.10.10.12 外网 ip:192.168.0.193 子网掩码:255.255.255.0 网关:192.168.0.191

◇安装配置阵列

1、对阵列做可校验的RAID5。并划分分区。创建一个小分区(至少50兆)用来存储群集配置数据库的检测点和日志文件。这是集群中一个重要的关键分区,一但他出现故障,将导致整个集群的失败。这里我们分配给他1G的空间,并命名为X盘符。
2、其他的分区根据用户的需求可以自行设定。我们为了方便只分了一个Y区。
3、注意:在集群中所有的磁盘都必须是基本盘并且都要采用NTFS格式。

◇安装集群服务软件

【配置首节点】

1、所有的设备都先关闭(两台服务器、一台磁盘阵列)。
2、先开启磁盘阵列(在任何时候都要先开启磁盘阵列,以免造成磁盘混乱)。
3、开启节点1,用有管理员权限的用户名登陆到域,用添加删除程序来添加组件—集群服务。在安装过程中选择这是集群的首节点。创建集群名称。我们给命名为Mycluster。
5、 配置群集磁盘。由于我们只有一个共享的磁盘阵列,所以我们将这个阵列中的两个分区都配置成群集磁盘。
6、配置群集网络。首先我们配置外网,网络名称选择外网。IP地址保持和外网的IP地址一致。选中该网络可用于集群服务。选中所有的通信(混合网络)选项。进行下一步。接下来配置内网,确保网络名称和IP地址跟内网的一致,选中该网络可用于集群服务。选中只用于内部群集通信选项。
7、 点击下一步按钮,屏幕出现使用网络的顺序。我们调整为表里的第一个连接是内网。这是因为:在正常的操作中,该连接将用于群集通信。如果内部网络连接失效,群集服务将自动切换到表里的下一个网络。
8、执行下一步将出现集群的IP和掩码选项。这里输入唯一的集群IP,我们设定为192.168.0.195 掩码当然还是:255.255.255.0。
9、单击完成,完成首节点的群集配置。

【配置第二个节点】

1、保持阵列和第一个节点的开机和可用。给第二个节点上电开机。
2、象在首节点上安装群集服务一样,对第二个节点开始进行安装。
3、过程跟在首节点上在安装群集服务大体相同,只有下列的不同之处:在创建或添加群集对话框中,在群集中选择第二个或下一个节点,并单击下一步。输入前面
所创建的群集名称(在本例中,是MyCluster),并单击下一步。将连接到群集设为未选中。群集服务配置向导将自动提供,在安装首节点时选定 的用户帐号名称。输入该帐号的口令(如果有的话),并单击下一步。
在下一个对话框中,单击完成,结束配置。将启动群集服务。单击确定。
关闭添加/删除程序
如果要安装额外的节点,重复这些步骤,以便在其它节点上安装群集服务。
检验安装
单击开始,单击程序,单击管理工具,并单击群集管理器。显示的两个节点表明,存在群集,而且它在运行。
效能评测
◇容错能力的检验
对于他的容错能力我们做了以下几个实验:
1、在两台节点和集群服务同时运行的情况下,断掉其中一个节点的外网连接或是当掉一台节点,此时运行在这个节点上的集群服务被迫断开并转移到另外一个连接正常的节点上,此过程大概要4秒钟(视集群上运行的服务数量而定,在安装了SQL Server 2000服务之后这个过程延长到了9-15秒)。
2、在两台节点和集群服务同时运行的情况下,我们更改了一台节点的时间,在经过大约10分钟时间被修改的时间自动调整成同另一台节点相同的设置。
3、我们在集群服务上开启了web服务,并设置了下载项目。在客户端正在下载过程中断掉集群中的一个节点,客户端并没有明显的感觉出有变化。
由以上实验可见用Windows 2000 Advance Server所做的集群在容错方面具有良好的效能,他几乎是瞬间就能把出错的节点上的服务接管过来,相对于客户端几乎感觉不到有任何变化。同时他在周期时间内所有节点进行同步,以保证其一致性。
◇负载均衡能力的检验
1、Windows 2000 Advance Server 所做的集群是基于TCP/IP构建的,他为共同工作且使用两个或两个以上主机群集的Web服务器提供了高度可用性和可伸缩性。因特网客户使用单一的IP地址访问群集。客户不能将单一服务器从群集中区分开来。服务器程序不能识别它们正运行于一个群集中。但是,由于网络负载均衡群集即使在群集主机发生故障的情况下仍能提供了不间断的服务,故而,它与运行单一服务器程序的单一主机大相径庭。与单一主机相比,群集还能对客户需求做出更迅捷的反应。
注意要点
我们在做集群实验的过程当中遇到了一些问题,虽然最后都顺利的解决了,但我想还是要在这里提出来让大家注意,避免在今后的工作中出现不必要的重复的错误。
1、共享磁盘之中X盘的重要性。在实验的过程中我们也知道X盘相当重要,为了验证他的重要地位,我们做了如下实验:我们首先看到在X盘下面只有一个MSDN的文件夹,其中有两个文件*.tmp和*.log,这就是上文所说的群集配置数据库的检测点和日志文件。我们试着删除这两个文件,结果*.tmp可以删除,*.log文件正在使用而无法删除。删除了*.tmp文件之后我们重新启动两台节点和集群。一切正常,进入X盘看他的文件,发现被删除的*.tmp文件又重新回到了里面,只是名字稍有些改变。这表明*.tmp文件是每次集群启动时自动生成的一个文件,而集群启动以后,这个文件就不在被使用。接着我们进行了一个后来被证明是毁灭性的实验,我们在我的电脑管理里面的调整了磁盘管理,把X盘删除了。结果可怕的事情发生了,在不到10秒钟的时间内两台节点相继报告机群服务发生错误将不能运行且终止服务。我们尝试再次进入磁盘管理,发现阵列的磁盘已经变成了不可读取。无奈之下我们重新启动所有设备,期望能发生超乎设想的好的结果,但是事实让我们不得不失望。集群服务无法启动,阵列磁盘不可读取。在没有任何办法的情况下我们不得不重新配置集群。

2005年十大IT技术创新之星

0

分类 : 技术文摘 | 发表时间 15-11-2005

   计世网消息 《Infoworld》每年都会评出引领和推动IT业发展的创新技术,今年有哪些人物成为创新之星了呢?

  从更灵敏的安全系统到更富活力的网络服务架构,今年的创新者试图从多个方面探索提升效率和可靠性的新途径。由于这些人的努力,多个领域都获得突飞猛进的技术进步–例如,XQuery、64位计算和SOA。

  我链接,我是Airgo

  Greg Raleigh没做太多的事就进入了今年的顶级创新者行列。他只是颠覆了无线电科学的基本原理。

  1996年,这位Airgo Networks公司创建者、CEO发明了MIMO(多输入多输出)OFDM(正频分复用)技术。这项技术成为了高速802.11n无线网络的基础。

  MIMO利用大多数无线电科学家上个世纪一直试图避免的一种自然现象――多径失真。当无线电信号遇到附近的物体表面发生反映时,它们相互干扰。这正是为什么当你开车经过某地时,手机信号或FM接收效果衰减的原因。当时是斯坦福大学物理学在读博士的Raleigh意识到他可以利用多径效应提高无线信号的传输速度和距离。

  Raleigh指出:“自Marconi 1896年发明第一台无线电原型机起,无线电科学界中的睿智之士一直将多径效应视为问题。整整100年后,我发表了证明一篇论文,论文证明了不仅可以利用多径效应提传输速度和覆盖面,事实上,若想实现这一目标你需要多径效应。”

  802.11n标准(预计今年年底将得到IEEE的批准)将把目前Wi-Fi网络的速度增加一倍,而且还可以将传输距离增加9倍。虽然早期的应用将为家庭提供视频流技术,但超高速无线技术对于企业也有意义。

  Raleigh问道:“一旦你得到超过100Mbps以太网速度,为什么还要为布线去操心吗?4到5年后,每一个桌面和便携机企业应用都可能是无线的。”

  Raleigh在加入研究所之前在工程师职位上渡过了14年时间。他说,实际经验给予他的技术突破很大的帮助。他说:“困难的部分不是解决问题,而是确定什么问题值得解决,然后以一种使答案对于社区有价值的方式提出问题。” 甚至在这种情况下,真正的担心出现在当你试图将理论概念变为实际的产品之时。

  Raleigh说:“技术领域中的一个人单靠自己只能做很少的事。甚至一小群非常聪明的人只能做那么多。光有‘灵活闪现’的想法是不够的。你需要组织公司的能力,你需要招募120名来自十几个不同领域的工程师,将他们组织在一起合作将产品推向市场。而这占到97%的工作。”

  Zetera:以光速存储

  一旦你作为团队成员,开发出数十亿台机器使用的磁盘控制器标准,你就会发现这是个很难超过的成就。因此,当Zetera 公司的Bill Babbitt、Bill Frank和Tom Ludwig创建一项新网络存储范例时,他们干脆去掉了控制器。

  Zetera Network Storage以IP为基础,这使应用可以直接与网络连接的存储设备通信,从而消除了硬盘控制器、交换机和网关造成的瓶颈。

  Zetera公司基于IP的存储方案使存取保存的数据像下载网页那样容易,从而使它比传统的NAS的速度更快、可伸缩性更好。尽管在运行时与SAN类似,但Zetera的方案的成本远远低于iSCSI或光纤通道解决方案。

  Zetera公司首席系统设计师Ludwig指出:“你的性能只受到你的管道的速度的限制。而且这种系统具有令人难以置信的可伸缩性。你可以添加一块硬盘或一千块硬盘,而这从可伸缩性观点看并没有什么实质的不同。”

  Zetera的创建者们最初为家庭网络开发了这项技术,以使家庭可以方便地共享数字家庭电影和其他大型数据文件。硬件与固件工程高级经理Bill Babbitt说,作为第一款采用Zetera技术的商用产品,Netgear公司的Storage Central预定很快上市,售价129美元。“对于家庭用户来说,硬盘多少有点像是USB光驱,只不过它是共享的,并且性能和存储容量都要高得多。”

  不过,Babbitt说,他们在这项技术上做的工作越多,他们发现为Zetera所具有的廉价替代RAID系统的能力所吸引的企业表现出的兴趣就越大。

  在Zetera的方案中,每一块物理硬盘可以被分配给自己的IP地址,被划分为具有自己的惟一地址的虚拟硬盘,或与其它硬盘整合起来构成一块巨大的虚拟硬盘。利用IP多播技术,Zetera 一次可以同时向多个虚拟硬盘传送同样的数据,使一种镜像数据变得更可靠、更高效。

  公司CTO Bill Frank 指出:“由于很多原因,Zetera技术是颠覆性的。我们将它深深地融入到IP协议中,融入程度达到了大部分功能实际上是由IP本身提供的。我们可以自然地做其它协议不能完成的事情――而且是以更低的成本和更高的性能做这些事情。”

  卓越的协作使XQuery覆盖整个企业

  1998年时,不是所有人认为都需要一种功能齐全的XML查询语言。今天,XQuery正在由所有重要的关系型数据库、中间件厂商、内容管理系统和开放源代码项目实现。它甚至正在成为SQL标准的组成部分。开发XQuery的主要倡导者之一Jonathan Robie说:“你不得不认为这是一种语言取得的成功。”

  Robie 现在是DataDirect公司的XML计划经理。20年前,他发现自己在与关系型数据库的局限性作斗争。他对替代性对象数据库的兴趣导致他在Poet Software公司干了一段时间。一位Poet客户,医学出版商FA Davis,提出了SGML(标准通用标注语言)数据库的概念。

  这一概念带来的产品基于OQL(对象查询语言),但是webMethods公司Joe Lapp让Robie相信XML的特性需要一种不同的基础。虽然Frank Tompa的论文早已提出了很多关键概念,但Robie并没有看到这篇文章。他现在有点悲伤地开玩笑说:“因此,我用了随后两年时间重新提出这些概念。”其中的一个结果就是XQL(XML查询语言),即现在广泛用于提到XML文档子集合的方法XPath的前辈。

  在1998年W3C大会的一个研讨会上,Robie见到了AT&T公司的Mary Fernandez。后者是XML-QL的发明人之一。XML-QL是一种灵感来自SQL的语言。Robie回忆说:“我们起先并不熟悉。”但是,讨论富有成果。

  2000年,Robie协作开发了Quilt,一种设计用于将7种竞争性建议混合在一起并成为XQuery基础的原型语言。发挥关键作用的是“用户案例”――Quilt以及以后的XQuery必须能够解决的真正的查询。由于XQuery的3个主要方面――发现、发表和使XML碎片相互关联――跨越各类繁多的应用,因此用户案例尤其具有价值。

  随着XML成为从XHTML网页到Word文档的各种东西的通用语言,通用XML查询语言的价值从来没有像现在这样清晰。

  Sonic ESB:以新方式实现故障切换

  如果SOA运动有一面官方旗帜的话,ESB(企业服务总线)的标志就会将出现在这面旗帜上。ESB作为一种开放、分布式的集成平台,提供与各种系统和应用连接的接口,并保证它们之间可靠地传送信息。假如你给这面旗帜点缀上领先SOA厂商的徽标的话,那么Sonic Software公司的徽标肯定将是其中最耀眼的徽标。

  Bill Cullen作为Sonic Software公司工程副总裁,领导着所有廉价硬件上的Sonic ESB和其CAA(连续可用性架构)的开发。CAA是一种故障切换机制,它不仅保证消息的提交,而且还将恢复时间减少到几秒钟。
<
br/>  同其它故障切换方案一样,CAA依赖于向磁盘写消息。在发生硬件、软件或网络故障后,它确定进程在何处中断,找回未提交的消息,然后继续传送它们。差别在于CAA执行恢复过程的方式。在进行恢复时,Cullen和他的团队从Sonic的数据库式的日志文件中获得线索。日志文件将所有的东西作为一系列事件记录在一个文件中。

  Cullen回忆说:“我认为‘我想出来了’(eureka)的时刻是你意识到你可以在发生故障十分钟后,重放日志来恢复状态,然后你可以继续运行,尽管你重新运行在另一台机器上。因此我们所做的是开发一种备份系统,对于我们来说即消息代理器。它始终监听事件流,与消息系统保持同步,即使它自己并不处理消息。”

  正因为如此,Sonic可以提供用户和应用看不到的快速故障切换,这种故障切换不需要专门的硬件或昂贵的群集软件。Cullen说:“我们的目标是:无需建设那种支持快速故障切换的大型硬件基础设施条件下的高速故障切换。我们可以在廉价的Linux机器或类似的设备上实现高速故障切换。我们甚至不需要在两端拥有同样的硬件。”

  Sonic已经将CAA保护扩展到了系统的其他部分,将复制和故障切换扩展到目录服务、文档翻译、XML处理和其它客户需要弹性的地方。

  CAA既轻巧又灵活,可以复制各种信息来支持数据中心到数据中心的故障切换,提供颗粒度更细的保护应用。你可以将它称之为面向服务的故障切换方式。

  JotSpot:Wiki应用来了

  还是Excite.com共同创建人时,Graham Spencer和Joe Kraus就已对创新性的技术略知一二。但是,这并不是他们着手开发第一种应用Wiki――JotSpot时,他们考虑的事情。

  JotSpot CTO Spencer说:“2000年当我们离开Excite时,我们正参与几个不同的项目,我们利用Wiki管理有关这些项目的谈话。起先,我们认为Wiki并不十分有趣。但是当我们开始使用它们后,发现它们的确具有改革能力,它们使你可以在项目上开展协作。”

  正如所有Wiki所做的那样,JotSpot使你可以创建新文档供其他人编辑,或编辑其他人创建的文件。因此,你可以将工作表输出到Wiki中,而不是用电子邮件到处传送电子报表并想知道谁拥有最新版本或进行了哪些修改。在Wiki中,最新版本可供随时使用,所有的修改可以被方便地追根寻源。

  但是,JotSpot将Wiki概念应用于开发应用。例如,你可以找一个简单的电子报表,将每一行变为它自己的Wiki网页,包括与其它文档的链接。你可以直接用电子邮件将文件传送到你的网页上,设置一个当其他人进行修改时通知你的RSS传送。你可以输入像小组日历、联系人管理器、援助台、项目管理器等免费的预制应用,然后点击几下鼠标来定制它们――不需要编辑。

  如果有人把事情弄糟的话,你可以恢复到以前的版本。没有损害,没有乱七八糟的事情。

  Spencer说:“我们希望给予人们信心,让他们相信他们可以开发自己的应用并修改它,就像网志使人们感到他们不必学习HTML就可以发表自己的内容那样。使进行修改变得安全是这项工作真正重要的部分。”

  他说,JotSpot的1.5万家客户中的很多人开始时将Wiki用于简单的事情,如跟踪办公用品或管理会议室日程表。但是不久后,它们将开始输入电子报表和定制预制的应用程序。

  对于Spencer来说,这是Web演进过程中――从使用搜索工具寻找和查看文档,到创建你自己的内容,最后到开发解决真正问题的应用程序――自然而然的下一步。

  Spencer说:“我认为你将越来越多地看到人们利用Web建立功能空间,而不是简单地创建文档。我们认为人们希望开发的应用有着一个巨大的潜在市场,我认为我们拥有开发这些应用的好工具。”

  事件流处理推动Web服务和RFID发展

  上世纪80年代后期,Mark Palmer帮助伦敦信孚银行建立了一个交易系统。当时,金融业推动着事件流处理技术的发展。事件流处理技术是一项吸收大量的、高速的事件数据流,然后对这些事件进行历史和实时分析的技术。当然,现在一方面随着Web服务的出现,而另一方面随着RFID标签的面世,我们的网络充斥着由虚拟和物理连接带来的事件。Progress Software公司实时部事件流处理副总裁Mark Palmer,是正在为创建这一新兴学科并使数据库和查询语音适应新学科提出的挑战而工作的创新者之一。

  上世纪 90年代中期,Palmer效力于Object Design公司。虽然该公司的ObjectStore数据库是进行事件处理的良好基础,但它必须进行改造才能处理时间序列数据。另一个关键改进是管道化架构,这种架构使每秒处理数万个事件,然后高效率地问答查询(如“重放昨天下午3:30到4:15之间与20号台站口相关的事件”)成为可能。这些创新成为目前所谓的“进展事件引擎”的技术的基础。

  ObjectStore数据库演化成为一种面向XML的产品,eXcelon。该产品于2002年被Progress Software所收购。在此期间,Palmer致力于其它他所感兴趣的事情,然而两年前当Progress Software任命他领导其事件处理计划时,他又与该产品重新走到了一起。

  关键目标是加强事件引擎的实时分析功能。经过1年半的调查后,Palmer选择上了Apama公司,这家公司于今年4月被Progress所收购。他说:“具有实时扩展的历史访问是我们曾开发的东西,而Apama的优势是实时分析。”他自己的团队曾开发了一种基本查询语言。现在,这种事件数据库将装备Apama更先进的查询技术,而Palmer负责将这些独立的创新集成到一个通用平台中。

  Palmer说:“随着事件流处理技术的成熟,我们将需要标准的方式来描绘和查询事件数据。这类标准目前正处于范围确定阶段(scoping phase),由EPCglobal联盟负责管理。”

  Palmer补充说:“很多人现在对RFID标签感到兴奋。但是当我们回顾几年前的情景时,我们会看到这实际上只是一种全新类型的计算的开始。”

  BladeLogic:恢复数据中心秩序

  早在2001年,大约是在.com泡沫破裂时,Vijay Manwani就对公用计算有了深入了解,但是他在其他地方看到了更大的潜力。

  Manwani说:“当所有人都希望神奇地一键式完成各种工作时,我们看到了首先解决数据中心自动化(DCA)问题的需要。”

  管理人员面临越来越分散的、异构的数据中心。应用需要部署,操作系统需要修补,安全政策需要升级和执行――尤其在目前这个法规遵从性时代中。在逐服务器的基础上照管这些和其它的任务会占用人员时间,增加人员错误。

  作为已有5年历史的BladeLogic公司的共同创建人和CTO,Manwani在指导公司的Operations Manager开发方向的新职位上,吸取了他以前担任系统管理员时的经验。与竞争对手一般针对管理物理设备的管理解决方案不同,Operations Manager将复杂的服务器和应用基础设施,如服务提供与配置管理,转变为透明的、易于管理的虚拟IT服务的集合。最后的结果是:IT人员可以轻松、迅速地将业务请求变为运营任务。

  Manwani预测,虚拟的共享服务,加上刀片服务器管理和高性能试验室中开发的群集技术,最
终将导致公用计算――但是目前还不能。“真正的公用计算要等到2008年到2012年才会真正出现。”

  对于Manwani来说,成功的DCA意味着在维持平衡的同时,保持业务灵活性。他指出,你必须平衡应用团队和运营团队的需要,使业务流程在不断修改你的系统的情况下仍可以顺利运转,并且同时确保你保持法规遵从性。

  在使用DCA时,你还必须小心地在满足Windows管理员和Linux管理员的需要上取得平衡。去年10月推出的Version 6增加了对Suse Linux的支持。Manwani说:“市场上的很多工具要么是为Windows平台优化的,要么是为Linux平台优化的。我们的产品对这两种平台不偏不依。”

  QuickTransit:为应用程序提供更大的灵活性

  Alasdair Rawsthorne可能起步时动作缓慢,但是他将找回损失的时间。

  他在上世纪90年代初经历了 “大彻大悟”的时刻。作为英国曼彻斯特大学计算机科学教授,Rawsthorne将自己的休假年用在了为超级计算机研究中心(ACRI)工作上。这是巴黎一家超级计算机制造商。

  Transitive公司创建人、CTO Rawsthorne说:“我们的CEO认为超级计算机必须与一种已有处理器的指令集兼容,但他不断改变这是哪一种处理器的想法。一个星期,是PowerPC,而下一个星期变成了Alpha,再下个星期成了MIPS。每次他改变想法时,我们必须放弃我们的所有工作成果。而他会说:‘这不会改变日程表,对不对?’”

  Rawsthorne认为必须有一种在不损失功能性、降低性能或为每一种CPU重新编译程序的条件下,跨硬件平台运行软件的方法。从这种想法,诞生了QuickTransit硬件虚拟技术。

  然而,QuickTransit的开发绝对算不上快。Rawsthorne于1995年与一位大学研究人员一起开始了这个项目。3年后,他们拿出了他们愿意公开展示的版本。2000年,Rawsthorne成立了Transitive公司,以便向硬件制造商销售这项技术,但是一直等到2004年,该公司才宣布了它的第一家客户Silicon Graphics公司(SGI)。

  SGI当时开发出了一种基于Intel Itanium处理器和Linux操作系统的新图形可视化系统。但是,SGI的客户基础使用为MIPS处理器和一种专有Unix版本开发的软件。怎么办呢?利用QuickTransit,新SGI机器运行老软件的“中间代理”,向和从处理器传送指令并实时优化这些指令。Rawsthorne说,SGI的老软件在Itanium上的运行速度比在MIPS上更快。

  但是,如果缺少学术研究的自由和从容,QuickTransit是不可能问世的。“我们当时从容不迫地试验可能会失败的东西。”

  现在,他面临的最大挑战是说服心存疑虑的客户,让他们相信这项技术是行之有效的:“所有人的第一反应是这显然好得都不像是真的了。”

  OpTier:用整体方式保证性能

  2002年当Amir Alon、Yori Lavi和Israel Mazin决定成立一家新兴公司时,他们找到了一些Fortune 1000企业,询问是什么东西让他们的IT专业人员晚上睡不着觉。得到的答案是:当IT基础设施从客户机/服务器架构转向.Net和J2EE架构时,测量和保持性能的问题。

  Alon说:“我们感到震惊。性能管理市场上有那么多的大厂商,而他们的解决方案却不能适应单一业务交易可以跨多个不同的系统的新范例。”

  这些前Memco和Compuware经理们给这家设在纽约的新公司起名为OpTier,将公司的目标设定为跨企业各个层面优化性能。两年后,他们推出了CoreFirst:一种使企业可以分析各个层面――从大型机、中间件到Web与应用服务器――上的活动的性能管理应用。

  在CoreFirst的帮助下,每一个IT“事务”――不管它是从服务器提取数据,还是请求网页,或是向网络打印机发送打印任务――都被分配给一个惟一的ID。当这个事务从一个系统向另一个系统流动时,安装在网络每个分支上的软件代理跟踪这个事务,提供实时分析,使IT经理可以迅速地确定系统瓶颈。CTO Alon说经理们可以得到他们需要的颗粒度,了解特殊类型的事务,或下挖(drilling down)查看某个用户的活动。

  Alon说,这种想法来自他在上世纪80年代初担任IBM大型机性能分析师的时候。他说,在使用IBM大型机时,事务跟踪和工作负载管理被紧密地集成到操作系统中。“但是在分布式环境中,这些概念不存在,或者它们只存在于自成体系的系统中。”

  Alon说,现在,用户运行的事务以及它们对整体系统的影响,可以被变得完全为企业所见。“你可以隔离造成性能问题的那部分基础设施。”

  更重要的是,CoreFirst使IT部门为不同类型的事务分配优先级。例如,一家金融机构可以赋予在线银行客户优先权,为他们分配更多的系统资源以及减少低优先级任务的资源。这使企业可以改进客户服务,效率更高地利用资源,避免费用昂贵的资源过度配置。

  什么是最大的挑战?Alon说,在不造成额外开销或延迟的条件下建设系统。不过,别指望这位前以色列国防军计算机中心工程师交出那些秘密。他说:“这是我们的秘密调料。我们已经获得了专利。”

  DTrace和预测性自愈技术预示Sun的未来

  Solaris开发员Bryan Cantrill说:“当我1996年来到Sun Microsystems公司时,我是因为希望做操作系统开发工作的。”当时,其他操作系统厂商大多数已放弃了竞争,向Microsoft俯首称臣。“那时只有一家它的Windows NT战略是打败NT的厂商,这就是Sun公司。”

  碰巧,这项战略行之有效。Solaris从Unix大战中胜出,并且在服务器市场沉重打击了Microsoft,但是没想到却让来自开放源代码世界的一匹黑马抢走了风头。目前,尽管Linux势头依然不减,但是Sun仍计划继续创新。

  Cantrill说:“我们始终认为你可以与众不同地进行操作系统的创新。”

  Sun的最新创新可能没有从主流媒体中抢走Linux的风头,但是Solaris毫无疑问是Unix市场中惟一的创新来源。Solaris开发员Michael Shapiro说:“当你研究Solaris 10时,如果你必须形容它所带来的创新的话,没有一种创新真正改变应用程序的编程模型。相反,这种操作系统将使人们可以利用他们已经有的软件或他们已有的解决问题的想法做些什么。”

  以随Solaris 10提供的动态跟踪框架DTrace为例。在它的帮助下,管理人员对了解软件内部工作情况的前所未有的深入了解,使他们可以诊断问题:不是通过孤立的测试情景,而是在生产环境中。Cantrill说,随着向复杂的、部件化的软件环境发展的趋势的继续,这种能力将变得至关重要。

  另一个新特性,预测性自愈功能,从根本上改变了系统报告和回应错误条件的方式。Shapiro说:“如果你的一块DRAM内存坏了,我们可以隔离这个问题……找出什么进程使用这段内存,杀掉这个进程,重新启动服务……然后从使用的内存中卸下这段内存,保持系统继续运行。”

  AMD公司的路线图为其超级制图师Fred Weber而自豪

  By Tom Yager 2005年8月1日

   发展64位 x86-64架构服务器Opteron系列处理器的计划是一个你不曾想到的人所提出的――-Fred Weber,他是AMD的CTO。他对AMD的路线构想是发展CPUs,做为AMD的首席技术官,设计CPU是Fred Weber的责任,并且为了更好地推动进程
,Weber常常被人称为“了解用户需求的离奇预测家”。

  作为芯片制造商,Fred Weber是AMD公司的Hammer芯片的编码工程团队的领军人物。投入微小的人力资源和预算, AMD的Hammer芯片能够在执行64位应用程序的时候同时向后兼容32位的应用程序,相反,Intel的Itanium虽然拥有一套特定的指令集,但是它只能以模拟器的方式执行原来的32位应用程序,在速度上没有任何优势。就像X86-64是X86的改良而不是革命一样,Hammer的架构相对于Athlon而言也是一次提高。AMD将Athlon的技术设计沿用到Hammer上,通过一些调整和改善来使得Hammer超过Athlon的性能。从Athlon到Hammer,AMD在下面三个地方做了改进:增加指令和数据到处理器的流量,增加指令编码流量和增加处理器处理指令的能力。

  然而,当Intel的Itanium因为缺乏x86的兼容性和设计上的缺陷而不再火爆和受人欢迎,并在市场上大受指责时,Weber的职业生涯也同样受到挑战。在2003年,Weber推动Hammer的发展,再然后是Opteron,他从Intel先前的漏洞中一跃而过,狠狠得打击了那些对x86指令集即将消亡的预言。2005年,双核Opteron服务器上市,AMD64处理器家族的其他成员也紧随而上。

  Weber回想起在1999年时,他谈论AMD将来的服务器构想技术时的情景。很明显,当时的构想技术如今已经实现。当制造商期待Pacifica和其他Opteron服务器时,他们会拔出现有的CPU给扔了,然后换上新的。Weber的成就无疑是独特又难以估算的。

  Weber一直在忙着做事,当他谈到Microsoft关于在市场上推迟其推出64位 Windows时,他感到了困难。在问及Intel公司是否对此做了什么时,他流露出怀疑的目光。

  然后他说:“Intel永远赶不上我们。”这就是Fred Weber,充满自信又倔强。

光纤磁盘阵列技术介绍

0

分类 : 技术文摘 | 发表时间 14-11-2005

随着信息技术的发展,磁盘阵列被越来越多地使用到各种应用系统中。开始只是简单地作为某台主机或服务器的附加外置存储设备,主要用于扩展单台主机或服务器的永久存储空间,一般通过SCSI或其他接口与主机直接相连;后来随着存储网络技术,尤其是光纤通道Fibre Channel技术的发展,磁盘阵列通过光纤通道FC接口接入到存储区域网SAN中,为多台主机提供共享的存储空间。目前人们一方面正在致力于开发更多的接口技术(如iSCSI、InfiniBand等)让磁盘阵列接入到成本更低的存储网络(如IP网络)、或性能更高、功能更全的存储网络(如InfiniBand网络)中,一方面致力于通过存储虚拟化技术、全局文件系统技术提高磁盘阵列的利用率。
本文我们主要想讨论目前使用最为广泛的光纤磁盘阵列。之前我们先来看什么是光纤磁盘阵列,或者说讨论一下光纤磁盘阵列的定义。
首先我们做一下名词分解,先说说磁盘阵列。实际上我们日常所说的磁盘阵列一词的定义并不准确,根据SNIA(存储网络国际协会)的定义解释,磁盘阵列(disk array)就是通过一套控制软件结合在一起的、在一个或多个可访问磁盘子系统上的一系列磁盘;该控制软件将这些磁盘的存储空间以一个或多个虚拟磁盘的形式提供给主机;运行在控制器上的控制软件一般称为固件(firmware)或微码(microcode);运行在主机上的通常称为卷管理器。而磁盘阵列子系统(disk array subsystem)才是我们通常所称的磁盘阵列,即具有可将其磁盘组织起来的控制软件的磁盘子系统。为了不引起误解,在此我们只是告诉大家要注意区分磁盘阵列disk array和磁盘阵列子系统disk array subsystem的细微区别,在后面的讨论中我们还是使用大伙熟悉的磁盘阵列这个词汇来代替较为晦涩的磁盘阵列子系统一词。
而为什么又称为光纤磁盘阵列呢?这是指这种磁盘阵列采用光纤通道技术。采用光纤通道技术有两层含义,一层是指其对外–即对主机–使用光纤通道接口连接方式,一层是指其内部采用光纤通道技术来连接其内部的各个磁盘。通常意义来说,光纤磁盘阵列指的是后一种含义。但在最初光纤磁盘阵列上市的时候,内部往往采用SCSI、SSA等存储接口,对外才是光纤通道接口。现在越来越多的光纤磁盘阵列逐渐向内外俱是光纤通道接口的方向发展,这里我们想讨论的就是这种磁盘阵列。至于内部使用IDE、SCSI、SSA等接口技术、外部使用光纤通道技术,或者内部使用光纤通道技术,外部使用SCSI等其他接口技术的磁盘阵列(尽管这有些违背常识,但这种磁盘阵列的确存在),虽然也是光纤磁盘阵列,但不在我们的讨论范围内。
从光纤磁盘阵列的名词解释我们可以看出,从硬件构成来说它应当是由一堆磁盘和控制器及内外接口组成。一般的中、低端光纤磁盘阵列也正是这种结构:由一个或多个供大量磁盘放置的磁盘柜、两个阵列控制器、阵列背板、若干电源、风扇等硬件部件组成。
其中最为主要的部件就是阵列控制器和磁盘柜。控制器通过其内置的控制软件,实现整个阵列的管理。一般阵列对主机的接口就在阵列控制器上,一般每控制器至少有一个主机接口,有些控制器提供更多的主机接口;这些主机接口可以直接或通过光纤交换机与主机连接。此外各种管理接口(串口、以太网口等)也在控制器上。
而一般之所以采用两个控制器,主要是从高可用性、提高性能和负载均衡的角度考虑的。很多阵列都可以通过这两个控制器间的切换,防止控制器、连接线缆、网络设备(如光纤通道交换机和集线器)、主机HBA的单点故障。某些阵列则可以通过主机或阵列软件实现多通道的数据访问和通道间的负载均衡。
可以说阵列控制器是中低端磁盘阵列的核心,相当于PC的主板、内存和CPU;而放置硬盘的磁盘柜是阵列实际存储数据的地方,相当于PC的硬盘。光纤磁盘阵列磁盘柜的主要特点是内部一般至少采用冗余的双FC-AL仲裁环环路结构,内部硬盘实际上同时接在两条仲裁环上。而中端磁盘阵列支持的环路数更多,可以达到4、8、16条之多。这种多冗余仲裁环结构最主要的目的就是为了高可用性,它可以防止单个线路、接口的故障导致整个阵列的失效。而且每个环路采用旁路技术来防止无硬盘接入和硬盘故障对环路通信的影响。

RAID技术介绍

0

分类 : 技术文摘 | 发表时间 05-11-2005

在计算机发展的初期,“大容量”硬盘的价格还相当高,解决数据存储安全性问题的主要方法是使用磁带机等设备进行备份,这种方法虽然可以保证数据的安全,但查阅和备份工作都相当繁琐。1987年, Patterson、Gibson和Katz这三位工程师在加州大学伯克利分校发表了题为《A Case of Redundant Array of Inexpensive Disks(廉价磁盘冗余阵列方案)》的论文,其基本思想就是将多只容量较小的、相对廉价的硬盘驱动器进行有机组合,使其性能超过一只昂贵的大硬盘。这一设计思想很快被接受,从此RAID技术得到了广泛应用,数据存储进入了更快速、更安全、更廉价的新时代。

  磁盘阵列对于个人电脑用户,还是比较陌生和神秘的。印象中的磁盘阵列似乎还停留在这样的场景中:在宽阔的大厅里,林立的磁盘柜,数名表情阴郁、早早谢顶的工程师徘徊在其中,不断从中抽出一块块沉重的硬盘,再插入一块块似乎更加沉重的硬盘……终于,随着大容量硬盘的价格不断降低,个人电脑的性能不断提升,IDE-RAID作为磁盘性能改善的最廉价解决方案,开始走入一般用户的计算机系统。

  一、RAID技术规范简介

  RAID技术主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同,常见的规范有如下几种:

  RAID 0:RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。

  RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

  RAID 0+1: 也被称为RAID 10标准,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。

  RAID 2:将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用称为“加重平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。

  RAID 3:它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。

  RAID 4:RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。

  RAID 5:RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

  RAID 6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。

  RAID 7:这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7可以看作是一种存储计算机(Storage Computer),它与其他RAID标准有明显区别。除了以上的各种标准(如表1),我们可以如RAID 0+1那样结合多种RAID规范来构筑所需的RAID阵列,例如RAID 5+3(RAID 53)就是一种应用较为广泛的阵列形式。用户一般可以通过灵活配置磁盘阵列来获得更加符合其要求的磁盘存储系统。

  开始时RAID方案主要针对SCSI硬盘系统,系统成本比较昂贵。1993年,HighPoint公司推出了第一款IDE-RAID控制芯片,能够利用相对廉价的IDE硬盘来组建RAID系统,从而大大降低了RAID的“门槛”。从此,个人用户也开始关注这项技术,因为硬盘是现代个人计算机中发展最为“缓慢”和最缺少安全性的设备,而用户存储在其中的数据却常常远超计算机的本身价格。在花费相对较少的情况下,RAID技术可以使个人用户也享受到成倍的磁盘速度提升和更高的数据安全性,现在个人电脑市场上的IDE-RAID控制芯片主要出自HighPoint和Promise公司,此外还有一部分来自AMI公司(如表2)。

  面向个人用户的IDE-RAID芯片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID规范的支持,虽然它们在技术上无法与商用系统相提并论,但是对普通用户来说其提供的速度提升和安全保证已经足够了。随着硬盘接口传输率的不断提高,IDE-RAID芯片也不断地更新换代,芯片市场上的主流芯片已经全部支持ATA 100标准,而HighPoint公司新推出的HPT 372芯片和Promise最新的PDC20276芯片,甚至已经可以支持ATA 133标准的IDE硬盘。在主板厂商竞争加剧、个人电脑用户要求逐渐提高的今天,在主板上板载RAID芯片的厂商已经不在少数,用户完全可以不用购置RAID卡,直接组建自己的磁盘阵列,感受磁盘狂飙的速度。

  二.通过硬件控制芯片实现IDE RAID的方法

  在RAID家族里,RAID 0和RAID 1在个人电脑上应用最广泛,毕竟愿意使用4块甚至更多的硬盘来构筑RAID 0+1或其他硬盘阵列的个人用户少之又少,因此我们在这里仅就这两种RAID方式进行讲解。我们选择支持IDE-RAID功能的升技KT7A-R AID主板,一步一步向大家介绍IDE-RAID的安装。升技KT7A-RAID集成的是HighPoint 370芯片,支持RAID 0、1、0+1。

  做RAID自然少不了硬盘,RAID 0和RAID 1对磁盘的要求不一样,RAID 1(Mirror)磁盘镜像一般要求两块(或多块)硬盘容量一致,而RAID 0(Striping)磁盘一般没有这个要求,当然,选用容量相似性能相近甚至完全一样的硬盘比较理想。为了方便测试,我们选用两块60GB的希捷酷鱼Ⅳ硬盘(Barracuda ATA Ⅳ、编号ST360021A)。系统选用Duron 750MHz的CPU,2×128MB樵风金条SDR
AM,耕升GeForce2 Pro显卡,应该说是比较普通的配置,我们也希望借此了解构建RAID所需的系统要求。 1.RAID 0的创建

  第一步

  首先要备份好硬盘中的数据。很多用户都没有重视备份这一工作,特别是一些比较粗心的个人用户。创建RAID对数据而言是一项比较危险的操作,稍不留神就有可能毁掉整块硬盘的数据,我们首先介绍的RAID 0更是这种情况,在创建RAID 0时,所有阵列中磁盘上的数据都将被抹去,包括硬盘分区表在内。因此要先准备好一张带Fdisk与Format命令的Windows 98启动盘,这也是这一步要注意的重要事项。

  第二步

  将两块硬盘的跳线设置为Master,分别接上升技KT7A-RAID的IDE3、IDE4口(它们由主板上的HighPoint370芯片控制)。由于RAID 0会重建两块硬盘的分区表,我们就无需考虑硬盘连接的顺序(下文中我们会看到在创建RAID 1时这个顺序很重要)。

  第三步

  对BIOS进行设置,打开ATA RAID CONTROLLER。我们在升技KT7A-RAID主板的BIOS中进入INTEGRATED PERIPHERALS选项并开启ATA100 RAID IDE CONTROLLER。升技建议将开机顺序全部改为ATA 100 RAID,实际我们发现这在系统安装过程中并不可行,难道没有分区的硬盘可以启动吗?因此我们仍然设置软驱作为首选项。

  第四步

  接下来的设置步骤是创建RAID 0的核心内容,我们以图解方式向大家详细介绍:

   1.系统BIOS设置完成以后重启电脑,开机检测时将不会再报告发现硬盘。
   2.磁盘的管理将由HighPoint 370芯片接管。
   3.下面是非常关键的HighPoint 370 BIOS设置,在HighPoint 370磁盘扫描界面同时按下“Ctrl”和“H”。
   4.进入HighPoint 370 BIOS设置界面后第一个要做的工作就是选择“Create RAID”创建RAID。
   5.在“Array Mode(阵列模式)”中进行RAID模式选择,这里能够看到RAID 0、RAID 1、RAID 0+1和Span的选项,在此我们选择了RAID 0项。
   6.RAID模式选择完成会自动退出到上一级菜单进行“Disk Drives(磁盘驱动器)”选择,一般来说直接回车就行了。
   7.下一项设置是条带单位大小,缺省值为64kB,没有特殊要求可以不予理睬。8.接着是“Start Create(开始创建)”的选项,在你按下“Y”之前,请认真想想是否还有重要的数据留在硬盘上,这是你最后的机会!一旦开始创建RAID,硬盘上的所有数据都会被清除。
   9.创建完成以后是指定BOOT启动盘,任选一个吧。

   按“Esc”键退出,当然少不了按下“Y”来确认一下。

   HighPoint 370 BIOS没有提供类似“Exit Without Save”的功能,修改设置后是不可逆转的

  第五步

  再次重启电脑以后,我们就可以在屏幕上看到“Striping(RAID 0)for Array #0”字样了。插入先前制作的启动盘,启动DOS。打开Fdisk程序,咦?怎么就一个硬盘可见?是的,RAID阵列已经整个被看作了一块硬盘,对于操作系统而言,RAID完全透明,我们大可不必费心RAID磁盘的管理,这些都由控制芯片完成。接下来按照普通单硬盘方法进行分区,你会发现“这个”硬盘的容量“变”大了,仔细算算,对,总容量就是两块硬盘相加的容量!我们可以把RAID 0的读写比喻成拉链,它把数据分开在两个硬盘上,读取数据会变得更快,而且不会浪费磁盘空间。在分区和格式化后千万别忘了激活主分区。

  第六步

  选择操作系统让我们颇费周折,HighPoint370芯片提供对Windows98/NT/2000/XP的驱动支持,考虑到使RAID功能面向的是相对高级的用户,所以我们选择了对新硬件支持更好的Windows XP Professional英文版(采用英文版系统主要是为了方便后面的Winbench测试,大家自己使用RAID完全可以用中文版的操作系统),Windows 2000也是一个不错的选择,但是硬件支持方面显然不如Windows XP Professional。

  第七步

  对于采用RAID的电脑,操作系统的安装和普通情况下不一样,让我们看看图示,这是在Windows XP完成第一步“文件复制”重启以后出现的画面,安装程序会以英文提示“按下F6安装SCSI设备或RAID磁盘”,这一过程很短,而且用户往往会忽视屏幕下方的提示。

  按下F6后出现安装选择,选择“S”将安装RAID控制芯片驱动,选择“Enter”则不安装。

  按下“S”键会提示插入RAID芯片驱动盘。

  键入回车,安装程序自动搜索驱动盘上的程序,选择“WinXP”那一个并回车。

  如果所提供的版本和Windows XP Profesional内置的驱动版本不一致,安装程序会给出提示让用户进行选择。

  按下“S”会安装软盘所提供的而按下“Enter”则安装Windows XP Professional

  自带的驱动。按下“S”后又需要确认,这次是按“Enter”(这个……确认太多了,呵呵)。接下来是正常的系统安装,和普通安装没有任何区别。

  RAID 0的安装设置我们就介绍到这里,下面我们会谈谈RAID 1的安装。与RAID 0相比,RAID 1的安装过程要简单许多,在正确操作的情况下不具破坏性。

  2.RAID 1的创建

  虽然在原理上和RAID 0完全不一样,但RAID 1的安装设置过程却与RAID 0相差不多,主要区别在于HighPoint 370 BIOS里的设置。为了避免重复,我们只向大家重点介绍这部分设置:

  进入HighPoint 370 BIOS后选择“Create RAID”进行创建:

   1.在“Array Mode”上点击回车,在RAID模式选择中选择第二项“Mirror(RAID 1)for Data Security(为数据源盘创建镜像)”。
   2.接着是源盘的选择,我们再次提醒用户:务必小心,不要选错。
   3.然后是目标盘的选择,也就是我们所说的镜像盘或备份盘。
   4.然后开始创建。
   5.创建完成以后BIOS会提示进行镜像的制作,这一过程相当漫长。
   6.我们用了大约45分钟才完成60GB的镜像制作,至此RAID 1创建完成。RAID 1会将主盘的数据复制到镜像盘,因此在构建RAID 1时需要特别小心,千万不要把主盘和镜像盘弄混,否则结果将是悲剧性的。RAID 1既可在两块无数据的硬盘上创建,也能够在一块已经安装操作系统的硬盘上添加,比RAID 0方便多了(除了漫长的镜像制作过程)。创建完成以后我们试着将其中一块硬盘拔下,HighPoint370 BIOS给出了警告,按下“Esc”,另一块硬盘承担起了源盘的重任,所有数据完好无损。

  对于在一块已经安装操作系统的硬盘上添加RAID 1,我们建议的步骤是:打开BIOS中的控制芯片→启动操作系统安装HighPoint 370驱动→关机将源盘和镜像盘接在IDE3、4口→进入HighPoint 370 BIOS设置RAID 1(步骤见上文介绍)→重启系统完成创建。

  我们对两种RAID进行了简单的测试,虽然RAID 0的测试成绩让人有些不解,但是实际使用中仍然感觉比单硬盘快了很多,特别是Windows XP Professional的启动异常迅速,进度条一闪而过。至于传输率曲线出现不稳定的情况,我们估计和平台选择有一些关系,毕竟集成芯片在进行这种高数据吞吐量的工作时非常容易被干扰。不过即使是这样,我们也看到RAID 0系统的数据传输率达到了非常高的水平,一度接近60MB/s。与RAID 0相比,RAID 1系统的性能虽然相对单磁盘系统没有什

“启动时正在取消86400秒”_2003sp1

0

分类 : 技术文摘 | 发表时间 02-11-2005

近些天,电脑启动时,桌面显示出来以后,发现网络还没有启动,等了有几分种,才开始启动,每次都是如此。后来查了启动日志,发现有这么一条:
来源:DCOM   事件 ID; 10026u6″2k
描述©HelpOnline — HelpOnline在线技术支持,免费为您解决系统故障,进行安全维护。  Z
COM 子系统正在取消 86400 秒持续时间内重复的事件日志项。可以通过下列注册表项下名为 SuppressDuplicateDuration 的 REG_DWORD 值控制取消超时: HKLM\Software\Microsoft\Ole\EventLog。

检索网络,发现有如下提示:
Event ID: 10026
Source: DCOM
Type: Information
Description: The COM sub system is suppressing duplicate event log entries for a duration of 86400 seconds. The suppression timeout can be controlled by a REG_DWORD value named SuppressDuplicateDuration under the following registry key: HKLM\Software\Microsoft\Ole\EventLog.
Comments: Peter Hayden (Last update 6/28/2005):
In one case, a computer was running Windows 2003 that had an Adaptec Ultra 160 (19160) SCSI Adapter that was being used to control separate C: and D: drives. After a while the D: drive failed. This resulted in the SCSI BIOS taking a long time to run and eventually timed out. When Windows loaded and this Event ID appeared, Windows took a long time to start up (even when the swap file was moved to the C: drive). The D: drive was not accessible. This event ID was accompanied by EventID 9 Source adpu160m, EventID 11 from source Disk and EventID 117 from source adpu160m.
Resolution: Remove or replace the faulty hard drive.
解决方法:拿走或换掉有坏道的硬盘。

有坏道,没见电脑提示呀?先收藏一下。

几个重要的RedHat Linux内核文件介绍

0

分类 : 技术文摘 | 发表时间 15-10-2005

  在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行。

  编译过RedHat Linux内核的人对其中的System.map、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生的?又有什么作用呢?本文对此做些介绍。

  一、vmlinuz

  vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接,比如图中是vmlinuz-2.4.7-10的软链接。

  vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。

  二是内核编译时通过命令make bzImage创建,然后通过:“cp/usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz”产生。bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”。 bzImage中的b是“big”意思。 zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解包vmlinuz。

  内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。

  二、initrd-x.x.x.img

  initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。图中的initrd-2.4.7-10.img主要是用于加载ext3等文件系统及scsi设备的驱动。

  比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd-2.4.7-10.img是用gzip压缩的文件,initrd实现加载一些模块和安装文件系统等功能。

  initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。具体情况请看帮助:man mkinitrd下面的命令创建initrd映象文件。

  三、System.map

  System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。

  内核符号表是怎么创建的呢? System.map是由“nm vmlinux”产生并且不相关的符号被滤出。

  对于本文中的例子,编译内核时,System.map创建在/usr/src/linux-2.4/System.map。像下面这样:

  nm /boot/vmlinux-2.4.7-10 > System.map

  下面几行来自/usr/src/linux-2.4/Makefile:

  nm vmlinux | grep -v ‘\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)’ | sort > System.map

  然后复制到/boot:

  cp /usr/src/linux/System.map /boot/System.map-2.4.7-10

  下图是System.map文件的一部分:

  在进行程序设计时,会命名一些变量名或函数名之类的符号。Linux内核是一个很复杂的代码块,有许许多多的全局符号。

  Linux内核不使用符号名,而是通过变量或函数的地址来识别变量或函数名。比如不是使用size_t BytesRead这样的符号,而是像c0343f20这样引用这个变量。

  对于使用计算机的人来说,更喜欢使用那些像size_t BytesRead这样的名字,而不喜欢像c0343f20这样的名字。内核主要是用c写的,所以编译器/连接器允许我们编码时使用符号名,当内核运行时使用地址。

  然而,在有的情况下,我们需要知道符号的地址,或者需要知道地址对应的符号。这由符号表来完成,符号表是所有符号连同它们的地址的列表。上图就是一个内核符号表,由上图可知变量名checkCPUtype在内核地址c01000a5。

  Linux 符号表使用到2个文件:

  /proc/ksyms

  System.map

  /proc/ksyms是一个“proc file”,在内核引导时创建。实际上,它并不真正的是一个文件,它只不过是内核数据的表示,却给人们是一个磁盘文件的假象,这从它的文件大小是0可以看出来。然而,System.map是存在于你的文件系统上的实际文件。

  当你编译一个新内核时,各个符号名的地址要发生变化,你的老的System.map具有的是错误的符号信息。每次内核编译时产生一个新的System.map,你应当用新的System.map来取代老的System.map。

  虽然内核本身并不真正使用System.map,但其它程序比如klogd,lsof和ps等软件需要一个正确的System.map。如果你使用错误的或没有System.map,klogd的输出将是不可靠的,这对于排除程序故障会带来困难。没有System.map,你可能会面临一些令人烦恼的提示信息。

  另外少数驱动需要System.map来解析符号,没有为你当前运行的特定内核创建的System.map它们就不能正常工作。

  Linux的内核日志守护进程klogd为了执行名称-地址解析,klogd需要使用System.map。System.map应当放在使用它的软件能够找到它的地方。执行:man klogd可知,如果没有将System.map作为一个变量的位置给klogd,那么它将按照下面的顺序,在三个地方查找System.map:

  /boot/System.map

  /System.map

  /usr/src/linux/System.map

  System.map也有版本信息,klogd能够智能地查找正确的映象(map)文件。

轻拂Fabric面纱 光纤通道交换机

0

分类 : 技术文摘 | 发表时间 07-10-2005

  通过光纤通道(FC)交换机构建的光纤通道网络叫作Fabric,或者叫作光纤通道网络架构。
  与以太网交换机大不相同,大多数用户在构建存储时,FC交换机往往被紧密地集成到系统中。一方面用户对其关注程度不太高,另一方面所有的大型存储设备厂商都OEM光纤通道交换机,不细心的用户连交换机的生产厂家都不清楚。

  本文我们对FC交换机作一个简单的介绍,面对如此“神秘”的Fabric世界,我们只能——

   轻拂Fabric面纱——光纤通道交换机购买指南

■ 基础篇

  在20世纪80年代,连接主机和存储设备的标准方法是通过像IDE或并行SCSI这样的接口实现的点对点的DAS(直接连接存储)方式。并行SCSI提供了相对快速的访问SCSI硬盘的速度(5MBps或10MBps),并且几个硬盘可以通过同一个接口连接到计算机上。

  但是,随着存储子系统变得越来越大,计算机变得越来越快,一个新问题出现了:外部存储设备开始变得庞大起来。磁带库、RAID(廉价冗余磁盘阵列)和其他SCSI设备开始需要越来越多的空间,这就要求并行SCSI连接从主机延伸出来得越来越远。同时,I/O(输入/输出)速率也在不断增长,于是如何在一大捆线(32或64位数据总线)中保持信号的一致性也就成为了一个需要在物理学上解决的问题。简单的并行SCSI改良版的设计目的就在于,增加数据传输的距离和解决信号一致性问题。但是,它们最终都难以克服高速信号在并行SCSI总线构架下传输这一技术难题。

  为了满足这些新的需求,人们开发了为存储设备提供千兆串行网络访问能力的光纤通道(Fibre Channel)协议。在光纤通道协议的第四层上建立了以光纤通道为基础的用于存储的SCSI协议、用于网络的IP协议以及映射到网络架构上的用于集群的虚拟接口(VI)协议。光纤通道协议综合了许多优点,如网络范围的最远距离可达到10公里,可以使用多种介质的简单串行线缆、千兆网络速率以及可以在同一线缆上同时使用多种协议。这些特点使得光纤通道协议作为并行SCSI协议的替代者在整个90年代都得到了人们的认可,现在光纤通道协议被用在绝大多数高容量、高端直连存储设备上。

  随着光纤通道协议作为并行SCSI的点对点方式替代者的出现,并随着其逐渐被市场所接受,一种组合单纯的存储应用与网络技术于一身的新技术出现了——这就是存储区域网络(Storage Area Network,SAN)。SAN是一个由存储设备和系统部件构成的网络,所有的通信都在一个光纤通道的网络上完成,可以被用来集中和共享存储资源。SAN不但提供了对数据设备的高性能连接,提高了数据备份速度,还增加了对存储系统的冗余连接,提供了对高可用群集系统的支持。

  简单地说,SAN是关连存储设备和服务器的专用光纤通道网络,它和以太网有类似的架构,以太网由服务器、以太网卡、以太网集线器/交换机及工作站所组成,SAN 则由服务器、光纤通道卡、光纤通道集线器/交换机和光纤通道存储装置所组成,SAN 把大容量、长距离连接从 SCSI 解放出来,并避开以太网的束缚使数据得以高速传输。

  SAN由三个基本的组件构成:接口(如SCSI、光纤通道、ESCON等)、连接设备(交换设备、网关、路由器、Hub等)和通信控制协议(如IP和SCSI等)。这三个组件再加上附加的存储设备和服务器,构成一个SAN系统。

  构成存储区域网络的关键设备是光纤交换机即光纤通道交换机。按光纤通道拓扑结构,用光纤通道交换机将存储系统与服务器连接,以提供高速数据传输和数据共享、无局域网数据备份和存储合并。

  光纤通道网络在存储系统中占有举足轻重的地位。它可以发现存储系统中的一切,并且管理、控制着存储系统的一切(如图1所示)。

  技术篇

  光纤通道交换机为高带宽和低延迟数据通信提供光纤通道切换功能。目前,光纤通道交换机提供无连接服务(Class2和3)。光纤交换机是使用光纤网络路由直接连接的方式,使用路由软件直接连接发起者和目标,这样就可以独享光纤的所有带宽。这就意味着光纤中每一个连接都可以单独存在,与其他连接互不干扰。光纤交换机端口的数量从8口到64口,甚至更多,其中包含智能交换硬件,使交换机所有端口中的任意两点可以建立连接。

  光纤交换机通过E_Ports(扩展端口)可以进行堆叠,这种方法可以使光纤网络扩展到数千个节点,交换机堆叠最多可以达到239个。

  较大型的SAN通过在一个网状网络中连接多个交换机来实现。其中每个交换机有一个到网络中其他交换机的单向连接。在图2的例子中,使用的交换机有16端口。随着网络中的交换机数量增加,用于交换机间连接的端口百分比增加。这也是FC交换机端口昂贵的原因之一。

  总共有96个端口的由6个交换机组成的网状SAN核心网络中,有30个交换机间的连接和66个用户端口(如图2所示)。

  交换机大大提高了光纤网络的性能,例如:名称服务、管理服务以及更加完善的设备连接协议。交换机在绝大多数的环境中被用来作为提供主机到阵列连接的完善机制,尤其是在多重设备、多重引导的环境中交换机是不可或缺的。光纤交换机在SAN存储架构中处于连接核心地位。

  光纤通道交换机在逻辑上是SAN的核心,它连接着主机和存储设备。Fabric的基础结构可以被看作是SAN建立的基础。当从一个设备发送一帧数据到交换机时,交换机收到后,将该帧路由到适当目标设备中去。实际上,一个帧可以在它被完全接收之前就开始进行转发。光纤交换机也很智能,它可以提供各种Fabric服务,包括在网络上定位其他节点的服务(简单名字服务),可以自动和Fabric中的其他交换机之间建立路由,将设备分区(zoning),还可以监视和处理错误。

  光纤通道交换机有着许多不同的功能,包括支持GBIC、冗余风扇和电源、分区、环操作和多管理接口等。每一项功能都可以增加整个交换网络的可操作性,理解这些特点可以帮助用户设计一个功能强大的大规模的SAN。光纤交换机的主要功能如下:自配置端口、环路设备支持、交换机级联、自适应速度检测、可配置的帧缓冲、分区(基于物理端口和基于WWN的分区)、IP over Fiber Channel(IPFC)广播、远程登录、Web管理、简单网络管理协议(SNMP)以及SCSI接口独立设备服务(SES)等。

  光纤交换机往往根据其功能和特点被分为不同的类别。通常硬件可能都是基于相同的基本架构或者相同的ASIC芯片,只是软件的功能不同,光纤交换机的价格是根据它所能满足的需求来制定的。高冗余的核心级交换机是个例外,它往往是根据自己的硬件容错平台开发设计的。以下是各种主要类别的交换机的不同特点。


  入门级交换机

  入门级交换机的应用主要集中于8到16个端口的小型工作组,它适合低价格、很少需要扩展和管理的场合。它们往往被
用来代替集线器,可以提供比集线器更高的带宽和提供更可靠的连接。人们一般不会单独购买入门级交换机,而是经常和其他级别交换机一起购买,以组成一个完整的存储解决方案。入门级交换机提供有限级别的端口级联能力。如果用户单独使用这类低端设备时,可能会遇到一些可管理性问题。

  工作组级光纤交换机

  光纤交换机提供将许多交换机级联成一个大规模的Fabric的能力。通过连接两台交换机的一个或多个端口,连接到交换机上的所有端口都可以看到网络的唯一的映像,在这个Fabric上的任何节点都可以和其他节点进行通信。从本质上讲,通过级联交换机,能够建立一个大型的、虚拟的、具有分布式优点的交换机,并且它可以跨越的距离非常大。

  由多个交换机建立起来的Fabric,看起来就像是一个由单独的交换机组成的Fabric,所有交换机上的端口可以像访问本地交换机一样查看和访问Fabric上的所有其他端口。统一的名字服务器和管理服务允许通过单独的接口查看和修改全部Fabric的信息。

  创建分布式Fabric的一个重要因素,是获得交换机之间连接的带宽。任何两个端口之间的有效速率受到交换机之间连接的有效带宽的影响,可能需要使用多条交换机之间的连接来维护必要的带宽。

  工作组光纤通道交换机数量众多并且更加通用。用户可以将工作组交换机用于多种途径,但应用的最多的领域是小型SAN。这类交换机可以通过交换机间的互联线路连接在一起提供更多的端口数量。交换机间的互联线路可以在光纤通道交换机上的任意端口上创建。不过,如果计划使用多家厂商的产品的话,一定要确保设备可互操作。

   核心级光纤交换机

  核心级交换机(又叫导向器)一般位于大型SAN的中心,使若干边缘交换机相互连接,形成一个具有上百个端口的SAN网络。核心交换机也可以用作单独的交换机或者边缘交换机,但是它增强的功能和内部结构使它在核心存储环境下工作的更好。核心交换机的其他功能还包括:支持光纤以外的协议(像InfiniBand)、支持2Gbps光纤通道、高级光纤服务(例如:安全性、中继线和帧过滤等)。

  核心级光纤交换机通常提供很多端口,从64口到128个端口到更多。它使用非常宽的内部连接,以最大的带宽路由数据帧。使用这些交换机的目的是为了建立覆盖范围更大的网络和提供更大的带宽,它们被设计成为在多端口间以尽可能快的速度用最短的延迟路由帧信号。另外,核心光纤交换机往往采用基于“刀片式”的热插拔电路板:只要在机柜内插入交换机插板就可以添加需要的新功能,也可以作在线检修,还可以做到在线的分阶段按需扩展。许多核心级交换机不支持仲裁环或者其他的直连环路设备,它们只关心核心交换的能力。

  由于在整个环境里面可用性是最重要的,人们都愿意花更多的钱购买冗余性,高冗余交换机的所有部件都是冗余的,完全去除了单点故障,而且保证了非常长久的正常运行时间。这些在冗余上支出的费用一般花费在高可用性背板、电源、冗余电路和维护可用性的软件上。这种类型的交换机内置很多逻辑电路,用来处理交换机内部的硬件故障。除了冗余之外,核心级光纤交换机支持不中断服务式的软件升级,这样就消除了升级时对系统维护的需要。交替通路是网络上的一种冗余级别,它可以配置一个有弹性的双重Fabric,这种网络完全排除了单点故障,可以避免由于软件或硬件错误、火灾、自然灾害或者操作错误给网络带来的严重后果。对于大多数的高可用性网络,应该选择由核心光纤交换机构建的双通道网络。

  核心级交换机提供最高的可靠性和端口密度。在拥有大量光纤通道基础设施的数据中心中,这类产品就是几乎刀枪不入的、集中式的存储交换机。
各类别FC交换机之比较
类别 入门级 工作组级 核心级
端口数 8~16 16~64 几十至一两百
冗余特性 无 有 全有
管理功能 无 简单 复杂
价格 便宜 中档 昂贵
  选购篇
  不管是采用少量交换机搭建一个简单的存储网络,或是通过大量交换机构成一个规模庞大、扩展性好的核心存储网络,都要在各个交换机品牌和型号中做出选择。

  由于交换机是构造存储区域网络SAN的核心构件,所以选择最合适的交换机是至关重要的。只有正确选择对存储区域网络最合适的光纤交换机才能提高企业信息管理的效率,满足最具挑战性的需求。

  与其他技术实现相比,交换机的选择可谓是个战略性的决策,必须既要了解企业目前的IT状况和需求,同时又要让选择的交换机能够满足企业今后的发展需求。同时影响最终决策的因素还有可扩展性、兼容性以及与其他硬件设备的互操作性等。

  值得指出的是,任何一个存储区域网络都不会是一成不变的,它时刻面临着扩展及与新技术、新产品集成的问题。而存储区域网络正是通过灵活的可扩展性来满足未来的需求,从而保护用户的投资。

  扩展性又包括两个方面,一方面是随着存储网络规模的扩大,原有的系统不能满足用户的存储需求时怎样扩展为一个更大的Fabric;另一方面是,随着技术的发展,能够顺利地升级到新的技术与应用。比如,IP存储的发展使得越来越多的用户考虑iSCSI和FCIP,FC交换机将来能否进行IP存储的扩展就显得很重要。

  具体来看,必须了解交换机的几个选择要点。包括:体现可靠性和可用性的硬件冗余特性、体现网络节点容量的端口数以及为满足特定应用环境所需的网络功能,同时要考虑存储区域网络项目的预算费用。

  选择交换机的第一步,是要确定要连接多少台服务器和存储设备。在挑选交换机时,这里有几条普遍原则可供参考:对于少于八个设备又没有扩展计划的网络,一个8口交换机已经足够了,如果计划将来要扩展到8个以上的设备,那么就要考虑16口的交换机。再如网络中设备多于16台的话,要考虑使用多台16口交换机级联。

  如果要保证关键业务的不间断运行,就需要按照冗余方式构建系统。可以考虑双光纤交换网配置方案。由于这种网络拓扑确保了冗余性,所以可以使用较为便宜的单电源交换设备。即使一个交换机发生故障,主机和存储阵列上的链路切换软件也会自动将通信切换到冗余设备上,直到故障设备被更换为止。

  如果定期停机维护不会影响企业的应用,那么采用一个带热插拔电源和风扇的交换机性价比高,同时还保证了电源或风扇的任何一个单点故障都不影响网络的运行。

  总之,在选择使用哪种交换机来建立SAN光纤交换网络前需要考虑的地方很多,同其他设备采购计划一样,需要在比较交换机之前明确目前和未来的关键需求,还要明确这些需求的优先级别。


  编看编想 这是一个封闭的世界

  在FC交换机领域,一共只有几个厂家,许多公司销售的都是OEM产品。例如,EMC和IBM这两家公司都转销其他
制造商的交换机。

  博科从中端起家,但随着12000的推出,也迅速占领了高端的很大一部分市场;McDATA从高端起家,最近也陆续推出了一系列中低端产品;思科是一个后来者,但是在以太网领域的巨大实力使得每个对手都不能小看它,尤其是最近IP存储被普遍看好。这几个厂商也是中国用户比较熟悉的。

  存储是最近几年才发展起来的一个领域,其中有些技术是从大型机系统中发展而来,与大家较为熟悉的以太网世界有着很大的区别。因此,对SAN熟悉的工程师不多(这也是一些厂商和机构进行培训的原因)。

  另外,与以太网相比,Fabric相对复杂一些,为了保证数据存储的超高可用性,FC交换机中采用了复杂的设计,同时也提供了许多管理功能,不久之后还会有许多高级存储功能移植到Fabric中。所以,在大型用户的IT系统中,如果某个以太网交换机出现了问题,许多管理员都能够解决,而如果FC交换机出现了问题,绝大多数情况是要向厂商求助了。

  为了本期购买指南,笔者曾走访了几个用户(主要是大中型用户),得到的结论是,他们对FC交换机很不了解,很多用户都不知道他们使用的是哪个厂家的交换机。某个用户的回答很具有代表性“对于复杂的存储系统内部结构,我们不需了解太多。出现任何疑问马上能够从厂商那里得到支持”。

  在存储领域还有一个很重要的特点是,用户的从众心理很明显,如果一种产品占据了大部分的市场份额,如果有很多用户都将其重要的数据存储在某种解决方案上面,那么用户就很容易接受这种产品与方案。用户的回答简单却也实用,“我们随大流,哪个厂家产品卖得最多我们就用哪家的。”

  这样产生的结果便是,在存储领域,尤其是中国,竞争还不是特别激烈(大家只要比较一下有多少家厂商在做以太网交换机就很容易理解了)。用户在选购产品时可供选择不多,因此,IDC的报告指出,中国用户在购买存储设备时,承担的费用稍微高一些。

eWeek 权威测试显示 MySQL 4.0.1 可与 Oracle 9i 媲美

0

分类 : 技术文摘 | 发表时间 28-09-2005

eWEEK Labs/PC Labs 可以说是做基准测试的老大了,早在 1993年 10月份他们的姐妹杂志 PC Magazine 就做过同样的测试。这次和 PC Magazine 合作测试了五种数据库在 Java 应用服务器上的表现,结果显示 MySQL 最新的 4.0.1 版本性能可以和 Oracle 9i 媲美, 垫低的当然是微软的 SQL Server 2000 。 :-) 测试的这五种数据库是:IBM 的 DB2 7.2 FixPack 5,微软的 SQL Server 2000 企业版 SP2, MySQL AB 的 MySQL 4.0.1 Max, Oracle 的 Oracle9i 企业版 9.0.1.1.1 以及 Sybase 的 ASE (Adaptive Server Enterprise) 12.5.0.1。 测试兼容性也是基准测试的一个主要目的,所有的数据库都在同样的硬件条件下测试: HP NetServer LT 6000r 带有四颗 700MHz Xeon CPU, 2GB 内存以及 24 台 10000 rpm 的 9.1GB Ultra3 SCSI 磁盘,操作系统为 Windows 2000 Advanced Server SP2。 测试的应用程序是一个叫做 Nile 的基于 Web 的书店应用。Nile 采用了 Empirix 公司的测试套件 6.0 ,能加载 50 到 10000 个并发用户。 测试采用的应用服务器是 BEA 的 WebLogic 6.1 SP1,并用 JSP 编写了 Nile 应用。 每种测试运行一个小时产生五万张订单,15 万到 20万相关的记录数,我们得到的最好的伸缩性是在两台 6路 HP NetServer LT 6000r ( 4GB 内存,千兆网卡)服务器上运行6个 WebLogic 例程。HTTP 流量均衡的分配到这六个例程中。 测试的总体结果显示 Oracle9i 和 MySQL 有最好的性能和伸缩性,但是 9i 仅仅略微比 MySQL 好一些,ASE, DB2, Oracle9i 和 MySQL 到达 550 个并发用户时已经“力不从心”了,ASE 的性能下降到了每秒 500 个页面,比 9i 和 MySQL 要低 100 个页面,DB2 在高负荷情况下,性能下降也很厉害,只有每秒 200 个页面了。 由于 JDBC 驱动存在问题,SQL Server 在整个测试中都只能达到每秒 200 个页面。 驱动,内存优化和数据库设计问题是影响性能的主要因素,经过手工细调后的性能会和没有调优的性能差两倍。 Oracle 和 MySQL 的驱动具有完整的 JDBC 特色和稳定性(MySQL的员工采用了Mark Matthews 编写的 JDBC 驱动,因为他们没有自己的 JDBC 驱动程序)。 为各种数据库找到最好的内存配置是一件具有挑战性的工作,我们在这个问题上花了好几天。 SQL Server 和 MySQL 的配置最简单,而 Oracle9i 是最复杂的。 9i 采用了很多独立的内存缓冲,每个数据库连接需要消耗很大的内存(大约 400KB),而 DB2 只需要 177 KB, SQL Server, MySQL 和 ASE 都只需要 50KB 就够了,结果是 9i 的数据和执行计划的缓冲就比别的数据库要小。 MySQL 的高性能源自采用了内存内的查询结果集缓冲,这是 4.0.1 的新特色,我们不采用这个缓冲的话, MySQL 的性能会下降三分之二。另外, MySQL 的员工还根据表的不同采用不同的数据库引擎。 所有的订单表采用 MySQL 的 InnoDB 引擎(支持事务,行锁,多版本同步),目录和用户表则不需要事务支持,采用了 MySQL 的轻量的,非事务的 MyISAM 引擎。 MySQL 4.0.1 的新引入的高速查询缓冲引人注目,其他的数据库没有这个特色。如果查询的文本具有和缓冲中一模一样的匹配的话,MySQL 能直接从缓冲去数据,而不需要编译查询语句,取锁或者搜索索引,这项技术在表不被经常更新的情况下十分有用。 微软的 SQL 2000 虽然在 Java 平台上没有上好表现,但是当我们用 ASP.Net 重写基准测试,并采用 IIS 5.0 ,和 OLE DB 连接,得到的结果或许会让 Bill Gates 松口气,每秒 870 个页面。 在测试前,我们邀请五家公司派员参与测试,只有 MySQL 和 Sybase 欣然前往,IBM 只是答应通过电子邮件交流,微软和 Oracle 都拒绝参加。因此他们的数据库调整都是我们代劳的。 在测试中,我们惊奇的发现驱动程序是问题的最大根源。 在五种被测试的数据库中,只有 9i 和 MySQL 能连续运行 Nile 8个小时,DB2 的 JDBC 驱动不支持可更新的结果集,因此我们只能打开所有的结果集(采用 CONCUR_READ_ONLY),采用 SQL update 语句来更新,最终还是通过了 8个小时的稳定性测试。 在采用 Sybase 的 JConnect 5.5 驱动时,我们发现当应用请求的结果集包含双向游标时,JConnect 把整个结果集存储在客户端的内存里来增加后续游标的命令处理速度,这项工作在低负荷时还马马虎虎,但是当用户达到上百时,应用服务器消耗了几百兆的内存。结果不到 8 个小时,我们的 6个 应用服务器进程统统挂起了。 为了解决这个问题,我们把应用的浏览逻辑重新改写,只采用前向游标(JConnect 不在客户端内存缓冲),为了保证查阅到前面的图书,我们需要把相同的查询运行两遍,得到图书的总数然后得到图书的数据,这样就影响了 ASE 的性能。 但是,这样做的结果是 ASE 的能整夜的跑基准测试,客户端能从 C/S 结构的应用中获益,但是对于应用服务器而言,这是一个可怜的选择。 微软的 JDBC 设计有缺陷,在 WebLogic 的控制台上我们发现每次 Java 虚拟机作garbage collection,释放出来的内存就少了一些,所以微软的 JDBC 驱动用不到 8 小时就歇菜了。 (本文翻译:徐永久)

Linux操作系统的内核编译内幕详解

0

分类 : 技术文摘 | 发表时间 27-09-2005

内核简介

内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。

全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。

想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。

在Windows下是什么情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。再次,我们可以对内核进行修改,以符合自己的需要。这意味着什么?没错,相当于自己开发了一个操作系统,但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能。在Windows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。

内核版本号

由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral–教堂模型–对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。

一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。

开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。到目前为止,稳定树的最高版本是2.2.16,最新发布的Redhat7.0所采用的就是2.2.16的内核;开发树的最新版本是2.3.99。也许你已经发现和多网站上都有2.4.0-test9-pre7之类的内核,但是这并不是正式版本。内核版本的更新可以访问http://www.kernel.org。
为什么重新编译内核

Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。

通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。

为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:

自己定制编译的内核运行更快(具有更少的代码)

系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)

不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞

将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些

内核编译模式

要增加对某部分功能的支持,比如网络之类,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module),动态调用。

如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,你就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在,这就是Windows惯用的招数,建议经常使用的部分直接编译到内核中,比如网卡。

如果编译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。

内核编译详解

新版本内核的获取和更新

Linux内核版本发布的官方网站是http://www.kernel.org,国内各大ftp上一般都可以找到某些版本的内核。新版本的内核的发布有两种形式,一种是完整的内核版本,另外一种是patch文件,即补丁。

完整的内核版本比较大,比如linux-2.4.0-test8.tar.bz2就有18M之多,网速快的用户可以下载使用。完整内核版本一般是.tar.gz(.tgz)文件或者是.bz2文件,二者分别是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。
patch文件则比较小,一般只有几十K到几百K,极少的会超过1M,网速慢的用户可以使用patch文件来升级内核。但是patch文件是针对于特定的版本的,你需要找到自己对应的版本才能使用。

编译内核需要root权限,以下操作都假定你是root用户。请把你需要升级的内核拷贝到/usr/src/下(下文中以2.4.0test8的内核的linux-2.4.0test8.tar.gz为例),命令为


#cp linux-2.4.0test8.tar.gz /usr/src



让我们先来查看一下当前/usr/src的内容,注意到有一个linux的符号链接,它指向一个类似于linux-2.2.14(对应于你现在使用的内核版本号)的目录。首先删除这个链接:


#cd /usr/src
#rm -f linux



现在解压我们下载的源程序文件。如果所下载的是.tar.gz(.tgz)文件,请使用下面的命令:


#tar -xzvf linux-2.4.0test8.tar.gz



如果你所下载的是.bz2文件,例如linux-2.4.0test8.tar.bz2,请使用下面的命令


#bzip2 -d linux-2.4.0test8.tar.bz2
#tar -xvf linux.2.4.0.test8.tar



现在让我们再来看一下/usr/src下的内容,你会发现现在有了一个名为linux的目录,里面就是我们需要升级到的版本的内核的源程序。还记得那个名为linux的链接么?之所以使用那个链接就是防止在升级内核的时候会不慎把原来版本内核的源程序给覆盖掉了。我们也需要同样处理:


#mv linux linux-2.4.0test8
#ln -s linux-2.4.0test8 linux



这样我们也有了一个名为linux的符号链接,就不用担心以后会把它覆盖掉了(也许你会觉得重新建立linux的符号链接没有必要,但实际上这是必不可少的,下文中会有介绍)。如果你还下载了patch文件,比如patch-2.4.0test8,你就可以进行patch操作(下面假设patch-2.4.0test8已经位于/usr/src目录下了,否则你需要先把该文件拷贝到/usr/src下):


#patch -p0 < patch-2.4.0test8



现在,我们已经把内核源程序升级到最新版本了,下面就让我们开始内核编译的旅程吧。
通常要运行的第一个命令是:


#cd /usr/src/linux;make mrproper



该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖。由于我们使用刚下载的完整的源程序包进行编译,所以本步可以省略。而如果你多次使用了这些源程序编译内核,那么最好要先运行一下这个命令。

确保/usr/include/目录下的asm、linux和scsi等链接是指向要升

LINUX系统初始化过程解析

0

分类 : 技术文摘 | 发表时间 26-09-2005

一、 概况

  系统的引导和初始化是操作系统实现控制的第一步,也是集中体现系统优劣的重要部分。LINUX作为一个免费的准UNIX操作系统,在众多业余爱好者以及小型商业处理市场表现不俗,成为继WINDOWS系列后的另一个主流。了解LINUX系统的初始化,对于进一步掌握UNIX系统是十分有帮助的。

  通常,LINUX系统的初始化可以分为两部分:内核部分和init程序部分。内核主要完成系统的硬件检测和初始化,init程序则主要完成系统的各项配置。

  本文将着眼LINUX系统初始化的两个部分,初步解析LINUX的特点。

二、 初始化详解

1.内核部分

  通常情况下,计算机首先用LILO程序引导内核的一部分(这部分没有被压缩),以此来引导内核的其他部分。LILO程序是最常用的、也是比较完善的LINUX系统引导器,PC机通常从硬盘的引导扇区读取这部分程序。关于LILO程序的详细内容可以参照其他资料。

  内核被解压缩并装入内存后,开始初始化硬件和设备驱动程序。下面是内核初始化系统的具体步骤(各个版本之间会有一定的差异,下面是2.2.16-22版本的一个例子):

(1) 检测CPU的主频和控制台的显示类型,并对CPU速度用Bogo MIPS程序进行估算。
(2) 此后内核通过外设显示系统内存信息:如131072k(128M),127820k剩余,使用的具体情况为:1048k内核代码,412k保留,1728k数据等。尔后是各类hash table的信息。
(3) 内核加载磁盘空间限量支持,完成CPU检测(包括检查数学协处理器),以及POSIX适应性检测。
(4) 初始化PCI BIOS,检测系统的PCI设备,并加载TCP/IP网络支持。
(5) 内核开始检测其他各种硬件设备:如PS/2端口设备,串行口设备,硬盘,软盘,SCSI等。
此后,内核将启动init程序,形成系统的第一个进程。下面是dmesg记录的内核初始化信息(部分):

Detected 499845 kHz processor.
Console: colour VGA+ 80×25
Calibrating delay loop… 996.15 BogoMIPS
Memory: 127820k/131072k available (1048k kernel code, 412k reserved, 1728k data, 64k init, 0k bigmem)
Dentry hash table entries: 262144 (order 9, 2048k)
Buffer cache hash table entries: 131072 (order 7, 512k)
Page cache hash table entries: 32768 (order 5, 128k)
VFS: Diskquotas version dquot_6.4.0 initialized
CPU: Intel Celeron (Mendocino) stepping 05
Checking 386/387 coupling… OK, FPU using exception 16 error reporting.
Checking ‘hlt’ instruction… OK.
POSIX conformance testing by UNIFIX
mtrr: v1.35a (19990819) Richard Gooch (rgooch@atnf.csiro.au)
PCI: PCI BIOS revision 2.10 entry at 0xfb190
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
……
Starting kswapd v 1.5
Detected PS/2 Mouse Port.
Serial driver version 4.27 with MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
apm: BIOS version 1.2 Flags 0×07 (Driver version 1.13)
Real Time Clock Driver v1.09
RAM disk driver initialized: 16 RAM disks of 4096K size
……
hda: QUANTUM FIREBALLlct10 15, ATA DISK drive
hdd: ASUS CD-S400/A, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0×170-0×177,0×376 on irq 15
hda: QUANTUM FIREBALLlct10 15, 14324MB w/418kB Cache, CHS=1826/255/63
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
md driver 0.90.0 MAX_MD_DEVS=256, MAX_REAL=12
raid5: measuring checksumming speed
raid5: MMX detected, trying high-speed MMX checksum routines
……
using fastest function: p5_mmx (1168.146 MB/sec)
scsi : 0 hosts.
scsi : detected total.
md.c: sizeof(mdp_super_t) = 4096
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 >
autodetecting RAID arrays
autorun …
… autorun DONE.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 64k freed
……
2.init程序部分

  init程序通常在/sbin或/bin下,它负责在系统启动时运行一系列程序和脚本文件。init程序一旦被内核调用,便成为系统的第0号进程,该进程对于LINUX系统是十分重要的,有关它的详细内容请参阅其他资料。init进程做的每一步都由/etc/initab中的配置决定。以下是RadHat的/etc/inittab文件的例子:

# Default runlevel. The runlevels used by RHS are:
# 0 – halt (Do NOT set initdefault to this)
# 1 – Single user mode
# 2 – Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 – Full multiuser mode
# 4 – unused
# 5 – X11
# 6 – reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Things to run in every runlevel.
ud::once:/sbin/update

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”


# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
inittab文件的每一行包含四个域,格式为:
code:runlevels:action:command
(1) code域用单个或两个字符序列来作为本行的标识,这个标识在此文件中是唯一的。文件中的某些记录必须使用特定的code才能使系统工作正常。
(2) runlevels域给出的是本行的运行级别。LINUX系统运行在一定的级别下,当inittab文件指定了某一特定的运行级别时,该记录行包含的命令将被执行。RedHat系统通常设置了7个运行级别(0-6),各运行级别的说明包含在inittab文件的开头。
(3) action域指出的是init程序执行command命令的方式。比如:只执行command一次,还是在它退出时重启。
(4) command域给出相应记录行要执行的命令。

  运行级别1是单用户模式,所谓单用户指的是系统运行在唯一用户–超级用户模式下。而大多数情况下,系统运行在多用户模式下。在启动出错、文件系统出错等情况下,系统将进入单用户模式,此时,系统只有很少的配置,这对于恢复系统是很必要的。

  inittab文件首先指出缺省的运行级别(如id:3:initdefault:),我们看到上面的例子中缺省的运行级别为3。此后根据下一条记录,系统应当运行/etc/rc.d/rc.sysinit,这是一个脚本文件,主要包括基本的系统初始化命令,如激活交换分区、检查并挂上文件系统、装载部分模块等。

  接下来是执行特定运行级别对应的rcN程序。rcN都是目录,当前运行级别为N时,执行/etc/rc.d/rcN.d目录下的脚本程序。以下是rc3.d目录下的文件:

  从中我们看到,rc3.d目录下都是类似Knnxxxx和Snnxxxx的

无觅相关文章插件,快速提升流量