如何通过NFS共享存储部署KVM双节点高可用群集
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇文章给大家分享的是有关如何通过NFS共享存储部署KVM双节点高可用群集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。网络文件系统是FreeBSD支持的文件系统中的一种,
千家信息网最后更新 2025年02月19日如何通过NFS共享存储部署KVM双节点高可用群集基于NFS共享存储的KVM双节点高可用群集架构基于NFS共享存储的KVM双节点高可用群集架构
这篇文章给大家分享的是有关如何通过NFS共享存储部署KVM双节点高可用群集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
网络文件系统是FreeBSD支持的文件系统中的一种, 也被称为 NFS。 NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件 一样访问远端系统上的文件。
实验目的:运行的虚拟机可以在线平滑迁移,不会终端虚拟机运行的业务高可用架构:pacemaker+corosync 并由pcs进行管理系统环境:三台机器都是最新的centos7.4所需组件:nfs,pcs,pacemeker,corosync,libvirtd,qemu,qemu-img
约束关系:NFS >> VirtualDomain
kvm宿主节点软件安装
#虚拟化软件安装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 -yyum install pacemaker corosync pcs psmisc policycoreutils-python fence-agents-all -y#升级标准的kvm组件为ev版本(可选)yum install centos-release-qemu-ev -yyum 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
准备阶段:(kvm各个节点都需进行)
1:设置各主机名,hosts文件(下面的表项),启用selinux及firewalld防火墙vim /etc/hosts192.168.1.31 kvm-pt1192.168.1.32 kvm-pt2172.168.1.33 kvm-nfs10.0.0.31 node110.0.0.32 node22: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/localtime4:定时时间同步yum install ntpdate -ycrontab -e*/30 * * * * /usr/sbin/ntpdate time.windows.com &> /dev/null5:防火墙firewall-cmd --permanent --add-service=high-availabilityfirewall-cmd --zone=trusted --add-source=10.0.0.0/24 --permanentfirewall-cmd --zone=trusted --add-source=192.168.1.0/24 --permanentfirewall-cmd --zone=trusted --add-source=172.168.1.0/24 --permanentfirewall-cmd --reload6:分别在kvm-pt1,kvm-pt2,kvm-nfs三台机器上创建目录mkdir /kvm-hosts
第一:配置NFS节点
将/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 nfssystemctl start rpcbindsystemctl enable nfssystemctl enable rpcbind#在kvm-nfs主机上,firewalld放行nfs服务端口firewall-cmd --permanent --add-service=nfsfirewall-cmd --permanent --add-service=rpc-bindfirewall-cmd --permanent --add-service=mountdfirewall-cmd --reloadfirewall-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
第二:配置kvm宿主节点的pcs守护程序
systemctl start pcsdsystemctl enable pcsdsystemctl status pcsd.service #查看状态echo "7845" | passwd --stdin hacluster#配置hacluster账户密码(安装群集软件时,默认创建的用户,但密码是禁用的)(node节点之间的此用户密码必须相同)pcs cluster auth node1 node2 -u hacluster -p 7845pcs cluster setup --name kvm-ha-cluster node1 node2pcs cluster start --allpcs cluster enable --all
第三:在kvm-pt1上创建虚拟机,将磁盘文件放在nfs存储的/kvm-hosts目录下
#先创建虚拟机磁盘文件(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-serverfirewall-cmd --reloadfirewall-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
第四:虚拟机迁移测试(基于共享存储在线迁移:最好要将xml文件和磁盘文件都放在共享存储上)
#放行防火墙端口#配置防火墙规则(方向如下流量)TCP:端口2224,3121,21064UDP:端口5405DLM(如使用clvm/GFS2的DLM锁管理器):端口21064firewall-cmd --permanent --add-port=16509/tcpfirewall-cmd --permanent --add-port=49152-49215/tcpfirewall-cmd --reloadfirewall-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
第五:配置STONITH
此实验环境都是虚拟出来的,并没有隔离设备,所以这里要关闭它,才能继续实验。
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 stoppcs resource desribe ocf:heartbeat:VirtualDomain #查看VirtualDomain脚本怎么写
第八:当迁移时出现负的id时,可能资源无法再次启动了
pcs constraint --full #查看产生的所有localtion位置约束#删除位置约束pcs constraint remove cli-ban-web01_res-on-node2 #删除后,就能启动虚拟机了
感谢各位的阅读!关于"如何通过NFS共享存储部署KVM双节点高可用群集"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
文件
节点
存储
目录
资源
密码
端口
系统
配置
防火
主机
软件
防火墙
服务
测试
位置
架构
用户
磁盘
在线
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
win10 代理服务器无法使用
怎么设置ip地址和dns服务器
服务器安全性部署
网络安全打赛
软件开发 文档 uml
四川零售软件开发软件
linux怎么删除数据库
学软件开发专业
长春软件开发好公司
文件检索数据库怎么弄
帝国神话开服务器要什么配置
20年网络安全事件
网络安全基础的是
吹服务器排隐患
数据库是vb内容吗
财务管理用什么数据库
赤峰软件开发公司招聘
郑州软件开发培训
背单词app数据库如何实现
剑三服务器选错了
数据库的类别
惠普HPDL388pG9服务器
数据库安全性的优点
高青企业管理软件开发
数据库和代码简单么
黄浦区软件开发怎么样
杭州培训软件开发公司
辰帆网络技术工作室
网络安全系统与维护
昌平区网络技术服务成本价