支持kvm虚拟化
必须是rhel6_x86_64平台
# yum install kvm -y
# yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-viewer -y
使用kvm,确保libvirtd服务开始 # service libvirtd restart # lsmod | grep kvm kvm_intel 45674 0 kvm 291811 1 kvm_intel 例子1:通过图形界面安装虚拟机1、配置桥接网络
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.1.232 NETMASK=255.255.255.0 TYPE=Bridge NM_CONTROLLED="no"# mii-tool
eth0: no link eth1: negotiated 100baseTx-FD, link ok 《----# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1" BOOTPROTO="none" HWADDR="40:16:9F:E9:11:64" NM_CONTROLLED="no" 《---- ONBOOT="yes" BRIDGE=br0 # service network restart# brctl show
bridge name bridge id STP enabled interfaces br0 8000.40169fe91164 no eth1 <---- virbr0 8000.000000000000 yes# virt-manager &
/var/lib/libvirt/p_w_picpaths/node1.img
例子2: 命令行安装
# virt-install -n "node2" -r 512 --vcpus=1 --pxe --os-type=linux --os-variant="rhel5" --disk=/var/lib/libvirt/p_w_picpaths/node2.img,size=5 --network bridge=br0 --vnc --hvm --virt-type=kvm
# virsh --help
如何实现xen客户机迁移到kvm ?
rhel5的xen客户机迁移到 rhel6.0的kvm中======================================================================= 使用xen虚拟化实现高可用 client | vip |--------------------------------------| node1 <----RHCS-----> node2 <---DomU,客户机机器 |--------------------------------------| | NFS(共享存储) <---- Dom0,同时充当fence 备注:Dom0宿主机器通过xen虚拟化接口,模拟成fence设备,供ha集群中的node1,node2使用。 一、自定义xen的桥接网络
首先把原本的桥接网络关闭和删除
# ifconfig xenbr0 down
# brctl delbr xenbr0改xen配置文件,不再使用默认桥接网络配置脚本
# service xend stop
# service libvirtd stopshell> vim /etc/xen/xend-config.sxp
# (network-script network-bridge netdev=eth0)
#(network-script network-custom) (network-script /bin/true) <----启用建立自定义桥接网络的接口配置文件
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.1.22 NETMASK=255.255.255.0 TYPE=Bridge NM_CONTROLLED="no"修改被桥接的物理网卡的配置
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=00:D0:B7:D3:10:A2 BRIDGE=br0 # service xend start # service libvirtd start # service network restart # brctl show bridge name bridge id STP enabled interfaces br0 8000.00d0b7d310a2 no eth0 《--- virbr0 8000.000000000000 yes# ifconfig br0
测试:如果建立好桥接网卡能够正常通信,那么说明OK
实在不能通信,可以重启计算试一下。 二、把所有原本桥接到xenbr0的客户机机全部修改成br0修改
vif = [ "mac=00:16:36:71:fc:f4,bridge=xenbr0,script=vif-bridge" ] 为 vif = [ "mac=00:16:36:71:fc:f4,bridge=br0" ] 启动客户机,把IP设定成跟宿主机器同一个网络,验证一下网络的可通性。
准备:
Dom0: dev.upl.com 10.1.1.22DomU:
node1.upl.com 10.1.1.23 domain:node1 node2.upl.com 10.1.1.24 domain:node2
三、宿主机器、HA中两个客户机器节点都安装集群套件
# yum groupinstall "Clustering" "Cluster Storage" -y
客户机器需要手工安装的:
# yum install kmod-gnbd-xen kmod-gfs-xen kmod-cmirror-xen -y 四、在宿主机器进行配置,模拟成为fence设备1、建立一个只有自己成为节点的集群
# system-config-cluster &
集群名字一定不能和别人一样
编辑集群的属性
Run XVM Daemon <---打勾 把自己添加到集群中 2、建立fence设备与节点之间通信的密钥# dd if=/dev/random of=/etc/cluster/fence_xvm.key bs=1 count=4096
测试的时候,可以把硬盘数据作为密钥的内容
# dd if=/dev/sda2 of=/etc/cluster/fence_xvm.key bs=1 count=4096把密钥同步到各个客户节点
# rsync -alvR /etc/cluster/fence_xvm.key 10.1.1.23:/ # rsync -alvR /etc/cluster/fence_xvm.key 10.1.1.24:/ 3、修改宿主机器的cman启动脚本 . /etc/init.d/functionsFENCE_XVMD_OPTS="-I br0" 《--添加一行
4、启动
# service cman start 测试fence设备是否工作:# fence_xvm -H node2
Remote: Operation was successful 五、在客户机器上配置HA集群# system-config-cluster &
集群属性: Post Join Delay: 12 否则启动集群的时候,很容易出现重启
成员:
node1.upl.com node2.upl.comfence:
Virtual Machine Fencing ,名字随意连接fence:
domain: node1或者node2 <-- xm list看到客户机的名字 启动集群 cman rgmanager查看集群中节点被fence过:
# cman_tool nodes -f Node Sts Inc Joined Name 1 M 12 2011-09-26 15:23:34 node1.upl.com 2 M 16 2011-09-26 15:23:37 node2.upl.com关闭node2的网卡,node1会通知fence设备去重启node2
node2重启之后,应该启动cman,rgmanager# cman_tool nodes -f
Node Sts Inc Joined Name 1 M 12 2011-09-26 15:23:34 node1.upl.com 2 M 24 2011-09-26 15:29:28 node2.upl.com <--列出了最后一次被fence的情况 Last fenced: 2011-09-26 15:26:38 by fencexvm 在客户机节点上手工fence其他节点 # fence_node node1.upl.com <---写主机名字 《---留意日志 为了避免同一个局域网出现多个集群造成组播混乱,配置混乱,相互干扰:手工修改客户集群中的配置文件:
<cman expected_votes="1" two_node="1" cluster_id="4562" keyfile="/etc/openais.key" >
<multicast addr="225.1.8.88"/> </cman>可能配置文件会这种形式
<cman expected_votes="1" two_node="1" cluster_id="4562" keyfile="/etc/openais.key" />openais.key 路径随意,生成的方法:
# dd if=/dev/random of=/etc/openais.key bs=1 count=4096把系统的keyfile同步同一个集群中的其他节点