2016年11月10日木曜日

LIO Cluster [LIO, DRBD, Pacemaker による冗長化 iSCSI Target] (その7)DRBD, LVM の残設定


DRBD と LVM について、サーバ単独での設定のみ行い、保留していた設定の続きを実施します。Active 機と Stand-by 機が連動して動作していく前提の操作となります。

 Active 機と Stand-by 機でほぼ同時に DRBD サービスを起動します。


sudo systemctl start drbd.service


Stand-by 機で DRBD の状態をワッチします。


watch cat /proc/drbd
Every 2.0s: cat /proc/drbd                              Sat Oct 29 19:51:46 2016

version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1887375068


Active 機で DRBD の初期同期を開始します。


sudo drbdadm primary --force all


Stand-by 機で DRBD の状態を確認します。


Every 2.0s: cat /proc/drbd                              Sat Oct 29 19:51:46 2016

version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:345612 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1887029456
        [>....................] sync'ed:  0.1% (1842800/1843136)M
        finish: 4:32:41 speed: 115,204 (115,204) want: 102,400 K/sec

※ この状態でも、Active 機側で作業を続行できます。今回は、初期同期の完了を待つことにします。

Every 2.0s: cat /proc/drbd                              Sat Oct 29 19:51:46 2016

version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:1887375068 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0


※ 「自機/対向機」がともに「UpToDate/UpToDate」となっているのが正常な状態です。

Active 機で DRBD を Secondary にします(デモートします)。


sudo drbdadm secondary all


Stand-by 機で DRBD の状態を確認し、「Ctrl + C」で状態確認を止めます。


Every 2.0s: cat /proc/drbd                              Sat Oct 29 19:51:46 2016

version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:1887375068 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0


Active 機で DRBD の状態をワッチします。


watch cat /proc/drbd
Every 2.0s: cat /proc/drbd                              Sat Oct 29 19:51:46 2016

version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:1887375980 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0


Stand-by 機で DRBD を Primary にします(プロモートします)。


sudo drbdadm primary all


Active 機で DRBD の状態を確認し、「Ctrl + C」で状態確認を止めます。


Every 2.0s: cat /proc/drbd                              Sat Oct 29 19:51:46 2016

version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:1887375980 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0


Stand-by 機で DRBD デバイス上に LVM を構成します。


sudo pvcreate /dev/drbd0
  Physical volume "/dev/drbd0" successfully created

sudo vgcreate -s 4M vg1 /dev/drbd0
  Volume group "vg1" successfully created

sudo lvcreate --name lv-lun0 --extents 20%VG vg1
  Logical volume "lv-lun0" created.

sudo lvcreate --name lv-lun1 --extents 20%VG vg1
  Logical volume "lv-lun1" created.

sudo lvcreate --name lv-lun2 --extents 20%VG vg1
  Logical volume "lv-lun2" created.

sudo lvcreate --name lv-lun3 --extents 20%VG vg1
  Logical volume "lv-lun3" created.

sudo pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/drbd0 vg1  lvm2 a--  1.76t 360.00g
  /dev/sdc1  vg0  lvm2 a--  1.95t 200.00g

sudo vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg0    1   1   0 wz--n- 1.95t 200.00g
  vg1    1   4   0 wz--n- 1.76t 360.00g

sudo lvs
  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-drbd0 vg0  -wi-ao----   1.76t
  lv-lun0  vg1  -wi-a----- 359.98g
  lv-lun1  vg1  -wi-a----- 359.98g
  lv-lun2  vg1  -wi-a----- 359.98g
  lv-lun3  vg1  -wi-a----- 359.98g


Stand-by 機で DRBD デバイス上の LVM ボリュームグループを非活性化します。


sudo vgchange -a n vg1
  0 logical volume(s) in volume group "vg1" now active

sudo lvs
  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-drbd0 vg0  -wi-ao----   1.76t
  lv-lun0  vg1  -wi------- 359.98g
  lv-lun1  vg1  -wi------- 359.98g
  lv-lun2  vg1  -wi------- 359.98g
  lv-lun3  vg1  -wi------- 359.98g


Stand-by 機で DRBD を Secondary にします。


cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:100 nr:0 dw:100 dr:1887381560 al:4 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

sudo drbdadm secondary all

cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:100 nr:0 dw:100 dr:1887381560 al:4 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

sudo lvs
  LV       VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-drbd0 vg0  -wi-ao---- 1.76t

sudo vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg0    1   1   0 wz--n- 1.95t 200.00g

sudo pvs
  /dev/drbd0: open failed: Wrong medium type
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdc1  vg0  lvm2 a--  1.95t 200.00g


※ LVM ボリュームグループは非活性化しましたが、LVM 物理ボリュームは非活性化せずに DRBD デバイスを削除したため、エラーが発生しています。このエラーは無視しても問題ありません。

 Active 機で DRBD を Primary にします。


cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:100 dw:100 dr:1887375980 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

sudo drbdadm primary all

cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
srcversion: 1AEFF755B8BD61B81A0AF27
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:100 dw:100 dr:1887376132 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0


Active 機で DRBD デバイス上の LVM ボリュームグループを活性化します。


sudo pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdc1  vg0  lvm2 a--  1.95t 200.00g

sudo vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg0    1   1   0 wz--n- 1.95t 200.00g
  vg1    1   4   0 wz--n- 1.76t 360.00g

sudo lvs
  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-drbd0 vg0  -wi-ao----   1.76t
  lv-lun0  vg1  -wi------- 359.98g
  lv-lun1  vg1  -wi------- 359.98g
  lv-lun2  vg1  -wi------- 359.98g
  lv-lun3  vg1  -wi------- 359.98g

 ※ この時点で、LVM 物理ボリュームが見えていないのに、LVM ボリュームグループ、 LVM 論理ボリュームが見えているのはなぜ?
   /dev/vg0/lv-drbd0 がフィルタリングされているにもかかわらず見えてしまっているのか、pvs コマンドがバグっているのか?

sudo vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg0" using metadata type lvm2
  Found volume group "vg1" using metadata type lvm2

 ※ ここで vgscan コマンド実行前の状態が正常化されるので、とりあえず実害はありません。

sudo pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/drbd0 vg1  lvm2 a--  1.76t 360.00g
  /dev/sdc1  vg0  lvm2 a--  1.95t 200.00g

sudo vgchange -a y vg1
  4 logical volume(s) in volume group "vg1" now active

sudo lvs
  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-drbd0 vg0  -wi-ao----   1.76t
  lv-lun0  vg1  -wi-a----- 359.98g
  lv-lun1  vg1  -wi-a----- 359.98g
  lv-lun2  vg1  -wi-a----- 359.98g
  lv-lun3  vg1  -wi-a----- 359.98g


0 件のコメント:

コメントを投稿