RHCS+lvm2,gfs實現ipsan存儲方案

簡介

RHCS: Redhet集羣套件,構建高可用服務器集羣
GFS: 集羣文件系統,提供多節點文件共享服務
LVM2: 集羣文件系統lvm,提供可拓展可維護的文件服務
scsi,iscsi: 存儲區域網絡,爲GFS+LVM2所構建的文件服務做傳輸


原理圖

wKioL1NaUMLyQplnAAGYkTD1E4w988.jpg


規劃:


RHCS不支持雙節點的集羣,所以這裏採用三節點
slave1.king.com  172.16.43.1 集羣節點1
slave2.king.com  172.16.43.2 集羣節點2
slave3.king.com  172.16.43.3 集羣節點3
slave4.king.com  172.16.43.4 lvm2+gfs(管理機)


操作

注: 若無特殊說明操作均爲集羣節點的操作

1. 節點互信 (管理機)

sed -i 's@^\(HOSTNAME=\).*@\1slave1.king.com@' /etc/sysconfig/network
hostname slave1.king.com
uname -n
# 分別互信
ssh-keygen -t rsa -P ''
ssh-copy-id -i .ssh/id_rsa.pub [email protected]

2. 安裝 cman,corosync,rgmanager (管理機)

ansible中配置了
vim /etc/ansible/hosts
.
[client]
slave1.king.com
slave2.king.com
slave3.king.com
.
[server]
slave4.king.com
.
# 校對集羣時間 all爲所有  server僅爲slave4 client爲slave1,slave2,slave3
ansible all -m shell -a "ntpdate 172.16.0.1"
.
# 關閉 Networkmanager 功能
ansible all -m shell -a "chkconfig NetworkManager off"
ansible all -m shell -a "service NetworkManager stop"
.
# 安裝文件
ansible all -m yum -a "name=cman state=present"
ansible all -m yum -a "name=corosync state=present"
ansible all -m yum -a "name=rgmanager state=present"
ansible all -m yum -a "name=ricci state=present"
.
# 管理機 slave4.king.com 中安裝cman進行集羣管理
ansible server -m shell -a "ccs_tool create mycluster"
ansible server -m shell -a "ccs_tool addnode slave1.king.com -n 1 -v 1"
ansible server -m shell -a "ccs_tool addnode slave2.king.com -n 2 -v 1"
ansible server -m shell -a "ccs_tool addnode slave3.king.com -n 3 -v 1"
ansible server -m shell -a "ccs_tool addnode slave4.king.com -n 4 -v 1"
.
# 將集羣信息文件同步至集羣節點
scp /etc/cluster/cluster.conf [email protected]:/etc/cluster/
.
啓動集羣服務
ansible all -m service -a "name=rgmanager state=started enabled=yes"
ansible all -m service -a "name=ricci state=started enabled=yes"
ansible all -m service -a "name=cman state=started enabled=yes"
ansible all -m service -a "name=corosync state=started enabled=yes"

# 配置後節點在線情況

wKiom1NaVyCzWGx-AAIf1qvpp6s504.jpg


3. ipsan server的安裝與配置

# 管理機 slave4.king.com 中安裝scsi-target-utils
fdisk /dev/sda
partx -a /dev/sda
vim /etc/tgt/targets.conf
# 創建如下節點
<target iqn-2014.04.com.king.ipsan:1>
backing-store /dev/clustervg/clusterlv
initator-address 172.16.43.0/24
</target>
.
# 啓動tgtd服務
service tgtd start
tgtadm -L iscsi -o show -m target

# targets 中 iqn命名爲1 , 所以下圖的 lun 可以所見

wKiom1NaV3bwuXkpAATcfAsmQYE737.jpg


# 所有節點對 gfs,lvm2 的支持
ansible all -m yum -a "name=gfs2-utils state=present"
ansible all -m yum -a "name=lvm2-cluster state=present"
# 在 slave4 中創建 lvm卷
ansible server -m shell -a "pvcreate /dev/sda3"
ansible server -m shell -a "vgcreate clustervg /dev/sda3"
ansible server -m shell -a "lvcreate -L 5G -n clusterlv clustervg"
# 配置使 lvm支持 全局鎖及集羣的支持 並啓動 clvmd 服務
ansible all -m shell -a 'sed -i "s@^\([[:space:]]*locking_type\).*@\1 = 3@g" /etc/lvm/lvm.conf'
ansible all -m shell -a "lvmconf --enable-cluster"
ansible all -m service -a "name=clvmd state=started enabled=yes"


4. ipsan client的安裝與配置

# 客戶端安裝 iscsi-initiator-utils 用以支持 iscsi 協議
ansible client -m yum -a "name=iscsi-initiator-utils state=present"
# 爲客戶端根據 iqn 號與服務器建立唯一聯繫
ansible client -m shell -a 'echo "InitiatorName=`iscsi-iname -p iqn`" > /etc/iscsi/initiator.iscsi'
# 啓動 iscsi 服務
ansible client -m service -a "name=iscsi state=started enabled=yes"
ansible client -m service -a "name=iscsid state=started enabled=yes"
# 各個客戶端發現 iscsi 共享存儲
ansible client -m shell -a "iscsiadm -m discovery -t sendtargets -p 172.16.43.4"
# 各個客戶端登陸 iscsi 共享存儲
ansible client -m shell -a "iscsiadm -m node -T iqn-2014.04.com.king.ipsan:1 -p 172.16.43.4 -l"

# 客戶端執行 iscsi 協議執行探索與登陸的過程

wKiom1NaWSLi6ucpAAMbumsGEAo724.jpg

wKioL1NaWPvhINR7AAUYPZpfqww241.jpg


5. 測試

# 所有client節點上掛載以iscsi協議共享出來的lvm卷
ansible client -m shell -a "mount /dev/clustervg/clusterlv /media -t gfs2"


# slave1 上格式化, 注意客戶端掛載服務器的共享存儲在客戶端本地是以新磁

# 盤的形式呈現,所以這裏格式化的磁盤盤符應該爲 /dev/sdb
mkfs.gfs2 -j 2 -p lock_dlm -t mycluster:gfslocktable /dev/sdb

wKiom1NaWg2iFVKxAAa0jZQEQXk196.jpg


# slave1 slave2 上讀寫文件

wKioL1NaWg_Dj6aOAAMf-B44ncs199.jpg


# slave2 上分區操作,之後觀察 slave1的情況

wKiom1NaWqjD6LRgAATT0izB6cc958.jpg

wKiom1NaWuiz_f6lAAL0V0a9t0A685.jpg


# slave4 進行擴容
lvextend -L +2G /dev/clustervg/clusterlv
gfs2_grow /dev/clustervg/clusterlv


總結

   使用 cman,gfs2,lvm2以及iscsi協議實現共享級SAN設備,多節點掛載使用的過程


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章