群集资源约束
DLM->CLVM->File System->Virtual Domain
规划设计
网络划分
业务网 心跳 存储
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
stor 192.168.160.22 10.0.1.250
node1和node2都是不变的。
配置iSCSI存储
iSCSI Target提供
1、存储资源
2、stonith资源
以前做过target配置,具体见KVM学习(八)仿照上次弄好的那个iSCSI target
新硬盘sdb转成linux lvm
pvcreate /dev/sdb1
vgcreate vgiscsistor1 /dev/sdb1
lvcreate -n lv1 vgiscsistor1 -l 100%FREE
mkfs.xfs /dev/vgiscsistor1/lv1
mkdir /labstor1
vi /etc/fstab
最后加上
/dev/vgiscsistor1/lv1 /labstor1 xfs defaults 0 0
mount /labstor1/
targetcli,创建target
cd /iscsi
create iqn.2020-02.qiushan.com:stor1
配置portal和luns
cd backstores/fileio
create disk01 /labstor1/disk01.img 1G
create disk02 /labstor1/disk02.img 10G
cd /iscsi/iqn.2020-02.qiushan.com:stor1/tpg1/luns
create /backstores/fileio/disk01
create /backstores/fileio/disk02
设置访问控制列表
切换node1
vi /etc/iscsi/initiatorname.iscsi
配置node1的iqn为
iqn.2020-02.com.qiushan:node1
配置node2的iqn为
iqn.2020-02.com.qiushan:node2
切换iscsi
cd /iscsi/iqn.2020-02.qiushan.com:stor1/tpg1/acls
create iqn.2020-02.com.qiushan:node1
create iqn.2020-02.com.qiushan:node2
cd /
saveconfig
firewall-cmd --add-service=iscsi-target --permanent
firewall-cmd --reload
切换导node1
iscsiadm -m discovery -t sendtargets -p 192.168.160.22
iscsiadm -d2 -m node --login
配置stonith
切换到node1
找到disk01的wwn号
ll /dev/disk/by-id/ | grep sdb
在群集启动的情况下:
pcs stonith create scsi-shooter fence_scsi pcmk_host_list="node1-cr node2-cr" devices="/dev/disk/by-id/wwn-0x60014058b066f1872b94910b27fe3042" meta provides=unfencing
配置DLM
除了要分布式文件系统GFS外,我们还需要在每个节点上安装分布式的锁管理器
node1、2
yum -y install gfs2-utils dlm
DLM的资源是克隆性的资源,就是在群集的每个节点上都要运行副本。
pcs resource create dlm ocf:pacemaker:controid op monitor interval=30s on-fail=fence clone interleave=true ordered=true
额,我这里提示我input/output error
删了重做
pcs resource delete dlm
pcs cluster cib dlm_cfg
pcs -f dlm_cfg resource create dlm ocf:pacemaker:controld op monitor interval=60s
pcs -f dlm_cfg resource clone dlm clone-max=2 clone-node-max=1
pcs cluster cib-push dlm_cfg
这次ok
配置CLVM
node1,2
CLVM允许一个集群的主机通过LVM管理共享存储,clvmd是CLVM的核心,作为pacemaker一个子进程来运行。它是依赖与dlm的。
yum -y install lvm2-cluster
启用基于群集的lvm插件,用命令修改配置文件lvm.conf
lvmconf --enable-cluster
重启node1,2
添加克隆的资源,在每个节点上运行clvmd
pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
配置约束:
clmvd必须在dlm启动后启动,而且必须在同一个节点上。
次序约束
pcs constraint order start dlm-clone then clvmd-clone
位置约束
pcs constraint colocation add clvmd-clone with dlm-clone
把那个10G的硬盘分区
vgcreate,
创建lv,如果node2还没显示出vg,lv在node1上无法创建
在两个节点都能看到
配置GFS2
mkfs.gfs2 -p lock_dlm -j 2 -t cluster1:node1 /dev/vmvg0/lvvm0
格式化的时候会询问是否删除掉符号连接,y。
向群集中添加GFS2文件系统
添加克隆的资源,即在每个节点上均挂载文件系统。
给node1,2创建目录/vm1(和nfs区分开)
pcs resource create VMFS Filesystem device="/dev/vmvg0/lvvm0" directory="/vm1" fstype="gfs2" clone
其实是一个mount操作
配置约束:
GFS2必须在clvmd启动后启动,而且必须在同一个节点上。
pcs constraint order clvmd-clone then VMFS-clone
pcs constraint colocation add VMFS-clone with clvmd-clone
配置SELinux
semanage fcontext -a -t virt_image_t "/vm1(/.*)?"
restorecon -R -v /vm1
向群集添加虚拟机
老样子移动一个虚拟机镜像和配置文件到存储/vm1
配置文件的source改成/vm1/下
配置防火墙,原先都配过了。
资源创建和上回nfs一样
virsh undefine centos7.0
pcs resource create centos7_res VirtualDomain \
hypervisor="qemu:///system" \
config="/vm1/qemu_config/centos7.0.xml" \
meta allow-migrate="true"
pcs constraint order start VMFS-clone then centos7_res