PRIMECLUSTER Global Disk Services 説明書 4.2 (Linux版) |
目次
![]() ![]() |
付録D コマンドリファレンス |
ここではGDS Snapshotのスナップショット機能を利用して、/、/usr または /varファイルシステムのサイズを業務運用中に拡張する手順の流れを説明します。
[手順]
ここでは、下図の構成で/varファイルシステムの領域を拡張する手順を示します。
下図に示すように、/ ファイルシステムは、サイズを拡張するかどうかに関わらず、他のボリュームに移す必要があります。
キープディスクRoot1とRoot3のシリンダサイズは同じである必要があります。
システムディスクのミラーリングは必須ではありません。上図のsdb, sddを使用しない構成も可能です。ただし、高可用性が要求されるシステムでは、上図のようなミラーリング構成にすることを推奨します。
1) システムディスクのミラーリング
1-1) 動作中のアプリケーションプログラムを停止します。
ミラーリングの定義を安全に行うため、動作しているアプリケーションプログラムを停止させる必要があります。より安全性が求められる場合は、システムディスクのバックアップを採取してください。
1-2) システムディスクをルートクラスへ登録します。
# sdxdisk -M -c System -a type=root -d sda=Root1:keep,sdb=Root2:undef |
1-3) システムディスクをグループに接続します。
# sdxdisk -C -c System -g Group1 -d Root1,Root2 -v 1=swap:on,2=usr:on,3=boot:on,4=efi:on, 5=root:on,6=var:on |
1-4) ミラー定義が完了したことを確認します。
# sdxroot -M -c System -d Root1 |
1-5) システムをリブートします。
# shutdown -r now |
1-6) ミラーリングされていることを確認します。
mount(8)コマンドやsdxinfoコマンドを使って、システムディスクが正しくミラーリングされていることを確認してください。
2) プロキシボリュームの作成
/ ファイルシステムとサイズを拡張する/varファイルシステムのプロキシボリュームを作成します。この時点では、プロキシボリュームを作成するグループには、キープディスク1つのみを接続します。ここでは、下図の構成でプロキシボリュームを作成する手順を示します。
サイズを拡張する/varファイルシステムのプロキシボリュームの最終ブロック以降に、十分な空き領域が必要です。
2-1) 現在のボリュームサイズを確認します。
# sdxinfo -V -c System OBJ NAME CLASS GROUP SKIP JRM 1STBLK LASTBLK BLOCKS STATUS ------ ------- ------- ------- ---- --- -------- -------- -------- -------- volume swap System Group1 off on 0 1049759 1049760 ACTIVE volume * System Group1 * * 1049760 1071359 21600 PRIVATE volume * System Group1 * * 1071360 2946239 1874880 FREE volume usr System Group1 off on 2946240 2965679 19440 ACTIVE volume boot System Group1 off on 2965680 3096899 131220 ACTIVE volume efi System Group1 off on 3096900 3228119 131220 ACTIVE volume root System Group1 off on 3228120 3403079 174960 ACTIVE volume var System Group1 off on 3403080 3638519 235440 ACTIVE |
ボリュームサイズは、sdxinfo -VコマンドのBLOCKSフィールドで確認できます。この例では、rootのサイズは174960ブロック、varのサイズは235440ブロックです。
2-2) ディスクをルートクラスに登録します。
# sdxdisk -M -c System -d sdc=Root3:keep,sdd=Root4:undef |
複数のキープディスクを同時にクラスに登録する際には、同数以上の未定義ディスクを同時にクラスに登録する必要があります。
2-3) キープディスク1つだけをグループに接続します。
# sdxdisk -C -c System -g Group2 -d Root3 |
2-4) ボリュームを作成します。
ボリュームサイズは、手順2-1)で確認したサイズにします。
# sdxvolume -M -c System -g Group2 -v root2 -s 174960 # sdxvolume -M -c System -g Group2 -v var2 -s 235440 |
2-5) 作成したボリュームのサイズを確認します。
手順2-4)で作成したボリュームのサイズが、手順2-1)で確認したサイズと同じであることを確認します。
# sdxinfo -V -c System OBJ NAME CLASS GROUP SKIP JRM 1STBLK LASTBLK BLOCKS STATUS ------ ------- ------- ------- ---- --- -------- -------- -------- -------- volume swap System Group1 off on 0 1049759 1049760 ACTIVE volume * System Group1 * * 1049760 1071359 21600 PRIVATE volume * System Group1 * * 1071360 2946239 1874880 FREE volume usr System Group1 off on 2946240 2965679 19440 ACTIVE volume boot System Group1 off on 2965680 3096899 131220 ACTIVE volume efi System Group1 off on 3096900 3228119 131220 ACTIVE volume root System Group1 off on 3228120 3403079 174960 ACTIVE volume var System Group1 off on 3403080 3638519 235440 ACTIVE volume * System Group2 * * 0 21599 21600 PRIVATE volume root2 System Group2 off on 21600 196559 174960 ACTIVE volume var2 System Group2 off on 196560 431999 235440 ACTIVE volume * System Group2 * * 432000 3376079 2944080 FREE |
3) プロキシボリュームの結合
/ と/varのボリューム(マスタボリューム)にプロキシボリュームを結合することにより、/ および/varのデータをプロキシボリュームにコピーします。ここでは、下図の構成でプロキシボリュームを結合する手順を示します。
3-1) プロキシボリュームを結合します。
# sdxvolume -F -c System -v root2,var2 # sdxproxy Join -c System -m root -p root2 # sdxproxy Join -c System -m var -p var2 |
3-2) 等価性コピーの完了を確認します。
# sdxinfo -S -c System OBJ CLASS GROUP DISK VOLUME STATUS ------ ------- ------- ------- ------- -------- slice System Group2 Root1 swap ACTIVE slice System Group2 Root2 swap ACTIVE slice System Group1 Root1 usr ACTIVE slice System Group1 Root2 usr ACTIVE slice System Group1 Root1 boot ACTIVE slice System Group1 Root2 boot ACTIVE slice System Group1 Root1 efi ACTIVE slice System Group1 Root2 efi ACTIVE slice System Group1 Root1 root ACTIVE slice System Group1 Root2 root ACTIVE slice System Group1 Root1 var ACTIVE slice System Group1 Root2 var ACTIVE slice System Group2 Root3 root2 STOP slice System Group2 Root3 var2 COPY |
等価性コピー中は、プロキシボリュームのスライスのSTATUSフィールドにCOPYと表示されます。プロキシボリュームのスライスのSTATUSがSTOPになっていれば、等価性コピーは完了しています。
4) プロキシボリュームの分離
等価性コピーが完了すると、マスタボリュームとプロキシボリュームは等価性維持状態になります。等価性維持状態のマスタボリュームとプロキシボリュームを分離することにより、プロキシボリュームにマスタボリュームのスナップショットを採取します。
4-1) ファイルシステムの整合性を確保します。
スナップショットのファイルシステムの整合性を確保するには、ファイルシステムの更新を抑止する必要があります。しかし、/、/usr、/varなどのファイルシステムは、システムが動作するのに必要であるため、システム運用中にはマウント解除できません。以下の方法で、システムディスクへの書込みや、システムディスクに未反映の書込みが少ない状態にしてください。
システムをシングルユーザモードで起動します。(省略可能)
システムディスクに書込みを行っているアプリケーションプログラムを停止します。(省略可能)
sync(1)コマンドを実行することにより、メモリ上で更新されてディスクにまだ書き込まれていないファイルシステムのデータをディスクに書き込みます。
a)、b)、c)をすべて実施しても、ファイルシステムの更新を完全には抑止できません。そのため、スナップショットのファイルシステムには、システムパニック発生後と同様な不整合が生じる場合があります。
a)、b)、c)をすべて実施した場合、スナップショットのファイルシステムは、シングルユーザモードでパニックが発生した後のファイルシステムと同様な状態になります。
a)、b)を省略してc)のみを実施した場合、スナップショットのファイルシステムは、システム運用中にパニックが発生した後のファイルシステムと同様な状態になります。
どちらの場合も、ファイルシステムに不整合が生じる場合があるため、手順5-1)で整合性のチェックと修復を行う必要があります。
4-2) プロキシボリュームを分離します。
# sdxproxy Part -c System -p root2,var2 |
4-3) 手順4-1)のa)でシステムをシングルユーザモードで起動した場合は、マルチユーザモードで再起動します。
4-4) 手順4-1)のb)でアプリケーションプログラムを停止した場合は、アプリケーションプログラムを起動します。
5) 代替ブート環境の設定
プロキシボリュームからブートできるように設定を行います。
5-1) プロキシボリューム上のファイルシステムのチェックと修復を行います。
プロキシボリューム上のファイルシステムには不整合が生じている場合があるため、fsck(8)コマンドを使ってチェックと修復を行います。
# fsck /dev/sfdsk/System/dsk/root2 # fsck /dev/sfdsk/System/dsk/var2 |
5-2) 代替ブート環境の設定を行います。
# sdxproxy Root -c System -p root2,var2 |
代替ブート環境の設定が完了すると、以下のようなメッセージが出力されます。
SDX:sdxproxy: INFO: completed definitions of alternative boot environment: current-boot-device=Root1 Root2 alternative-boot-device=Root3 |
出力された現用ブート環境のブートデバイス名(current-boot-deviceの値)と代替ブート環境のブートデバイス名(alternative-boot-deviceの値)を控えておいてください。
6) スナップショットのサイズ拡張
6-1) マスタとプロキシの関係を解除します。
# sdxproxy Break -c System -p root2 # sdxproxy Break -c System -p var2 |
6-2) スナップショットのボリュームサイズを拡張します。
ここでは、/varのスナップショットのボリュームサイズを706320ブロックに拡張する手順を示します。
# sdxvolume -S -c System -v var2 -s 706320 |
6-3) スナップショットのext3ファイルシステムのサイズを拡張します。
ここでは、/varのスナップショットのext3ファイルシステムのサイズを706320ブロックに拡張する手順を示します。
# resize2fs /dev/sfdsk/System/dsk/var2 706320 |
resize2fsコマンドの詳細については、resize2fs(8)のマニュアルページを参照してください。
7) スナップショットのミラーリング
スナップショットのボリュームが属しているグループにディスクを追加することにより、スナップショットのボリュームをミラーリングします。
# sdxdisk -C -c System -g Group2 -d Root4 |
8) 代替ブート環境への切替え
代替ブート環境に切り替えることにより、/varファイルシステムをサイズ拡張後のボリュームに切り替えます。
8-1) 代替ブート環境からシステムをブートします。
EFIブートマネージャのブートオプション選択画面に表示されるブートデバイスの中から、手順5-2)のメッセージで出力された代替ブート環境のブートデバイスのうちの1つを選択します。
EFI Boot Manager ver 1.10 |
8-2) 正常にブートできていることを確認します。
mount(8)コマンドやsdxinfoコマンドを使って、代替ブート環境で正しくブートされていることと、GDSのオブジェクトの状態に異常がないことを確認してださい。また、必要に応じて、代替ブート環境のファイルシステムの内容に問題がないこと、アプリケーションが正常に動作できることなどを確認してください。
正常にブートできていない場合は、元のブート環境に戻してください。元のブート環境に戻すには、EFIブートマネージャのブートオプション選択画面に表示されるブートデバイスの中から、手順5-2)のメッセージで出力された現用ブート環境のブートデバイスのうちの1つを選択します。
EFI Boot Manager ver 1.10 |
9) 不要になったボリュームの削除
代替ブート環境で正常にブートできていることを確認したら、旧ブート環境の / ファイルシステムとサイズ拡張前の/varファイルシステムのボリュームを削除します。
# sdxvolume -F -c System -v root,var # sdxvolume -R -c System -v root # sdxvolume -R -c System -v var |
目次
![]() ![]() |