一.前言
proxmox是一个开源的虚拟化管理平台,支持集群管理和HA.在存储方面,proxmox除了支持常用的lvm,nfs,iscsi,还支持集群存储glusterfs和ceph,这也是我们选择它的原因.
proxmox官方提供ISO下载,因此安装变得非常简单,安装后浏览器打开https://x.x.x.x:8006/ 就可以看到管理平台了.本文基于目前最新版本3.1测试,动工吧.
二.集群配置
集群由多台虚拟化主机组成,创建集群后就可以统一管理多台机器了.
1.创建一个集群,登陆其中一台机器,为集群起个名字
1
|
pvecm create YOUR-CLUSTER-NAME
|
1
|
pvecm add IP-ADDRESS
|
1
2
3
4
5
6
7
|
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.查看集群内的节点
1
2
3
4
5
6
7
|
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功能.
三.HA配置
配置HA需要满足下面条件:
1)集群已经创建好
2)添加好集中/共享存储(nfs,glusterfs,ceph等)
3)fence设备 (IPMI,APC Switch Rack PDU等)
关于fence设备,是用于集群出现网络故障或机器异常时的隔离处理,这样有效防止HA运行时启动了多个vm访问同一个虚拟磁盘,避免破坏数据.
官方有更详细的说明http://pve.proxmox.com/wiki/Fencing.
1.IPMI配置
由于对其他的fence设备都不了解,看起来最入门的就是IPMI了,刚好我们的IBM测试机器也有这个功能,就用它了!
先确认ipmitool已经安装
1
2
|
apt-get update
apt-get
install
ipmitool
|
加载需要的模块
1
2
3
4
5
|
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog
|
测试ipmitool是否正常工作
1
2
3
|
ipmitool -I
open
sensor
ipmitool -l
open
channel info 1
ipmitool -l
open
lan print 1
|
为ipmi添加管理IP和登陆账号,密码(这个IPMI功能我们公司一直在用,机器交到我手上已经设置好了)
1
2
3
4
5
6
7
8
9
10
11
|
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
|
以上设置在集群内每台机器执行
2.fence配置
编辑/etc/default/redhat-cluster-pve,下面语句去掉注释
1
|
FENCE_JOIN=
"yes"
|
把机器加入fence域,命令行执行
1
|
fence_tool
join
|
以上操作在集群每台机器上执行
检查状态:
1
|
fence_tool
ls
|
测试fence设备是否生效
1
|
fence_ipmilan -l root -p 123456 -a 192.168.1.91 -o status 1 -
v
#这个ip是刚才ipmi设置的ip
|
修改集群配置,注意下面IP是IPMI设置的IP地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
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
>
|
注意,每次修改这个配置文件,里面 config_version= 都要加1
验证配置文件
1
|
ccs_config_validate -
v
-f
/etc/pve/cluster
.conf.new
|
全部准备就绪,激活新配置文件
3.将vm加入HA
(添加后记得点击activate)
可以看到已经加入HA的虚拟机了
参考文献:
http://www.anjing.me/1417.html
http://pve.proxmox.com/wiki/Fencing
http://pve.proxmox.com/wiki/High_Availability_Cluster
http://pve.proxmox.com/wiki/Fencing
http://pve.proxmox.com/wiki/High_Availability_Cluster