如何通过NFS共享存储部署KVM双节点高可用群集
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章给大家分享的是有关如何通过NFS共享存储部署KVM双节点高可用群集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。网络文件系统是FreeBSD支持的文件系统中的一种,
千家信息网最后更新 2025年11月13日如何通过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安全错误
数据库的锁怎样保障安全
在央视网做软件开发
游戏防封服务器
域控服务器搭建网络图
儿童防范网络安全知识
数据库查询怎样合并字段相同值
网络安全工作的建议
应用软件开发者属于什么专业
嵌入式数据库技术的现状
http搭建代理服务器
中国十大软件开发技术公司
泗阳农村商业银行软件开发
异构数据库迁移问题
nba2k连不到服务器
软件开发项目奖金分配公式
激战2想扫图去哪个服务器
服务器调试配置
服务器托管的特点是( )
梦幻代理服务器连接失败
软件开发翻译合同模板
青岛ntp网络时间服务器
qt5的数据库如何入手
数据库外键和主键怎么一起打
串口屏应用软件开发
游戏公司后端锁服务器
做好网络安全守护者
中信银行软件开发技术面试
幻塔哪个服务器更好
宝德视屏解码服务器
金山公司对网络安全的贡献
服务器如何设置共享权限