VERITAS Volume Manager (VxVM) と VxVM cluster feature は、同じボリュームマネージャをもとにした製品です。VxVM cluster feature は、Oracle Parallel Server (OPS) 構成でだけ使用されます。この節では、ボリュームマネージャの制御下にあるディスクを使用して次のオブジェクトを管理する方法について説明します。
ボリュームマネージャディスク
ディスクグループ
サブディスク
プレックス
ボリューム
これらのオブジェクトの管理の詳細は、該当する節を参照してください。
ボリュームマネージャの制御下にあるオブジェクトは、コマンド行ユーティリティまたは Visual Administrator の GUI を使用して作成と管理を行います。
VxVM のマニュアルを使用して Sun Cluster 構成内でボリュームマネージャの制御下にあるオブジェクトを管理する場合は、あらかじめこの章の情報に目を通してください。ここに示す作業は、以下の作業を行うための方法の 1 つです。実際の構成に最も適した方法を使用してください。
これらのオブジェクトは、通常、次のような関係を持ちます。
ディスクはボリュームマネージャに制御され、ディスクグループとしてグループ化される
サブディスク (それぞれはディスクの特定の部分にあたる) は、プレックス (ミラー) を形成するように結合される
ボリュームは、1 つ以上のプレックスから構成される
デフォルトのディスクグループは rootdg (ルートディスクグループ) です。必要に応じて、さらにディスクグループを作成できます。ディスクグループの主な管理作業として、ディスクの追加と削除が挙げられます。
ディスクグループに含めたディスクを使用する前に、物理ディスクのスライスを使用して (ボリュームマネージャ制御下の) ディスクとサブディスクを設定することにより、プレックス (ミラー) を構築する必要があります。プレックスは、連結またはストライプです。
VxVM では、アプリケーションは、スライスではなく (ボリュームマネージャディスクに作成された) ボリュームにアクセスします。
次の節では、作業に使用する VxVM のコマンド行プログラムについて説明しています。特に指示がないかぎり、これらの作業はすべて GUI を使用しても行えます。
Sun Cluster HA データサービスを使用しているノードでは、ディスクグループの論理ホストが保守モードにないかぎり、Sun Cluster の制御下にあるディスクグループに対して vxdg import または deport オプションを手動で実行しないでください。ディスクグループを手動でインポートまたはデポートする前に、ディスクグループを制御できるすべてのノードで scadmin stopnode を実行してそれらのノードの Sun Cluster を停止するか、haswitch -m コマンドを使用して対応するすべての論理ホストを保守モードに切り替える必要があります。ディスクグループの制御を Sun Cluster に戻す用意ができた時点で、ディスクグループをデポートし、その後 scadmin startnode または haswitch(1M) を実行して論理ホストを Sun Cluster の制御下に置くのが最も安全な方法です。
ディスクを VxVM で使用するには、ボリュームマネージャに制御されるディスクとしてあらかじめ識別 (初期化) する必要があります。初期化が正しく行われたディスクは、ディスクグループへの追加、障害のあるディスクの交換、新しいディスクグループの作成などに使用できます。
ディスクにデータが存在しないことを確認します。
ディスクが初期化されると既存のデータは完全に消去されるため、この確認は必ず行なってください。
付属のハードウェアマニュアルの操作指示に従って、ディスク格納装置にディスクデバイスを挿入し、取り付けます。
ディスクを初期化し、ディスクグループに加えます。
この作業は、通常、vxdiskadm メニューまたは GUI を使用して行います。また、コマンド行ユーティリティの vxdisksetup と vxdg addisk を使用して、ディスクの初期化とディスクグループへの追加を行うこともできます。
物理ディスクをオフラインにする必要が生じることがあります。ディスクが破損している場合は、無効にして取り外す必要があります。別のシステムに接続するために物理ディスクをほかの場所に移動する場合も、あらかじめディスクを無効にする必要があります。
物理ディスクをオフラインにするには、まずディスクグループからそのディスクを削除し、続いて vxdisk(1M) コマンドを使用してディスクをオフラインにします。
ディスクを別のシステムに移動させる場合や、ディスクが故障しかかっているか完全に故障した場合は、ディスクを削除することができます。また、不要になったボリュームも削除できます。
ディスクグループからディスクを削除するには、vxdg(1M) コマンドを使用します。プライベートパーティションとパブリックパーティションを削除してボリュームマネージャによるディスク制御を解除するには、vxdiskunsetup(1M) コマンドを使用します。これらのコマンドの詳細は、vxdg(1M) と vxdiskunsetup(1M) のマニュアルページを参照してください。
VxVM では、特定のディスクグループのデフォルトマスターであるアクティブノードからディスクグループの生成を行うのが最も便利です。N+1 構成では、これらのデフォルトマスターノードはそれぞれ、多重ホストディスクコネクティビティを、クラスタ内の 1 つのノードであるホットスタンバイノードとだけ共有します。これらのノードを使用してディスクグループを生成すると、不正に構成されたグループの作成を避けることができます。
新しいディスクグループは、vxdiskadm メニューまたは GUI を使用して作成できます。また、コマンド行ユーティリティ vxdg init も使用できます。
ディスクグループの生成が終わると、vxdg deport コマンドを使用して各ディスクグループをデポートする必要があります。続いて、-t オプションを使用して各グループをホットスタンバイノードにインポートします。-t オプションはインポートが次の起動まで持続することを防止するため、必ず指定してください。VxVM のプレックスとボリュームをすべて作成した後に、ボリュームを起動する必要があります。
ディスクを別のディスクグループに移動させるには、次の手順を使用します。
ディスクをディスクグループ間で移動させるには、ディスクグループからそのディスクを削除し、別のディスクグループに追加します。
次の例は、コマンド行ユーティリティを使用して、物理ディスク c1t0d1 をディスクグループ acct からディスクグループ log_node1 に移動させます。
vxprint(1M) コマンドを使用して、ディスクが使用中であるかどうかを確認します。
# vxprint -g acct TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg acct acct - - - - - - dm c1t0d0 c1t0d0s2 - 2050272 - - - - dm c1t0d1 c1t0d1s2 - 2050272 - - - - dm c2t0d0 c2t0d0s2 - 2050272 - - - - dm c2t0d1 c2t0d1s2 - 2050272 - - - - v newvol gen ENABLED 204800 - ACTIVE - - pl newvol-01 newvol ENABLED 205632 - ACTIVE - - sd c1t0d1-01 newvol-01 ENABLED 205632 0 - - - pl newvol-02 newvol ENABLED 205632 - ACTIVE - - sd c2t0d1-01 newvol-02 ENABLED 205632 0 - - - v vol01 gen ENABLED 1024000 - ACTIVE - - pl vol01-01 vol01 ENABLED 1024128 - ACTIVE - - sd c1t0d0-01 vol01-01 ENABLED 1024128 0 - - - pl vol01-02 vol01 ENABLED 1024128 - ACTIVE - - sd c2t0d0-01 vol01-02 ENABLED 1024128 0 - - - |
vxedit(1M) コマンドを使用してボリュームを削除し、c1t0d1 ディスクを解放します。
vxedit コマンドは、共有ディスクグループをマスターしているノードから実行する必要があります。
# vxedit -g acct -fr rm newvol |
-f オプションは、操作を強制します。-r オプションは、操作を繰り返し実行します。
c1t0d1 ディスクを acct ディスクグループから削除します。
共有ディスクグループをマスターしているノードから、vxdg コマンドを実行してください。
# vxdg -g acct rmdisk c1t0d1 |
c1t0d1 ディスクを log_node1 ディスクグループに追加します。
# vxdg -g log_node1 adddisk c1t0d1 |
この作業は、ディスク上に構成やデータを保存しません。
c1t0d1 が削除された後の acct ディスクグループの状態を次に示します。
# vxprint -g acct TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg acct acct - - - - - - dm c1t0d0 c1t0d0s2 - 2050272 - - - - dm c2t0d0 c2t0d0s2 - 2050272 - - - - dm c2t0d1 c2t0d1s2 - 2050272 - - - - v vol01 gen ENABLED 1024000 - ACTIVE - - pl vol01-01 vol01 ENABLED 1024128 - ACTIVE - - sd c1t0d0-01 vol01-01 ENABLED 1024128 0 - - - pl vol01-02 vol01 ENABLED 1024128 - ACTIVE - - sd c2t0d0-01 vol01-02 ENABLED 1024128 0 - - - |
c1t0d1 が追加された後の log_node1 ディスクグループの状態を次に示します。
# vxprint -g log_node1 TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg log_node1 log_node1 - - - - - - dm c1t0d1 c1t0d1s2 - 2050272 - - - - dm c1t3d0 c1t3d0s2 - 2050272 - - - - dm c2t3d0 c2t3d0s2 - 2050272 - - - - # |
ボリュームのアクセス権または所有権を変更するには、vxedit コマンドを使用する必要があります。
chmod と chgrp は使用しないでください。chmod または chgrp によって設定されるアクセス権と所有権は、再起動時に自動的に root に再設定されます。
変更前の /dev/vx/rdsk ディレクトリ内のボリューム vol01 と vol02 のアクセス権と所有権の例を次に示します。
# ls -l crw------- 1 root root nnn,nnnnn date time vol01 crw------- 1 root root nnn,nnnnn date time vol02 ... |
vol01 のアクセス権と所有権を変更する例を次に示します。
# vxedit -g group_name set mode=755 user=oracle vol01 |
編集後にアクセス権と所有権がどのように変わったかを注意してください。
# ls -l crwxr-xr-x 1 oracle root nnn,nnnnn date time vol01 crw------- 1 root root nnn,nnnnn date time vol02 ... |
ボリューム (仮想ディスク) には、ファイルシステムやデータベースなどのアプリケーションを格納できます。ボリュームは、サブディスクを含むプレックス (最大 32) で構成されます。ボリュームを使用するためには、関連付けられた 1 つ以上のサブディスクに対応する 1 つ以上のプレックスが存在しなければなりません。ボリューム内のサブディスクはすべて、同じディスクグループに属する必要があります。
各ディスクグループのボリュームの作成と、各ボリュームに対応するミラーの作成には、GUI またはコマンド行ユーティリティ vxassist(1M) を使用してください。
VxVM デバイスの実際のサイズは、ディスクドライブ全体の容量よりもわずかに小さくなります。VxVM は、個人的な使用のための領域 (非共有領域と呼ばれる) を少量確保します。
異なるディスクグループにボリュームが属する場合は、同じボリューム名を使用することができます。
ダーティーリージョンログ (DRL) は、システム障害が発生した後に、ミラー化されたボリュームをすばやく回復させるために使用される、オプションのボリュームプロパティです。DRL は、ミラー化されたボリュームに対する I/O 書き込みが原因で変化した領域の記録をとり、この情報を使用して回復を要するボリュームの一部だけを回復させます。
ログサブディスクは、DRL が有効になっているボリュームの DRL を保存するために使用されます。DRL を使用するボリュームには、最低 1 つのログサブディスクが存在します (複数のログサブディスクを使用して DRL をミラー化できます)。各ログサブディスクは、ボリュームのプレックスの 1 つに対応しています。ログサブディスクは、プレックスあたり 1 つしか存在できません。プレックスにログサブディスクだけが含まれ、データサブディスクが含まれない場合、そのプレックスはログプレックスとして参照できます。ログサブディスクは、データサブディスクが入った通常のプレックスと関連付けることもできます。この場合、データサブディスクの 1 つに障害が発生したためにプレックスの切り離しが必要になると、ログサブディスクは使用できなくなる可能性があります。
既存のボリュームのログを作成するには、GUI またはコマンド行ユーティリティ vxassist(1M) を使用してください。
ホットリロケーションは、冗長 (ミラー化または RAID5) ボリュームマネージャオブジェクトの I/O 障害に自動的に反応し、それらのオブジェクトの冗長性とアクセスを自動的に復元するシステム機能です。ホットリロケーションは、VxVM を使用した構成でのみサポートされます。VxVM は、ボリュームマネージャオブジェクトの I/O 障害を検出し、影響を受けたサブディスクをスペアディスクに指定されたディスクに再配置するか、ディスクグループ内の領域を解放します。続いて VxVM は、障害が発生する前に存在していたオブジェクトを再構築し、それらを冗長でアクセス可能な状態に戻します。
部分的なディスク障害 (ディスク上の一部のサブディスクにだけ影響する障害) が発生した場合、ディスクの障害部分に存在する冗長データは再配置され、影響がなかったディスク部分から構成される既存のボリュームは以前のままアクセスできます。
ホットリロケーションが行われるのは、障害が発生したディスク上の冗長 (ミラー化または RAID5) サブディスクに対してだけです。障害が発生したディスク上の非冗長サブディスクは再配置されませんが、それらの障害の通知は行われます。
スペアディスクを交換用として使用するには、あらかじめ初期化し、ディスクグループにスペアとして入れておく必要があります。障害発生時にスペアに指定されたディスクが存在しないと、VxVM は障害が発生したディスクグループ内の使用できる任意の空き領域を自動的に使用します。十分な空き容量がない場合には、スペア領域と空き領域が組み合わされて使用されます。各ディスクグループでは、vxedit(1M) コマンドを使用して 1 つ以上のディスクをホットリロケーションのスペアとして指定できます。
タイプが fsgen であるボリューム上の、論理ホストのディスクグループに対応するファイルシステム (UFS または VxFS) は構成と指定が行えます。クラスタノードが論理ホストを制御する場合、ディスクグループに対応する、論理ホストのファイルシステムは制御側ノードの指定されたマウント先にマウントされます。
論理ホストの再構成作業が行われている間、fsck(1M) コマンドを使用してファイルシステムを検査する必要があります。この処理は UFS ファイルシステム上で非対話式の並列モードで行われますが、再構成作業の総合的な時間に影響を与える可能性があります。UFS、SDS、VxFS ファイルシステムのロギング機能は、ファイルシステムのマウントの前に fsck(1M) が使用する時間を大幅に短縮します。
ボリューム回復に加えてデータサービスのスイッチオーバーが必要な場合、回復は再構成にかかる時間よりも長くなります。この場合はタイムアウトし、ノードが停止します。
このため、ミラー化ボリュームを設定する場合は、システム障害時のボリューム回復時間を短縮するために必ず DRL ログを追加してください。クラスタ環境でミラー化ボリュームが使用されている場合は、500M バイトを超えるボリュームに DRL を割り当てる必要があります。
HA データサービスに 500M バイトを超える大きなファイルシステムが使用されている場合は、VxFS を使用してください。通常、VxFS は Sun Cluster には含まれていないため、VERITAS 社から別途購入する必要があります。
非常に小さなミラー化ファイルシステムを使用して論理ホストを構成することも可能ですが、ファイルシステムのサイズが増えるにつれてタイムアウトが発生する可能性があるため、ダーティーリージョンログ (DRL) または VxFS ファイルシステムを使用することをお勧めします。
ファイルシステムが含まれるストライプ化されたボリュームまたは RAID5 ボリュームを拡張するには、そのボリュームに現在存在するディスクと同じ数のディスク上に空き領域がなければなりません。たとえば、一緒にストライプ化された 4 つの 1G バイトディスク (4G バイトファイルシステム 1 つ) が存在し、1G バイトの容量を追加する場合 (5G バイトのファイルシステムを作成する)、少なくても 0.25G バイトの空き領域をそれぞれ持つ 4 つの新しいディスクが必要です。つまり、1 つのディスクを 4 ディスク構成のストライプに追加することはできません。
VxVM の GUI は、ファイルシステムを拡張するディスクを選択します。ファイルシステムを拡張させる特定のディスクを選択するには、コマンド行インタフェースを使用してください。
UFS ファイルシステムを直接縮小することは不可能ですが、ボリュームを作成し直し、そのボリュームに対して newfs を実行し、その後バックアップからデータを復元すれば縮小されたファイルシステムができます。
ローカルディスクはミラー化できます。一方のミラーに障害が発生した場合は、ボリュームマネージャのマニュアルで説明されている方法に従って、障害が発生したミラーを交換し、新たに追加したディスクと正常なディスクの同期をとり直してください。