Linux:RHCS 實現高可用(共享存儲,gfs2文件系統)

一·iscsi

1.iscsi是什麼

iSCSI( Internet Small Computer System Interface 互聯網小型計算機系統接口)是由IBM下屬的兩大研發機構一一加利福尼亞AImaden和以色列Haifa研究中心共同開發的,是一個供硬件設備使用的、可在IP協議上層運行的SCSI指令集,是一種開放的基於IP協議的工業技術標準。該協議能夠用TCP/IP對SCSI指令進行封裝,使得這些指令可以經過基於IP網絡進行傳輸,從而實現SCSI和TCP/IP協議的鏈接。對於局域網環境中的用戶來講,採用該標準只須要很少的投資就能夠方便、快捷地對信息和數據進行交互式傳輸及管理。node

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網關器。mysql

二·iscsi

1.配置共享存儲

首先須要創建一個8G的磁盤和更改大小爲512
這裏寫圖片描述
這裏寫圖片描述nginx

在server2中:web

[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 文件:
這裏寫圖片描述
這裏寫圖片描述sql

在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中:vim

[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 ##查看磁盤是否共享成功

這裏寫圖片描述
這裏寫圖片描述

在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邏輯卷:
這裏寫圖片描述ruby

須要在集羣管理界面刪除nginx
這裏寫圖片描述
這裏寫圖片描述服務器

在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

這裏寫圖片描述

在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

這裏寫圖片描述

進入管理界面:
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
注意:若是創建不了組,須要在主機上執行一條命令,手動開啓節點
這裏寫圖片描述

測試:

[root@server4 ~]# clustat ##查看集羣狀態(在哪一個主機上工做就查看數據庫)
[root@server4 ~]# mysql 

這裏寫圖片描述

2.gfs2文件系統

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

進入管理界面:
這裏寫圖片描述

[root@server1 ~]# df -h
[root@server1 ~]# 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.
[root@server1 ~]# lvextend -l +1023 /dev/clustervg/demo 
[root@server1 ~]# lvs 
[root@server1 ~]# vgs
[root@server4 ~]# lvs 
[root@server4 ~]# vgs
[root@server1 ~]# resize2fs /dev/clustervg/demo 
[root@server1 ~]# df -h
[root@server1 ~]# cd /var/lib/mysql/
[root@server1 mysql]# ls
[root@server1 mysql]# cp /etc/passwd .
[root@server1 mysql]# ls
[root@server4 ~]# df -h
[root@server4 ~]# mount /dev/clustervg/demo /var/lib/mysql/
[root@server4 ~]# cd /var/lib/mysql/
[root@server4 mysql]# ls
[root@server1 ~]# umount /var/lib/mysql/
[root@server1 ~]# df
[root@server1 ~]# lvs 
[root@server1 ~]# lvremove /dev/clustervg/demo
[root@server1 ~]# lvcreate -L 4G -n demo clustervg
[root@server1 ~]# lvs 
[root@server1 ~]# mkfs.gfs2 -j 3 -p lock_dlm -t westos:mygfs2 /dev/clustervg/demo
[root@server1 ~]# mount /dev/clustervg/demo /var/lib/mysql/
[root@server1 ~]# df
[root@server1 ~]# cd /var/lib/mysql/
[root@server1 mysql]# ll -d
[root@server1 mysql]# chown mysql.mysql .
[root@server1 mysql]# ll -d
[root@server4 ~]# mount /dev/clustervg/demo /var/lib/mysql/
[root@server4 ~]# df
[root@server4 ~]# cd /var/lib/mysql/
[root@server4 mysql]# ll -d
[root@server4 mysql]# ls
[root@server4 mysql]# gfs2_tool sb /dev/clustervg/demo all
[root@server4 mysql]# gfs2_tool journals /dev/clustervg/demo 
[root@server4 mysql]# df -h
[root@server1 mysql]# /etc/init.d/mysqld stop
[root@server1 mysql]# vim /etc/fstab ##永久掛載
[root@server1 mysql]# cd
[root@server1 ~]# umount /var/lib/mysql/
[root@server1 ~]# df
[root@server1 ~]# mount -a
[root@server1 ~]# df
[root@server4 mysql]# vim /etc/fstab ##永久掛載
[root@server4 mysql]# cd
[root@server4 ~]# umount /var/lib/mysql/
[root@server4 ~]# df
[root@server4 ~]# mount -a
[root@server4 ~]# df
[root@server4 ~]# clustat 
[root@server1 ~]# clusvcadm -e mysql
[root@server1 ~]# clusvcadm -r mysql -m server4
[root@server4 ~]# 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
[root@server4 ~]# mysql 

在server1和server2中永久掛載內容:
這裏寫圖片描述

測試:
這裏寫圖片描述