-
集群拓扑图
粉色 public 线表示与 WEB 相连,浮动 IP 设置在这条线上 蓝色与绿色都为 storage,表示节点与资源之间 红色 priate 属于节点间通讯的线
-
实验步骤
实验需注意,有时在网页中调试时找不到自己要的或效果没出现,则将页面刷新然后等待一会儿。
下图为实验的基础环境 ,分别有 classroom 、nodea 、nodeb 、nodec 、noded 、workstation;6 台机器,其中 classroom 当作资源站,目前实验需要用 nodea 、nodeb 、nodec;3 台
第一步 :分别打开 classroom 、nodea 、nodeb 、nodec, 在 nodea 、nodeb 、nodec 上安装 PCS 包;
第二步:重启 PCS 服务(systemctl restart pcsd ;systemctl enable pcsd)并关闭防火墙;为三个节点的 hacluster 用户设置相同的密码;
第三步:在任意一台节点输入 pcs cluster auth nodea.cluster0.example.com nodeb.cluster0.example.com nodec.cluster0.example.com;然后用 hacluster 用户通过认;
第四部:通过火狐浏览器登录(https ://nodea.cluster0.example.com:2224),选择添加信任此网站并用 hacluster 账户登录;
① Create New 新建一个集群
① 集群名
② ③ ④ 填我们的节点
-
新建一个资源,当我们还没有配置fence时,我们要在cluster properties中将 stonith enable的勾去掉,否则资源不会running
Class/Provider ofc :hertbeat
①选择 IPaddr2
②为这个资源取个名字
③此IP为浮动 IP
有节点、有资源,最基本的集群完成了,quorum policy是 集群存货的要素。我们有三个节点,假设每个节点有一张票,我们有三个节点那么需要两个节点存活才算是一个集群,算法为 N/2+1 ,N 代表票数;
用Corosync-quorumtool -l 显示所有节点的信息与票数;
通过 vim /etc/corosync/corosync.conf/更改我们的票数,里面有我们节点的信息,在某个节点名下添加quorum-votes: 3 则此节点的票数会变为 3; 写完后先 stop 所有节点;
通过 pcs cluster sync 同步所有节点信息;
在此实验环境中,更改票数后 ,当 A 和 和 B 都DOWN 了,只有 C 存在, 这个集群还是存活的 , 但只要 C 节点 DOWN 了,无论A与B是否正常运行,这个集群都算挂了。
在实体机与3台节点上安装 fence (yum -y install fence-virt\*)
第一步:在 etc下新建一个 cluster 的目录;每一台PC都要新建这个目录
第二步:在cluster下做一个密钥(dd if=/dev/zero of=fence_xvm.key bs=4k count=1)在任意一台终端上做即可;
第三步:将我们的密钥完整,在做密钥的PC上输入 fence_virtd -c;到了 ①时输入br0(br0是这台PC的真实网卡,可以当作桥接器),其它选项全部默认;
第四步:通过 scp 将钥匙复制带其它3个机器的/etc/cluster/下( 例:scp /etc/cluster/fence_xvm.key root@nodea.cluster0.example.com:/etc/cluster)
③先择 先择 fence-xvm
④取一个名字
⑤此处填写节点的机器名
①与②配置的是节点的优先级,数字越大优先级越高,优先级决定浮动 IP 与资源所在位置,优先级高的为主节点;
③如果填写resource-tickiness ,它的值将决定浮动 IP 是否会飘,当此值加上备份节点优先级的值大于主节点的值时,主节点从 standby到unstandby ,IP不会浮动到主节点;
-
实验效果 :
当resource 值+级 备份节点优先级 < 主节点优先级 主节点优先级
B standby到unstandby 时资源的所在位置(可通过 crm_mon -1 查询)
当resource 值+级 备份节点优先级 > 主节点优先级 主节点优先级
B standby到unstandby 时资源的所在位置
①is-manage决定浮动 IP是否会飘,当值为 false 时IP 不会因节点挂了而飘到备份节点
-
实验效果
还有一个参数为 priority 这个参数的值不决定节点,而是比较所有的资源的值 , 比这个参数的值低的服务都会被DOWN掉
-
ISCSI 共享存储服务及多路径 共享存储服务及多路径
首先安装 targetcli ;新建一个 virtio 的目录
通过target 去配置
cd backstores/fileio
create iscsi_store
cd iscsi
create iqn.2016-09.com.example:storage
cd iqn.2016-09.com.example:storage/tpg1/acls
create iqn.2016-09.com.example:node luns
create /backstores/fileio/iscsi_store
配置完成后退到初始目录,通过 ls 看到的效果如下图
然后将服务重启systemctl restart target;systemctl enable target
在每个节点安装iscsi (yum -y install iscsi*)
更改每个节点的initiatornam.isicsi 文件,将指向改为 iqn.2016-09.com.example:node
将节点与iscsi 连接,每个节点都要做;
配置如下
iscsiadm -m discovery -t st -p 192.168.1.13
Iscsiadm -m node -T iqn.2016-09.com.example:storage -p 192.168.1.13 -l(-l 连接-u 断开)
再使用 192.168.2.0 网段做一条作为备份
iscsiadm -m discovery -t st -p 192.168.2.13
Iscsiadm -m node -T iqn.2016-09.com.example:storage -p 192.168.2.13 -l
多路径
在每个节点上安装multipath (yum -y install device-mapper-multipath)通过 modprobe dm_multipath 在当前添加这个模块,通过 echo modprobe dm_multipath >> /etc/rc.d/rc.local 写入开机脚本
①multipath -l 查看当前信息
②将此路径下的multipath.conf复制到 etc 下然后重启服务(systemctl restart multipath;systemctl enable multipath)
vim /etc/multipath.conf
将 ①处改为no,不需要自动生成名字,可以自己修改;
如下图取消注释后
①将UUID 复制到 wwid 处(UUID 是独一无二的,通过 scis_id -u -g /dev/sda 查询, 如果无法使用 scis_id 这个指令,可以通过 find / -name scsi_id 查询路径,将路径复制到家目录的.bash_profile中,位置如下图;
② 可以取一个自己想要的名字;通过 scp 将multipath.conf 复制到其它节点
通过
fdisk /dev/mapper/charles
partprobe /dev/mapper/charles
mkfs.xfs /dev/mapper/charles
使其生效,通过任意节点都可查询
-
实验效果看 ①
yum -y install dlm lvm2-cluster 在每个节点安装锁机制并将逻辑卷升级为集群级,然后将单机版的逻辑卷关闭systemctl stop lvm2-lvmetad;systemctl disable lvm2-lvmetad ( 强调每个节点都做 )
通过 lvmconf --enable-cluster 将集群更改为集群级
进入配置文件/etc/lvm/lvm.conf 查看
①为查看结果(每个节点配置会同步,但以防万一,每个节点都检查一下)
然后开始配置逻辑卷
配置如下图 ① ② ③
④ 检查是否成功,每个节点都会同步,都可以查看
-
实验效果
紧接着写入集群中
锁机制配置如下图 ① ② ③
④取个名字
LVM 配置如下图① ② ③
④ 取个名字
然后在锁机制中添加一条规则,如②处,表示先启用锁机制再启用LVM
安装 gfs2 (yum -y install gfs2-utils; 每个节点都要装)gfs2 是集群文件系统
安装好后配置如下,只需在一个节点配置
①mkfs.gfs2 -p lock_dlm -t cluster_one:myg2 -j 4 /dev/cluster_vg1/cluster_lv1
t 后面接集群的名字;j 是日志,有三个节点所以最小为 3
②输入Y就完成了
将这个文件系统写入集群配置中
①heartbeat
②Filesystem
③取个名字
④逻辑卷的具体路径
⑤挂载路径
⑥文件类型 gfs2
⑦代表启用 代表启用ACL和磁盘配额
将VIP、WEB、WEB-FS 资源绑定,顺序如下标号,打勾顺序决定资源启动的顺序
-
最后配置 rrp 心跳
①查看当前心跳线的位置(corosync-cfgtool -s)
①corosync主配置文件
② 模版
①心跳开关(后来写入的)
②指定心跳接口的配置
③第二个心跳指定接口,为心跳线做冗余
保存退出
pcs cluster stop --all 先将集群节点都停掉
pcs cluster sync 将所有节点同步
pcs cluster start --all 启动所有节点
然后再查询,信息如下图
实验完成
-
注意:集群名不能有空格,否则在格式成gfs2时会失败;在linux7中fence没配置会导致集群中很多服务泛红。
如有错误,谢谢提醒,初次HA集群实验报告