- 用 LVM 架 GFS 檔案系統!
- Cluster 上的 LVM 架構:HA-LVM 與 Clustered LVM!
- HA-LVM:vg 與其上的 lv,一次只給一個節點使用!
- 設定方式一:使用 LVM 標籤
- 設定方式二:使用 clustered LVM daemon , clvmd
- Clustered LVM:在分享的儲存設備中,所有的vg 與 lv 均可給所有節點使用!
- HA-LVM:vg 與其上的 lv,一次只給一個節點使用!
- 重點提示:
- LVM 觀念與多重路徑概念整合
- LVM 設定檔:/etc/lvm/lvm.conf
- LVM 架構查詢指令:vgcfgrestore
- LVM 架構參數改變後,需要執行指令:lvchange
-
在 nodea 上,切割兩個分割區,練習 LVM 基本操作:
[root@nodea ~]# fdisk /dev/vdb [root@nodea ~]# partprobe [root@nodea ~]# pvcreate /dev/vdb2 /dev/vdb3 [root@nodea ~]# vgcreate vgsrv /dev/vdb2 /dev/vdb3 [root@nodea ~]# vgs VG #PV #LV #SN Attr VSize VFree vgsrv 2 0 0 wz--n- 3.99g 3.99g
-
在 vgsrv 上,切割一個 LV 分割區:
[root@nodea ~]# lvcreate -n resizeme -L 2G vgsrv
-
在 resizeme 上,建立 xfs 檔案系統:
[root@nodea ~]# mkfs -t xfs /dev/vgsrv/resizeme
-
將新建立的 xfs 檔案系統,掛載在 /mnt 目錄下:
[root@nodea ~]# mount /dev/vgsrv/resizeme /mnt [root@nodea ~]# touch /mnt/file{0..9}
-
缷載 /mnt 目錄:
[root@nodea ~]# umount /mnt
-
縮減 resizeme 大小至 1G:
[root@nodea ~]# lvresize -L 1G /dev/vgsrv/resizeme [root@nodea ~]# mount /dev/vgsrv/resizeme /mnt --> 發現不能掛載
-
檢查 vgsrv 架構:
[root@nodea ~]# vgcfgrestore -l vgsrv :(略) : File: /etc/lvm/archive/vgsrv_00002-1891440157.vg VG name: vgsrv Description: Created *before* executing 'lvresize -L 1G /dev/vgsrv/resizeme' Backup Time: Fri Mar 24 18:50:14 2017 : :(略)
-
回復到縮減前的狀態:
[root@nodea ~]# vgcfgrestore -f /etc/lvm/archive/vgsrv_00002-1891440157.vg vgsrv
-
進行回復後的更新動作:
[root@nodea ~]# lvchange -an /dev/vgsrv/resizeme [root@nodea ~]# lvchange -ay /dev/vgsrv/resizeme
-
重新掛載 /mnt 目錄:
[root@nodea ~]# mount /dev/vgsrv/resizeme /mnt [root@nodea ~]# ls -al /mnt
-
再次缷載 /mnt 目錄,並移除 resizeme :
[root@nodea ~]# umount /mnt [root@nodea ~]# lvremove /dev/vgsrv/resizeme
-
在 nodea 上,將多重路徑上的硬碟設備,做成 LVM 檔案系統 :
[root@nodea ~]# pvcreate /dev/mapper/mpatha [root@nodea ~]# vgcreate clustervg /dev/mapper/mpatha [root@nodea ~]# lvcreate -L 1G -n clusterlv clustervg [root@nodea ~]# mkfs -t xfs /dev/clustervg/clusterlv
-
在所有節點上,編寫 lvm 設定檔內容:
[root@nodea ~]# vim /etc/lvm/lvm.conf locking_type = 1 volume_list = [] --> 表示本地端的LVM不分享!
-
在所有節點上,重新設定 initramfs 檔案:
[root@nodea ~]# dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r); reboot
-
在所有節點上,查詢 cluster 服務運作是否正常:
[root@nodea ~]# pcs status
-
在 nodea 節點上,建立 LVM 資源:
[root@nodea ~]# pcs resource create halvm LVM volgrpname=clustervg exclusive=true --group halvmfs [root@nodea ~]# pcs resource create xfsfs Filesystem device="/dev/clustervg/clusterlv" directory="/mnt" fstype="xfs" --group halvmfs [root@nodea ~]# pcs status [root@nodea ~]# lvs [root@nodea ~]# mount | grep clusterlv
-
在 nodea 節點上,測試 HA-LVM 功能:
[root@nodea ~]# pcs cluster standby nodea.example.com [root@nodea ~]# pcs status [root@nodea ~]# pcs cluster unstandby nodea.example.com : (到各節點查詢,LVM被掛載到哪個節點上)
-
在各節點上,安裝 dlm 及 lvm2-cluster 套件:
[root@nodea ~]# yum -y install dlm lvm2-cluster [root@nodea ~]# lvmconf --enable-cluster
-
在各節點上,先暫停 lvm2-lvmetad 服務的運作,以利修改設定檔:
[root@nodea /]# systemctl stop lvm2-lvmetad
-
在 nodea 節點上,新增使用 controld 資源代管的 dlm 資源:
[root@nodea ~]# pcs resource create dlm controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
-
在 nodea 節點上,新增使用 clvm 資源代管的 clvmd 資源:
[root@nodea ~]# pcs resource create clvmd clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
-
在 nodea 節點上,設定啟用條件順序,讓 dlm 資源早於 clvmd 資源啟用,並且只能用於同一節點上:
[root@nodea ~]# pcs constraint order start dlm-clone then clvmd-clone [root@nodea ~]# pcs constraint colocation add clvmd-clone with dlm-clone
-
在 nodea 節點上,建立 LVM 檔案系統:
[root@nodea ~]# pvcreate /dev/mapper/mpatha [root@nodea ~]# vgcreate myvg /dev/mapper/mpatha [root@nodea ~]# lvcreate -L 1G -n mylv myvg