Linux集群(精选9篇)
Linux集群 第1篇
随着集群内节点数量的增加,节点操作系统及软件的安装成为一项很烦琐的工作。因此我们提出一种基于Linux系统的集群快速部署方案,提供多个节点的软件自动安装、升级、备份等功能。由于负载均衡且集群内各节点实现功能相同,所安装的操作系统及软件也都相同,在硬件配置兼容的前提下完全可以采用软件自动快速安装。 同时也可以用此方法对故障节点进行快速恢复。它是单一系统映像集群管理系统中的重要组成部分,我们针对通用性及灵活性进行改进并取得一定成效。
1 技术背景
1.1Linux启动过程
计算机启动后,首先被执行的是BIOS代码,其功能主要为初始化系统的硬件设备。之后BIOS载入启动设备的引导扇区。如果启动设备为硬盘,则引导区是MBR(主引导记录) ;如果为软盘,则引导区就是第一个扇区。这部分数据包含一个不大于512字节的小型程序。这部分程序可能为一个分区管理程序、引导程序或者仅仅是操作系统核心的一部分,类似的程序有LILO、GRUB、SYSLINUX。BIOS代码执行完毕后,引导程序会接管并执行之后的启动代码。其包含若干执行步骤,可能有选择菜单,显示信息或者获取核心参数。
接下来是载入操作系统内核。启动Linux所需的组件包括内核镜像及initrd(initial ramdisk,是一个启动时存在于内存的文件系统。)。其中initrd是可选的,它的主要功能是在操作系统启动之前载入一些附加的设备驱动,例如RedHat Linux中的initrd就是用于载入SCSI和RAID设备的驱动。另外,由于内核镜像有大小限制,当设备驱动不能编译进内核镜像时,initrd也是必要的。成功载入内核后,启动程序跳转到内核的入口
,并开始进行子系统初始化。这些子系统包括内存管理、网络、缓存、I/O控制器等。紧跟着,内核会载入根分区中的文件系统。当initrd装载后会运行一个名为“linuxrc”的程序,它的主要功能是装载系统设备, 其可以是脚本或者二进制程序。
最后执行文件系统中的前导程序。前导程序的任务是初始化系统组件。它会激活网络界面,启动后台进程(包括邮件服务,NFS服务,NIS服务等),并显示终端登录界面或者图形登录界面。
至此,整个Linux系统最终启动完毕。流程如图1所示。
1.2 远程引导技术
所有的PC BIOS都支持的引导设备为硬盘、CDROM或者软盘。随着科技的发展,现在大部分的BIOS允许使用USB设备或者网卡引导。目前网络引导技术主要有以下几种:
EtherBoot,首先建立一个自举程序镜像,并作为插件烧入网卡的ROM/EPROM。需要一个定制好的引导镜像来载入并启动系统。这种方式引导 Linux 的速度是最快的,但它有一个最大的问题,就是支持这种远程引导协议的启动芯片普及率很低。
Netboot,放弃了类似EtherBoot那种定制网卡驱动的方式,转而使用标准DOS驱动(Packet或者NDIS-2)。这种方案仍然需要使用Netboot工具包来建立一个启动镜像。
PXE(Preboot Execution Environment),是Intel公司提出的标准并迅速推广,因此很多网卡支持PXE启动方式,本文主要讨论此种协议。
PXE支持多种网络连接协议,包括DHCP和TFTP等。目前市场上大部分网络接口卡都支持PXE。在Linux中,通用的引导程序名为pxelinux。与Netboot和EtherBoot不同的是,它不含初始化自举代码,而仅仅与PXE启动程序通信。
我们采用的远程启动过程如下:
首先,网卡中的代码联系BOOTP/DHCP服务器并获得IP地址,继而获得样本节点的IP地址并使用TFTP协议下载引导程序到本机,最后跳转到启动程序的入口点进行正常启动。流程如图2所示。
2 集群部署设计方案
2.1 基本架构
本方案使用标准client/server架构。先安装好样本节点,集群内要安装系统的节点通过PXE引导安装样本节点的镜像, 就可以实现快速自动安装,当集群有变更时只需更改样本机器的设置, 然后更新镜像就可以实现整个集群系统的更新,当集群内节点出现重大故障时, 按此方法将该节点系统重新安装即可恢复。
PXE服务器用于网络启动的配置,镜像服务器和节点通过它获得IP地址。这样,节点才能下载启动所需的文件并使用共享的系统文件。PXE服务器可以同时也是镜像服务器。架构如图3所示。
首先每个节点要使用PXE远程启动,开机后它会发送DHCP请求,DHCP服务器收到请求后会返回分配的IP地址以及镜像服务器的IP地址,节点从镜像服务器下载引导程序并运行,引导程序会取得启动所需的Linux内核以及initrd并进行启动。
2.2 系统构建
此方案主要涉及启动程序的编写,另外需要NFS,TFTP,以及DHCP的集成环境。我们的目标是在PC集群中使用共享的单一Linux镜像,同时保证系统性能。因此系统镜像的导出和导入是方案成功的关键,这里采用NFS来共享整个样本。并且需要对initrd进行调整,使之导入并建立根分区时能搜索本地磁盘缓存,减轻样本服务器的负担。
TFTP是一个传输文件的简单协议,它基于UDP协议而实现。主要用于进行小文件传输。这里主要用它来传输引导程序进行启动。
网络文件系统(NFS),支持在不同类型的系统之间通过网络进行文件共享。镜像服务器向其它节点提供对样本文件的访问,节点和程序可以像访问本地文件一样访问镜像服务器上的文件。
我们主要的工作是生成initrd。主要代码如下:
trap 2
dd if=/dev/zero of=root bs=1024k count=8
mke2fs-q-m 0-F root
if [-d′pwd′/mnt ]; then
rm-r-f./mnt
fi
mkdir-p′pwd′/mnt
mount-t ext2-o loop′pwd′/root′pwd′/mnt
cp-a src/.mnt/
rmdir mnt/lost+found
umount′pwd′/mnt
gzip-9-f root
它在节点启动过程中有着重要作用,主要实现功能如下:
(1) 载入驱动模块。
(2) 激活网卡,启动DHCP以获取IP地址。
(3) 从样本服务器获取系统镜像。
(4) 建立本地文件系统。
(5) 切换到本地存储器所持有的文件系统,并将其作为根分区。
(6) 启动前导程序并进行正常的系统初始化。
建立本地文件系统是非常关键的步骤,因为它将直接影响各个节点的启动。为了加速这个步骤,所有下载的系统文件都保存到本地硬盘作为缓存。这样除了第一次启动或者样本文件有更新,节点不用再重新下载所需文件。这个策略可以大幅降低样本节点负载,提高启动速度。
3 性能分析
集群节点通过样本服务器完成远程启动,样本服务器因此而成为整个集群性能的瓶颈。在本文提出的集群部署方案中,可以配置多个样本节点并行工作,共同实现系统的部署。假设有M个服务请求到达DHCP服务器,由N个镜像服务器提供镜像,则在理想情况下,每台镜像服务器只需负责M/N台节点的启动。合理配置多台样本服务器并行工作,就可以缓解服务器的瓶颈问题,同时也不会造成系统资源的浪费。
4 结 论
该文提出一种扩展性良好的集群部署架构。作为单一系统映象的重要组成部分,它可以给用户提供一个灵活方便的集群管理环境,改善了系统的可靠性和可扩展性,实现了高可用性和集群的透明管理。
参考文献
[1]Buyya R.Single System Image:Need,Approaches,and SupportingHPC Systems.In:Proceedings of the Fourth Internal Conference onParallel and Distributed Processing,Techniques and Applications(PDPTA'97),CSREA Publishers,Las Vegas,USA,1997.
[2]R Droms Dynamic Host Configuration Protocol,RFC 2131.http://www.isc.org/index.pl?/sw/dhcp/,1997.
[3]Sollins K.The TFTP Protocol(Revision 2).RFC 1350,https://www.dspace.cam.ac.uk/bitstream/1810/14321/1/rfc1350.txt,1992.
[4]Buyya R.High Performance Cluster Computing:Architectures andSystems ISBN0-13-013784-7,USA:Prentice Hall PTR,1999.
[5]Rajkumar Buyya,Toni Cortes,Hai Jin.Single SystemImage.The Inter-national Journal of High Performance Computing Applications,2001,15(2):124-135.
Linux集群 第2篇
随着Internet的爆炸性增长,Internet与人的生活越来越息息相关,通过Internet上进行交易也就越来越受关注,近几年,电子商务的年增长均超过100%。服务器的工作量也迅速增长,所以服务器(特别是一个受人欢迎的WEB服务器)很容易在访问高峰时期过载。
而另一方面,计算机从1946年单纯的科学计算任务到现在大量纷繁复杂的信息处理,工作量越来越大,需要越来越快的处理能力。所以计算机界就不得不不断研究更快的处理器,存储器,以适应这一需求。
然而,科学家们意识到,单块处理器的速度发展空间是有限的,为什么不能让计算机象人一样协同工作,“群策群力”地将工作完成好呢!这时,就掀起了“并行计算”的研究。
举个例子来说,我们架设了一台WWW服务器,上面构建了一个电子商务网站,然而随着时间的推移,名声越来越大,这时点击率也就越来越高,WWW服务器的负载也就越来越高。这种情况下,我们就必须提升WWW服务器的能力,以满足以益增长的服务请求。这时,我们就面临两种选择:
1)升级WWW服务器,采用更快的CPU,增加更多的内存,使其更具有POWER;但日益增长的服务请求又会使服务器再次过载,需要再次升级,这样就陷入了升级的怪圈。还有,升级时还得考虑到服务如何接续,能否中止!
2)增加WWW服务器,让多台服务器来完成相同的服务。
这种方法就是服务器集群,通过并行技术来大大提升系统性能。也就是这一章的主要内容,这种方法具有很好的扩展性,而且可以最大限度地利用已有投资。
1.1.集群的概念
集群,是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
近几年来,微处理器、内存、总线技术、网络技术有了非常大的进步,软件的并行技术也有了非常大的进步,这使得让一组廉价的个人电脑与工作站协同工作成为可能,甚至可以与拥有强大的芯片处理能力的超级计算机竞争。
比如,16个普通微处理器组成的集群系统可以达到亿次级浮点计算机能力,而且总的成本小于40万元。
不幸的是,建造一个集群并不是一件简单的事件。集群的组成部分必须根据要运行的主要应用进行调整,以使之运行在最佳状态。这此因素带来的结果就是,建造集群系统不是只有一个标准的方案,在本章中,我们就会看到许多种建造方案。
集群技术是计算机系统结构的前沿领域,笔者也仅是略有了解,希望本文能起到抛砖引玉之用。
1.2.并行技术
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.使用MPICH构建一个四节点的集群系统
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.1 所需设备
1).4台采用Pentium II处理器的PC机,每台配
置64M内存,2GB以上的硬盘,和EIDE接口的光盘驱动器。
2).5块100M快速以太网卡,如SMC 9332 EtherPower 10/100(其中四块卡用于连接集群中的结点,另外一块用于将集群中的其中的一个节点与其它网络连接。)
3).5根足够连接集群系统中每个节点的,使用5类非屏蔽双绞线制作的RJ45缆线
4).1个快速以太网(100BASE-Tx)的集线器或交换机
5).1张Linux安装盘
2.2 构建说明
对计算机硬件不熟的人,实施以下这些构建步骤会感到吃力。如果是这样,请找一些有经验的专业人士寻求帮助。
1. 准备好要使用的采用Pentium II处理器的PC机。确信所有的PC机都还没有接上电源,打开PC机的机箱,在准备与网络上的其它设备连接的PC机上安装上两块快速以太网卡,在其它的PC机上安装上一块快速以太网卡。当然别忘了要加上附加的内存。确定完成后盖上机箱,接上电源。
2. 使用4根RJ45线缆将四台PC机连到快速以太网的集线器或交换机上。使用剩下的1根RJ45线将额外的以太网卡(用于与其它网络相连的那块,这样机构就可以用上集群)连接到机构的局域网上(假定你的机构局域网也是快速以太网),然后打开电源。
3. 使用LINUX安装盘在每一台PC机上安装。请确信在LINUX系统中安装了C编译器和C的LIB库。当你配置TCP/IP时,建议你为四台PC分别指定为192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC为你的服务器节点(拥有两块网卡的那台)。在这个服务器节点上的那块与机构局域网相连的网卡,你应该为其指定一个与机构局域网吻合的IP地址。
4.当所有PC都装好Linux系统后,编辑每台机器的/etc/hosts文件,让其包含以下几行:
192.168.1.1 node1 server
192.168.1.2 node2
192.168.1.3 node3
192.168.1.4 node4
编辑每台机器的/etc/hosts.equiv文件,使其包含以下几行:
node1
node2
node3
node4
$p#
以下的这些配置是为了让其能使用MPICH’s p4策略去执行分布式的并行处理应用,
1. 在服务器节点
,建一个/mirror目录,并将其配置成为NFS服务器,并在/etc/exports文件中增加一行:
/mirror node1(rw) node2(rw) node3(rw) node4(rw)
2. 在其他节点上,也建一个/mirror目录,关在/etc/fstab文件中增加一行:
server:/mirror /mirror nfs rw,bg,soft 0 0
3. /mirror这个目录从服务器上输出,装载在各个客户端,以便在各个节点间进行软件任务的分发。
4. 在服务器节点上,安装MPICH。MPICH的文档可在
www.mcs.anl.gov/mpi/mpich/docs.html获得。
5.任何一个集群用户(你必须在每一个节点新建一个相同的用户),必须在/mirror目录下建一个属于它的子目录,如/mirror/username,用来存放MPI程序和共享数据文件。这种情况,用户仅仅需要在服务器节点上编译MPI程序,然后将编译后的程序拷贝到在/mirror目录下属于它的的子目录中,然后从他在/mirror目录下属于它的的子目录下使用p4 MPI策略运行MPI程序。
2.3 MPICH安装指南
1.如果你有gunzip,就d下载mpich.tar.gz,要不然就下载mpich.tar.Z。你可以到www.mcs.anl.gov/mpi/mpich/downloa下载,也可以使用匿名FTP到ftp.mcs.anl.gov的pub/mpi目录拿。(如果你觉得这个东西太大,你可以到pub/mpi/mpisplit中取分隔成块的几个小包,然后用cat命令将它们合并)
2.解压:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Z tar xovf-)
3.进入mpich目录
4.执行:./configure为MPICH选择一套适合你的实际软硬件环境的参数组,如果你对这些默认选择的参数不满意,可以自己进行配置(具体参见MPICH的配置文档)。最好选择一个指定的目录来安装和配置MPICH,例如:
./configure -prefix=/usr/local/mpich-1.2.0
5.执行:make >& make.log 这会花一段较长的时间,不同的硬件环境花的时间也就不同,可能从10分钟到1个小时,甚至更多。
6.(可选)在工作站网络,或是一台单独的工作站,编辑mpich/util/machines/machines.xxx(xxx是MPICH对你机器体系结构取的名称,你能很容易的认出来)以反映你工作站的当地主机名。你完全可以跳过这一步。在集群中,这一步不需要。
7.(可选)编译、运行一个简单的测试程序:
cd examples/basic
make cpi
ln ;s ../../bin/mpirun mpirun
./mpirun ;np 4 cpi
此时,你就在你的系统上运行了一个MPI程序。
8.(可选)构建MPICH其余的环境,为ch_p4策略使
用安全的服务会使得任何启动速度加快,你可以执行以下命令构建:
make serv_p4
(serv_p4是一个较新的P4安全服务的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一个更快版本,但他需要tk 3.6版的源代码。如果你有这个包,你就用以下命令可以构建它:
make nupshot
9.(可选)如果你想将MPICH安装到一个公用的地方让其它人使用它,你可以执行:
make install 或 bin/mpiinstall
你可以使用-prefix选项指定MPICH安装目录。安装后将生成include、lib、bin、sbin、www和man目录以及一个小小的示例目录,
(可选)到此你可以通告所有的用户如何编译、执行一个MPI程序。
2.4 费用统计
这个小的集群方案总的费用大致如下:
设备费用:
4台 带EIDE CD-ROM 的机器: 24000元
5块快速以太网卡: 800元
1个快速以太网的集线机:元
5根双绞线:50元
软件费用:
LINUX安装光盘:50元
MPICH:0元
合计:26900元。
Linux集群 第3篇
【关键词】集群系统;作业调度;负载平衡
1.linux集群系统作业管理系统概述
如果仅仅将节点连成网络,并不能形成集群,还需要有对这些节点进行管理的软件系统,集群所依赖的软件系统集群作业管理系统JMS(Job Management System)正是为适应这种需求而出现并快速得以发展。集群JMS可以根据用户的需求,统一管理和调度集群的软硬件资源,保证用户作业公平合理地共享集群资源,提高系统资源利用率和吞吐率。集群JMS包括系统资源管理和作业调度管理,作业调度技术是集群作业管理系统中关键的技术之一,作业调度的功能在于提供作业提交、调度、执行及控制的新机制,更加有效地利用系统资源、平衡网络负载、提高系统整体性能。在这种情况下,作业调度策略决定了整个集群系统的效率,尤其是提交计算量大的作业时,良好的作业调度策略可以大大加快执行速度。因此,作业调度策略是提高集群系统执行并行作业的效率及系统资源利用率的关键因素,对集群系统提高并行处理能力具有重大的意义。
2.linux集群系统下作业调度策略与负载平衡
负载平衡的基本作法是定期收集并分析系统各节点的实时负载信息,动态地将作业进程在处理机之间进行分配和调整,以消除系统中负载分布的不均匀性。通常表现节点负载的指标有:(1)CPU的利用率,表示单位时间内CPU处理用户进程和核心进程的时间比。(2)CPU就绪队列的长度,CPU利用率适合用来判断节点是否处于空闲状态,用就绪队列的长度可用来表达负载的大小。(3)测试特定进程的响应时间,对于使用固定时间片的操作系统来说这也是一个选择。(4)磁盘、内存、交换区的可用空间,换页的频率,以及I/O的利用率。如果所选用的指标不止一项,可以将这些指标作为变量组合进一个负载计算公式,实时信息代入公式所得的值应该能区分实际负载的大小。
对于集中式集群JMS的作业调度,实现负载平衡最普通的做法是在作业映射时依据所收集的各节点的负载信息,把作业进程派往能满足作业资源需求且预计作业在那里等待时间最小的节点。一个简化的思想是把负载最轻的节点当作所产生的局部等待时间最小的节点。在集群JMS对作业映射进行修正时,同样可以利用各节点当前的负载信息,通过对过载节点上进程的迁移来实现全系统的负载平衡。集群JMS通过各节点的负载信息,建立所谓的负载转移向量,即在这个向量中每个节点所对应的元素是该节点的相对负载与平均负载的差值(或正或负)。如果向量中对应某些节点的元素的绝对值大到一定程度,就启动负载平衡过程。再以各进程的工作量为基础,决定把哪个进程迁至何处。
3.通用作业调度策略的分析
3.1 资源碎片的产生
通用作业调度策略可以划分为两大类型:一类是面向提高资源利用率的调度类调度策略常见的有FirstFit。另一类是面向公平性的调度策略,确保作业在较短的时间内能够获得资源,避免同等优先级的作业因长时间无法执行而导致作业饥饿问题,这类调度策略常见的是FCFS。
在作业调度策略中,公平性往往与高效性目标是冲突的。若要提高资源利用率,应该使作业调度队列中选取的作业集可以尽可能多的利用资源,而不考虑调度队列中作业的等待时间,这就产生了作业的饿死问题。解决同等优先级作业的饿死问题,往往依靠的是先来先服务的方式,阻塞其他作业的执行,确保作业队列队首的作业获得足够的资源,避免作业的长时间等待,可这种阻塞的方式却导致了系统中产生大量的资源碎片。
3.2 负载平衡的实现
传统的集群作业调度策略实现负载平衡的方法都是相当简练的。例如,将实时的节点负载值与事先规定的阈值做比较,或利用综合负载计算公式将多项负载值换算成一个抽象的值来对比各节点间负载是否平衡,以此来判断节点负载是否适当。在匹配资源需求时,查看节点上剩余资源是否能够满足作业的资源请求量。通常来说,简明的策略不但便于实现,利于降低调度成本,而且一样能在广泛的集群环境内达到整体上理想的性能和效益。
不够细致的调度策略存在着隐患,当简单的方法遭遇一些特殊的问题就会带来调度行为的性能突然下降,需要一定时间来进行自动地恢复。随着计算机的处理能力越来越强大,使得较为复杂的调度策略的运转费用也得到降低。特别是相对于大型作业执行时间的长度和通过网络传输作业和通讯的成本,复杂调度策略的成本日益变得可以为集群使用者接受。所以,目前的集群作业调度策略可设计的更加细致和深入,去挖掘集群提高作业执行性能的潜力。
CPU资源是调度算法中进行优化调度时所使用的主要的资源项目,算法中提到“节点性能”,往往就是指节点的主频。根据系统的针对性和应用性的不同,存在很多种的应用节点负载指标,但没有统一的标准,具体环境下可采取不同的指标,较理想的负载指标应当满足:测量开销低,较易获得和计算,以满足频繁测量的需要;能客观体现所有竞争资源上的负载;各个负载指标在测量及控制上彼此独立。
4.回填策略
回填策略是由Lifka最先提出,它需要用户提供作业的估计执行时间和所需要的节点资源信息。如果队列中的下一个待调度作业由于缺少某些资源不能被启动,回填策略会试图在队列中寻找下一个可以使用已有的空闲资源,且其执行不会延迟该作业执行的作业。换句话说,回填策略允许一些队列后面的作业提前执行。回填策略的使用主要为了实现两个看起来冲突的目标:尽可能的将短作业前移,以提高资源利用率;尽可能的避免大作业等待,因此需要预测作业的运行时间。
保守回填策略的描述如下:
RunningTasklist={j1,j2,i3,...,jn}按照期望完成时间排序的运行的作业
QueuedTasklist={il,i2,i3,...,in}按照到达时间先后顺序排序的作业队列
对每一个在RunningTasklist的j任务,根据j任务占用的资源分配timeXprocessor的空间,形成timeXprocessor的运行作业描述文件P,对每一个在QueuedTasklist的i任务检查P,找到第一个能提供足够processor运行I的时间点anchor。
从anchor时间点开始扫描P中的time轴
{
if(直到作业i的预期完成时间都能保证足够的processor资源可用)
更新P,将anchorXprocessor资源分配给作业i;
else
继续扫描time轴,找到下一个可用的时间点anchor;
}
if(anchor=0)
执行该作业;
next i;
回填策略可以有效的提高基于队列的策略的性能,它在有效的提高小作业的响应时间的同时而不会导致大作业出现饥饿。
参考文献
[1]薛正华,刘伟哲,董小社,伍卫国.基于思维进化的集群作业调度方法研究[J].西安交通大学学报,2008(06).
[2]张果桃,赵金雁,白中英.基于LT-backfilling算法的集群作业调度系统[J].计算机工程,2007(21).
Linux集群 第4篇
Linux集群部署采用B/S架构, 操作系统可以进行并行安装, 设计的目标是获取镜像, 而部署的镜像可以用在大容量硬盘中。该系统结构相对简单, 主要从客户端和服务器端两部分进行设计。在Linux集群系统中, 部署系统的具体安装如图1所示。
Linux集群系统通过网络部署主要包括部署的准备、镜像的准备、目标节点的定义、网络安装、具体的应用配置几个过程。首先安装操作系统, 系统安装完成后, 对样本节点进行网络设置、服务配置等各种基本配置, 然后在样本节点上对各种应用软件及集群软件进行设置和安装。最后, 通过部署镜像实现目标节点镜像功能。
Linux集群部署系统的服务器端程序安装在镜像服务器上, 客户端程序安装在样本节点上, 部署镜像在所有目标节点, 同时镜像服务器对目标节点的部署进行监控。其中, 样本节点为集群部署系统中所有节点的模版, 操作系统根据实际情况手动安装, 而硬件的配置也应与集群中的其它安装节点相同, 从而保证安装的一致性。
2 部署系统模块设计
针对Linux集群系统开发设计了集群部署系统, 主要有以下3部分组成: (1) 集群配置模块; (2) 集群部署模块; (3) 节点部署监控模块。集群配置模块子模块主要包括集群数据库、集群配置向导、集群配置修改、视图显示;集群部署模块子模块主要包括镜像管理、集群镜像配置、服务控制;节点部署监控模块主要包括物理监控视图、表格监控视图。
集群配置模块主要设置集群中机柜数目、节点数目等基本信息, 并把这些信息存入到数据库中;集群部署模块是从样本节点上捕获镜像并向目标节点部署镜像, 并将所部署的镜像文件和目标节点相关信息存入到数据库中;节点部署监控模块是对样本及目标节点的部署镜像过程进行监控, 并向相关人员动态地反映这些节点所处的部署状态。
集群部署系统具体部署流程如下: (1) 使用集群部署系统的集群配置, 配置机柜的数目、机柜中对应节点的类型和数目、设置IP地址和节点名; (2) 手动安装Linux操作系统, 在样本节点上安装部署系统客户端, 并开启相关服务; (3) 在集群部署模块中增加镜像子模块, 输入样本节点IP地址和镜像名称, 从样本节点的信息中捕获镜像。在镜像捕获完毕后, 部署系统对捕获的镜像自动进行压缩; (4) 根据集群镜像界面配置目标节点和相应镜像之间建立对应关系; (5) 启动相关服务。
3 部署系统性能测试
3.1 测试环境
集群部署系统实验的环境有2个镜像服务器、1个镜像存储池、130个节点、1个三层交换机。其中镜像服务器及所有节点都需要双网卡进行网络设置, 通过光纤连接把镜像服务器和镜像存储池连接起来。
3.2 测试结果及分析
(1) 镜像文件获取测试。首先, 在集群中两个样本节点上分别安装RHEL 6.2和SUSE Linux 11操作系统, 在样本节点上配置系统环境及服务及相关集群软件;然后, 在两个样本节点上利用镜像服务器获取镜像文件, 并将镜像文件压缩后存储到镜像存储池中。测试表明当两个样本节点获取的镜像文件大小差别不大时, 则获取镜像所用的时间差别也不大。其测试结果如表1所示。
(2) 镜像文件部署测试。从样本节点上获取的镜像文件与目标节点进行镜像部署, 配置集群镜像过程中将安装的节点选至对应的镜像。当目标节点数量不同时, 分别测试目标节点部署镜像文件的时间, 如表2所示。
(3) 结果分析。从测试结果可以看出交换机使用的是千兆交换机, 同时镜像服务器使用千兆网卡, 所以镜像服务器没有出现网络瓶颈问题。在镜像获取和镜像部署过程中, 两个镜像服务器的CPU使用率不超过10%, 说明部署过程速度还是很快的。部署镜像的时间是随着目标节点数目的增加而增加, 但所有节点部署镜像所用时间远远小于给每个目标节点单独部署所用的时间。
4 结束语
实验表明, 该Linux集群部署系统能够达到在大规模的集群系统中对异构节点快速部署软硬件资源, 同时可以为不同配置的目标节点设置不同的镜像, 部署的镜像能够自动适应同种类型的大容量硬盘。综上所述, 该集群部署系统适应用于大规模的Linux集群系统。
参考文献
[1]顾梦非, 徐炜民.一个基于Linux的集群部署方案[J].计算机应用与软件, 2008 (1) .
Linux集群 第5篇
1、集群系统的硬件环境
本文构建的集群系统使用了实验室五台PC,将一台与外网连接的计算机设定为主节点,集群的控制管理工作在主节点上完成,主节点也参与运算,同时又是计算节点。其余四台计算机为从节点,即计算节点。以后可以使用同样的方式增加节点数目,对集群的规模进行扩展。各个节点的配置如下:node0:主节点,Pentium?D CPU 2.80GHz处理器、2GB内存、80G硬盘,IP地址为:172.18.63.220。node1-4:从节点,Pentium?D CPU 2.80GHz处理器、1GB内存、60G硬盘,IP地址为:172.18.63.221-172.18.63.224。
使用互联网络将各节点连成一个整体的系统是集群系统构建中很重要的环节。以太网接入方便, 可靠性较高, 其低廉的价格和不错的性能是搭建集群的一个很好的选择[2]。本文的集群系统采用了价格较为低廉的以太网,使用双绞线通过网卡和交换机将节点计算机连成局域网络。
2、集群系统的软件环境
2.1 操作系统
Linux操作系统运行稳定,安全性也比较好, 在Linux平台上有一些优秀的开源代码软件可以利用,可以在前人研究的基础上做进一步的研究开发。本文所构建的集群系统将选用RedHatLinux 9.0。
2.2 SSI的构建
单一系统映像SSI (single system image)是集群的一个重要特征, 它使集群系统在使用、控制、管理和维护上更像一个工作站, 用户使用集群系统时感觉像使用一台能力更强的计算机。集群系统中的SSI应该提供单一登录、单一文件系统和单一作业管理系统服务[3]。
2.2.1 单一登录
单一登录允许用户从集群系统的任何一个节点登录, 并且在整个并行作业的执行过程中只需登录一次, 不必因为要将作业分配到其他节点而重新登录。通过网络信息系统NIS (network information system) 实现单一登录步骤如下:
(1)以root用户登录到主节点node0,修改文件/etc/hosts、/etc/host.equiv,在其中写入集群所有节点的名称和IP。
(2)启动如下系统服务:nfs、rexec、rsh、rlogin。其中后面三个服务负责在远程节点启动进程。
(3)以普通用户运行命令$esh node0,测试RSH是否配置成功。对于root用户,运行以下命令进行配置,root用户可以不重新输入密码即可以通过RSH登录远程节点。
2.2.2 单一文件系统
对于一个集群系统,一些相同的软件没必要重复安装, 而且某些并行作业要求在每个节点上都能进行访问。网络文件系统NFS (network file system) 是一种Unix/Linux之间通过网络共享文件的标准方式, 使用NFS可以透明地安装和访问网络上远程主机的文件系统。设置步骤如下:
(1)首先在主节点node0上建立目录/cluster,然后将该目录授权给用户cluster。
(2)将目录/home和/cluster以可读可写的方式共享给17218.63.0/24范围(IP从172.18.63.1到172.18.63.254)内的所有机器。
(3)运行命令exportfs-a完成目录的共享。
(4)客户端节点同样需要首先建立/cluster目录,然后修改分区配置文件/etc/fstab,在其中加入对/home和/cluster的映射:
(5)运行命令mount-a完成目录的共享:
2.2.3 单一作业管理系统
PBS (Portable Batch System) [4]最初是由NASA的Ames研究中心应用POSIX1003.2d标准开发的一个计算资源管理系统,其目的是提供一个能满足异构计算网络需要的软件包,特别是满足高性能计算的需要。最新的免费版本是OpenPBS 2.3.16。
2.3 并行编程环境的构建
目前比较流行的编程模型包括消息传递模型、共享变量模型以及数据并行模型。不同编程模型对应不同的编程环境,对于消息传递模型,采用目前最流行的分布存储并行编程环境消息传递接口标准MPI (Message Passing Interface) 。MPICH是MPI的实现方式,是基于MPI标准的一套开放源码的软件包,目前最新的版本是MPICH2-1.0.7。
从网上下载最新的软件包到目录/cluster下,具体配置步骤如下:
(1)解压缩安装文件包并通过configure脚本完成初始配置。
(2) 完成初始配置之后使用make、make install完成mpich的安装。
(3)编辑.bashrc文件修改环境变量,在其中添加如下内容:
PATH="$PATH:/cluster/mpich2-1.0.7/bin"
(4)创建文件/ect/.mpd.conf,在其中加入secretword=hgd2008。设置文件读取权限和修改时间:
(5)修改mpich的节点配置文件/cluster/mpich/shar/machines.LINUX,指明该机群所包含的节点。
(6)创建主机名称集合文件/root/.mpd.hosts,文件内容是集群中各节点的主机名。
(7)运行集群系统。
#mpdboot-n number-f mpd.hosts (number为要启动的机器数)
#mpdtrace
#mpdallexit
(8)在安装目录的example子目录下可以找到其所提供的示例源程序,通过编译运行cpi程序可以测试该MPI编程环境是否建立成功。
3、结论
本文给出了一个在Linux环境下利用普通PC机构建集群系统的方法,实现了集群系统的单一登录,单一文件系统,单一作业管理系统和并行编程环境,具有硬件成本低廉的显著优点,为一般科研单位和学校在集群上进行并行编程提供了一个实际的软硬件环境。
参考文献
[1]陈国良, 安虹.并行算法实践[M].北京:高等教育出版社, 2004.
[2]张磊, 姜弘道, 潘海琳.计算机集群的搭建、测试与应用[J].水利水电科技进展, 第26卷第2期:65-69
[3]Ruyya著, 郑伟民译.高性能集群计算:结构与系统 (第一卷) [M].北京:电子工业出版社, 2001.6.
Linux集群 第6篇
随着计算机应用的不断发展, 越来越多的应用需要高性能的计算机高计算能力、高可用性等。专门制造超级计算机来满足这些特殊应用的需求, 不但费用昂贵, 而且在可扩展性、可用性等方面亦有很大局限性。为此, 国际上兴起了研制新体系结构的高性能计算机。工作站集群 (NOW) 系统和结合MPP技术及SMP技术的高性能集群系统就在这样的背景下被提出来。相对于传统的超级计算机, 集群在性价比、可用性、可扩展性等方面均有较大优势, 已成为高性能计算的发展趋势之一。著名的“深蓝”计算机就是并行计算集群的一种具体实现。
2 计算机集群概念
计算机集群是由两个或者更多的相互独立的计算机通过网络连接在一起工作的系统, 它提供相同服务或者实现相同目的, 在外面看来, 整个集群表现为一个单一的系统。集群系统中的单个节点都是一台可独立运行的系统, 拥有独立的CPU和存储器, 可以是单处理器系统, 也可以是多处理器系统。
计算机集群的类型很多, 既有高端大规模并行处理系统MPP集群, 也有LAN连接成的工作站集群。按照节点硬件类型可分为PC集群 (Co P) 、工作站集群 (COW) 和SMP集群 (CLUMP) 。由于如今PC机的性能已相当的可观, 再加上网络技术的发展, 利用PC机和网络搭建低成本、高性能的的集群已能满足不少应用的需求。
为了验证PC集群的性能优势以及今后科研的需要, 我们使用自己的个人电脑搭建了一个实验PC集群, 通过在该集群上分别运行算法相同的并行计算程序和串行计算程序来分析集群性能的提升, 分析结果表明相对于单机串行计算, PC集群并行计算的性能提升非常可观。
3 搭建集群的软硬件
集群一般是采用软硬件结合的方式来搭建。我们的硬件环境是局域网上的四台PC机, 其中一台作主节点, 其余三台作从节点。软件环境方面, 鉴于Linux是目前搭建集群的一个比较好的操作系统, 我们选用了流行的免费Linuxubuntu。并行计算程序开发环境我们采用的是比较流行的MPICH软件包来构建, 编译器用的是gcc.
我们的PC集群网络拓扑结构如图1所示。
图1中, PC集群的四个节点分别命名为cc、koori、ubuntu和bird, 其中koori是主节点, 其他三个是从节点, 从节点或网络上的其他计算机可以登录主节点。
4 PC集群搭建过程
4.1 Linux安装
在http://www.ubuntu.org.cn/上可下载得到ubuntu, 安装过程不再详述。安装完毕后, 需要配置好网络参数, 使四台PC在网络上互相连通。
4.2 单一登录的创建
单一登录使用户可以从集群系统的任何一个节点登录, 而且在整个作业执行过程中只需登录一次, 使用户不再重复输入密码即可登录到集群中的另一个节点上。这包括以下步骤:
(1) 在所有节点上安装Openssh, 安装命令如下:
sudo apt-get install openssh-server;
(2) 在所有节点上创建用于启动并行计算的用户, 要求用户名相同, 用户密码也相同。我们创建了一个名为cluster的用户。
(3) 在所有节点上以root用户修改文件/etc/hosts, 在其中写入集群所有节点的名称和IP地址, 如下所示:
125.216.249.67 koori
125.216.249.104 ubuntu
125.216.249.95 cc
125.216.249.99 bird
修改完毕后用“ssh节点名称”测试是否所有节点修改成功。
(4) 在所有节点/etc/下创建hosts.equiv文件, 如下所示:
koori#对koori放权
ubuntu
cc
bird
(5) 配置ssh以设定的用于启动mpi计算的用户cluster登录, 运行ssh-keygen, 这将生成一个私有/公开密钥对, 分别存放在~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件内。然后进行访问授权, 运行以下命令:
cp~/.ssh/id_rsa.pub~/.ssh/authorized_keys
chmod go-rwx~/.ssh/authorized_keys
ssh-agent$SHELL
ssh-add
以上操作在每个节点重复一遍。然后用ssh从某一节点上登录其它节点, 在.ssh/下生成一个known_hosts文件, 里面放着访问该主机的密钥, 把所有密钥收集起来, 在各个节点上作同样的拷贝。这样做的目的是使各节点相互之间访问无需输入密码。
至此, 单一用户登录就配置完毕了。
4.3 创建单一文件系统
NFS是一种Unix/Linux之间通过网络共享文件的标准方式。使用NFS, 就能够透明的安装和访问网络上远程主机的文件系统, 将其安装 (mount) 在本地的文件系统中, 类似于Windows下的映射驱动器。在我们的集群中, 节点koori是主节点, 把/home/cluster进行共享;节点ubuntu、cc、bird是从节点, 把主节点的/home/cluster目录安装到自己的文件系统当中。过程如下:
(1) 在主节点上安装并开启nfs服务, 安装命令如下:
sudo apt-get install nfs-kernel-server
然后/etc/init.d/nfs-kernel-server start
(2) 在主节点上, 修改/etc/exports文件, 在其中加入一行改变目录的共享, 如下所示:
/home/cluster ubuntu (rw) cc (rw) bird (rw)
然后运行export–a完成目录共享。
(3) 在每个从节点上修改分区配置文件/etc/fstab, 在其中加入对/home/cluster的映射, 如下所示:
koori:/home/cluster/home/cluster nfs
然后运行mount–a完成目录共享。
至此, 单一文件系统就创建好了, 以后将并行程序都放在/home/cluster下即可。
4.4 安装gcc
ubuntu默认安装并没有装完gcc, 执行以下命令完成安装:
sudo apt-get install build-essential
4.5 创建并行计算程序开发环境
MPI (Message Passing Interface) 消息传递接口目前是流行的分布存储并行编程环境, 是专门维并行程序开发而建立的一套标准, 是一个程序库而不是编程语言。MPICH是由美国的Argonne国家实验室开发的基于MPI标准的一套开放源码的软件包, 我们安装使用的版本是MPICH2-1.0.5, 从http://www-unix.mcs.anl.gov/mpi/mpich/可以获得关于MPICH的软件包及相关资料。
MPI并行编程环境就创建好后, 可以通过编译运行一个并行计算圆周率π的示例程序来测试, 如图2所示:
mpicc cpi.c–o pie
mpirun–np 4 pie
程序运行输出结果显示有四个进程分别运行在四个节点上, 并输出了最终π的计算结果pi以及运行耗费的时间。
5 PC集群并行计算的性能对比
为了检验我们的实验集群并行计算的性能, 我们在实验集群上分别以四机并行方式和单机串行方式运行算法相同的并行N-body程序和串行N-body程序, 然后根据运行时间来对比集群并行计算和单机串行计算性能。
N-body问题来源于天体力学, 简单来说就是:在三维空间中给定N个质点, 如果在它们之间只有万有引力的作用, 那么在给定它们的初始位置和速度的条件下, 它们会怎样在空间中运动。精确计算N个天体的相互作用, 算法复杂度为O (N2) , 随着N的增大, 计算量会增长得非常的快, 对计算机的性能要求增长的也非常快, 因此N-body问题适合用于测试计算性能。
我们首先让4个节点全部参与运算, 迭代1000次, 然后只让一个节点参与运算, 也是迭代1000次, 4个节点时的运行时间是41.3565s, 单个节点运行时间是145.7672s, 并行计算的加速比为145.7672/41.3565=3.525。我们反复运行了几次, 结果相差不多。由于受通信延迟的影响, 加速比无法达到理想值4, 但是总的来说, 我们的集群相对于单机的性能提高是比较非常明显的。
由此可见, 搭建PC集群无需额外硬件投资, 只需利用现有资源即可获得数倍的性能提高, 可以说性价比非常高。
6 总结
PC集群优势在于充分利用现有资源、极大降低成本的同时, 仍能获得非常可观的性能提升, 可满足许多大型计算应用的需求。本文给出了基于linux的PC集群搭建的步骤, 并通过运行N-body程序对比了集群并行计算和单机计算的性能, 实验结果表明性能提升非常明显, 接近了参与并行计算的节点数。因此, 对于想获得高性能计算资源而又不想额外投资的用户, 搭建PC集群是个很好的选择。
摘要:本文介绍了PC集群的基本概念和基于Linux环境搭建PC集群的方法, 通过在搭建的实验集群上运行经典的N-body并行计算程序, 对实验集群的多机并行计算和单机串行计算性能进行了对比, 实验结果表明PC集群并行计算相对于单机计算的性能提示非常可观。
关键词:PC,集群,并行计算,Linux
参考文献
[1]黎康保, 陶文正等.用PC机群组构并行超级计算机[J].计算机工程, 2000.
[2]曾国荪等.异构计算中的负载共享[J].软件学报, 2000, 11 (4) :551-556.
[3]James Roger Mitchell.Algorithms for building fault-tolerant distributed systems, 1997.
[4]黄恺, 徐志伟著.陆鑫达, 曾国荪等译.可扩展并行计算技术、结构与编程[M].北京:机械工业出版社, 2000.
[5]陈国良.并行计算——结构.算法.编程 (修订版) [M].北京:高等教育出版社, 2003.
[6]Richard M R.Enterprise enabled Linux, Standard RAS implementation.Digital Technical Journal, 2000.
[7]李贵明, 俞国扬, 罗家融.基于RedHat7.1 (linux) 的Beouwulf集群的实现[J].计算机工程, 2003.
[9]韩从英, 贺国平.基于曙光2000上的两种并行消息传递模型[J].计算机工程, 2002.
Linux集群 第7篇
一、Linux操作系统集群服务的介绍
伴随着网络的发展, 互联网的使用者越来越多。人们可以在网上聊天, 玩游戏, 交友, 购物, 等等等等。一些企业, 学校, 行情服务业也在利用网络进行各自的业务处理。这样, 就不可避免的会造成一些网站因为访问量过大而反应变慢的情况。例如淘宝, 当当等购物网站在限量发行一些商品的时候, 会出现网站运行速度变慢, 甚至反应不过来的情况。因此, 集群技术应运而生。
在网络的建设和维护中, 运用集群技术是提高网站综合性能的一种先进的方法。集群系统和一般的服务器-客户端系统的不同之处在于:在服务器-客户端
系统里服务器及客户端计算机各有分工, 服务器用于处理业务, 而客户端用于完成显示, 用户交互。然而在集群系统中, 各节点的作用一般来说都是相同的。是一种松耦合的结构。
Linux作为一种新型的操作系统, 其发展历史很短, 只有十多年。但是, 它却后来居上, 在当前的Internet服务市场里有着相当主要的地位, 其原因在于它强大的相互联系, 彼此开放的功能。与此同时, 相比其他系统, Linux集群的构建成本是很低的, 实施也是较为容易的。未来的互联网络, 将是Linux服务集群系统的天下。
二、Linux服务集群系统在校园网中的应用
在高等院校里, 常用的是负载均衡系统。这种系统在应用于校园网的维护与使用时, 起到了重要的作用。它的主要特点是能够实现各个服务器之间的分工协作。当一个主要服务器出现问题时, 可以使用备份服务器去协助它。然后, 当主服务器恢复正常时, 备份服务器重新转为备份功能。
负载均衡器能够在普通服务器或计算机上实现两方面的内容:第一, 能够将许多服务器的IP集合起来, 形成一个虚拟的IP。在外部看来, 整个系统的所有服务器就有如一个服务器。第二, 备份服务器可以及时处理一些突发问题。因此, 当学生因为选课等原因需要大量访问校园网时, 服务器的可伸缩性就会大大的提高。老师和学生也可以流畅的观看课件和视频。
三、Linux服务集群系统在行情服务系统中的应用
证券市场对国家经济平稳运行十分重要。证券市场对于信息的安全性和准确性有着很高的要求。在证券市场上, 企业需要发布准确的行情信息, 而且要将瞬息万变的信息通过行情走势图发布出来, 如股票走势的发布。而客户需要及时准确的获得相应的信息, 这些庞杂的信息自然需要一个强大的服务系统, 我们选择了Linux服务集群系统。
1. 行情服务系统中的软件系统
在Linux系统下的行情服务系统主要包括行情采集, 行情服务, 行情发布三个模块。三个模块相互配合, 组成一个强大的系统。
能够迅速完成对行情服务的信息采集, 并能将采集来的信息发布到行情服务模块的, 就是行情采集模块。它能够第一时间获取信息, 但不对信息进行进一步的处理。
可以将采集模块发布来的信息进行处理加工, 转化为有用信息的, 是行情服务模块。这一模块的特点仍然是各个服务器协调工作, 以免出现系统崩溃的情况, 增加系统的容错率。
完成与网络连接相关联的信息处理等功能的, 是行情发布模块。这三个模块相互配合补充, 使整个系统得以稳步运行。行情采集模块负责采集信息, 行情服务模块负责处理信息。在具体的使用中, 如果遇到突发状况, 则可以交由行情服务模块处理。最后, 再交给行情发布模块去对信息进行及时有效的发布。
2. 行情服务系统中的硬件系统
系统为了进一步提高运作效率, 达到及时获取信息, 处理信息的目的, 利用负载均衡技术, 将数据任务交由多个不同的物理设备分担。这样做可以减轻各个硬件的负担, 减少硬件因为负荷过大而损坏的可能性。
四、结语
我们应当看到的是, 基于Linux操作系统的集群服务是一种很强大的技术, 只要合理得当运用它, 就能使原本拥挤不堪的网络变得畅通。这一操作系统运用负载均衡技术, 不但减轻了硬件的压力, 还减轻了软件的负担。用于校园网的建设, 可以使多媒体信息传输流畅, 看视频不卡, 老师轻松上课, 学生轻松学习。用于行情服务系统, 可以让信息得到最快捷, 最准确的发布与接受。公司和客户之间能够得到最快速的沟通。
摘要:随着科技发展的日新月异, 互联网的普及, 以及各种各样的大型网站的出现和发展壮大, 传统的单一型服务器-客户端系统已经无法满足人们的需要, 相应的, 集群服务系统应运而生。本文将先介绍Linux操作系统集群服务的概念, 之后再从集群服务系统在校园网中的应用, 在证券等行情服务系统中的应用两个方面对其进行分析。
关键词:Linux操作系统,集群服务,应用分析
参考文献
[1]杜宝强.基于Linux的行情服务系统[J].计算机应用与软件, 2010 (2)
[2]杨战武, 相明科.新一代高校校园网的建设、管理及应用[J]中国科教创新导刊, 2009 (5) .
Linux集群 第8篇
当今由于信息系统的各个核心部分会随着业务量的提高,其处理能力和计算强度也随之相应的增大了,单一设备根本无法承担如此大的压力,所以必须采用多台服务器来共同工作,从而提高计算机系统的处理能力以及计算强度。但是如何在能完成同样功能的多个服务器之间实现合理的业务量的分配,使之不会出现一台设备非常忙而其他设备却没有发挥作用的情况。要解决这一问题,就可以采用负载均衡(LB)的方法。
1 集群的概念
集群就是将几台或者是几十台计算机组合起来作为一个整体来提供一系列的网络资源给用户,并且集群系统的管理员有权限任意的增加、删除或者是更改集群系统的任意节点,集群系统通常被用来改进单个计算机的性能,一般情况下,集群计算机系统比单个计算机系统的性价比都要高很多。
2 LB集群介绍
在负载均衡(LB)服务器上使用专门的路由算法,将数据包分散到多个真实服务器中进行处理,从而达到网络服务均衡负载的作用。LB服务器可以充分利用自己已有的资源来很好的提升高负载服务的性能,降低高负载服务的成本。
3 Haproxy LB集群的实施
3.1 工作环境设定
(1)虚拟机版本:VMware Workstation-full-10.0.1
(2)服务器操作系统:所有服务器均使用rhel6.4的系统
(3)虚拟IP(VIP):192.168.122.100
(4)主调度器:主机名:directory1.tianyun.com IP:192.168.122.2
(5)备调度器:主机名:directory2.tianyun.com IP:192.168.122.3
(6)真实服务器主机名:web1.tianyun.com IP:192.168.122.10
主机名:web2.tianyun.com IP:192.168.122.20
主机名:web3.tianyun.com IP:192.168.122.30
(7)监控服务器:主机名:nagios.tianyun.com IP:192.168.122.50
3.2 准备工作
说明:以下均使用directory1来作为例子,其他的主机参照它来进行配置。
(1)根据拓扑图分别配置集群中各个主机的IP
使用vim打开/etc/sysconfig/network-scripts/ifcfg-eth0文件,给服务器的eth0网口设定静态IP地址,然后重新启动网络服务。
(2)修改主机名
编辑需要被用于修改主机名的配置文件/etc/sysconfig/network
(3)修改hosts文件
(4)关闭防火墙
(5)关闭SELinux
编辑SElinux的配置文件/etc/sysconfig/selinux,将SELINUX=enforcing修改为SELINUX=disabled,使用getenforce命令查看显示Permissive即为生效。
(6)公钥推送(ssh trust)
推送各个节点的公钥有利于在各个节点间的相互访问。将directory1的/root/.ssh目录使用rsync拷贝到其他节点上,这样所有节点就都可以相互无密码的访问。
(7)配置NTP时钟同步服务
要配置NTP服务器,首先要确保已经安装了ntp服务,然后在etc/ntp.conf文件中写入代码,然后启动ntpd服务,并将其设置为开机启动,等待两分钟左右,查看同步的状态。
4 集群的应用
4.1 RS配置
(1)安装Apache网站服务器
(2)为RS设置首页
在浏览器中访问192.168.122.10,出现首页。为了达到测试效果,需要提供不同的测试页面,分别使用web1、web2和web3来作为网站首页的内容,方法如下:
(3)测试RS
访问192.168.122.10,网页中就会出现web1。
4.2 调度器配置Haproxy(主/备)
(1)安装Haproxy
(2)配置Haproxy
(3)启动haproxy
4.3 测试主备调度器
访问192.168.122.2,不断刷新,页面中会随机出现web1、web2和web3。输入用户名和密码之后,显示的界面;网页中勾选http2———Soft Stop———Apply,访问192.168.122.2,不断的刷新,页面中会出现web1和web3,但是不会出现web2,将http2Soft Start之后,又恢复正常。使用命令行的方式将web3的httpd的服务停掉,访问192.168.122.2,不断刷新页面,页面中会出现web1和web2,但是不会出现web3,而且192.168.122.2:1314/haproxystats页面中http3变成红色。在命令行中重新启动web3的httpd服务,页面中红色的http3又变回绿色,重新访问192.168.122.2的网站,又恢复正常。
5 结束语
集群并不是一个全新的概念,早在七十年代的时候,计算机厂商和一些研究机构就开始对集群系统进行研究和开发,对集群的研究源于集群系统性能的良好的可扩展性。文章以Haproxy LB集群为例进行集群应用的实施,使用Haproxy+Keepalived两种软件,实现了Linux系统下创建低成本、高性能、高可用的集群系统的效果,旨在为集群的发展与成熟提供参考和建议。
参考文献
[1]王国明.集群计算系统的分析与研究[J].电脑知识与技术,2006(32).
[2]孟相武,等.基于Linux的高可用集群系统的设计及实现[J].电子科技大学学报,2005.
Linux集群 第9篇
随着计算机技术的快速发展, 信息网络技术极大的改变了人类的生活与工作方式。特别是以云储存、数据运营平台的信息服务模式迎来了黄金发展时机, 虚拟化技术的产生使得企业与个人能够通过数据中心高效快速的处理数据业务, 更好的降低运营成本。但现有的虚拟Web服务中越来越多地使用CGI、动态主页等CPU密集型应用, 这对服务器的性能有较高要求。
1 Linux的RHEL集群虚拟化系统的应用现状
虚拟化是指计算机元器件通过一定的技术手段实现扩大硬件的容量, 简化软件重新配置的过程。目前, 虚拟化技术分为硬件虚拟化和软件虚拟化。硬件虚拟化以CPU虚拟化技术最具代表性, 目前较多的CPU虚拟化包括多任务技术和超线程技术。而软件虚拟化多是通过虚拟机VMM (监视器) 来与硬件建立联系, 用VMM来实现其对系统上所有虚拟机的访问。在软件虚拟化解决方案中, VMM与操作系统的作用与功能有了重要变换, 即VMM成为传统意义上的操作系统, 操作系统的位置由应用程序所置换。因此, 需要额外的通信层需要进行二进制转换, 获得物理资源的接口, 模拟硬件环境。但由于此项技术的复杂性难于实现, 使得这一技术目前应用受限。
但随着Linux操作系统不断走向成熟, 它的适应性和在网络安全领域的独特作用逐步显现出来。Linux为GNU软件和标准化的PVM、MPI消息提供了一种新的传递机制, 特别是Linux实现了对PC机提供高性能网络支持的解决方案, 这一特点能够极大的满足RHEL集群虚拟化对服务器的指标要求, 极大的推动了基于Linux的集群系统的快速发展。目前, 基于Linux的在集群产品和解决方案得到广泛的应用, Linux集群大量在金融、电信、电子商务以及IT等行业有着非常广泛的使用。如谷歌、Baidu和网易后台均采用Linux集群服务器, 2010年, 谷歌公司采用linux集群解决方案的服务器达到300万台。值得注意的是这些集群产品大多是HA (High-Availability Linux) 和LVS的集群解决方案, 虽然具有可靠性、可用性和可服务性, 上述两种解决方案都存在不同的缺点。如HA集群是双节点的形式, 单机处理能力有限, 一旦服务器处理量较大时, 服务器处理能力的扩容方式通常是淘汰旧的服务器, 造成非必要性的浪费;而LVS集群的真实服务器大多是依靠前端IP负载器进行调度分配的, 一般存在单点故障, 如果IP负载加重, 可能会导致整个集群系统的瘫痪。因此, 通过基于linux的HA和LVS整合就能够有效克服上述问题。
2 基于Linux的RHEL集群虚拟化系统实现过程
2.1 系统实现环境
本系统实现环境及所需的硬件条件分别见图1、表1。
2.2 RHEL双网卡负载均衡实现
在系统环境中, 安装RHEL5.6, 并采用双网卡绑定技术实现服务器网络连接的高可用性及吞吐量, 如图2所示。
在具体设置中, 网卡eth0和eth1虚拟成设备bond0, 并且向外公布一个虚拟IP地址。存储AS500N的root管理密码为“1234567”。使用VI编辑器将标有//的内容添加到/etc init.d/network中的相应位置。 (//不用输入, 修改完后需要重启服务器操作系统) mode为网卡工作方式, “1”为互援式工作方式 (热备份工作方式, 当前工作链路或网卡出现故障时, 备份网卡会自动接管网络链路) , “0”为集群式工作方式 (同时在线提供两倍带宽, 一条链路或网卡故障时, 网络带宽为工作网卡带宽, 不需切换)
2.3 AS500N存储调试及服务器节点上ISCSI挂载
由于A S 5 0 0 N存储管理系统出厂设置的I P地址为192.168.1.1, 通过浏览器地址栏中输入出厂地址, 登录原始界面, 系统默认管理员为admin, 密码:admin, 进入后显示AS500N存储信息。首先, 对物理磁盘进行管理。服务器一般列出了系统中一个raid卡上当前所有可用的磁盘。通常该系统的物理磁盘状态分为成员盘、全局热备盘、游离盘和不可使用的死盘, 分别标记为:member、hotspare、good及bad四种使用状态, 其中hotspare, good状态磁盘可相互转换, ba状态磁盘必须先进行扫描转换, 才可以正常使用。用户可点击按钮执行磁盘状态转换及磁盘定位显示操作。
其次, 在双台节点服务器上安装BCP, 使用PC机端连接节点服务器, 通过编辑java授权策略文件, 进入集群配置模式后, 添加集群名称并新建节点服务器, 分别加入私网、公网IP信息, 添加心跳分区、漂移ip信息、共享磁盘资源、添加资源的监控, 及相关监控后, 上传配置文件。
最后, 在节点一中安装VMware-Workstation-6.5.2-156735.i386.bundle, 设置桥模式, 并将设备设置为指向bond0 (双网卡绑定模式) 。登入系统后, 创建虚拟机成 (图3) 。在节点二重复节点一同样配置。但是需要注意的是节点二中的location内容要修改为/data/VM2, File name修改为/data/VM2 Windows XP Professional, 并在/data上为VM1和VM2创建新的分区文件, 部署WINDOWS系统应用。
3 基于Linux的RHEL集群虚拟化系统的优点
本研究中使用了基于linux的IP-SAN技术, 取代了传统的价格昂贵的SCSI、SAN存储。使得数据与服务器应用系统有效分离, 数据被集中存放在RAID10盘阵上, 不会因为节点失效 (软、硬件故障) 而导致数据丢失的现象产生。这一技术的应用能够有效降低RHEL集群服务器的使用成本, 并能够让虚拟机实现快速切换, 进一步提高了使用效率。即使出现任意节点失效的状况, 本技术的使用, 能够让VM系统迅速在另一节点重新部署, 该应用方案使用了虚拟化技术, 减少了硬件成本投入, 提高了系统资源的使用率。
随着网络技术的快速发展, 基于Linux操作系统的计算机集群虚拟化技术正迅速在国民经济领域中使用越来越广泛, 特别是随着计算机应用技术的跃迁带来的硬件设备的淘汰更新率加快, 如何降低企业和数据服务商的运营成本、提升数据传换速率、降低数据的流失风险都是目前需要亟待解决的重要问题。另外, 云计算技术、物联网技术的成熟和大规模投入使用, 都需要服务器具备高可用, 高可靠, 均衡负载, 高性能计算的综合能力。因此, 基于linux的集群虚拟化技术将会在这一领域有着广泛深入的发展前景。
参考文献
[1]虚拟化与云计算小组.虚拟化与云计算.北京:电子工业出版社, 2009.
[2]高俊峰.循序渐进Linux基础知识、服务器搭建、系统管理、性能调优、集群应用[M].人民邮电出版社.2009-12.