
LVM above DataKeeper Resource 構成でのオンラインディスク拡張手順
LifeKeeper for Linux では、OSから対象のLVの拡張が認識できさえすれば、オンラインでファイルシステムを拡張することが可能です。これは、LVM Recovery Kit(LVM RK)を利用することで実現できます。
LVM RKでは、共有ストレージのLUNをディスクリソースとしてLVMのPVを構成すると、lvmlvリソースおよびlvmvgリソースの子リソースとして登録されます。
一方で、共有ストレージが用意できない場合、DataKeeper でData Replication Resource(DataKeeper Resource)を作成してPVとして登録することでLVMの構成とすることが出来ます。このようにDataKeeper Resource上にLVMを構築し、LifeKeeper for Linuxで保護することをLVM above DataKeeper Resourceと呼んでいます。
今回は、このLVM above DataKeeper Resourceのオンライン拡張の手順を確認しましたので紹介します。
動作確認環境情報
ハードウェアスペックはVM作成時の初期値(最小限)の構成を使用します。
Platform: vSphere 6.5
VM スペック
CPU: Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz X 1
Memory: 2048MB
OS: RHE6.8 ( Active: pd131, Standby: pd132)
Cluster software: LifeKeeper for Linux v9.3
LVM on DataKeeper リソース構成のディスク拡張手順
以下のリソース構成のLVに対して、50GBの新しいディスク追加し容量を拡張する手順を確認します。
ディスク増設前の状態
ディスクの認識
50GBの新しいディスクを各ノード(OS)に認識させます。(sdb1, sdc1 が既存のLVを構成するディスク、sdd1 が追加対象のディスクです。
■labs.sios.com で認識したディスク
/dev/sdb1
[root@pd131 ~]# fdisk -l /dev/sdb ディスク /dev/sdb: 32.2 GB, 32212254720 バイト デバイス ブート 始点 終点 ブロック Id システム |
/dev/sdc1
[root@pd131 ~]# fdisk -l /dev/sdc ディスク /dev/sdc: 32.2 GB, 32212254720 バイト デバイス ブート 始点 終点 ブロック Id システム |
/dev/sdd1
[root@pd131 ~]# fdisk -l /dev/sdd ディスク /dev/sdd: 53.7 GB, 53687091200 バイト デバイス ブート 始点 終点 ブロック Id システム |
■labs.sios.com で認識したディスク
/dev/sdb1
[root@pd132 ~]# fdisk -l /dev/sdb ディスク /dev/sdb: 32.2 GB, 32212254720 バイト デバイス ブート 始点 終点 ブロック Id システム |
/dev/sdc1
[root@pd132 ~]# fdisk -l /dev/sdc ディスク /dev/sdc: 32.2 GB, 32212254720 バイト |
/dev/sdd1
[root@pd132 ~]# fdisk -l /dev/sdd ディスク /dev/sdd: 53.7 GB, 53687091200 バイト デバイス ブート 始点 終点 ブロック Id システム |
DataKeeper Replicationリソースの作成
追加対象のディスクに対して、新たにレプリケーションを設定します。
以下の画像の順に操作してください。
LifeKeeper GUI からCreate Resource Hierarchy をクリックして、Data Replication を選択
デフォルトのまま Next をクリック
アクティブノードを選択してNext をクリック
Data Replication Resource を選択してNext をクリック
追加対象のディスクを選択してNextをクリック
Continueをクリック
デフォルトのままNext をクリック
デフォルトのままNext をクリック
No< Synchronous > を選択して Nextをクリック
Createをクリック
作成に成功したことを確認して、Nextをクリック
Data Replicationリソースをスタンバイノードに拡張する。設定値はデフォルトの値を使用するのでAccept Defaultsをクリック
レプリケーションのターゲットディスクを選択してAccept Defaults をクリック
任意のレプリケーション経路を選択してAccept Defaultsをクリック
拡張が成功したら ”Hierarchy successfully extended” が表示される。Finishをクリック
Done をクリック。Data Replicationリソース作成、拡張が完了
以下のようにdatarep-sdd1が追加されたことを確認
これで、追加対象のディスクに対してレプリケーションが設定されました。
Data Replicationリソース作成直後はResyncing のステータスとなり、同期が終わるまではスイッチオーバーは行えないことに注意してください。
追加対象ディスクのLVMへの組み込み
この作業は、Resyncing 中に行うこともできます。
作成したData Replicationリソースのデバイス名を確認するため、/proc/mdstat ファイル内の記述を確認。以下の例では、sdd1デバイスはmd2で作成されている
[root@pd131 ~]# cat /proc/mdstat md0 : active raid1 nbd1[2](W) sdb1[0] md1 : active raid1 nbd9[2](W) sdc1[0] unused devices: <none> |
#/dev/md2をPVとして登録
[root@pd131 ~]# pvcreate /dev/md2 Physical volume “/dev/md2” successfully created |
#/dev/md2がPVとして登録されたことを確認
# pvs PV VG Fmt Attr PSize PFree /dev/md0 VG_PGSQL lvm2 a–u 30.00g 0 /dev/md1 VG_PGSQL lvm2 a–u 30.00g 0 /dev/md2 lvm2 —- 50.00g 50.00g /dev/sda2 vg_pd131 lvm2 a–u 15.51g 0 |
拡張作業
VG => LV => ファイルシステム の順に拡張を行います。
まずVGを拡張
# 拡張前
# vgs VG #PV #LV #SN Attr VSize VFree VG_PGSQL 2 1 0 wz–n- 59.99g 0 vg_pd131 1 2 0 wz–n- 15.51g 0 |
#vgextend でVGの拡張
# vgextend VG_PGSQL /dev/md2 Volume group “VG_PGSQL” successfully extended |
#拡張後、VGの容量が増えていることを確認
# vgs VG #PV #LV #SN Attr VSize VFree VG_PGSQL 3 1 0 wz–n- 109.99g 50.00g vg_pd131 1 2 0 wz–n- 15.51g 0 |
次にLVを拡張
#拡張前
# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 VG_PGSQL -wi-ao—- 59.99g lv_root vg_pd131 -wi-ao—- 13.91g lv_swap vg_pd131 -wi-ao—- 1.60g |
# lvextendコマンドでLVサイズを拡張
# lvextend -l +100%FREE /dev/VG_PGSQL/lv01 Size of logical volume VG_PGSQL/lv01 changed from 59.99 GiB (15358 extents) to 109.99 GiB (28157 extents). Logical volume lv01 successfully resized. |
#拡張後、LVの容量が増えていることを確認
# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 VG_PGSQL -wi-ao—- 109.99g lv_root vg_pd131 -wi-ao—- 13.91g lv_swap vg_pd131 -wi-ao—- 1.60g |
最後にファイルシステムの拡張
# 拡張前
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_pd131-lv_root 14G 5.3G 7.7G 41% / tmpfs 1004M 132K 1003M 1% /dev/shm /dev/sda1 477M 40M 412M 9% /boot /root/sps_930.img 72M 72M 0 100% /sps /dev/sr0 3.7G 3.7G 0 100% /mnt /dev/mapper/VG_PGSQL-lv01 59G 85M 56G 1% /pgsql/data |
# resize2fsコマンドでファイルシステムを拡張
*ここでは、1ミリ秒間隔でpsql コマンドを使用してテーブルにデータを1行書き込みながら同時アクセス数1で実施したところ、CPU の使用率は17% 程度でした。
# resize2fs /dev/mapper/VG_PGSQL-lv01 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/VG_PGSQL-lv01 is mounted on /pgsql/data; on-line resizing required old desc_blocks = 4, new_desc_blocks = 7 Performing an on-line resize of /dev/mapper/VG_PGSQL-lv01 to 28832768 (4k) blocks. The filesystem on /dev/mapper/VG_PGSQL-lv01 is now 28832768 blocks long. |
#拡張後、ファイルシステムの容量が増えていることを確認
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_pd131-lv_root 14G 5.3G 7.7G 41% / tmpfs 1004M 132K 1003M 1% /dev/shm /dev/sda1 477M 40M 412M 9% /boot /root/sps_930.img 72M 72M 0 100% /sps /dev/sr0 3.7G 3.7G 0 100% /mnt /dev/mapper/VG_PGSQL-lv01 109G 93M 103G 1% /pgsql/data |
Data Replicationリソースの既存リソースツリーへの組み込み
手順2で作成した Data Replicationリソースがlvmvg リソースの下位に配置されるよう、リソース階層を構成します。
lvmvgリソースを右クリックして、Create Dependencyをクリック
作成したData Replicationリソースを選択してNextをクリック
親リソースがlvmvgリソース、子リソースがData Replicationリソースとなることを確認してCreate Dependencyをクリック
Doneを押して依存関係の作成が完了
lvmvgリソースとData Replicationリソースの間に依存関係が作成されました。
以下のようにDataKeeperリソースが既存のリソースツリーに組み込まれたことを確認
Data Replicationリソースの同期が完了している(Resyncingステータスでない)ことを確認した後、スイッチオーバーを行い、スタンバイノードでもLVMの構成に差がないことを確認
スイッチオーバー開始
スタンバイノードへの切り替わり中
スイッチオーバー完了
アクティブとなったノードでLVのサイズやマウントしたディスクのサイズが、スイッチオーバー前と変わっていないことを確認
# lvs # df -h |
HA環境のディスク増設も、LifeKeeper と LVM のテクノロジの組み合わせによって、オンラインで簡単に行えることが確認できました。
可用性を保ちながらディスク仮想化のメリットを最大限に生かすことに成功した、LifeKeeper/DataKeeperの活用事例のご紹介でした。
お問合せ
「見積を依頼したい」「もっと詳しい話を聞いてみたい。」といった場合は、下記よりお気軽にお問い合わせください。