勿六七 2011-12-25
硬件: Dell PowerEdge R200 4台
Dell PowerEdge T100 1台
软件: Ubuntu Server 10.04 、Xen 4.01 、Ghost For Linux
集群架构:
MainNode: No.1 Blade Server
OS: Ubuntu Server 10.04
Outer IP: xxx.xxx.xxx.xxx
Inner IP: 192.168.100.1
Node1: No.2 Blade Server
OS: Ubuntu Server 10.04 + Xen 4.01
Inner IP: 192.168.100.2
Node2: No.3 Blade Server
OS: Ubuntu Server 10.04 + Xen 4.01
Inner IP: 192.168.100.3
Node3: No.4 Blade Server
OS: Ubuntu Server 10.04 + Xen 4.01
Inner IP: 192.168.100.4
SharedStorageCentre: Tower Server
OS: Ubuntu Server 10.04
Inner IP: 192.168.100.5
首先安装配置好一台服务器的系统环境,然后使用G4L(Ghost For linux)将安装好的系统直接推到其它机器上,由于我使用Xen虚拟化环境,所以推系统时要求底层硬件相同;如果是在非虚拟化环境下,对于硬件一致性要求有待读者验证。
注:
1. 这里R200与T100需要分别安装,不能直推;
2. 推系统前先安装ssh,在我设计的网络拓扑结构中需要用ssh进行节点间访问;
3. 在Dell PowerEdge上安装Xen虚拟化环境时,安装后启动时会出现卡在“*Speech-dispatcher configured for user sessions”,应对办法是禁用图形界面。$vi /etc/X11/default-display-manager ,把里面内容改为false。此时,重启后会卡在“Checking battery state”,这时你已经成功启动Xen,只需要使用其它终端即可登录,例如Alt+F2。
4. G4L的使用将在后文给出。
在每台用G4L推装的系统上,需要进行以下三点修改:
一、更改主机名,方便日后使用。具体步骤如下:
1.启用root用户
运行命令 sudo su
2.以root用户身份登录
1)编辑文件/etc/hosts 将下面的一行
127.0.1.1 xxxxx
替换为
127.0.1.1 newhostname
2) 编辑 /etc/hostname文件 删除该文件的所有内容,添加newhostname
3)运行一下命令 hostname newhostname
3.退出root用户 改用一般用户登录即可
注:其中 xxxxx为原来的主机名 newhostname为你想修改的主机名
二、更改各个节点的IP,由于各个节点的系统是由一台Copy的,这时会出现默认的第一块网卡不是eth0的现象。例如:我的机器是双网卡,推完系统后,输入ifconfig出现eth2、eth3,而eth0、eth1不见了;这时,编辑 /etc/udev/rules.d/70-persistent-net.rules 文件,发现eth0-eth3的信息都存在,要做的是删掉eth0、eth1,并把eth2、eth3改为eth1、eth2,重启即可。
三、推装的系统还有可能出现网络不通的现象,不要着急,输入route,如果看到有两个default项,删除peth对应项即可。执行命令 sudo route del default dev peth0 。原因是机器路由表遇到两个default,不知该向哪发出数据包。
在我设计的网络拓扑环境下,内部节点不能访问外网,所以在主节点进行如下操作,利用主节点双网卡进行路由:
iptables -A POSTROUTING -t nat -s 192.168.100.0/24 -o eth1 -j SNAT --to-source xxx.xxx.xxx.xxx(Outer IP)
echo 1 > /proc/sys/net/ipv4/ip_forward
进行到这一步,你的集群系统环境基本搭建完毕,下面需要搭建共享存储器,以便虚拟机进行迁移。虚拟机迁移有存储还原迁移法和动态迁移法,我使用动态迁移法。
首先,在/etc/hosts中 添加所有节点的IP和节点名,这样可以使用节点名在各个节点之间进行访问了
192.168.100.1 MainNode
192.168.100.2 Node1
192.168.100.3 Node2
192.168.100.4 Node3
192.168.100.5 SharedStorageCentre
SharedStorageCentre:
1. 执行sudo apt-get install nfs-kernel-server
2. sudo mkdir /xen-storage
3. 编辑/etc /exports 文件,加入下面一行来导出存储器目录:
# /xen-storage *(rw,sync,no_root_squash)
Node1-Node3:
1. sudo mkdir /xen-storage
2. 执行临时挂载命令sudo mount SharedStorageCentre:/xen-storage /xen-storage
3. 在/etc/fstab 中添加 SharedStorageCentre:/xen-storage /xen-storage nfs defaults 0 0 以便重启后自动挂载
4. 需要注意的是,要想改变Domain的运行地点,必须修改默认的Xend配置文件/etc/xen/xend-config.sxp。此外,要使所做的修改在主机上生效,必须重新启动Xen 服务器所在的主机。 我们需要修改以下配置:
Xend-relocation-server :该标志用于启用/取消服务器迁移功能。默认时,该标志设为no ,即不允许改变服务器的位置。在迁移过程中,Domain虚拟内存将变成未经任何加密的原始形式。所以,在不可信的网络上启用该选项时一定要倍加小心。
Xend-relocation-port :Xend守护进程通过该端口进行迁移。这个端口的缺省值是8002。
另外,还有两个无需修改的参数,当在企业部署环境进行迁移时也要注意一下:
Xend-relocation-address :该标志将Domain的迁移限制到特定的接口上。指定的地址是侦听用于Domain迁移的入局连接的接口地址。只有启用Xend-relocation-server参数后,才会用到这个标志。默认为允许所有接口。
Xend-relocation-hosts-allow:这个标志定义了允许跟迁移端口进行通信的主机。其值为一个由空格分隔的正则表达式序列。如果该值为空,那么将允许全部输入连接,否则,该值要么与一个IP地址相匹配,要么与一个完整域名相匹配。
5. 建立多个运行在NFS 服务器存储器上的Xen Domain,并在Node1-Node3上启动各自对应的客户机Domain.具体方法是在Node1-Node3上建立并运行虚拟机,其路径为/xen-storage
6. 动态迁移命令:
# xm migrate –live DomName destinyIP