虚拟化服务器集群的搭建与虚拟机迁移

勿六七 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

相关推荐

xiyf0 / 0评论 2017-02-13