RH436 Day3 课后总结

在集群中存在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资源:

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

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

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

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

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

#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       查看资源运行在哪个节点

现在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的顺序就是组里的启动顺序

#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之后

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

#pcs resource group list

此时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    出现了如下图所示的共享文件夹就是正常

集群中添加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 [email protected]‘%‘ 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虚拟机上

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

然后进入系统,#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 nfsclient ocf:heartbeat:exportfs clientspec=192.168.100.0/24 options=rw,sync,no_root_squash  directory=/nfs1 fs_id=0 --group group3

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

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

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

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

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

时间: 2024-10-29 19:11:29

RH436 Day3 课后总结的相关文章

问题 1018: C语言程序设计教程(第三版)课后习题6.8

/******************************************************************** @file Main.cpp @date 2017-05-12 @author Zoro_Tiger @brief 问题 1018: C语言程序设计教程(第三版)课后习题6.8 http://www.dotcpp.com/oj/problem1018.html *************************************************

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

问题 1041: C语言程序设计教程(第三版)课后习题9.8

/******************************************************************** @file Main.cpp @date 2017-05-28 22:02:55 @author Zoro_Tiger @brief 问题 1041: C语言程序设计教程(第三版)课后习题9.8 http://www.dotcpp.com/oj/problem1041.html ****************************************

问题 1040: C语言程序设计教程(第三版)课后习题9.6

/******************************************************************** @file Main.cpp @date 2017-05-28 21:57:02 @author Zoro_Tiger @brief 问题 1040: C语言程序设计教程(第三版)课后习题9.6 http://www.dotcpp.com/oj/problem1040.html ****************************************

问题 1042: C语言程序设计教程(第三版)课后习题9.10

/******************************************************************** @file Main.cpp @date 2017-05-28 22:10:10 @author Zoro_Tiger @brief 问题 1042: C语言程序设计教程(第三版)课后习题9.10 http://www.dotcpp.com/oj/problem1042.html ***************************************

问题 1023: C语言程序设计教程(第三版)课后习题7.2

/******************************************************************** @file Main.cpp @date 2017-05-20 22:05:39 @author Zoro_Tiger @brief 问题 1023: C语言程序设计教程(第三版)课后习题7.2 http://www.dotcpp.com/oj/problem1023.html ****************************************

问题 1008: C语言程序设计教程(第三版)课后习题5.6

/******************************************************************** @file Main.cpp @date 2017-5-8 @author Zoro_Tiger @brief 问题 1008: C语言程序设计教程(第三版)课后习题5.6 http://www.dotcpp.com/oj/problem1008.html ***************************************************

问题 1006: C语言程序设计教程(第三版)课后习题5.4

/******************************************************************** @file Main.cpp @date 2017-05-07 @author Zoro_Tiger @brief 问题 1006: C语言程序设计教程(第三版)课后习题5.4 http://www.dotcpp.com/oj/problem1006.html *************************************************

课后作业

课后作业 "类型转换"知识点考核-2 程序源代码: 1 class Mammal{} 2 class Dog extends Mammal {} 3 class Cat extends Mammal{} 4   5 public class TestCast 6 { 7      public static void main(String args[]) 8      { 9             Mammal m; 10             Dog d=new Dog();