ナビゲーションリンクをスキップ
印刷ビューの終了
| Oracle Solaris Cluster システム管理 Oracle Solaris Cluster 3.3 3/13 (日本語)

検索範囲:

- このドキュメント
- ライブラリ全体

## デバイスグループの管理

クラスタの要件の変化により、クラスタ上のデバイスグループの追加、削除、または変更が必要となる場合があります。Oracle Solaris Cluster には、このような変更を行うために使用できる、`clsetup` と呼ばれる対話型インタフェースがあります。`clsetup` は `cluster` コマンドを生成します。生成されるコマンドについては、各説明の後にある例を参照してください。次の表に、デバイスグループを管理するためのタスクを示し、またこのセクションの適切な手順へのリンクを示します。

| 注意 - ほかのノードが有効なクラスタメンバーであり、それらのノードの少なくとも 1 つがディスクセットを持つ場合は、クラスタの外側でブートされるクラスタノードで `metaset —s setname —f -t` を実行しないでください。

注 - Oracle Solaris Cluster ソフトウェアは、クラスタ内のディスクデバイスやテープデバイスごとに、raw ディスクデバイスグループを自動的に作成します。ただし、クラスタデバイスグループはグローバルデバイスとしてアクセスされるまでオフラインのままです。

表 5-4 タスクマップ: デバイスグループの管理

タスク | 手順
--- | ---
`cldevice populate` コマンドを使用することにより、再構成のリブートを行わずにグローバルデバイス名前空間を更新する | 「グローバルデバイス名前空間を更新する方法」
グローバルデバイス名前空間で使用する `lofi` デバイスのサイズを変更する | 「グローバルデバイス名前空間で使用する `lofi` デバイスのサイズを変更する方法」
既存のグローバルデバイス名前空間を移動する | 「専用パーティションから `lofi` デバイスにグローバルデバイス名前空間を移行する方法」 「`lofi` デバイスから専用パーティションにグローバルデバイス名前空間を移行する方法」
`metaset` コマンドを使用することにより、Solaris Volume Manager ディスクセットを追加し、それらをデバイスグループとして登録する | 「デバイスグループを追加および登録する方法 (Solaris Volume Manager)」
`cldevicegroup` コマンドを使用することにより、raw ディスクデバイスグループを追加および登録する | 「デバイスグループ (raw ディスク) を追加および登録する方法」
`cldevicegroup` コマンドを使用することにより、ZFS に名前付きデバイスグループを追加する | 「複製デバイスグループ(ZFS)の追加と登録方法」
`metaset` コマンドおよび `metaclear` コマンドを使用することにより、構成から Solaris Volume Manager デバイスグループを削除する | 「デバイスグループを削除して登録を解除する方法 (Solaris Volume Manager )」
`cldevicegroup`、`metaset`、および `clsetup` コマンドを使用することにより、すべてのデバイスグループからノードを削除する | 「すべてのデバイスグループからノードを削除する方法」
`metaset` コマンドを使用することにより、Solaris Volume Manager デバイスグループからノードを削除する | 「デバイスグループからノードを削除する方法 (Solaris Volume Manager)」
`cldevicegroup` コマンドを使用することにより、raw ディスクデバイスグループからノードを削除する | 「raw ディスクデバイスグループからノードを削除する方法」
`clsetup` を使用して `cldevicegroup` を生成することにより、デバイスグループのプロパティーを変更する | 「デバイスグループのプロパティーを変更する方法」
`cldevicegroup show` コマンドを使用することにより、デバイスグループとプロパティーを表示する | 「デバイスグループ構成の一覧を表示する方法」
`clsetup` を使用して `cldevicegroup` を生成することにより、デバイスグループのセカンダリノードの希望数を変更する | 「デバイスグループのセカンダリノードの希望数を設定する方法」
`cldevicegroup switch` コマンドを使用することにより、デバイスグループのプライマリノードを切り替える | 「デバイスグループのプライマリノードを切り替える」
`metaset` コマンドまたは `vxdg` コマンドを使用することにより、デバイスグループを保守状態にする | 「デバイスグループを保守状態にする方法」

## グローバルデバイス名前空間を更新する方法

新しいグローバルデバイスを追加するときに、`cldevice populate` コマンドを実行して手動でグローバルデバイス名前空間を更新します。

注 - コマンドを実行するノードがクラスタのメンバーでない場合は、`cldevice populate` コマンドを実行しても無効です。また、`/global/.devices/node@` nodeID ファイルシステムがマウントされていない場合も、コマンドは無効になります。

1. クラスタの任意のノードで、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.modify` を提供する役割になります。
2. クラスタ内の各ノードで、`devfsadm`(1M) コマンドを実行します。

   このコマンドは、すべてのノードで同時に実行できます。

3. 名前空間を再構成します。

       # cldevice populate

4. ディスクセットを作成する前に、各ノードで `cldevice populate` コマンドが完了していることを確認します。

   `cldevice` コマンドは、1 つのノードだけで実行された場合でも、すべてのノードでリモートから自身を呼び出します。 `cldevice populate` コマンドが処理を終了したかどうかを確認するには、クラスタの各ノードで次のコマンドを実行します。

       # ps -ef | grep cldevice populate

例 5-21 グローバルデバイス名前空間を更新する

次の例に、`cldevice populate` コマンドを正しく実行することにより生成される出力を示します。

    # devfsadm
    cldevice populate
    Configuring the /dev/global directory (global devices)...
    obtaining access to all attached disks
    reservation program successfully exiting
    # ps -ef | grep cldevice populate

## グローバルデバイス名前空間で使用する `lofi` デバイスのサイズを変更する方法

グローバルクラスタの 1 つ以上のノードのグローバルデバイス名前空間で `lofi` デバイスを使用する場合は、次の手順を使用してデバイスのサイズを変更します。

1. サイズを変更するグローバルデバイス名前空間の `lofi` デバイスのノードで、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.modify` を提供する役割になります。
2. ノードからサービスを退避させ、ノードを非クラスタモードでリブートします。

   これは、この手順の実行中にグローバルデバイスがこのノードからサービスを提供されないようにするために行います。 手順については、「非クラスタモードでノードをブートする方法」を参照してください。

3. グローバルデバイスのファイルシステムをマウント解除し、その `lofi` デバイスを切り離します。

   グローバルデバイスファイルシステムはローカルにマウントされます。

       phys-schost# umount /global/.devices/node\@`clinfo -n` > /dev/null 2>&1

       Ensure that the lofi device is detached
       phys-schost# lofiadm -d /.globaldevices
       The command returns no output if the device is detached

   注 - `-m` オプションを使用してファイルシステムがマウントされた場合、`mnttab` ファイルにエントリは追加されません。 `umount` コマンドによって次のような警告が報告される場合があります。

       umount: warning: /global/.devices/node@2 not in mnttab    ====>>>>
       not mounted

   この警告は無視してもかまいません。

4. `/.globaldevices` ファイルを削除し、必要なサイズで再作成します。

   次の例は、サイズが 200M バイトの新しい `/.globaldevices` ファイルの作成を示しています。

       phys-schost# rm /.globaldevices
       phys-schost# mkfile 200M /.globaldevices

5. グローバルデバイス名前空間の新しいファイルシステムを作成します。

       phys-schost# lofiadm -a /.globaldevices
       phys-schost# newfs `lofiadm /.globaldevices` < /dev/null

6. クラスタモードでノードをブートします。

   グローバルデバイスが新しいファイルシステムに生成されました。

       phys-schost# reboot

7. サービスを実行するノードに移行します。

### グローバルデバイス名前空間を移行する

専用パーティションでグローバルデバイス名前空間を作成するのではなく、ループバックファイルインタフェース (lofi) デバイス上に名前空間を作成できます。この機能は、Oracle Solaris 10 OS とともに事前にインストールされたシステムに Oracle Solaris Cluster ソフトウェアをインストールする場合に便利です。

注 - ルートファイルシステムに ZFS がサポートされていますが、重要な例外が 1 つあります。グローバルデバイスファイルシステムにブートディスクの専用パーティションを使用する場合、ファイルシステムとして UFS のみを使用してください。グローバルデバイス名前空間には、UFS ファイルシステムで動作しているプロキシファイルシステム (PxFS) が必要です。ただし、グローバルデバイス名前空間の UFS ファイルシステムは、ルート (/) ファイルシステムやほかのルートファイルシステム (`/var` や `/home` など) 用の ZFS ファイルシステムと共存できます。また、lofi デバイスを使用してグローバルデバイス名前空間をホストする場合、ルートファイルシステムに対する ZFS の使用に関する制限はありません。

次の手順は、既存のグローバルデバイス名前空間を専用パーティションから lofi デバイスまたはその逆に移行する方法を説明しています。

- 「専用パーティションから `lofi` デバイスにグローバルデバイス名前空間を移行する方法」

- 「`lofi` デバイスから専用パーティションにグローバルデバイス名前空間を移行する方法」

## 専用パーティションから `lofi` デバイスにグローバルデバイス名前空間を移行する方法

1. 名前空間の場所を変更したいグローバルクラスタ投票ノードのスーパーユーザーになります。
2. ノードからサービスを退避させ、ノードを非クラスタモードでリブートします。

   これは、この手順の実行中にグローバルデバイスがこのノードからサービスを提供されないようにするために行います。 手順については、「非クラスタモードでノードをブートする方法」を参照してください。

3. `/.globaldevices` という名前のファイルがノードに存在しないことを確認します。ファイルが存在する場合は、削除します。
4. `lofi` デバイスを作成します。

       # mkfile 100m /.globaldevices# lofiadm -a /.globaldevices
       # LOFI_DEV=`lofiadm /.globaldevices`
       # newfs `echo ${LOFI_DEV} | sed -e 's/lofi/rlofi/g'` < /dev/null# lofiadm -d /.globaldevices

5. `/etc/vfstab` ファイルで、グローバルデバイス名前空間エントリをコメントアウトします。このエントリには、`/global/.devices/node@nodeID` で始まるマウントパスがあります。
6. グローバルデバイスパーティション `/global/.devices/node@nodeID` をアンマウントします。
7. `globaldevices` および `scmountdev` SMF サービスを無効にし再度有効にします。

       # svcadm disable globaldevices# svcadm disable scmountdev
       # svcadm enable scmountdev
       # svcadm enable globaldevices

   `lofi` デバイスは現在 `/.globaldevices` に作成され、グローバルデバイスファイルシステムとしてマウントされています。

8. パーティションから `lofi` デバイスへ移行したいグローバルデバイス名前空間のある他のノードでもこのステップを繰り返します。
9. 1 つのノードから、グローバルデバイス名前空間を生成します。

       # /usr/cluster/bin/cldevice populate

   各ノードで、コマンドが処理を完了したことを確認してから、クラスタに対する以降の操作を実行してください。

       # ps -ef \ grep cldevice populate

   グローバルデバイス名前空間は、現在 `lofi` デバイスにあります。

10. サービスを実行するノードに移行します。

## `lofi` デバイスから専用パーティションにグローバルデバイス名前空間を移行する方法

1. 名前空間の場所を変更したいグローバルクラスタ投票ノードのスーパーユーザーになります。
2. ノードからサービスを退避させ、ノードを非クラスタモードでリブートします。

   これは、この手順の実行中にグローバルデバイスがこのノードからサービスを提供されないようにするために行います。 手順については、「非クラスタモードでノードをブートする方法」を参照してください。

3. ノードのローカルディスクで、次の要件を満たす新しいパーティションを作成します。

   - サイズが 512 M バイト以上

   - UFS ファイルシステムの使用

4. グローバルデバイスファイルシステムとしてマウントする新しいパーティションに、`/etc/vfstab` ファイルへのエントリを追加します。
   - 現在のノードのノード ID を指定します。

         # /usr/sbin/clinfo -nnode ID

   - 次の形式を使用して、`/etc/vfstab` ファイルに新しいエントリを作成します。

         blockdevice rawdevice /global/.devices/node@nodeID ufs 2 no global

   たとえば、使用するパーティションが `/dev/did/rdsk/d5s3` の場合、`/etc/vfstab` ファイルに追加する新しいエントリは、`/dev/did/dsk/d5s3 /dev/did/rdsk/d5s3 /global/.devices/node@3 ufs 2 no global` となります。

5. グローバルデバイスパーティション `/global/.devices/node@`nodeID のマウントを解除します。
6. `/.globaldevices` ファイルに関連付けられた `lofi` デバイスを削除します。

       # lofiadm -d /.globaldevices

7. `/.globaldevices` ファイルを削除します。

       # rm /.globaldevices

8. `globaldevices` および `scmountdev` SMF サービスを無効にし再度有効にします。

       # svcadm disable globaldevices# svcadm disable scmountdev
       # svcadm enable scmountdev
       # svcadm enable globaldevices

   パーティションは現在グローバルデバイス名前空間ファイルシステムとしてマウントされています。

9. `lofi` デバイスからパーティションへ移行したいグローバルデバイス名前空間のある他のノードでもこのステップを繰り返します。
10. クラスタモードでブートします。クラスタの 1 つのノードから、`cldevice populate` コマンドを実行し、グローバルデバイス名前空間を生成します。

        # /usr/cluster/bin/cldevice populate

    クラスタのすべてのノードで処理が完了したことを確認してから、ノードに対する作業を実行してください。

        # ps -ef | grep cldevice populate

    グローバルデバイス名前空間は、現在専用パーティションにあります。

11. サービスを実行するノードに移行します。

### デバイスグループを追加および登録する

Solaris Volume Manager、ZFS、または raw ディスクのデバイスグループを追加および登録できます。

## デバイスグループを追加および登録する方法 (Solaris Volume Manager)

`metaset` コマンドを使用して Solaris Volume Manager ディスクセットを作成し、そのディスクセットを Oracle Solaris Cluster デバイスグループとして登録します。 デバイスグループには、ディスクセットを登録するときにディスクセットに割り当てた名前が自動的に割り当てられます。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

| 注意 - 作成する Oracle Solaris Cluster デバイスグループ (Solaris Volume Manager、または raw ディスク) の名前は、複製されたデバイスグループと同じ名前にしてください。

1. ディスクセットを作成するディスクに接続されたノードのいずれかで、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.modify` を提供する役割になります。
2. Solaris Volume Manager ディスクセットを追加し、このディスクセットをデバイスグループとして Oracle Solaris Cluster に登録します。複数所有者のディスクグループを作成するには、`–M` オプションを使用します。

       # metaset -s diskset -a -M -h nodelist

   `-s` diskset

     作成するディスクセットを指定します。

   `-a` `-h` nodelist

     ディスクセットをマスターできるノードの一覧を追加します。

   `-M`

     ディスクグループを複数所有者として指定します。

   注 - `metaset` コマンドを実行して設定した、クラスタ上の Solaris Volume Manager デバイスグループは、そのデバイスグループに含まれるノード数に関わらず、デフォルトでセカンダリノードになります。 デバイスグループが作成されたあと、`clsetup` ユーティリティーを使用することで、セカンダリノードの希望数を変更できます。ディスクのフェイルオーバーの詳細については、「デバイスグループのセカンダリノードの希望数を設定する方法」を参照してください。

3. 複製されたデバイスグループを構成している場合は、そのデバイスグループの複製プロパティーを設定します。

       # cldevicegroup sync devicegroup

4. デバイスグループが追加されたことを確認します。

   デバイスグループ名は `metaset` に指定したディスクセット名と一致します。

       # cldevicegroup list

5. DID マッピングの一覧を表示します。

       # cldevice show | grep Device

   - ディスクセットをマスターする (またはマスターする可能性がある) クラスタノードによって共有されているドライブを選択します。

   - ディスクセットにドライブを追加する際は、`/dev/did/rdsk/d` N の形式の完全な DID デバイス名を使用してください。

   次の例では、DID デバイス `/dev/did/rdsk/d3` のエントリは、ドライブが `phys-schost-1` および `phys-schost-2` によって共有されていることを示しています。

       === DID Device Instances ===
       DID Device Name:                                /dev/did/rdsk/d1
         Full Device Path:                               phys-schost-1:/dev/rdsk/c0t0d0
       DID Device Name:                                /dev/did/rdsk/d2
         Full Device Path:                               phys-schost-1:/dev/rdsk/c0t6d0
       DID Device Name:                                /dev/did/rdsk/d3
         Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
         Full Device Path:                               phys-schost-2:/dev/rdsk/c1t1d0
       …

6. ディスクセットにドライブを追加します。

   完全な DID パス名を使用します。

       # metaset -s setname -a /dev/did/rdsk/dN

   `-s` setname

     デバイスグループ名と同じである、ディスクセット名を指定します。

   `-a`

     ディスクセットにドライブを追加します。

   注 - ディスクセットにドライブを追加するときは、下位デバイス名 (`c` N `t` X `d` Y) は使用しないでください。下位レベルデバイス名はローカル名であり、クラスタ全体で一意ではないため、この名前を使用するとディスクセットがスイッチオーバーできなくなる可能性があります。

7. 新しいディスクセットとドライブのステータスを検査します。

       # metaset -s setname

例 5-22 Solaris Volume Manager デバイスグループの追加

次の例は、ディスクドライブ `/dev/did/rdsk/d1` および `/dev/did/rdsk/d2` を持つディスクセットおよびデバイスグループの作成を示し、デバイスグループが作成されたことを確認しています。

    # metaset -s dg-schost-1 -a -h phys-schost-1

    # cldevicegroup list
    dg-schost-1
    metaset -s dg-schost-1 -a /dev/did/rdsk/d1 /dev/did/rdsk/d2

## デバイスグループ (raw ディスク) を追加および登録する方法

Oracle Solaris Cluster ソフトウェアでは、他のボリュームマネージャーに加え、raw ディスクデバイスグループを使用できます。 Oracle Solaris Cluster を最初に構成する際、クラスタ内の raw デバイスごとにデバイスグループが自動的に構成されます。 ここで説明する手順を使用して、これらの自動作成されたデバイスグループを Oracle Solaris Cluster ソフトウェアで使用できるように再構成します。

次の理由のため、raw ディスクタイプの新しいデバイスグループを作成します。

- 複数の DID をデバイスグループに追加したい

- デバイスグループの名前を変更する必要がある

- cldg コマンドの -v オプションを使用せずにデバイスグループのリストを作成したい

| 注意 - 複製したデバイスにデバイスグループを作成する場合は、作成するデバイスグループ名 (Solaris Volume Manager、または raw ディスク) は複製したデバイスグループの名前と同じにする必要があります。

1. 使用する各デバイスを特定し、事前に規定されたデバイスグループの構成を解除します。

   次のコマンドは、`d7` および `d8` に対する定義済みのデバイスグループを除去します。

       paris-1# cldevicegroup disable dsk/d7 dsk/d8
       paris-1# cldevicegroup offline dsk/d7 dsk/d8
       paris-1# cldevicegroup delete dsk/d7 dsk/d8

2. 必要なデバイスを含む、新しい raw ディスクデバイスグループを作成します。

   次のコマンドは、グローバルデバイスグループ `rawdg` を作成します。このデバイスグループに `d7` および `d8` が収められます。

       paris-1# cldevicegroup create -n phys-paris-1,phys-paris-2 -t rawdisk
                -d d7,d8 rawdg
       paris-1# /usr/cluster/lib/dcs/cldg show rawdg -d d7 rawdg
       paris-1# /usr/cluster/lib/dcs/cldg show rawdg -d d8 rawdg

## 複製デバイスグループ(ZFS)の追加と登録方法

ZFS を複製するには、名前付きデバイスグループを作成し、zpool に属するディスクをリストする必要があります。デバイスは、一度に 1 つのデバイスグループのみに属することができるため、デバイスを含む Oracle Solaris Cluster デバイスグループがすでにある場合、そのデバイスを新しい ZFS デバイスグループに追加する前にそのグループを削除する必要があります。

作成する Oracle Solaris Cluster デバイスグループ (Solaris Volume Manager、または raw ディスク) の名前は、複製されたデバイスグループと同じ名前にしてください。

| 注意 - サードパーティーのデータ複製テクノロジを使用した ZFS の全面的なサポートは保留中です。ZFS サポートの更新情報については、最新の Oracle Solaris Cluster リリースノートを参照してください。

1. zpool のデバイスに対応するデフォルトデバイスグループを削除してください。

   たとえば、2 つのデバイス `/dev/did/dsk/d2` と `/dev/did/dsk/d13` を含む `mypool` と呼ばれる zpool がある場合、`d2` と `d13` と呼ばれる 2 つのデフォルトデバイスグループを削除する必要があります。

       # cldevicegroup offline dsk/d2 dsk/d13
       # cldevicegroup delete dsk/d2 dsk/d13

2. 手順 1 で削除したデバイスグループの DID に対応する DID を使って名前付きデバイスグループを作成します。

       # cldevicegroup create -n pnode1,pnode2 -d d2,d13 -t rawdisk mypool

   このアクションでは、mypool(zpool と同じ名前)と呼ばれるデバイスグループが作成され、raw デバイス /dev/did/dsk/d2 と /dev/did/dsk/d13 を管理します。

3. それらのデバイスを含む zpool を作成します。

       # zpool create mypool mirror /dev/did/dsk/d2 /dev/did/dsk/d13

4. リソースグループを作成し、ノードリストに唯一のグローバルゾーンのある複製したデバイス (デバイスグループ内) の移行を管理します。

       # clrg create -n pnode1,pnode2 migrate_truecopydg-rg

5. 手順 4 で作成したリソースグループに hasp-rs リソースを作成し、`globaldevicepaths` プロパティーを raw ディスクのデバイスグループに設定します。このデバイスグループは手順 2 で作成しました。

       # clrs create -t HAStoragePlus -x globaldevicepaths=mypool -g \
       migrate_truecopydg-rg hasp2migrate_mypool

6. アプリケーションリソースグループがローカルゾーンで実行される場合、適切なローカルゾーンが含まれるノードリストを使用して新しいリソースグループを作成します。ローカルゾーンに対応するグローバルゾーンは、手順 4 で作成したリソースグループのノードリストに含まれている必要があります。このリソースグループの `rg_affinities` プロパティーの `+++` 値を、手順 4 で作成したリソースグループに設定します。

       # clrg create -n pnode1:zone-1,pnode2:zone-2 -p \
       RG_affinities=+++migrate_truecopydg-rg sybase-rg

7. 手順 4 または手順 6 のいずれかで作成したリソースグループ内に、手順 3 で作成した zpool の HAStoragePlus リソース (`hasp-rs`) を作成します。`resource_dependencies` プロパティーを、手順 5 で作成した `hasp-rs` リソースに設定します。

       # clrs create -g sybase-rg -t HAStoragePlus -p zpools=mypool \
       -p resource_dependencies=hasp2migrate_mypool \
       -p ZpoolsSearchDir=/dev/did/dsk hasp2import_mypool

8. デバイスグループ名が必要な場合には、この新しいリソースグループ名を使用します。

### デバイスグループ名を保守する

デバイスグループに対して様々な管理タスクを実行することができます。

### デバイスグループを削除して登録を解除する方法 (Solaris Volume Manager )

デバイスグループは Oracle Solaris Cluster に登録されている Solaris Volume Manager ディスクセットです。 Solaris Volume Manager デバイスグループを削除するには、`metaclear` と `metaset` コマンドを使用します。これらのコマンドは、Oracle Solaris Cluster デバイスグループと同じ名前を持つデバイスグループを削除して、ディスクグループの登録を解除します。

ディスクセットを削除する方法については、Solaris Volume Manager のドキュメントを参照してください。

## すべてのデバイスグループからノードを削除する方法

すべてのデバイスグループの潜在的なプライマリノードからクラスタノードを削除する場合は、この手順を使用します。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

1. すべてのデバイスグループの潜在的なプライマリノードとして削除するノード上で、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.modify` を提供する役割になります。
2. 削除するノードがメンバーになっているデバイスグループ (複数可) を確認します。

   各デバイスグループの `Device group node list` からこのノード名を検索します。

       # cldevicegroup list -v

3. 手順 2 で特定したデバイスグループの中に、デバイスグループタイプが `SVM` のものがある場合、そのタイプの各デバイスグループに対して「デバイスグループからノードを削除する方法 (Solaris Volume Manager)」の手順を実行します。
4. 削除するノードがメンバーになっている raw デバイスディスクグループを特定します。

       # cldevicegroup list -v

5. 手順 4 で表示されたデバイスグループの中に、デバイスグループタイプが `Disk` または `Local_Disk` のものがある場合、これらの各デバイスグループに対して、「raw ディスクデバイスグループからノードを削除する方法」の手順を実行します。
6. すべてのデバイスグループの潜在的なプライマリノードのリストからノードが削除されていることを確認します。

   ノードがどのデバイスグループの潜在的なプライマリノードのリストにも存在しなければ、このコマンドは何も返しません。

       # cldevicegroup list -v nodename

## デバイスグループからノードを削除する方法 (Solaris Volume Manager)

Solaris Volume Manager デバイスグループの潜在的なプライマリノードのリストからクラスタノードを削除するには、次の手順を使用します。ノードを削除したいグループデバイスごとに `metaset` コマンドを繰り返します。

| 注意 - ほかのノードが有効なクラスタメンバーであり、それらのノードの少なくとも 1 つがディスクセットを持つ場合は、クラスタの外側でブートされるクラスタノードで `metaset —s setname —f -t` を実行しないでください。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

1. ノードがまだデバイスグループのメンバーであり、かつ、このデバイスグループが Solaris Volume Manager デバイスグループであることを確認します。

   Solaris Volume Manager のデバイスグループは、デバイスグループタイプが `SDS/SVM` のものです。

       phys-schost-1% cldevicegroup show devicegroup

2. どのノードがデバイスグループの現在のプライマリノードであるかを特定します。

       # cldevicegroup status devicegroup

3. 変更したいデバイスグループを所有しているノードでスーパーユーザーになります。
4. デバイスグループからこのノードのホスト名を削除します。

       # metaset -s setname -d -h nodelist

   `-s` setname

     デバイスグループの名前を指定します。

   `-d`

     `-h` で指定されたノードをデバイスグループから削除します。

   `-h` nodelist

     削除するノード (複数可) のノード名を指定します。

   注 - 更新が完了するまでに数分間かかることがあります。

   コマンドが正常に動作しない場合は、コマンドに `-f` (force) オプションを追加します。

       # metaset -s setname -d -f -h nodelist

5. 潜在的なプライマリノードとしてノードを削除するデバイスグループごとに手順 4 を繰り返します。
6. デバイスグループからノードが削除されたことを確認します。

   デバイスグループ名は `metaset` に指定したディスクセット名と一致します。

       phys-schost-1% cldevicegroup list -v devicegroup

例 5-23 デバイスグループからノードを削除する (Solaris Volume Manager)

次に、デバイスグループ構成からホスト名 `phys-schost-2` を削除する例を示します。この例では、指定したデバイスグループから `phys-schost-2` を潜在的なプライマリノードとして削除します。`cldevicegroup show` コマンドを実行することにより、ノードが削除されていることを確認します。削除したノードが画面に表示されていないことを確認します。

    [Determine the Solaris Volume Manager
     device group for the node:]
    # cldevicegroup show dg-schost-1
    === Device Groups ===

    Device Group Name:                    dg-schost-1
      Type:                                 SVM
      failback:                             no
      Node List:                            phys-schost-1, phys-schost-2
      preferenced:                          yes
      numsecondaries:                       1
      diskset name:                         dg-schost-1
    [Determine which node is the current primary for the device group:]
    # cldevicegroup status dg-schost-1
    === Cluster Device Groups ===

    --- Device Group Status ---

    Device Group Name    Primary         Secondary      Status
    -----------------    -------         ---------      ------
    dg-schost-1          phys-schost-1   phys-schost-2  Online
    [Become superuser on the node that currently owns the device group.]
    [Remove the host name from the device group:]
    # metaset -s dg-schost-1 -d -h phys-schost-2
    [Verify removal of the node:]]
    phys-schost-1% cldevicegroup list -v dg-schost-1
    === Cluster Device Groups ===

    --- Device Group Status ---

    Device Group Name    Primary         Secondary      Status
    -----------------    -------         ---------      ------
    dg-schost-1          phys-schost-1   -              Online

## raw ディスクデバイスグループからノードを削除する方法

raw ディスクデバイスグループの潜在的プライマリノードリストからクラスタノードを削除する場合は、この手順を使用します。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

1. クラスタ内のノード、ただし削除するノード以外のノード上で、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.read` および `solaris.cluster.modify` を提供する役割になります。
2. 削除されるノードに接続されたデバイスグループを特定し、どれが raw ディスクデバイスグループであるかを判別します。

       # cldevicegroup show -n nodename -t rawdisk +

3. すべての `Local_Disk` raw ディスクデバイスグループの `localonly` プロパティーを無効にします。

       # cldevicegroup set -p localonly=false devicegroup

   `localonly` プロパティーについての詳細は、`cldevicegroup`(1CL) のマニュアルページを参照してください。

4. 削除するノードに接続されているすべての raw ディスクデバイスグループの `localonly` プロパティーが無効になっていることを確認します。

   デバイスグループタイプ `Disk` は、この raw ディスクデバイスグループの `localonly` プロパティーが無効になっていることを表します。

       # cldevicegroup show -n nodename -t rawdisk -v +

5. 手順 2 で特定されたすべての raw ディスクデバイスグループからノードを削除します。

   この手順は、削除するノードに接続されている raw ディスクデバイスグループごとに行う必要があります。

       # cldevicegroup remove-node -n nodename devicegroup

例 5-24 raw デバイスグループからノードを削除する

この例では、raw ディスクデバイスグループからノード (`phys-schost-2`) を削除します。すべてのコマンドは、クラスタの別のノード (`phys-schost-1`) から実行します。

    [Identify the device groups connected to the node being removed, and determine which are raw-disk
        device groups:]
    phys-schost-1# cldevicegroup show -n phys-schost-2 -t rawdisk -v +
    Device Group Name:                              dsk/d4
      Type:                                           Disk
      failback:                                       false
      Node List:                                      phys-schost-2
      preferenced:                                    false
      localonly:                                      false
      autogen                                         true
      numsecondaries:                                 1
      device names:                                   phys-schost-2

    Device Group Name:                              dsk/d2
      Type:                                           Disk
      failback:                                       true
      Node List:                                      pbrave2
      preferenced:                                    false
      localonly:                                      false
      autogen                                         true
      numsecondaries:                                 1
      diskgroup name:                                 vxdg1

    Device Group Name:                              dsk/d1
      Type:                                           SVM
      failback:                                       false
      Node List:                                      pbrave1, pbrave2
      preferenced:                                    true
      localonly:                                      false
      autogen                                         true
      numsecondaries:                                 1
      diskset name:                                   ms1
    (dsk/d4) Device group node list:  phys-schost-2
        (dsk/d2) Device group node list:  phys-schost-1, phys-schost-2
        (dsk/d1) Device group node list:  phys-schost-1, phys-schost-2
    [Disable the localonly flag for each local disk on the node:]
    phys-schost-1# cldevicegroup set -p localonly=false dsk/d4
    [Verify that the localonly flag is disabled:]
    phys-schost-1# cldevicegroup show -n phys-schost-2 -t rawdisk +
     (dsk/d4) Device group type:          Disk
     (dsk/d8) Device group type:          Local_Disk
    [Remove the node from all raw-disk device groups:]

    phys-schost-1# cldevicegroup remove-node -n phys-schost-2 dsk/d4
    phys-schost-1# cldevicegroup remove-node -n phys-schost-2 dsk/d2
    phys-schost-1# cldevicegroup remove-node -n phys-schost-2 dsk/d1

## デバイスグループのプロパティーを変更する方法

デバイスグループの主所有権を確立する方法は、`preferenced` という所有権設定属性の設定に基づきます。この属性を設定していない場合は、ほかで所有されていないデバイスグループのプライマリ所有者が、そのグループ内のディスクへのアクセスを試みる最初のノードになります。一方、この属性を設定してある場合は、ノードが所有権の確立を試みる優先順位を指定する必要があります。

`preferenced` 属性を無効にすると、`failback` 属性も自動的に無効に設定されます。ただし、`preferenced` 属性を有効または再有効にする場合は、`failback` 属性を有効にするか無効にするかを選択できます。

`preferenced` 属性を有効または再有効にした場合は、プライマリ所有権の設定一覧でノードの順序を確立し直す必要があります。

この手順では、`clsetup` を使用して、Solaris Volume Manager デバイスグループの `preferenced` 属性と `failback` 属性を設定または設定解除します。

始める前に

この手順を実行するには、属性値を変更するデバイスグループの名前が必要です。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

1. クラスタの任意のノードで、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.read` および `solaris.cluster.modify` を提供する役割になります。
2. `clsetup` ユーティリティーを起動します。

       # clsetup

   メインメニューが表示されます。

3. デバイスグループの作業を行うには、デバイスグループやボリュームのオプションに対応する番号を入力します。

   「デバイスグループメニュー」が表示されます。

4. デバイスグループの重要なプロパティーを変更するには、Solaris Volume Manager デバイスグループの重要なプロパティーを変更するためのオプションに対応する番号を入力します。

   「デバイスグループのプロパティー変更メニュー」が表示されます。

5. デバイスグループのプロパティーを変更するには、preference、failback などのプロパティーを変更するオプションに対応する番号を入力します。

   指示に従って、デバイスグループの `preferenced` および `failback` オプションを設定します。

6. デバイスグループの属性が変更されたことを確認します。

   次のコマンドを実行し、表示されるデバイスグループ情報を確認します。

       # cldevicegroup show -v devicegroup

例 5-25 デバイスグループのプロパティーの変更

次に、`clsetup` でデバイスグループ (`dg-schost-1`) の属性値を設定したときに生成される `cldevicegroup` コマンドの例を示します。

    # cldevicegroup set -p preferenced=true -p failback=true -p numsecondaries=1 \
    -p nodelist=phys-schost-1,phys-schost-2 dg-schost-1
    # cldevicegroup show dg-schost-1

    === Device Groups ===

    Device Group Name:                        dg-schost-1
      Type:                                     SVM
      failback:                                 yes
      Node List:                                phys-schost-1, phys-schost-2
      preferenced:                              yes
      numsecondaries:                           1
      diskset names:                             dg-schost-1

## デバイスグループのセカンダリノードの希望数を設定する方法

`numsecondaries` プロパティーは、プライマリノードに障害が発生した場合にグループをマスターできる、デバイスグループ内のノード数を指定します。デバイスサービスのセカンダリノードのデフォルト数は 1 です。この値には、1 からデバイスグループ内で動作しているプライマリノード以外のプロバイダノード数までの任意の整数を設定できます。

この設定は、クラスタの性能と可用性のバランスをとるための重要な要因になります。たとえば、セカンダリノードの希望数を増やすと、クラスタ内で同時に複数の障害が発生した場合でも、デバイスグループが生き残る可能性が増えます。しかし、セカンダリノード数を増やすと、通常の動作中の性能が一様に下がります。通常、セカンダリノード数を減らすと、性能が上がりますが、可用性が下がります。しかし、セカンダリノード数を増やしても、必ずしも、当該のファイルシステムまたはデバイスグループの可用性が上がるわけではありません。詳細は、『Oracle Solaris Cluster Concepts Guide』の第 3 章「Key Concepts for System Administrators and Application Developers」を参照してください。

`numsecondaries` プロパティーを変更すると、セカンダリノードの実際数と希望数の間に整合性がない場合、セカンダリノードはデバイスグループに追加されるか、またはデバイスグループから削除されます。

この手順では、`clsetup` ユーティリティーを使用して、すべてのタイプのデバイスグループの `numsecondaries` プロパティーを設定します。デバイスグループを構成する際のデバイスグループのオプションの詳細については、`cldevicegroup`(1CL) を参照してください。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

1. クラスタの任意のノードで、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.read` および `solaris.cluster.modify` を提供する役割になります。
2. `clsetup` ユーティリティーを起動します。

       # clsetup

   メインメニューが表示されます。

3. デバイスグループを使用して作業するには、「デバイスグループとボリューム (Device Groups and Volumes)」メニュー項目を選択します。

   「デバイスグループメニュー」が表示されます。

4. デバイスグループの重要なプロパティーを変更するには、「デバイスグループのキープロパティを変更 (Change Key Properties of a Device Group)」メニュー項目を選択します。

   「デバイスグループのプロパティー変更メニュー」が表示されます。

5. セカンダリの希望数を変更するには、`numsecondaries` プロパティーを変更するためのオプションに対応する番号を入力します。

   指示に従って、デバイスグループに構成したいセカンダリノードの希望数を入力します。対応する `cldevicegroup` コマンドが実行され、ログが出力され、ユーティリティーは前のメニューに戻ります。

6. デバイスグループの構成を検証します。

       # cldevicegroup show dg-schost-1
       === Device Groups ===

       Device Group Name:                    dg-schost-1
         Type:                                 Local_Disk  This might also be SDS.
         failback:                             yes
         Node List:                            phys-schost-1, phys-schost-2 phys-schost-3
         preferenced:                          yes
         numsecondaries:                       1
         diskgroup names:                         dg-schost-1

   注 - クラスタに登録されているディスクグループまたはボリュームの構成情報を変更する場合は、`clsetup` を使用してデバイスグループを再登録する必要があります。このような構成変更には、ボリュームの追加や削除、既存ボリュームのグループ、所有者、アクセス権の変更などがあります。構成変更後に登録を行うと、グローバルな名前空間が正しい状態になります。「グローバルデバイス名前空間を更新する方法」 を参照してください。

7. デバイスグループの属性が変更されたことを確認します。

   次のコマンドを実行して、表示されるデバイスグループ情報を確認します。

       # cldevicegroup show -v devicegroup

例 5-26 セカンダリの希望数の変更 (Solaris Volume Manager)

次に、デバイスグループ (`dg-schost-1`) のセカンダリノードの希望数を構成するときに、`clsetup` によって生成される `cldevicegroup` コマンドの例を示します。この例では、ディスクグループとボリュームは以前に作成されているものと想定しています。

    # cldevicegroup set -p numsecondaries=1 dg-schost-1
    # cldevicegroup show -v dg-schost-1

    === Device Groups ===

    Device Group Name:                        dg-schost-1
      Type:                                     SVM
      failback:                                 yes
      Node List:                                phys-schost-1, phys-schost-2
      preferenced:                              yes
      numsecondaries:                           1
      diskset names:                             dg-schost-1

例 5-27 セカンダリノードの希望数のデフォルト値への設定

次に、ヌル文字列値を使用して、セカンダリノードのデフォルト数を構成する例を示します。デバイスグループは、デフォルト値が変更されても、デフォルト値を使用するように構成されます。

    # cldevicegroup set -p numsecondaries= dg-schost-1
    # cldevicegroup show -v dg-schost-1

    === Device Groups ===

    Device Group Name:                        dg-schost-1
      Type:                                     SVM
      failback:                                 yes
      Node List:                                phys-schost-1, phys-schost-2 phys-schost-3
      preferenced:                              yes
      numsecondaries:                           1
      diskset names:                             dg-schost-1

## デバイスグループ構成の一覧を表示する方法

構成の一覧を表示するために、スーパーユーザーになる必要はありません。ただし、`solaris.cluster.read` の権限は必要です。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

- 次に示されている方法のどれかを選択してください。
  Oracle Solaris Cluster Manager GUI

    詳細については、Oracle Solaris Cluster Manager のオンラインヘルプを参照してください。

  `cldevicegroup show`

    `cldevicegroup show` を使用して、クラスタ内のすべてのデバイスグループの構成を一覧表示します。

  `cldevicegroup show devicegroup`

    `cldevicegroup show devicegroup` を使用して、1 つのデバイスグループの構成を一覧表示します。

  `cldevicegroup status devicegroup`

    `cldevicegroup status devicegroup` を使用して、1 つのデバイスグループのステータスを判別します。

  `cldevicegroup status +`

    `cldevicegroup status +` を使用して、クラスタ内のすべてのデバイスグループのステータスを判別します。

  詳細情報を表示するには、上記のコマンドと `-v` オプションを使用します。

例 5-28 すべてのデバイスグループのステータスの一覧表示

    # cldevicegroup status +

    === Cluster Device Groups ===

    --- Device Group Status ---

    Device Group Name    Primary         Secondary        Status
    -----------------    -------         ---------        ------
    dg-schost-1          phys-schost-2   phys-schost-1    Online
    dg-schost-2          phys-schost-1   --               Offline
    dg-schost-3          phys-schost-3   phy-shost-2      Online

例 5-29 特定のデバイスグループの構成の一覧表示

    # cldevicegroup show dg-schost-1

    === Device Groups ===

    Device Group Name:                              dg-schost-1
      Type:                                           SVM
      failback:                                       yes
      Node List:                                      phys-schost-2, phys-schost-3
      preferenced:                                    yes
      numsecondaries:                                 1
      diskset names:                                   dg-schost-1

## デバイスグループのプライマリノードを切り替える

次の手順は、アクティブでないデバイスグループを起動する (オンラインにする) ときにも使用できます。

Oracle Solaris Cluster Manager GUI を使用して、アクティブでないデバイスグループをオンラインにしたり、デバイスグループのプライマリを切り替えたりすることもできます。詳細については、Oracle Solaris Cluster Manager のオンラインヘルプを参照してください。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

1. クラスタの任意のノードで、スーパーユーザーになるか、RBAC の承認 `solaris.cluster.modify` を提供するプロファイルを使用します。
2. `cldevicegroup switch` を使用して、デバイスグループのプライマリノードを切り替えます。

       # cldevicegroup switch -n nodename devicegroup

   `-n` nodename

     切り替え先のノードの名前を指定します。このノードが新しいプライマリノードになります。

   devicegroup

     切り替えるデバイスグループを指定します。

3. デバイスグループが新しいプライマリノードに切り替わったことを確認します。

   デバイスグループが適切に登録されている場合、次のコマンドを使用すると、新しいデバイスグループの情報が表示されます。

       # cldevice status devicegroup

例 5-30 デバイスグループのプライマリノードの切り替え

次に、デバイスグループのプライマリノードを切り替えて変更結果を確認する例を示します。

    # cldevicegroup switch -n phys-schost-1 dg-schost-1

    # cldevicegroup status dg-schost-1

    === Cluster Device Groups ===

    --- Device Group Status ---

    Device Group Name    Primary        Secondary       Status
    -----------------    -------        ---------       ------
    dg-schost-1          phys-schost-1   phys-schost-2  Online

## デバイスグループを保守状態にする方法

デバイスグループを保守状態にすることによって、デバイスのいずれかにアクセスされたときに、デバイスグループが自動的にオンラインになることを防ぎます。デバイスグループを保守状態にするべきなのは、修理手順において、修理が終わるまで、すべての入出力活動を停止する必要がある場合などです。また、デバイスグループを保守状態にすることによって、別のノード上のディスクセットまたはディスクグループを修復していても、当該ノード上のデバイスグループはオンラインにならないため、データの損失を防ぎます。

破損したディスクセットを復元する方法については、「破損したディスクセットの復元」を参照してください。

注 - デバイスグループを保守状態にする前に、そのデバイスへのすべてのアクセスを停止し、依存するすべてのファイルシステムをマウント解除する必要があります。

`phys-schost#` プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Oracle Solaris Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。

1. デバイスグループを保守状態にします。
   1. デバイスグループが有効である場合は、デバイスグループを無効にします。

          # cldevicegroup disable devicegroup

   2. デバイスグループをオフラインにします。

          # cldevicegroup offline devicegroup

2. 修理手順を実行するときに、ディスクセットまたはディスクグループの所有権が必要な場合は、ディスクセットまたはディスクグループを手動でインポートします。

   Solaris Volume Manager の場合:

       # metaset -C take -f -s diskset

   | 注意 - Solaris Volume Manager ディスクセットの所有権を取得する場合、デバイスグループが保守状態にあるときは、`metaset` `-C take` コマンドを使用する必要があります。`metaset -t` を使用すると、所有権の取得作業の一部として、デバイスグループがオンラインになります。

3. 必要な修理手順を実行します。
4. ディスクセットまたはディスクグループの所有権を解放します。

   | 注意 - デバイスグループを保守状態から戻す前に、ディスクセットまたはディスクグループの所有権を解放する必要があります。所有権を解放しないと、データが失われる可能性があります。

   Solaris Volume Manager の場合:

       # metaset -C release -s diskset

5. デバイスグループをオンラインにします。

       # cldevicegroup online devicegroup
       # cldevicegroup enable devicegroup

例 5-31 デバイスグループを保守状態にする

次に、デバイスグループ `dg-schost-1` を保守状態にし、保守状態からデバイスグループを削除する方法の例を示します。

    [Place the device group in maintenance state.]
    # cldevicegroup disable dg-schost-1
    # cldevicegroup offline dg-schost-1
    [If needed, manually import the disk set or disk group.]
    For Solaris Volume Manager:
      # metaset -C take -f -s dg-schost-1
    [Complete all necessary repair procedures.]

    [Release ownership.]
    For Solaris Volume Manager:
      # metaset -C release -s dg-schost-1

    [Bring the device group online.]
    # cldevicegroup online dg-schost-1
    # cldevicegroup enable dg-schost-1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 著作権について |