SPARC プラットフォームでルート (/) ファイルシステムをミラー化する手順は、マウント解除できないルート以外のファイルシステムをミラー化する手順と同様です。異なるところは、/etc/vfstab ファイルを手動で編集するのではなく、metaroot コマンドを実行する点です。さらに、ルート (/) ファイルシステムをミラー化するには、代替ブートデバイスへのパスを記録する必要があります。サブミラーに障害が発生した場合、この代替ブートデバイスがシステムをリブートします。
この手順の例では、既存スライスは c1t0d0s0 です。2 番目のスライス c1t1d0s0 はミラーの 2 番目として使用します。サブミラーは d1 と d2、ミラーは d0 です。
まず metainit コマンドで 1 面ミラーを作成してから、metattach コマンドで追加のサブミラーを接続します。metattach コマンドを使用しないと、再同期は実行されません。この場合、Solaris ボリュームマネージャはミラーの両側が同一であるとみなし、両方を区別なく使用するため、データが破壊されるおそれがあります。
「Solaris ボリュームマネージャコンポーネントを作成するための前提条件」 と 「RAID-1 ボリュームの作成と保守」を確認します。
ミラー化する既存のルート (/) ファイルシステムが含まれているスライスを特定します。この例では、スライス c1t0d0s0 を使用します。
次のどちらかの方法を使って、前の手順で特定したスライスに新しい RAID-0 ボリュームを作成します。RAID-0 ボリュームに含めることができるのは、単一のスライスだけです。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit -f volume-name number-of-stripes components-per-stripe component-name |
コマンド処理を強制的に続けます。スライスにマウントされたファイルシステムが含まれている場合は、このオプションを使用する必要があります。
作成するボリュームの名前を指定します。ボリュームの命名方式については、「ボリューム名」を参照してください。
作成するストライプの数を指定します。
各ストライプに与えるコンポーネントの数を指定します。
使用するコンポーネントの名前を指定します。この例では、ルートスライス c0t0d0s0 を使用します。
未使用のスライス (この例では c1t1d0s0) に 2 番目の RAID-0 ボリュームを作成します。このボリュームは 2 番目のサブミラーとして使用します。2 番目のサブミラーのサイズは、最初のサブミラー以上でなければなりません。この手順では、次のどちらかの方法を使用します。
Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームを作成 (Create Volume)」の順に選択し、画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name number-of-stripes components-per-stripe component-name |
オプションの説明については、ステップ 2 を参照してください。
次のどちらかの方法で 1 面ミラーを作成します。
Solaris 管理コンソール内の「拡張ストレージ」から、「ボリューム (Volumes)」ノードを開き、「アクション (Action)」、「ボリュームの作成 (Create Volume)」の順に選択します。画面の指示に従います。詳細は、オンラインヘルプを参照してください。
次の形式の metainit コマンドを使用します。
# metainit volume-name -m submirror-name |
作成するボリュームの名前を指定します。
ミラーを作成することを指定します。
ミラーの最初のサブミラーとして使用するコンポーネントの名前を指定します。この例では、ルートスライスが含まれる RAID-0 ボリュームです。
新たにミラー化したファイルシステムをマウントし直します。metaroot volume-name コマンドを実行します。volume-name のところには、作成したミラーの名前を入れます。さらに、システムをリブートします。
# metaroot volume-name # reboot |
詳細は、metaroot(1M) のマニュアルページを参照してください。
次の形式の metattach コマンドを使って、2 番目のサブミラーを接続します。
# metattach volume-name submirror-name |
サブミラーを追加する RAID-1 ボリュームの名前を指定します。
次にミラーに追加するサブミラーとなるコンポーネントの名前を指定します。
詳細は、metattach(1M) のマニュアルページを参照してください。
代替ブートパスを記録します。
代替ルートデバイスへのパスを調べます。2 番目のサブミラーとしてルート (/) ファイルシステムのミラーに接続するスライスで、ls -l コマンドを使用します。
# ls -l /dev/dsk/c1t1d0s0 lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c1t1d0s0 -> \ ../../devices/sbus@1,f8000000/esp@1,200000/sd@3,0:a |
ここで、/devices ディレクトリに続く次の文字列を記録しておきます。 /sbus@1,f8000000/esp@1,200000/sd@3,0:a.
システムが利用できない場合に備えて、システム上以外の場所にこの情報を書き留めておくべきです。代替ブートデバイスからブートする方法についての詳細は、「ブート障害からの回復」を参照してください。
この文字列を編集して、メジャー名 (この場合は sd) を disk に変更し、「/sbus@1,f8000000/esp@1,200000/disk@3,0:a」のようにします。システムが IDE バスを使用している場合、オリジナルのフルパスは次のようになります。
$ ls -l /dev/dsk/c1t1d0s0 lrwxrwxrwx 1 root root 38 Mar 13 15:03 /dev/dsk/c0t0d0s0 -> \ ../../devices/pci@1f,0/ide@d/dad@0,0:a |
メジャー名 dad を disk に変更すると、「/pci@1f,0/ide@d/disk@0,0:a」のようになります。
OpenBootTM PROM nvalias コマンドを使って、二次ルート (/) ファイルシステムミラー用の「バックアップルート」デバイス別名を定義します。たとえば、次のように指定します。
ok nvalias backup_root /sbus@1,f8000000/esp@1,200000/disk@3,0:a |
一次サブミラーと二次サブミラーの両方を参照するように boot-device 別名を定義し直して、構成を保存します。サブミラーは、指定された順に使用されます。
ok printenv boot-device boot-device = disk net ok setenv boot-device disk backup_root net boot-device = disk backup_root net ok nvstore |
一次サブミラーに障害が発生すると、システムは 2 番目のサブミラーから自動的にブートします。自動ブートではなく、手動でブートする場合は、次のように入力します。
ok boot backup_root |
# metainit -f d1 1 1 c0t0d0s0 d1: Concat/Stripe is setup # metainit d2 1 1 c0t1d0s0 d2: Concat/Stripe is setup # metainit d0 -m d1 d0: Mirror is setup # metaroot d0 # lockfs -fa # reboot ... # metattach d0 d2 d0: Submirror d2 is attached # ls -l /dev/dsk/c0t1d0s0 lrwxrwxrwx 1 root root 88 Feb 8 15:51 /dev/rdsk/c1t3d0s0 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a # init 0 . . . ok nvalias backup_root /pci@1f,0/pci@1,1/ide@3/disk@0,0:a ok setenv boot-device disk backup_root net ok nvstore |
この例では、-f オプションによって、最初の RAID-0 ボリュームとして d1 を作成します。これには、/dev/dsk/c0t0d0s0 にマウントされているルート (/) ファイルシステムが含まれています。次に 2 番目の連結 d2 を /dev/dsk/c0t1d0s0 から作成します。このスライスは d1 と同じかそれより大きいサイズにする必要があります。そして、metainit コマンドに -m オプションを付けて実行し、ルート (/) を含む連結から1 面ミラー d0 を作成します。
次に metaroot コマンドを使って /etc/vfstab ファイルと /etc/system ファイルを編集し、システムがボリューム上のルート (/) ファイルシステムからブートされるように指定します。リブートを行う前に lockfs -fa コマンドを実行することが推奨されます。詳細は、lockfs(1M) のマニュアルページを参照してください。
システムをリブートする前に、2 番目のサブミラーを接続しないでください。metaroot コマンドを実行した後、2 番目のサブミラーを接続する前に、システムをリブートする必要があります。
リブートが終わると、サブミラー d2 がミラーに接続され、ミラーの再同期が実行されます連結とミラーが設定され、サブミラー d2 が接続されたことを示すメッセージが表示されます。
最後に、ルート raw デバイスに対して ls-l コマンドを実行して、代替ルートデバイスへのパスを表示します。このパスは、このデバイスからシステムをブートしなければならない状況が発生したときに必要になります。