ha(引)------------------------- 其实很简单关键在配置
1.什么是服务器集群
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
以下的这些配置是为了让其能使用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的文档可在
http://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。你可以到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程序。
2.4 费用统计
这个小的集群方案总的费用大致如下:
设备费用:
4台 Pentium II CPU /64MB内存, 2GB的硬盘带EIDE CD-ROM 的机器: 24000元
5块快速以太网卡: 800元
1个快速以太网的集线机:2000元
5根双绞线:50元
软件费用:
LINUX安装光盘:50元
MPICH:0元
合计:26900元。
这样一个集群系统可以用于一些大量的科学计算,信息处理,而且其性价比实在是太好了,仅需不到三万元。
满足不同应用性能和服务的需求
消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。集群方案可以有效防止单点故障的发生,其N+1冗余特性,以及部件的热插拔特性和自我诊断能力可保证在错误造成麻烦前就将其发现、隔离并排除。
还有一种具有N+1冗余架构的存储系统一直处于灰色地带,人们对其是否属于集群还存在争议。在N+1冗余架构模式中,存在两个或更多个(N个)主要I/O节点或控制器,也就是所谓的NAS头,和备用或故障转移节点。例如EMC的Celerra NSX和Pillar Axiom。是厂商的命名体系才使得这种N+1模式显得十分混乱,如将包含有双控制器的RAID阵列或双NAS头的方案称作提高可用性的集群。
一个集群就是一个Grid(网格)吗?这取决于你对Grid的定义。你把Grid看作是一项服务、架构还是基于硬件或软件的,跨越距离的其它能力呢。因此,对于怎样才算服务器和存储环境组成了一个Grid或集群这件事,存在着很多不同的厂商和行业定义和意见。虽然我已经在这个领域内工作了很多年,我发现我还经常在关于Grid的基本成分,数据采集与监控系统(Supervisory control and data acquisition ,SCADA)的讨论中迷失。因此对于Grid-cluster的讨论中就充满了变数。
各种集群存储方案中的不同之处包括:
节点彼此之间如何连接(松散地或紧密地连接,开放或私有);
节点间的I/O性能和负载平衡;
适当的硬件,开放,现有产品(off-the-shelf),或支持第三方服务器或存储;
文件共享,包含集群文件系统软件,基于主机的代理或驱动;
本地或远程的镜像或复制,及时点(Point-in-time)拷贝或快照;
具备虚拟化的存储模块增长,实现自动负载均衡;
性能自适应顺序读写或随机访问;
分布式锁管理(Distributed lock management)和集群特性一致
理解集群存储间不同的含义、类型和实现方式,将帮助你挑选最适合的方案。集群存储非常适合那些持续增长的所有规模的不同环境,实现即时供应(Just-in-time)存储,避免破坏性升级和增加管理的复杂性。
本例测试域的规划
Ip/port
server
注释
10.21.18.40:7001
adminServer
管理服务器
10.21.18.40:7003
mServer1
被管服务器1
10.21.18.41:7001
mServer2
被管服务器2
10.21.18.40:7004
proxyServer
代理服务器
配置过程
建立管理服务器
启动linux下的配置向导
进入bea目录下的weblogic81/common/bin目录输入./config.sh,这里使用的终端登陆,所以没有图形环境,程序会以控制台模式启动
第一步:选择建立新的域:
启动配置向导后,系统提示如下:
<------- BEA WebLogic Configuration Wizard---------->
Create or Extend a Configuration:
---------------------------------
Choose between creating and extending a configuration. Based on your selection, the Configuration Wizard guides you through
the steps to generate a new or extend an existing configuration.
->1|Create a new WebLogic configuration
| Start here to create a WebLogic configuration in your projects directory.
2|Extend an existing WebLogic configuration
| Start here to extend an existing WebLogic configuration. Use this option to add applications and services,
|including Database access (JDBC) and Messaging (JMS). This option also enables you to extend functionality by enabling
|WebLogic Workshop.
Enter index number to select OR [Exit][Next]> 1
录入1回车,建立一个新的域。
第二步:选择模版
系统提示选择一个建立域的模版,资料上讲配置向导的配置过程可以另存为模版,以便下次配置的时候使用,没试过下次回去试试。
<-------- BEA WebLogic Configuration Wizard -------->
Select a Domain Template:
-------------------------
Please select a template from the list or select another directory of templates.
* [/usr/local/bea/weblogic81/common/templates/domains]
->1|Basic WebLogic Server Domain 8.1.4.0
| BEA Systems, Inc.
| Create a basic WebLogic Server domain without installing sample applications.
2|WebLogic Server Examples Domain 8.1.4.0
| BEA Systems, Inc.
| Create the WebLogic Server Examples domain in a directory outside of the installed kit. The Examples domain contains |a collection of examples to show best practices for coding individual J2EE APIs.
3|Avitek Medical Records Sample Domain 8.1.4.0
| BEA Systems, Inc.
| Create the Avitek Medical Records domain in a directory outside of the installed kit. The Avitek Medical Records is
|a WebLogic Server sample application suite that concisely demonstrates all aspects of the J2EE platform.
4|Select another directory location
Enter index number to select OR [Exit][Previous][Next]> 1
这里我们选择1,使用基础的模版
第三步:是否以快速模式进行
第三步系统提示是否以快速模式进行配置,这里选择2。
<--------- BEA WebLogic Configuration Wizard ----------->
Choose Configuration Option:
----------------------------
*Do you want to run the wizard in express mode?
->1|Yes
2|No
Enter index number to select OR [Exit][Previous][Next]> 2
第四步:配置管理服务器
现在系统提示我们配置管理服务器,把管理服务器的名字改一下,改成adminServer就可以了。
<------- BEA WebLogic Configuration Wizard -------->
Configure the Administration Server:
------------------------------------
Enter adminstration server configurations. Each WebLogic Server domain must have one Administration Server. The
Administration Server hosts the Administration Console which is used to perform administrative tasks.
| Name | Value |
_|__________________|_____________________|
1| *Name: | myserver |
2| Listen address: | All Local Addresses |
3| Listen port: | 7001 |
4| SSL listen port: | N/A |
5| SSL enabled: | false |
Select Option:
1 - Modify "Name"
2 - Modify "Listen address"
3 - Modify "Listen port"
4 - Modify "SSL enabled"
Enter option number to select OR [Exit][Previous][Next]> 1
输入1之后,根据系统提示输入新的管理服务器的名称adminServer
第五步:配置被管服务器
根据下面系统的提示,配置被管服务器
<--------- BEA WebLogic Configuration Wizard ---------->
Configure Managed Servers:
--------------------------
Add or delete configuration information for managed servers. A typical production environment has one or more managed
servers. Each managed server is an instance of WebLogic Server used to host enterprise applications.
| Name* | Listen address | Listen port | SSL listen port | SSL enabled |
_|_______|________________|_____________|_________________|_____________|
Enter name for a new Server OR [Exit][Previous][Next]> mServer1
被管服务器我们设置两个:mServer1和mServer2,mServer1和管理服务器在一台机器上,所以端口设置为7003避免和管理服务器冲突。
mServer2的监听地址一定要设置成ip,否则在启动被管服务器2的时候会得到这样一个错误:using the same address as the admin server(这个错挺傻的我觉得),如果是实际的集群配置的话,这里建议都写成ip的形式。
配置完成的画面如下:
| Name* | Listen address | Listen port | SSL listen port | SSL enabled |
_|_________|___________________|_____________|_________________|_____________|
1| mServer1| 10.21.18.41 | 7003 | N/A | false |
->2|mServer2|10.21.18.41 | 7001 | N/A | false |
第六步:配置集群
<----BEA WebLogic Configuration Wizard ------>
Configure Clusters:
-------------------
A cluster contains multiple WebLogic Server instances (servers) that run simultaneously and work together to provide
increased scalability and reliability. A cluster appears to be a single WebLogic Server instance to clients.
| Name* | Multicast address | Multicast port | Cluster address |
_|_______|___________________|________________|_________________|
Enter name for a new Cluster OR [Exit][Previous][Next]> testCluster
输入集群的名字testCluster,其他的默认就行了,配置完成后如下:
| Name* | Multicast address | Multicast port | Cluster address |
_|_____________|___________________|________________|_________________|
->1| testCluster | 237.0.0.1 | 7001 | |
第七步:将服务器组织到集群中
根据系统的提示,将mServer1和mServer2放入集群testCluster中去,配置完成后如下:
Cluster
|_____testCluster [1]
|_____mServer1
|_____mServer2
第八步:配置机器、jdbc、jms、安全等
接下来几步系统提示配置Machines,jdbc,jms,安全,这里都不用配置,全部回车就行了。
第九步:输入管理服务器的用户名和密码
系统提示如下画面,可以配置管理服务器的用户名和密码:
| Name | Value |
_|_________________________|_________________________________|
1| *User name: | weblogic |
2| *User password: | |
3| *Confirm user password: | |
4| Description: | The default administration user |
第十步:选择启动模式,jdk和存放目录