記事のディレクトリ
様々なサービスのうち、実際の業務では、我々はデータベースを使用して、対応するクラスタ記憶する記憶クラスタ(クラスタデータはデータを持っている)を有します。共有サービス+ =強い共有ストレージクラスタ管理。同期は非常に重要なデータである移行サービスクラスタ。
実験の背景 :
実験は基礎RHCSで行った上で、高可用性HAクラスタを行う RHCSの高可用性クラスタを構築します
ホスト名 | IP | サービス |
---|---|---|
サーバー1 | 172.25.7.101 | リッチ、ルーシー、iSCSIのは、MySQLサーバ |
SERVER2 | 172.25.7.102 | リッチ、iSCSIのは、MySQLサーバ |
server3の | 172.25.7.103 | SCSI |
foundation7 | 172.25.7.250 | フェンス |
まず、次のRHCSの展開は、共有ストレージとiSCSIハイアベイラビリティクラスタのMySQLデータベース
1、と判定するSERVER1 SERVER2のhttpdサービスがオフ(OFF手動で各ノードで、ブラウザでオフにすることができます)
- ブラウザを閉じるときにApacheをチェックし、近隣には[無効]をクリックします
また、近くに手動でコマンドを使用することができます
clusvcadm -d apache (-d表示disabled)
clusvcadm -e apache (-e表示enable)
clusvcadm -r 重新定位 (加入现在服务在server1上,执行clusvcadm -r apache之后服务就会被定位到srever2上 )
共有ディスクデバイスを構成します
2、server3の上 、共有ディスクサーバをセットアップします
1)を開き、仮想マシンマネージャのvirt-マネージャー、ハードディスクサーバー3追加する
2)猫の/ proc /パーティションあなたはより多く見つけることができるの/ dev / VDA
server3のインストールサービスに関する3):YUM -y SCSI-をインストール*
4)編集SCSIコンフィギュレーションファイル: vimの/etc/tgt/targets.conf
38 <target iqn.2019-02.com.example:server.target1>
39 backing-store /dev/vdb
##此处的设备名是通过fdisk -l看到的,每人可能都不一样
40 </target>
サービスを再起動します。起動/etc/init.d/tgtd
情報TGTを表示するには、TGT-adminの-s
5)psの斧
- ps ax 发现应该有两个进程,查看进程,只有两个为正确。 如果大于2个就是错误的,删除重做 ,或者kill掉
- tgt-admin 0s(错误的),tgt-admin -s查看共享出来磁盘
3、 在客户端server1和server2上, 配置共享磁盘的客户端
1) 在客户端server1和server2上,上安装共享磁盘的客户端:yum install yum install -y iscsi-*
2)在客户端server1上,发现共享存储设备:
iscsiadm -m discovery -t st -p 172.25.7.103 ##查看服务器的共享设备
iscsiadm -m node -l ##挂载登录存储
3)fdisk -l 查看是否共享成功
4)fdisk -cu /dev/sdb 分区,只分一个
5)在server1上,开始创建逻辑卷 pvcreate /dev/sdb1 ,server2上,pvs
6) 在server1上,vgcreate ran /dev/sdb1 ,server2上,vgs
7) 在server1上,lvcreate -L 4G -n rr ran ,server2上,lvs
8) 格式化 :mkfs.ext4 /dev/ran/rr,格式化后才可以挂载
共享磁盘与httpd
4、httpd服务与共享存储
1)挂载/dev/ran/rr到/mnt下 mount /dev/ran/rr /mnt
2)写一个httpd服务的默认发布页面index.html vim /mnt/index.html
3)解挂 umount /mnt
4)重新挂载到httpd服务的默认发布目录/var/www/html里 mount /dev/ran/rr /var/www/html
此时,在server2中查看挂载 df
5)在web页面添加资源(按照顺序添加资源)。添加资源前,要先解挂。
提交。
6)此时,在真机可以访问到共享磁盘内的默认发布页面的内容。
将服务从server2迁移到server1:clusvcadm -r apache -m server1
服务在谁,谁挂载。
共享磁盘与Mysql
7、以mysql为例,使用共享磁盘
1)在 server1和server2 安装mysql服务端:yum install -y mysql-server
2)创建逻辑卷/dev/ran/mysql: lvcreate -L 4G -n mysql ran
并格式化 mkfs.ext4 /dev/ran/mysql
3)挂载逻辑卷到mysql的数据存放目录:mount /dev/ran/mysql /var/lib/mysql/
4)ll -d /var/lib/mysql/ 查看发现只允许root用户可写
5)chown mysql.mysql /var/lib/mysql/ 更改用户和用户组
6)ll -d /var/lib/mysql/
7)/etc/init.d/mysqld start 开启mysql服务
8)ll /var/lib/mysql/ 发现有了程序访问的接口
- 卸载设备:umount /var/lib/mysql/ ,发现不能卸载。
- 因为服务开启时,mysql.sock套接字就会开启,即设备就在使用中,所以不能卸载,当关闭服务时,就可以成功卸载了
10)关闭服务 : systemctl stop mysqld
11)成功卸载 : umount /var/lib/mysql/
- 在web界面配置mysql的资源
13) clustat 发现Mysql服务在server2上,服务在那运行,共享设备就挂载在那
14)手动迁移服务到server1上,clusvcadm -r mysql -m server1
实现同步存储(多点写入)
RHCS通过 GFS文件系统来提供存储集群功能,GFS是Global File System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中,从而消除了同步数据的麻烦。GFS通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。
问题模拟:
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.70.3
[root@server1 ~]# iscsiadm -m node -l
[root@server1 ~]# mkfs.ext4 /dev/sdb1
[root@server1 ~]# systemctl start mysqld
[root@server1 ~]# mount /dev/sdb1 /var/lib/mysql/
[root@server1 ~]# cd /var/lib/mysql/
[root@server1 mysql]# cp /etc/passwd /var/lib/mysql/
#复制一个文件到mysql的数据存放目录
[root@server1 mysql]# ll
#可以看到passwd文件
[root@server1 ~]# systemctl stop mysqld
在server2上:
[root@server2 ~]# iscsiadm -m discovery -t st -p 172.25.78.3
[root@server2 ~]# iscsiadm -m node -l
[root@server2 ~]# mount /dev/sdb1 /var/lib/mysql/
[root@server2 ~]# systemctl start mysqld
[root@server2 ~]# ll /var/lib/mysql/
# 查看不到server1在设备上建立的文件passwd
[root@server2 ~]# systemctl stop mysqld
此时,我们发现iscis 只支持单点共享,所以我们用gfs来解决这个问题。
同步存储的前提是有gfs集群文件系统。现在我们来创建gfs集群文件系统
1)确认clvmd服务状态为 开启。 **==/etc/init.d/clvmd status
- gfs是基于clvmd这个服务的,必须保证这个服务开启。
2)在server1上, 创建逻辑卷/dev/ran/rr2: lvcreate -L 5G -n rr2 ran
3)开始格式化 mkfs.gfs2 -p lock_dlm -j 2 -t ran_ha:mygfs2 /dev/ran/rr2
- 如果没有mkfs.gfs2这个命令,就要手动下载 :yum install -y gfs2-utils-3.0.12.1-59.el6.x86_64
- -p 指定要使用的锁定协议名称,集群的锁定协议为 lock_dlm
- -j 指定由 mkfs.gfs2 命令生成的日志数目,我们有两台服务,所以生成两份日志即可
- -t 指集群名字
此时,在server2中挂载,创建passwd文件,在sdrver1中可以删除
4)在server1和server2上,解挂且设置永久挂载。
此时就实现了同步。