PRIMECLUSTER Global Disk Services 説明書 4.2 (Linux版)
目次 前ページ次ページ

付録D コマンドリファレンス

D.20 コマンドによるシステムボリュームの拡張【Itanium】

ここでは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などのファイルシステムは、システムが動作するのに必要であるため、システム運用中にはマウント解除できません。以下の方法で、システムディスクへの書込みや、システムディスクに未反映の書込みが少ない状態にしてください。

  1. システムをシングルユーザモードで起動します。(省略可能)

  2. システムディスクに書込みを行っているアプリケーションプログラムを停止します。(省略可能)

  3. 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

Please select a boot option

Root1
Root2
Root3 選択
...

Use and to change option(s). Use Enter to select an option

8-2) 正常にブートできていることを確認します。

mount(8)コマンドやsdxinfoコマンドを使って、代替ブート環境で正しくブートされていることと、GDSのオブジェクトの状態に異常がないことを確認してださい。また、必要に応じて、代替ブート環境のファイルシステムの内容に問題がないこと、アプリケーションが正常に動作できることなどを確認してください。


正常にブートできていない場合は、元のブート環境に戻してください。元のブート環境に戻すには、EFIブートマネージャのブートオプション選択画面に表示されるブートデバイスの中から、手順5-2)のメッセージで出力された現用ブート環境のブートデバイスのうちの1つを選択します。

EFI Boot Manager ver 1.10

Please select a boot option

Root1 選択
Root2
Root3
...

Use and to change option(s). Use Enter to select an option


9) 不要になったボリュームの削除

代替ブート環境で正常にブートできていることを確認したら、旧ブート環境の / ファイルシステムとサイズ拡張前の/varファイルシステムのボリュームを削除します。

# sdxvolume -F -c System -v root,var
# sdxvolume -R -c System -v root
# sdxvolume -R -c System -v var



目次 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006