在集群中存在vip,httpd等资源时,我们希望vip和httpd同时运行在node1或者node2上,如果vip运行在node1上,httpd运行在node2上,此时我们将无法正常访问集群中的httpd,所以我们将vip和httpd加入到一个服务组(group)中。

1.在node1和node2中同时安装httpd

    #yum install httpd -y

    #systemctl enable httpd

    #systemctl start httpd

2.查看集群中已经添加的资源

    #pcs resource show

    如下图所示,我已经添加过vip资源:

    wKiom1bSy8OCGw6DAABchmtvc5E539.jpg

    #pcs resource list  查看所有可以添加的资源

    #pcs resource list | grep http  查看有没有http的资源可以添加

    wKioL1bSzo2yNMG0AABEv36ggYI440.jpg

    #pcs resource describe ocf:heartbeat:IPaddr2 查看添加过的资源ocf:heartbeat:IPaddr2的各种参数

    RH436 Day3 课后总结_第1张图片

    我们此时添加一个额外的vip1练习一下:

    #pcs resource create vip1 ocf:heartbeat:IPaddr2 ip=192.168.100.200 cidr_netmask=24 op monitor interval=20s   添加一个vip1

    RH436 Day3 课后总结_第2张图片

    #pcs resource show  查看添加的资源有vip和vip1

    #pcs resource show vip1   查看vip1资源的详细信息

    #pcs resource update vip1 ip=192.168.100.201  修改vip1资源的ip为192.168.100.201

    #pcs resource delete vip1   删除资源vip1

3.创建资源httpd

    #pcs resource create httpd systemd:httpd  创建一个httpd资源名字叫httpd

    注意:千万不要在集群节点中手动开启和关闭集群的资源

    #pcs resource show   查看集群中存在的资源

    #crm_mon -1       查看资源运行在哪个节点

    RH436 Day3 课后总结_第3张图片

    现在vip和httpd都运行在node2上

    #pcs resource move vip node1  将vip移动到node1上运行

    此时,vip在node1上运行,httpd在node2上运行,我们发现此时无法访问httpd了

    这时我们创建一个服务组,让vip和httpd始终在一个组里运行(vip在node1上,httpd也在node1上)

4.将资源添加到一个服务组

    什么是group?相关的一系列资源,如果放一个组里,同一个组里的资源始终会在同一节点运行

    #pcs resource group list  查看存在的组

    #pcs resource group add group1 vip httpd  创建一个group1组,并添加vip,httpd到group1中,此时vip,httpd的顺序就是组里的启动顺序

    wKioL1bS13-ABlcHAACJllzN4R0692.jpg

    #pcs resource group remove group1  删除组group1

    其实创建资源的时候可以直接添加到组里,如下所示:

    #pcs resource create vip1 ocf:heartbeat:IPaddr2 ip=192.168.100.200 cidr_netmask=24 --group1    创建资源vip1并添加到group1中,如此时没有group1则自动创建

    #pcs resource group add group1 vip --before vip1 将vip也添加到group1中,顺序排在vip1之前

    #pcs resource group add group1 httpd --after vip 将httpd也添加到group1中,顺序在vip之后

    wKioL1bS2pyQ3ZedAADMjjPEN_c402.jpg

    #pcs resource group remove group1 vip1 将vip1从group1中删除

    #pcs resource group list

    wKiom1bS3DLz7L93AACCyGo0sng098.jpg

    此时vip和httpd都在一个组里,我们移动vip到node1上,则httpd也跟着移动到node1上,不会出现运行在不同节点上的情况。


Apache的高可用:

1. 创建集群vip,ip为192.168.100.100   我们已经创建了

2.在node1和node2上安装httpd并设开机启动,创建为集群的资源,我们已经创建了

3.设置nfs共享存储

   在宿主机上:

   #mkdir /httpd

   #vim /etc/exports

    /httpd  192.168.100.0/24(rw,sync)

   #systemctcl restart nfs

   #echo "this is on node" > /httpd/index.html

   在node1上

   #showmount -e node    出现了如下图所示的共享文件夹就是正常

    wKiom1bS9gCyvT-DAABnvKFkvsc241.jpg

集群中添加nfs资源#pcs resource list | grep filesystem  查看filesystem的资源代理名称#pcs resource create nfs ocf:heartbeat:Filesystem params device="192.168.100.1:/httpd" directory="/var/www/html" fstype="nfs" --group group1 --before httpd

  此时在宿主机中打开浏览器访问http:192.168.100.100即可显示页面,其中一台节点出现故障,另一台也正常挂载共享存储,网站依然正常访问。


Mariadb的高可用:

1.添加vip1,ip地址为192.168.100.101

   #pcs resource create vip1 ocf:heartbeat:IPaddr2 ip=192.168.100.101 cidr_netmask=24 --group group2

2.在集群中添加mariadb的资源

    在宿主机,node1,node2上

        #yum install mariadb mariadb-server -y

        #systemctl enable mariadb

        #systemctl start mariadb

      注意:如果mairadb启动出错,

     #mysql_install_db --datadir="/var/lib/mysql" --user="mysql"

       在node1和node2中

        #mysql

         >grant all on *.* to root@'%' identified by 'redhat';

          >quit;

    #pcs resource create mysql systemd:mariadb --group group2

3.在集群中添加共享存储资源

   在宿主机上

    #mkdir /mysql

    #vim /etc/exports

        /mysql   192.168.100.0/24(rw,sync,no_root_squash)

    #systemctl restart nfs

    #exportfs

   在node1中

    #pcs resource create mysql-storage Filesystem params device="192.168.100.1/mysql" directory="/var/lib/mysql" fstype="nfs" --group group2 --before mysql   

  此时mariadb的高可用配置完成,可以在宿主机上登录测试

    #mysql -h 192.168.100.101 -uroot -predhat

      >create database aa;

      >show databases;

     >quit;

  然后转移资源到另一个节点测试,看看数据库aa是否存在。

  注意,转移资源之前一定要退出数据库。



NFS的高可用:

1.添加vip2,ip地址为192.168.100.102

   #pcs resource create vip2 ocf:heartbeat:IPaddr2 ip=192.168.100.102 cidr_netmask=24 --group group3

2.添加资源Filesystem,挂载一个目录,即需要共享出去的目录

   在宿主机上#virt-manager 打开虚拟系统管理器

   在node1和node2虚拟机上

   RH436 Day3 课后总结_第4张图片

   点添加硬件,然后添加一个硬盘,总线类型为VirtIO,如下图:

   RH436 Day3 课后总结_第5张图片

   然后进入系统,#fdisk -l  发现多了一个vdb设备

   #fdisk /dev/vdb  创建一个2G的vdb1

   #partprobe /dev/vdb

   #mkfs.ext4 /dev/vdb1

   #pcs resource create nfs_fs ocf:heartbeat:Filesystem device=/dev/vdb1 directory=/nfs1    fstype=ext4 --group group3

3.共享一个目录,即上面挂载的目录

   

   #pcs resource create nfsserver ocf:heartbeat:nfsserver --group group3

   #pcs resource create nfsclient ocf:heartbeat:exportfs clientspec=192.168.100.0/24 options=rw,sync,no_root_squash  directory=/nfs1 fs_id=0 --group group3

   此时,所有的资源运行正常,成功完成NFS的高可用,如下图:

   RH436 Day3 课后总结_第6张图片

   图形界面也可以查看,如下图:

   RH436 Day3 课后总结_第7张图片

    在宿主机上#showmount -e 192.168.100.103 可以验证可挂载,关闭一个节点,另一个节点可以正常提供NFS服务,说明NFS高可用成功配置。


 至此Day 3的课程总结完毕。