天天看點

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

簡介

RHCS: Redhet叢集套件,建構高可用伺服器叢集

GFS: 叢集檔案系統,提供多節點檔案共享服務

LVM2: 叢集檔案系統lvm,提供可拓展可維護的檔案服務

scsi,iscsi: 存儲區域網絡,為GFS+LVM2所建構的檔案服務做傳輸

原理圖

<a href="http://s3.51cto.com/wyfs02/M00/25/38/wKioL1NaUMLyQplnAAGYkTD1E4w988.jpg" target="_blank"></a>

規劃:

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. 節點互信 (管理機)

1

2

3

4

5

6

<code>sed</code> <code>-i </code><code>'s@^\(HOSTNAME=\).*@\1slave1.king.com@'</code> <code>/etc/sysconfig/network</code>

<code>hostname</code> <code>slave1.king.com</code>

<code>uname</code> <code>-n</code>

<code># 分别互信</code>

<code>ssh</code><code>-keygen -t rsa -P </code><code>''</code>

<code>ssh</code><code>-copy-</code><code>id</code> <code>-i .</code><code>ssh</code><code>/id_rsa</code><code>.pub [email protected]</code>

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

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

<code>ansible中配置了</code>

<code>vim </code><code>/etc/ansible/hosts</code>

<code>.</code>

<code>[client]</code>

<code>slave1.king.com</code>

<code>slave2.king.com</code>

<code>slave3.king.com</code>

<code>[server]</code>

<code>slave4.king.com</code>

<code># 校對叢集時間 all為所有  server僅為slave4 client為slave1,slave2,slave3</code>

<code>ansible all -m shell -a </code><code>"ntpdate 172.16.0.1"</code>

<code># 關閉 Networkmanager 功能</code>

<code>ansible all -m shell -a </code><code>"chkconfig NetworkManager off"</code>

<code>ansible all -m shell -a </code><code>"service NetworkManager stop"</code>

<code># 安裝檔案</code>

<code>ansible all -m yum -a </code><code>"name=cman state=present"</code>

<code>ansible all -m yum -a </code><code>"name=corosync state=present"</code>

<code>ansible all -m yum -a </code><code>"name=rgmanager state=present"</code>

<code>ansible all -m yum -a </code><code>"name=ricci state=present"</code>

<code># 管理機 slave4.king.com 中安裝cman進行叢集管理</code>

<code>ansible server -m shell -a </code><code>"ccs_tool create mycluster"</code>

<code>ansible server -m shell -a </code><code>"ccs_tool addnode slave1.king.com -n 1 -v 1"</code>

<code>ansible server -m shell -a </code><code>"ccs_tool addnode slave2.king.com -n 2 -v 1"</code>

<code>ansible server -m shell -a </code><code>"ccs_tool addnode slave3.king.com -n 3 -v 1"</code>

<code>ansible server -m shell -a </code><code>"ccs_tool addnode slave4.king.com -n 4 -v 1"</code>

<code># 将叢集資訊檔案同步至叢集節點</code>

<code>scp</code> <code>/etc/cluster/cluster</code><code>.conf [email protected]:</code><code>/etc/cluster/</code>

<code>啟動叢集服務</code>

<code>ansible all -m service -a </code><code>"name=rgmanager state=started enabled=yes"</code>

<code>ansible all -m service -a </code><code>"name=ricci state=started enabled=yes"</code>

<code>ansible all -m service -a </code><code>"name=cman state=started enabled=yes"</code>

<code>ansible all -m service -a </code><code>"name=corosync state=started enabled=yes"</code>

# 配置後節點線上情況

<a href="http://s3.51cto.com/wyfs02/M02/25/38/wKiom1NaVyCzWGx-AAIf1qvpp6s504.jpg" target="_blank"></a>

3. ipsan server的安裝與配置

<code># 管理機 slave4.king.com 中安裝scsi-target-utils</code>

<code>fdisk</code> <code>/dev/sda</code>

<code>partx -a </code><code>/dev/sda</code>

<code>vim </code><code>/etc/tgt/targets</code><code>.conf</code>

<code># 建立如下節點</code>

<code>&lt;target iqn-2014.04.com.king.ipsan:1&gt;</code>

<code>backing-store </code><code>/dev/clustervg/clusterlv</code>

<code>initator-address 172.16.43.0</code><code>/24</code>

<code>&lt;</code><code>/target</code><code>&gt;</code>

<code># 啟動tgtd服務</code>

<code>service tgtd start</code>

<code>tgtadm -L iscsi -o show -m target</code>

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

<a href="http://s3.51cto.com/wyfs02/M01/25/38/wKiom1NaV3bwuXkpAATcfAsmQYE737.jpg" target="_blank"></a>

<code># 所有節點對 gfs,lvm2 的支援</code>

<code>ansible all -m yum -a </code><code>"name=gfs2-utils state=present"</code>

<code>ansible all -m yum -a </code><code>"name=lvm2-cluster state=present"</code>

<code># 在 slave4 中建立 lvm卷</code>

<code>ansible server -m shell -a </code><code>"pvcreate /dev/sda3"</code>

<code>ansible server -m shell -a </code><code>"vgcreate clustervg /dev/sda3"</code>

<code>ansible server -m shell -a </code><code>"lvcreate -L 5G -n clusterlv clustervg"</code>

<code># 配置使 lvm支援 全局鎖及叢集的支援 并啟動 clvmd 服務</code>

<code>ansible all -m shell -a </code><code>'sed -i "s@^\([[:space:]]*locking_type\).*@\1 = 3@g" /etc/lvm/lvm.conf'</code>

<code>ansible all -m shell -a </code><code>"lvmconf --enable-cluster"</code>

<code>ansible all -m service -a </code><code>"name=clvmd state=started enabled=yes"</code>

4. ipsan client的安裝與配置

<code># 用戶端安裝 iscsi-initiator-utils 用以支援 iscsi 協定</code>

<code>ansible client -m yum -a </code><code>"name=iscsi-initiator-utils state=present"</code>

<code># 為用戶端根據 iqn 号與伺服器建立唯一聯系</code>

<code>ansible client -m shell -a </code><code>'echo "InitiatorName=`iscsi-iname -p iqn`" &gt; /etc/iscsi/initiator.iscsi'</code>

<code># 啟動 iscsi 服務</code>

<code>ansible client -m service -a </code><code>"name=iscsi state=started enabled=yes"</code>

<code>ansible client -m service -a </code><code>"name=iscsid state=started enabled=yes"</code>

<code># 各個用戶端發現 iscsi 共享存儲</code>

<code>ansible client -m shell -a </code><code>"iscsiadm -m discovery -t sendtargets -p 172.16.43.4"</code>

<code># 各個用戶端登陸 iscsi 共享存儲</code>

<code>ansible client -m shell -a </code><code>"iscsiadm -m node -T iqn-2014.04.com.king.ipsan:1 -p 172.16.43.4 -l"</code>

# 用戶端執行 iscsi 協定執行探索與登陸的過程

<a href="http://s3.51cto.com/wyfs02/M01/25/39/wKiom1NaWSLi6ucpAAMbumsGEAo724.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/25/39/wKioL1NaWPvhINR7AAUYPZpfqww241.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/25/39/wKiom1NaWg2iFVKxAAa0jZQEQXk196.jpg" target="_blank"></a>

# slave1 slave2 上讀寫檔案

<a href="http://s3.51cto.com/wyfs02/M01/25/39/wKioL1NaWg_Dj6aOAAMf-B44ncs199.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M00/25/39/wKiom1NaWqjD6LRgAATT0izB6cc958.jpg" target="_blank"></a>

# slave4 進行擴容

lvextend -L +2G /dev/clustervg/clusterlv

總結

   使用 cman,gfs2,lvm2以及iscsi協定實作共享級SAN裝置,多節點挂載使用的過程

     本文轉自My_King1 51CTO部落格,原文連結:http://blog.51cto.com/apprentice/1403131,如需轉載請自行聯系原作者