再探oVirt-测试2个节点的ovirt和glusterfs集群的可用性

2016/10/19


一、基础操作
1、资源
ovirt engine: e01
ovirt node: n33, n34

2、hosts
10.50.200.1 e01.test
10.50.200.33 n33.test
10.50.200.34 n34.test
10.50.200.86 n86.test

二、配置主机
以n33为例,安装OS后:
hostname n33.test
vi /etc/sysconfig/network
vi /etc/hosts
curl http://my_office/repo/local-office.repo -o /etc/yum.repos.d/local-office.repo
curl http://my_office/ovirt/ovirt-3.5.repo -o /etc/yum.repos.d/ovirt-3.5.repo
curl http://my_office/ovirt/ovirt-3.6.repo -o /etc/yum.repos.d/ovirt-3.6.repo
mv /etc/yum.repos.d/CentOS-* /tmp/
yum clean all && yum makecache
yum install yum-plugin-priorities -y 
yum install ntp vim lrzsz -y
yum install vdsm vdsm-cli -y



三、测试gluster服务的可用性(2节点)
1、配置存储
1)调整防火墙:
## ovirt LAN
-A INPUT -s 10.50.200.0/24 -j ACCEPT

2)分区
yum install lvm2 xfsprogs -y
如果已经存在/data分区,要先umount然后fdisk删除分区再继续操作
pvcreate /dev/sdb
vgcreate vg0 /dev/sdb 
lvcreate -l 100%FREE -n lv01 vg0
mkfs.xfs -f -i size=512 /dev/vg0/lv01 
mkdir /data
cat <<_EOF >>/etc/fstab
UUID=$(blkid /dev/vg0/lv01 |cut -d'"' -f2) /data                   xfs     defaults        0 0
_EOF
mount -a

3)配置 glusterfs 服务
mkdir /data/ovirt/

yum install glusterfs-server
service glusterd start
chkconfig glusterd on

[root@n33 ~]# gluster peer probe n34.test
[root@n33 ~]# gluster volume create ovirt-data replica 2 transport tcp \
n33.test:/data/ovirt/data \
n34.test:/data/ovirt/data
[root@n33 ~]# gluster volume start ovirt-data
【配置参数】
gluster volume set ovirt-data diagnostics.count-fop-hits on
gluster volume set ovirt-data diagnostics.latency-measurement on
gluster volume set ovirt-data storage.owner-gid 36
gluster volume set ovirt-data storage.owner-uid 36 
gluster volume set ovirt-data cluster.server-quorum-type server
gluster volume set ovirt-data cluster.quorum-type auto
gluster volume set ovirt-data network.remote-dio enable
gluster volume set ovirt-data cluster.eager-lock enable
gluster volume set ovirt-data performance.stat-prefetch off
gluster volume set ovirt-data performance.io-cache off
gluster volume set ovirt-data performance.read-ahead off
gluster volume set ovirt-data performance.quick-read off
gluster volume set ovirt-data auth.allow \*
gluster volume set ovirt-data user.cifs enable
gluster volume set ovirt-data nfs.disable off

2、在 engine 页面选择菜单:“数据中心-Default-存储-新建域”
名称:data
域功能/存储类型:Data/GlusterFS
使用主机:n33.test
路径:n33.test:/ovirt-data
挂载选项:backupvolfile-server=n34.test



四、测试
1、客户机挂载
[root@n86 ~]# mount -t glusterfs -o backupvolfile-server=n34.test n33.test:/ovirt-data /data/test

2、测试用例
【测试用例01】断开其中一个节点的网络
1)断开n33的网卡
2)客户机
[root@n86 ~]# ls /data/test
ls: cannot access /data/test: Transport endpoint is not connected
3)ovirt页面的状态
数据中心:无响应
主机:n33 无响应;n34 无响应;
data域:失效
虚拟机:在n33上运行的vm处于未知状态,在n34上运行的vm处于暂停状态
4)恢复
启用网卡后,大约3分钟后,data域恢复工作。


【测试用例02】调整server-quorum-ratio 为 30%
1)设定参数
gluster volume set all cluster.server-quorum-ratio 30%
2)重复 测试用例01
等待几秒后:
[root@n86 ~]# ls /data/test
09cb8372-a68d-47dc-962e-70b5225be6bc  __DIRECT_IO_TEST__
说明,已经切换到备用节点,且通过ss -ant dst :49152可以验证。
[root@n86 test]# touch 1111
touch: cannot touch `1111': Read-only file system
但是,系统是只读的。

3)ovirt页面的状态
数据中心:无响应
主机:n33 无响应; n34 在3分钟后自行恢复
虚拟机:在n33上运行的vm处于未知状态,在n34上运行的vm处于暂停状态
data域:失效
4)恢复
启用网卡后,恢复到默认值:
gluster volume reset all


【测试用例03】调整server-quorum-ratio 为 70%
1)设定参数
gluster volume set ovirt-data cluster.server-quorum-type server
gluster volume set ovirt-data cluster.quorum-type auto
gluster volume set all cluster.server-quorum-ratio 70%
2)重复 测试用例01
现象和 测试用例01 一致

3)恢复
gluster volume reset all
gluster volume reset ovirt-data


【测试用例04】禁用quorum
1)调整集群参数,去掉quorum相关的配置。
gluster volume set ovirt-data diagnostics.count-fop-hits on
gluster volume set ovirt-data diagnostics.latency-measurement on
gluster volume set ovirt-data storage.owner-gid 36
gluster volume set ovirt-data storage.owner-uid 36 
gluster volume set ovirt-data network.remote-dio enable
gluster volume set ovirt-data cluster.eager-lock enable
gluster volume set ovirt-data performance.stat-prefetch off
gluster volume set ovirt-data performance.io-cache off
gluster volume set ovirt-data performance.read-ahead off
gluster volume set ovirt-data performance.quick-read off
gluster volume set ovirt-data auth.allow \*
gluster volume set ovirt-data user.cifs enable
gluster volume set ovirt-data nfs.disable off

2)重复 测试用例01
等待几秒后可以发现,已经切换到备用节点,且通过ss -ant dst :49152可以验证是连接到节点n34上。
[root@n86 ~]# ls /data/test/
09cb8372-a68d-47dc-962e-70b5225be6bc  __DIRECT_IO_TEST__
[root@n86 ~]# cd /data/test/
[root@n86 test]# touch 1111
[root@n86 test]# ls
09cb8372-a68d-47dc-962e-70b5225be6bc  1111  __DIRECT_IO_TEST__
上述说明n33失效后,集群依然可以写入数据。

3)ovirt页面的状态
数据中心:无响应
主机:n33 无响应; n34 正常
data域:有效
虚拟机:在n33上运行的vm处于未知状态无法做任何操作(即无法强行关闭损失内存的数据,然后在其他host上启动这个vm),在n34上运行的vm正常

4)恢复
启用网卡后,n33恢复正常,虚拟机处于暂停状态的异常无法直接启动,通过先关机后再启动后恢复可用。



3、【测试用例04】禁用quorum 初步符合需求,此时,ovirt-engine的页面中,如何迁移失效节点上的虚拟机呢?
此时,n33 已经下线,但glusterfs服务正常,在该节点上运行的vm处于未知状态,无法做任何操作。
选择 已下线的节点n33 的右键菜单:“确认主机已经重启”
根据提示:在没有正确手动重启的主机上执行这个操作可能会导致虚拟机在多个主机上启动时存储损坏。
确认操作即可。

结果:符合预期。虚拟机自动迁移到 n33 上。
注:恢复n33前,建议先重启一次。



五、小结
本文探讨了初期只有2个节点时,ovirt和glusterfs如何使用,当然,后续应及时的增加更多的节点到集群中。