proxmox是一个开源的虚拟化管理平台,支持集群管理和HA.在存储方面,proxmox除了支持常用的lvm,nfs,iscsi,还支持集群存储glusterfs和ceph,这也是我们选择它的原因.
proxmox官方提供ISO下载,因此安装变得非常简单,安装后浏览器打开https://x.x.x.x:8006/ 就可以看到管理平台了.本文基于目前最新版本3.1测试,动工吧.
集群由多台虚拟化主机组成,创建集群后就可以统一管理多台机器了.
1.创建一个集群,登陆其中一台机器,为集群起个名字
pvecm create YOUR-CLUSTER-NAME2.依次登陆其余的机器,加入到上面的集群(IP地址为上面机器的IP)
pvecm add IP-ADDRESS3.查看集群状态
pvecm status CID----IPADDRESS----ROLE-STATE--------UPTIME---LOAD----MEM---ROOT---DATA 1 : 192.168.7.104 M A 5 days 01:43 0.54 20% 1% 4% 2 : 192.168.7.103 N A 2 days 05:02 0.04 26% 5% 29% 3 : 192.168.7.105 N A 00:13 1.41 22% 3% 15% 4 : 192.168.7.106 N A 00:05 0.54 17% 3% 3%
4.查看集群内的节点
pvecm nodes Node Sts Inc Joined Name 1 M 156 2011-09-05 10:39:09 hp1 2 M 156 2011-09-05 10:39:09 hp2 3 M 168 2011-09-05 11:24:12 hp4 4 M 160 2011-09-05 10:40:27 hp3
经过很简单的配置,集群已经创建完成了,如果要使用故障自动切换功能,接下来还需要配置HA功能.
关于fence设备,是用于集群出现网络故障或机器异常时的隔离处理,这样有效防止HA运行时启动了多个vm访问同一个虚拟磁盘,避免破坏数据.
官方有更详细的说明http://pve.proxmox.com/wiki/Fencing.
由于对其他的fence设备都不了解,看起来最入门的就是IPMI了,刚好我们的IBM测试机器也有这个功能,就用它了!
先确认ipmitool已经安装
apt-get update apt-get install ipmitool
加载需要的模块
modprobe ipmi_msghandler modprobe ipmi_devintf modprobe ipmi_si modprobe ipmi_poweroff modprobe ipmi_watchdog
测试ipmitool是否正常工作
ipmitool -I open sensor ipmitool -l open channel info 1 ipmitool -l open lan print 1
为ipmi添加管理IP和登陆账号,密码(这个IPMI功能我们公司一直在用,机器交到我手上已经设置好了)
ipmitool -l open lan set 1 ipsrc static ipmitool -l open lan set 1 ipaddr 192.168.1.91 ipmitool -l open lan set 1 netmask 255.255.255.0 ipmitool -l open lan set 1 defgw ipaddr 192.168.1.1 ipmitool user set name 1 root ipmitool user set password 1 123456 ipmitool user set password 2 123456 ipmitool -l open user list 1 ID Name Callin Link Auth IPMI Msg Channel Priv Limit 1 root false false false NO ACCESS 2 ADMIN false false true ADMINISTRATOR
以上设置在集群内每台机器执行
编辑/etc/default/redhat-cluster-pve,下面语句去掉注释
FENCE_JOIN="yes"
fence_tool join
fence_tool ls
fence_ipmilan -l root -p 123456 -a 192.168.1.91 -o status 1 -v #这个ip是刚才ipmi设置的ip
cp /etc/pve/cluster.conf /etc/pve/cluster.conf.new;nano /etc/pve/cluster.conf.new <?xml version="1.0"?> <cluster config_version="16" name="pve-wx-cluster"> <cman keyfile="/var/lib/pve-cluster/corosync.authkey"/> <fencedevices> <fencedevice agent="fence_ipmilan" ipaddr="192.168.1.91" lanplus="1" login="root" name="ipmi1" passwd="123456" power_wait="5"/> <fencedevice agent="fence_ipmilan" ipaddr="192.168.1.92" lanplus="1" login="root" name="ipmi2" passwd="123456" power_wait="5"/> <fencedevice agent="fence_ipmilan" ipaddr="192.168.1.93" lanplus="1" login="root" name="ipmi3" passwd="123456" power_wait="5"/> </fencedevices> <clusternodes> <clusternode name="pve-5711003" nodeid="1" votes="1"> <fence> <method name="1"> <device name="ipmi1"/> </method> </fence> </clusternode> <clusternode name="pve-5711008" nodeid="2" votes="1"> <fence> <method name="1"> <device name="ipmi2"/> </method> </fence> </clusternode> <clusternode name="pve-5711009" nodeid="3" votes="1"> <fence> <method name="1"> <device name="ipmi3"/> </method> </fence> </clusternode> </clusternodes> <rm> </rm> </cluster>