如何最快搭建LINUX服务器集群

如何最快搭建LINUX服务器集群,第1张

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的文档可在

5.任何一个集群用户(你必须在每一个节点新建一个相同的用户),必须在/mirror目录下建一个属于它的子目录,如 /mirror/username,用来存放MPI程序和共享数据文件。这种情况,用户仅仅需要在服务器节点上编译MPI程序,然后将编译后的程序拷贝到在/mirror目录下属于它的的子目录中,然后从他在/mirror目录下属于它的的子目录下使用p4 MPI策略运行MPI程序。

2.3 MPICH安装指南

1.如果你有gunzip,就d下载mpich.tar.gz,要不然就下载mpich.tar.Z。你可以到http://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程序。

它非常适合用来快速配置一个集群中的所有运行相同服务和具备相同配置的计算机节点。现在有大量的开源管理工具,都可以实现这样的管理,比如dsh、SUSE Manager等。下面是用ClusterSSH管理多台Linux服务器的具体过程。

如果你是一名Linux系统管理员,那你每天一定会和许许多多的机器打交道,因为你要定期监测和维护这些机器,如一批Web服务器,如果你要同时在多台机器上敲入相同的命令,你可能会通过SSH登录,然后逐台敲入,如果使用ClusterSSH,可以为你节省不少类似的工作时间。

ClusterSSH是用Tk/Perl包装XTerm和SSH后形成的新工具,就其本身而言,它可以运行在任何兼容POSIX的 *** 作系统上,我曾经在Linux,Solaris和Mac OS X上运行过它,它需要Perl库Tk(在Debian或Ubuntu上就是perl-tk)和X11::Protocol(在Debian或Ubuntu上就是libx11-protocol-perl),此外,xterm和OpenSSH是必不可少的。

安装在Debian或Ubuntu上安装ClusterSSH是相当简单的,只需要敲入sudo apt-get install clusterssh就可以安装好,至于依赖包你也不必担心,一切都会为你装好的,它也提供了适合Fedora的rpm包,在FreeBSD上可通过port系统安装,还为Mac OS X准备了MacPort版本,因此你可以在你的苹果电脑上安装ClusterSSH,当然,如果你是极客,也可以下载源代码自己编译。

配置可以通过ClusterSSH的全局配置文件/etc/clusters,或用户home目录下的。csshrc文件来配置它,我喜欢用户级的配置方式,这样同一个系统中的不同用户可以根据自己的喜好进行配置,ClusterSSH定义了一个“cluster”机器组,你可以通过一个界面来控制这个组中的所有机器,在配置文件的顶端“clusters”部分,你可以详尽地列出你的集群,然后用独立的段落来描述每个集群。

例如,假设我有两个集群,每个集群由两台机器组成,“Cluster1”由“Test1”和“Test2”两台机器组成,“Cluster2”由“Test3”和“Test4”两台机器组成,~.csshrc(或/etc/clusters)配置文件的内容看起来应该是:

clusters = cluster1 cluster2

cluster1 = test1 test2

cluster2 = test3 test4你也可以创建中间集群(包含其它集群的集群),如果你想创建一个名叫“all”的集群包含所有的机器,有两种实现手段,首先,你可以创建一个包含所有机器的集群,如:

clusters = cluster1 cluster2 all

cluster1 = test1 test2

cluster2 = test3 test4

all = test1 test2 test3 test4但我更喜欢的方法是使用一个包含其它集群的中间集群:

clusters = cluster1 cluster2 allcluster1 = test1 test2

本文介绍在Linux HA集群中的仲裁和分区概念。

集群正常工作时,所有节点都在一个分区内(partition),分区内的所有节点将选举出一个仲裁节点,这个仲裁节点负责向其他节点发送集群控制命令。当网络发生故障时,集群中的节点发现无法和仲裁节点通信,则会在可通信的范围内重新选举一个新的仲裁节点。此时集群内可能出现多个仲裁节点,每个仲裁节点的管理范围为一个分区。

下文中将通过防火墙策略的设置模拟集群网络中通信出现异常的各种情况,如:

通过防火墙策略可以精准控制两两节点之间的连通性,使我们能更准确的了解在网络连通性发生变化对集群的影响。

在所有节点上启动防火墙,并添加策略对整个管理网络192.168.56.0/24放通。

保存上述策略,之后在实验过程会使用iptables命名加入新策略模拟网络通信异常效果,如果需要恢复网络通信正常状态,直接不保存策略重启firewalld服务即可。

通过pcs status查看集群状态:

上述结果显示当前集群只有一个分区,分区内的节点包括全部3台主机,仲裁节点是ha-host3,这表示集群间的通信是完好的。下图显示当前集群状态:

在ha-host1上添加以下策略:

该策略将使得ha-host1和ha-host3之间的通信中断,在所有节点上查看集群状态:

上面的结果显示,ha-host1失去和当前仲裁节点ha-host3的联系之后,和ha-host2一起组成新的分区并选举出ha-host2作为新的仲裁节点。有趣的是ha-host2和ha-host3的通信并未中断,但是他被“优先级较高的ha-host1抢走并推举为老大”,剩下ha-host3独自留在其自身所在的分区。此时ha-host3所在的分区提示了“partition WITHOUT quorum”,表示该分区中的节点数目不超过一半。

下图显示当前集群状态:

在ha-host1上再添加策略:

使其和当前的仲裁节点ha-host2的通信中断,集群状态变为:

发现ha-host2和ha-host3一起组成了新的分区,由于ha-host1所在分区节点数不足一半,无法启动资源,虚拟ip资源vip被切换到了ha-host2上。下图显示当前集群状态:

如果再把ha-host2和ha-host3直接的通信中断,此时3个节点间两两均无法通信。每个节点都是一个分区,每个分区的主机数均不过半,因此无法启动任何资源,原先运行在ha-host2上的vip也停止了。

当前集群状态如下图:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8513117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存