一、实验环境
注意:此篇博客接着RHCS集群架构(一)之Fence实现Nginx高可用写的!!!
1、操作系统
虚拟机系统:redhat6.5
真机:redhat7.2
2、yum源
[rhel6.5]
name=rhel6.5
baseurl=http://10.10.10.250/rhel6.5
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://10.10.10.250/rhel6.5/HighAvailability
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://10.10.10.250/rhel6.5/LoadBalancer
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://10.10.10.250/rhel6.5/ScalableFileSystem
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://10.10.10.250/rhel6.5/ResilientStorage
gpgcheck=0
3、主机名对应IP及安装服务
第一个括号已安装,第二个将安装服务!!!
server1 ====>> 10.10.10.1(配置Nginx、ricci和luci)(iscsi)
server2 ====>> 10.10.10.2(Apache)
server3 ====>> 10.10.10.3(Apache)
server4 ====>> 10.10.10.4(配置Nginx、ricci)(iscsi)
真机 ====>> Fence
二、共享存储iscsi
1、安装iscsi(server1、4)
yum install -y iscsi*
2、安装scsi(server2)
yum install -y scsi*
3、在server2加入一块storage
4、配置targets.conf
vim /etc/tgt/targets.conf
36 # Sample target with one LUN only. Defaults to allow access for all initiat ors:
37
38 <target iqn.2018-04.com.example:server.target1>
39 backing-store /dev/vdb ###用fdisk -l查看自己刚添加进入的设备名
40 </target>
/etc/init.d/tgtd restart
5、测试
(1)通过iscsiadm命令发现设备(server1、4)
iscsiadm -m discovery -t st -p 10.10.10.2 ###发现设备
iscsiadm -m node -l ###登陆
(2)结果
可以用fdisk -l 发现多了个设备/dev/sda
6、对新的设备进行分区、格式化(server1)
(1)分区
fdisk -cu /dev/sda ###分出个4GB
partprobe
(2)格式化设备
mkfs.ext4 /dev/sda1
三、加入数据库
1、下载mysql-server及更新用户和用户组为mysql(server1)
yum install -y mysql-server
mount /dev/sda1 /mnt
/etc/init.d/mysqld restart
cp -rp /var/lib/mysql/* /mnt/
chown -R mysql.mysql /mnt
umount /mnt
2、安装mysql-server及挂载(server4)
yum install -y mysql-server
partprobe
mount /dev/sda1 /var/lib/mysql/
四、网页设置
1、取消掉Run Exclusive
2、设置Resources
(1)添加Vip
(2)把我们刚添加的storage加进去
(3)添加启动脚本
3、设置Failover Domains
4、设置Service Gropus
然后点击Add Resource把IP Addresss、Filesystem、Script加入进去,最后submit
5、查看
[root@server1 ~]# clustat
Cluster Status for today @ Mon Apr 16 20:06:18 2018
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
server1 1 Online, Local, rgmanager
server4 2 Online, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:mysql server4 started
service:nginx server1 started
6、测试
结果:可以在server4中执行/etc/init.d/mysqld stop停止mysql,发现server1自动启动mysql服务
五、拓展:转化为gfs2磁盘格式
1、GFS2 文件系统简介
GFS2 文件系统不提供对上下文关联路径名的支持,上下文关联路径名允许您生成指向各种目的地文件或者目录的符号链接,可以实现多个服务器同时挂载,应用于集群场景。
2、通过clusvcadm关闭服务(server1、4)
clusvcadm -d nginx
clusvcadm -d mysql
3、查看lvm.conf信息(server1)
可以查看下此处是否为3,如果不会3会出现同步过去的分区所带属性不对,出现原因,安装包未下载完全:
vim /etc/lvm/lvm.conf
461 # change metadata.
462 locking_type = 3
在把剩余的4G建立成/dev/sda2,并把2个分区格式改为Linux Lvm
注意:一定要保证server4能同步,可以partprobe或partx -a /dev/sda更新分区表,pvs、vgs、lvs查看
vgcreate vg_cluster /dev/sda1
lvcreate -l +1023 -n demo vg_cluster
mkfs.gfs2 -j 3 -p lock_dlm -t today:mygfs2 /dev/vg_cluster/demo ###建立在集群之上,-j:设置支持的节点数 -p:指定锁方式为分布式锁 -t:指定DLM锁所在的表名称
4、进行lvm拉伸
pvcreate /dev/sda2
vgextend vg_cluster /dev/sda2
lvextend -l +1023 /dev/vg_cluster/demo
gfs2_grow /dev/vg_cluster/demo
5、查看信息
gfs2_tool sb /dev/vg_cluster/demo all
6、自动挂载方法
umount /mnt
vim /etc/fstab
/dev/vg_cluster/demo /var/lib/mysql gfs2 _netdev 0 0
mount -a
7、测试:
(1)server1和server4同时挂载
mount /dev/vg_cluster/demo /mnt/
(2)结果
在/mnt里面建立一个文件,另外一边可以进行实时更新显示!!!