这篇文章给大家分享的是有关如何通过NFS共享存储部署KVM双节点高可用群集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
网络文件系统是FreeBSD支持的文件系统中的一种, 也被称为 NFS。 NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件 一样访问远端系统上的文件。
实验目的:运行的虚拟机可以在线平滑迁移,不会终端虚拟机运行的业务 高可用架构:pacemaker+corosync 并由pcs进行管理 系统环境:三台机器都是最新的centos7.4 所需组件: nfs,pcs,pacemeker,corosync,libvirtd,qemu,qemu-img
#虚拟化软件安装yum groups install -y "Virtualization Platform "yum groups install -y "Virtualization Hypervisor "yum groups install -y "Virtualization Tools "yum groups install -y "Virtualization Client "#群集及配套软件安装yum install bash-completion ntpdate tigervnc-server nfs-utils -y yum install pacemaker corosync pcs psmisc policycoreutils-python fence-agents-all -y#升级标准的kvm组件为ev版本(可选)yum install centos-release-qemu-ev -y yum install qemu-kvm-ev -y#或则运行下面这条命令,一步到位yum groups install -y "Virtualization Platform " && yum groups install -y "Virtualization Hypervisor " && yum groups install -y "Virtualization Tools " && yum groups install -y "Virtualization Client " && yum install bash-completion ntpdate tigervnc-server centos-release-qemu-ev nfs-utils -y && yum install pacemaker corosync pcs psmisc policycoreutils-python fence-agents-all qemu-kvm-ev -y && yum update -y && reboot
1:设置各主机名,hosts文件(下面的表项),启用selinux及firewalld防火墙 vim /etc/hosts 192.168.1.31 kvm-pt1 192.168.1.32 kvm-pt2 172.168.1.33 kvm-nfs 10.0.0.31 node1 10.0.0.32 node2 2:ssh key互信 ssh-keygen -t rsa -P ''ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1 #到自己免密码ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2 #到node2免密码(双向)3:时区 cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 4:定时时间同步 yum install ntpdate -y crontab -e */30 * * * * /usr/sbin/ntpdate time.windows.com &> /dev/null 5:防火墙 firewall-cmd --permanent --add-service=high-availability firewall-cmd --zone=trusted --add-source=10.0.0.0/24 --permanent firewall-cmd --zone=trusted --add-source=192.168.1.0/24 --permanent firewall-cmd --zone=trusted --add-source=172.168.1.0/24 --permanent firewall-cmd --reload 6:分别在kvm-pt1,kvm-pt2,kvm-nfs三台机器上创建目录 mkdir /kvm-hosts
将/kvm-hosts目录共享出来,并让kvm-pt1和kvm-pt2开机挂载到对应目录
yum -y install nfs-utils rpcbind#设置共享目录vim /etc/exports /kvm-hosts *(rw,async,no_root_squash)#启动nfs服务,并设为开机启动systemctl start nfs systemctl start rpcbind systemctl enable nfs systemctl enable rpcbind#在kvm-nfs主机上,firewalld放行nfs服务端口firewall-cmd --permanent --add-service=nfs firewall-cmd --permanent --add-service=rpc-bind firewall-cmd --permanent --add-service=mountd firewall-cmd --reload firewall-cmd --list-all #查看firewalld方向的资源#分别在kvm-pt1,kvm-pt2上测试是否可以挂载kvm-nfs上的资源(在kvm-pt1和kvm-pt2上进行)#编辑此文件实现开机自动挂载vim /etc/fstab kvm-nfs:/kvm-hosts /kvm-hosts nfs _netdev 0 0
systemctl start pcsd systemctl enable pcsd systemctl status pcsd.service #查看状态echo "7845" | passwd --stdin hacluster#配置hacluster账户密码(安装群集软件时,默认创建的用户,但密码是禁用的)(node节点之间的此用户密码必须相同)pcs cluster auth node1 node2 -u hacluster -p 7845 pcs cluster setup --name kvm-ha-cluster node1 node2 pcs cluster start --all pcs cluster enable --all
#先创建虚拟机磁盘文件(kvm-pt1已经将nfs的/kvm-hosts目录挂载到本机的/kvm-hosts目录下了)qemu-img create -f qcow2 /kvm-hosts/web01.qcow2 10G#先解决selinux对kvm远程虚拟机的限制(此操作,需要在kvm-pt1和kvm-pt2上都执行)setsebool -P virt_use_nfs 1#在防火墙上放行vnc服务,否在其他主机virt-manage无法连接kvm主机firewall-cmd --permanent --add-service=vnc-server firewall-cmd --reload firewall-cmd --list-all#创建虚拟机(并安装完成)virt-install --name web01 --virt-type kvm --ram 1024 --cdrom=/kvm-hosts/CentOS-7-x86_64-Minimal-1708.iso --disk path=/kvm-hosts/web01.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7
#放行防火墙端口#配置防火墙规则(方向如下流量)TCP:端口2224,3121,21064 UDP:端口5405 DLM(如使用clvm/GFS2的DLM锁管理器):端口21064 firewall-cmd --permanent --add-port=16509/tcp firewall-cmd --permanent --add-port=49152-49215/tcp firewall-cmd --reload firewall-cmd --list-all#在kvm-pt1上使用virsh migrate命令进行在线迁移(并在kvm-pt2上进行回迁)virsh migrate web01 qemu+ssh://root@node2/system --live --unsafe --persistent --undefinesource#在kvm-pt1上,将虚拟机的xml文件导出一份到共享存储上,并正确命名virsh dumpxml web01 > /kvm-hosts/web01.xml#在kvm-pt1上,取消定义刚才创建的虚拟机virsh undefine web01
此实验环境都是虚拟出来的,并没有隔离设备,所以这里要关闭它,才能继续实验。
pcs property set stonith-enabled=false
每个虚拟机都需要创建一个资源,这是将虚拟机控制权交由pcs来管理了
pcs resource create web01_res VirtualDomain \ hypervisor="qemu:///system" \ config="/kvm-hosts/hosts-xml/web01.xml" \ migration_transport="ssh" \ meta allow-migrate="true"#meta allow-migrate="true"决定了迁移模式
测试结果显示,标准版的kvm是一端shutdown,另一端然后起来,但是做了kvm升级yum install qemu-kvm-ev的就是平滑迁移,不中断服务
#移动资源pcs resource move web01_res #会出现警告,告诉你迁移是有成本的(它会创建一个id,这是一个localtion位置约束,值为负的,即再也无法迁移回来了)pcs resource move web01_res node2#节点待机pcs cluster standby node2 #或则取消待机pcs cluster unstandby node2#节点停机pcs cluster stop pcs resource desribe ocf:heartbeat:VirtualDomain #查看VirtualDomain脚本怎么写
pcs constraint --full #查看产生的所有localtion位置约束#删除位置约束pcs constraint remove cli-ban-web01_res-on-node2 #删除后,就能启动虚拟机了
感谢各位的阅读!关于“如何通过NFS共享存储部署KVM双节点高可用群集”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。