欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

程序员文章站 2024-03-08 15:11:22
...

一·iscsi

1.iscsi是什么

iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研究中心共同开发的,是一个供硬件设备使用的、可在IP协议上层运行的SCSI指令集,是一种开放的基于IP协议的工业技术标准。该协议可以用TCP/IP对SCSI指令进行封装,使得这些指令能够通过基于IP网络进行传输,从而实现SCSI和TCP/IP协议的连接。对于局域网环境中的用户来说,采用该标准只需要不多的投资就可以方便、快捷地对信息和数据进行交互式传输及管理。

2.优点

iSCSI的发展成了必然,其市场价值是很多服务器厂商看中的,也给无法承担 FC SAN高成本光纤基础结构的中间市场客户所看中,主要因为iSCSI通过集SCSI、以太网和TCP/IP等技术于一身,存在很多优点:
1.建立在常见和稳定的标准上,很多IT工作人员对这些技术熟悉,更容易接受;
2.由于TCP/IP协议附件减少了聘请专业人员的需要,所以安装和维护成本较低,使用iSCSI创建TCO更低的存储局域网络;
3.由于减少了不同的网络和布线,使用常规以太网交换机而不必专用光纤通道交换机,很大程度提高了互操作性;
4.传播无极限!可以在全球IP网络上进行以太网传输,实际传播距离没有限制;
5.速度可以扩充到10Gbit,将可以和同步光网络速率相媲美。
因此,iSCSI 具有低廉、开放、大容量、传输速度高、兼容、安全等诸多优点,其优越的性能使其自发布之始便受到市场的关注与青睐,看来,iSCSI 必将成为网络存储领域内的核心技术之一。那么,到底谁最适合使用iSCSI SAN呢?目前看来iSCSI SAN最适合需要在网络上存储和传输数据流和/或大量数据的机构,如:ISP-互联网服务提供商;SSP-存储服务提供商;需要远程数据复制和灾难恢复的机构;IT资源、基础设施和预算均十分有限的企业和机构等。市场上,除了各类作业平台的Initiator软件之外,已有愈来愈多厂商推出各种各类的 iSCSI相关产品。如iSCSI适配卡、iSCSI交换机、iSCSI存储服务器、iSCSI存储设备、iSCSI桥接器及iSCSI网关器。

二·iscsi

1.配置共享存储

首先需要建立一个8G的磁盘和更改大小为512
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

在server2中:

[root@server2 ~]# yum install scsi-*
[root@server2 ~]# vim /etc/tgt/targets.conf  ##编辑内容
[root@server2 ~]# fdisk -l   ##查看磁盘
[root@server2 ~]# /etc/init.d/tgtd start   

在 /etc/tgt/targets.conf 文件:
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

在server1中:

[root@server1 ~]# yum install iscsi-*  -y
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.41.2   ##访问共享磁盘
[root@server1 ~]# iscsiadm -m node -l   
 [root@server1 ~]# /etc/init.d/clvmd status    ##保证clvmd服务开启,要开启才可能同步

在server4中:

[root@server4 ~]# yum install iscsi-*  -y
[root@server4 ~]# iscsiadm -m discovery -t st -p 172.25.71.2
[root@server4 ~]# iscsiadm -m node -l
[root@server4 ~]# cat /proc/partitions
[root@server1 ~]# fdisk -l    ##查看磁盘是否共享成功

Linux:RHCS 实现高可用(共享存储,gfs2文件系统)
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

在server1中:

[root@server1 ~]# pvcreate /dev/sda
[root@server1 ~]# vgcreate clustervg /dev/sda
[root@server1 ~]# lvcreate -L 4G -n demo clustervg
[root@server1 ~]# mkfs.ext4 /dev/clustervg/demo

在server4中同步lvm逻辑卷:
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

需要在集群管理界面删除nginx
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

在server1中:

[root@server1 ~]# yum install mysql  -y
[root@server1 ~]# yum install -y mysql-server
[root@server1 ~]# cd /var/lib/mysql/
[root@server1 mysql]# ls
[root@server1 mysql]# ll -d .
[root@server1 mysql]# cd
[root@server1 ~]# mount /dev/clustervg/demo /var/lib/mysql/  ##挂载
[root@server1 ~]# df
[root@server1 ~]# ll -d /var/lib/mysql/
[root@server1 ~]# chown mysql.mysql /var/lib/mysql/   ##更换用户和组
[root@server1 ~]# ll -d /var/lib/mysql/
[root@server1 ~]# /etc/init.d/mysqld start
[root@server1 ~]# /etc/init.d/mysqld stop

Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

在server4中:

[root@server4 ~]# yum install -y mysql-server
[root@server4 ~]# mount /dev/clustervg/demo /var/lib/mysql/
[root@server4 ~]# ll -d /var/lib/mysql/
[root@server4 ~]# /etc/init.d/mysqld start
[root@server4 ~]# /etc/init.d/mysqld stop
[root@server4 ~]# umount /var/lib/mysql/
[root@server4 ~]# df

Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

进入管理界面:
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)
注意:如果建立不了组,需要在主机上执行一条命令,手动开启节点
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

测试:

[root@server4 ~]# clustat   ##查看集群状态(在哪个主机上工作就查看数据库)
[root@server4 ~]# mysql 

Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

2.gfs2文件系统

在哪工作就在哪停止
[root@server4 ~]# clustat 
[root@server4 ~]# clusvcadm -d mysql  ##停止

进入管理界面:
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

[aaa@qq.com ~]# df -h
[aaa@qq.com ~]# lvextend -L  +4G  /dev/clustervg/demo    ##太大,添加不了
  Rounding size to boundary between physical extents: 1.00 GiB
  New size given (256 extents) not larger than existing size (1024 extents)
  Run `lvextend --help' for more information.
[aaa@qq.com ~]# lvextend -l +1023 /dev/clustervg/demo 
[aaa@qq.com ~]# lvs                                          
[aaa@qq.com ~]# vgs
[aaa@qq.com ~]# lvs                                        
[aaa@qq.com ~]# vgs
[aaa@qq.com ~]# resize2fs /dev/clustervg/demo 
[aaa@qq.com ~]# df -h
[aaa@qq.com ~]# cd /var/lib/mysql/
[aaa@qq.com mysql]# ls
[aaa@qq.com mysql]# cp /etc/passwd  .
[aaa@qq.com mysql]# ls
[aaa@qq.com ~]# df -h
[aaa@qq.com ~]# mount /dev/clustervg/demo /var/lib/mysql/
[aaa@qq.com ~]# cd /var/lib/mysql/
[aaa@qq.comer4 mysql]# ls
[aaa@qq.com ~]# umount /var/lib/mysql/
[aaa@qq.com ~]# df
[aaa@qq.com ~]# lvs                                            
[aaa@qq.com ~]# lvremove /dev/clustervg/demo
[aaa@qq.com ~]# lvcreate -L 4G -n demo clustervg
[aaa@qq.com ~]# lvs              
[aaa@qq.com ~]# mkfs.gfs2 -j 3 -p lock_dlm -t westos:mygfs2 /dev/clustervg/demo
[aaa@qq.com ~]# mount /dev/clustervg/demo /var/lib/mysql/
[aaa@qq.com ~]# df
[aaa@qq.com ~]# cd /var/lib/mysql/
[aaa@qq.com mysql]# ll  -d
[aaa@qq.com mysql]# chown mysql.mysql .
[aaa@qq.com mysql]# ll  -d
[aaa@qq.com ~]# mount /dev/clustervg/demo /var/lib/mysql/
[aaa@qq.com ~]# df
[aaa@qq.com ~]# cd /var/lib/mysql/
[aaa@qq.com mysql]# ll -d
[aaa@qq.com mysql]# ls
[aaa@qq.com mysql]# gfs2_tool sb /dev/clustervg/demo all
[aaa@qq.com mysql]# gfs2_tool journals /dev/clustervg/demo 
[aaa@qq.com mysql]# df -h
[aaa@qq.com mysql]# /etc/init.d/mysqld stop
[aaa@qq.com mysql]# vim /etc/fstab   ##永久挂载
[aaa@qq.com mysql]# cd
[aaa@qq.com ~]# umount /var/lib/mysql/
[aaa@qq.com ~]# df
[aaa@qq.com ~]# mount -a
[aaa@qq.com ~]# df
[aaa@qq.com mysql]# vim /etc/fstab  ##永久挂载
[aaa@qq.com mysql]# cd
[aaa@qq.com ~]# umount /var/lib/mysql/
[aaa@qq.com ~]# df
[aaa@qq.com ~]# mount -a
[aaa@qq.com ~]# df
[aaa@qq.com ~]# clustat 
[aaa@qq.com ~]# clusvcadm -e mysql
[aaa@qq.com ~]# clusvcadm -r mysql -m server4
[aaa@qq.com ~]# ip addr
inet 172.25.71.4/24 brd 172.25.41.255 scope global eth0
inet 172.25.71.100/24 scope global secondary eth0
[aaa@qq.com ~]# mysql 

在server1和server2中永久挂载内容:
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)

测试:
Linux:RHCS 实现高可用(共享存储,gfs2文件系统)