KVM学习(十八)基于NFS的高可用群集

实验规划

在KVM学习(十七)中我已经搭建了一个由node1,node2,ntp组成的群集,这次再将NFS服务器加进去。
在这里插入图片描述
网络规划上,node1和node2三网卡,nfs服务器双网卡

              业务网             心跳                存储
node1    192.168.160.11      172.16.1.231        10.0.1.231
node2    192.168.160.12      172.16.1.232        10.0.1.232
ntp      192.168.160.20
nfs	     192.168.160.21                          10.0.1.240

首先配置网络
注意VM Workstation player由于缺少功能是没有办法进行实验的,需要VM Workstation。
点击编辑–>虚拟网络配置器
除了已有的VMnet8、VMnet1,再添加两个网络。
在这里插入图片描述
使用本地DHCP服务将IP地址分配给虚拟机去掉勾选
子网一个设定成172.16.1.0,一个设成10.0.1.0
然后给node1添加两块网卡:
原有的网卡请选择VMnet8(NAT模式)
在这里插入图片描述
新添加的网卡一个选择VMnet2,一个选择VMnet3
在这里插入图片描述
然后打开node1

ip addr

应该是有ens33,ens34,ens38三块网卡,其中ens33有ip,其他两块没有ip。
我们需要给ens34,ens38创建配置文件他们才能使用

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens34
cp ifcfg-ens33 ifcfg-ens38
vi ifcfg-ens34
vi ifcfg-ens38

改动name,device,ipaddr,gateway,hwaddr即可
在这里插入图片描述

systemctl restart network
ip addr

配置 /etc/hosts
在这里插入图片描述
node1的三个ip地址就设置完了,其他节点同理。
在这里插入图片描述
配置nfs
NFS服务器与前面一样,详情查看KVM学习(九)
安装nfs-utils
防火墙:

systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=bind
firewall-cmd --permanent --add=service=mountd
firewall-cmd --reload

配置/etc/exports
在每个节点测试读写
在node1,2上mount nfs服务器
配置/etc/fstab

mkdir /vm
mount 10.0.1.240:/nfsshare /vm

配置SELinux

setsebool -P virt_use_nfs 1

安装测试用的虚拟机
node1和node2安装kvm模块包

modprobe kvm
yum install qemu-kvm qemu-img  virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer -y

用virt-install在本地安装一个虚拟机centos7m
将centos7m的映像文件mv到/vm下,修改配置文件,把device的地址改成/vm/centos7m.qcow2

virsh edit centos7.0

在这里插入图片描述
测试迁移,用virt-manager和virsh均可。

创建虚拟机资源
在群集中,虚拟机是一种资源,所有节点都应该可以访问虚拟机配置文件和磁盘镜像文件,虚拟机也应该是由群集软件控制而不是libvirtd控制。
具体做法是把虚拟机的镜像和配置文件都放到共享存储上,新建一个放配置文件的目录qemu_config,然后用virsh取消对虚拟机的控制,再通过pcs创建虚拟机

上次实验已经建好了一个群集,把它删了

pcs cluster destroy --all

然后重新验证,当然我们上回给hacluster设的密码是还在的。这次创建一个群集用上心跳网ip

pcs cluster auth node1 node2
pcs cluster setup --name cluster1 node1-cr node2-cr

/etc/corosync/corosync.conf可以看到群集的信息

pcs cluster start --all

把配置文件弄到共享里

mkdir /vm/qemu_config
cd /etc/libvirt/qemu/
cp centos7.0.xml /vm/qemu_config

转移控制权

virsh undefine centos7.0
pcs resource create centos7m_res VirtualDomain \
hypervisor="qemu:///system" \
config="/vm/qemu_config/centos7.0.xml" \

然后从pcs里可以看到这个资源

pcs status

由于还没有stonith devices ,所以是stopped
在这里插入图片描述
先不配置stonith,设成disable

pcs property set stonith-enabled=false

可以看到虚拟机已经在node1上运行起来了,这时用virsh可以看到centos7.0是running
在这里插入图片描述
下面迁移centos7.0

pcs resource move centos7m_res node2-cr

没有成功,并且centos7.0重启了
在这里插入图片描述
查找原因:
nfs配置是否正常?
node2有没有安装libvirt?
node2有没有启动kvm?
node2的cpu有没有开启intelVT?
调整完毕,node2可以迁移了。
测试群集
节点待机:

pcs cluster standby/unstandby node2-cr

节点停机:

pcs cluster stop

配置stonith
在所有节点上安装agent,实验选用IPMI。
IPMI是一个标准的带外管理的方式,很多服务器都配置一个单独的网卡,网线连接通过IPMI一些标准的命令对计算机进行加电、断电、监控操作。

yum -y install fence-agents-ipmilan

配置群集
这里-f表示不是立即生效

cd
pcs cluster cib stonith_cfg //生成配置文件
pcs -f stonith_cfg stonith create ipmi-fencing fence_ipmilan pcmk_host_list="node1 node2" ipaddr=10.0.1.1 login=testuser passwd=123456 op monitor interval=60s
pcs -f stonith_cfg status
//这次我们有stonith,把原先那个false改回来
pcs -f stonith_cfg property set stonith-enabled=true
pcs cluster cib-push stonith_cfg

这样就和真实生产中一样有了隔离设备
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值