クラスタ--RHCSを平衡エンタープライズクラスの高可用性クラスタ負荷クラスタ間のデータの同期化の問題を解決するために、共有ストレージ(単一点MySQLデータベースと共有ディスク書き込み、いくつかの点を書き込む)を追加

様々なサービスのうち、実際の業務では、我々はデータベースを使用して、対応するクラスタ記憶する記憶クラスタ(クラスタデータはデータを持っている)を有します。共有サービス+ =強い共有ストレージクラスタ管理同期は非常に重要なデータである移行サービスクラスタ。

実験の背景

実験は基礎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/ 发现有了程序访问的接口

ここに画像を挿入説明

  1. 卸载设备:umount /var/lib/mysql/ ,发现不能卸载。
  • 因为服务开启时,mysql.sock套接字就会开启,即设备就在使用中,所以不能卸载,当关闭服务时,就可以成功卸载了

10)关闭服务 : systemctl stop mysqld
11)成功卸载 : umount /var/lib/mysql/
ここに画像を挿入説明

  1. 在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上,解挂且设置永久挂载。ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
此时就实现了同步。

公開された102元の記事 ウォン称賛21 ビュー5336

おすすめ

転載: blog.csdn.net/ranrancc_/article/details/102617363