root(/) ファイルシステムをミラーメタデバイスで構成しミラーリングします。
以下のスライスでミラーを構成します。
original root: /dev/dsk/c0t3d0s0 (1.23GB) → d10 submirror1: /dev/dsk/c0t0d0s0 (2.00GB) → d20 submirror2: /dev/dsk/c0t1d0s0 (2.00GB) → d30 |
---|
以下が操作の手順です。
サブミラーとなるスライスは以下の条件を満たす必要があります。
以下が作成したスライスの1つです (/dev/rdsk/c0t0d0s0)。
partition> p Current partition table (unnamed): Total disk cylinders available: 8234 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 4 - 4092 2.00GB (4089/0/0) 4195314 1 unassigned wm 0 0 (0/0/0) 0 2 backup wu 0 - 8233 4.03GB (8234/0/0) 8448084 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 0 - 3 2.00MB (4/0/0) 4104 8 boot wu 0 - 0 0.50MB (1/0/0) 1026 9 alternates wm 0 0 (0/0/0) 0 |
代替ディスクからブートできるように installboot コマンドを使用してブート情報をインストールします。
以下が installboot コマンドの書式です。
usage: installboot pboot bootblk raw-disk-device |
以下が引数です。
options | notes |
---|---|
pboot | インストールする partition boot file (Solaris ブートプログラム) を指定します |
bootblk | インストールする bootblock code (一次ブートプログラム) を指定します |
raw-disk-device | pboot, bootblk をインストールするデバイスを指定します |
以下が installboot コマンドの実行例です。
# installboot /usr/platform/i86pc/lib/fs/ufs/pboot /usr/platform/i86pc/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0 # installboot /usr/platform/i86pc/lib/fs/ufs/pboot /usr/platform/i86pc/lib/fs/ufs/bootblk /dev/rdsk/c0t1d0s0 # |
metainit コマンドを使用して、マウントしたままの root スライスを連結方式メタデバイスに変換します。metainit コマンドを -f オプションで実行します。
以下が実行例です。
# metainit -f d10 1 1 c0t3d0s0 d10: 連結/ストライプがセットアップされます # metastat d10: Concat/Stripe サイズ: 2570400 ブロック ストライプ 0: デバイス 開始ブロック MetaDB c0t3d0s0 0 いいえ # |
metainit コマンドを使用して、サブミラー用スライスで連結方式メタデバイスを構成します。
以下が実行例です。
# metainit d20 1 1 c0t0d0s0 d20: 連結/ストライプがセットアップされます # metainit d30 1 1 c0t1d0s0 d30: 連結/ストライプがセットアップされます # metastat d10: Concat/Stripe サイズ: 2570400 ブロック ストライプ 0: デバイス 開始ブロック MetaDB c0t3d0s0 0 いいえ d20: Concat/Stripe サイズ: 4195314 ブロック ストライプ 0: デバイス 開始ブロック MetaDB c0t0d0s0 0 いいえ d30: Concat/Stripe サイズ: 4194320 ブロック ストライプ 0: デバイス 開始ブロック MetaDB c0t1d0s0 0 いいえ # |
root スライスで構成したメタデバイスから1面ミラーを構成します。
以下が実行例です。
# metainit d0 -m d10 d0: ミラーがセットアップされます # metastat d0 d0: ミラー サブミラー 0: d10 状態: 正常 パス: 1 読み込みオプション: ラウンドロビン (巡回的) (デフォルト) 書き込みオプション: 並列処理的 (デフォルト) サイズ: 2570400 ブロック d10: d0 のサブミラー 状態: 正常 サイズ: 2570400 ブロック ストライプ 0: デバイス 開始ブロック MetaDB 状態 ホットスペア c0t3d0s0 0 いいえ 正常 # |
metaroot コマンドを実行して /etc/system, /etc/vfstab を書き換えます。
以下が書式です。
usage: metaroot [ -n ] device |
以下がオプション及び引数です。
options | notes |
---|---|
-n | 実際の処理を行わずに処理内容を出力します |
device | ルートファイルシステムを定義するデバイス (メタデバイス或いは物理スライス) を指定します |
以下が実行例です。
# metaroot d0 # # cat /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes - fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0t3d0s1 - - swap - no - /dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no - swap - /tmp tmpfs - yes - # |
lockfs コマンドを実行した後、システムをリブートします。
以下が実行例です。
# lockfs -fa |
システムのブート中に以下の warning が出力されますが無視できるメッセージです。
WARNING: forceload of misc/md_trans failed |
root ファイルシステムを構成する1面ミラーにサブミラーを接続し、多面ミラーを構成します。
以下が実行例です。
# metattach d0 d20 d0: サブミラー d20 は接続中 # metattach d0 d30 d0: サブミラー d30 は接続中 # # metastat d0: ミラー サブミラー 0: d10 状態: 正常 サブミラー 1: d20 状態: 正常 サブミラー 2: d30 状態: 正常 パス: 1 読み込みオプション: ラウンドロビン (巡回的) (デフォルト) 書き込みオプション: 並列処理的 (デフォルト) サイズ: 2570400 ブロック d10: d0 のサブミラー 状態: 正常 サイズ: 2570400 ブロック ストライプ 0: デバイス 開始ブロック MetaDB 状態 ホットスペア c0t3d0s0 0 いいえ 正常 d20: d0 のサブミラー 状態: 正常 サイズ: 4195314 ブロック ストライプ 0: デバイス 開始ブロック MetaDB 状態 ホットスペア c0t0d0s0 0 いいえ 正常 d30: d0 のサブミラー 状態: 正常 サイズ: 4194320 ブロック ストライプ 0: デバイス 開始ブロック MetaDB 状態 ホットスペア c0t1d0s0 0 いいえ 正常 # df -k ファイルシステム kbytes 使用済み 使用可能 capacity マウント先 /dev/md/dsk/d0 1245975 816703 366974 69% / /proc 0 0 0 0% /proc fd 0 0 0 0% /dev/fd mnttab 0 0 0 0% /etc/mnttab swap 644248 0 644248 0% /var/run swap 644264 16 644248 1% /tmp galley:/export/home/tachi 38467555 26373875 11709005 70% /home/tachi # |
ミラーデバイスの障害発生に備えて、代替ブートディスクの path をペーパーメディア等に記録しておきます。
# ls -l /dev/rdsk/c0t0d0s0 /dev/rdsk/c0t1d0s0 |
障害発生時にはブートフロッピーからブートし、bootpath を変更することで代替ディスクからの起動が可能です (未確認でーす、tty 接続環境でいずれ検証してみまーす)。