SVM (Solaris SoftwareRAID) 構築作業手順

> 昔の Solaris 9 と 10 の時代に使っていた手順書が出てきたので、一応書き記しておく。
> 最早使う機会も無い気はするが、どこかの誰かが参考にする事があれば幸い。

# ◎ 構成

## ■ DISK 構成
|番号|論理ディスク名|
|:--|:--|
|0 番|c0t0d0|
|1 番|c0t1d0|
|2 番|c0t2d0|
|3 番|c0t3d0|

## ■ RAID 構成
|構成ディスク１|構成ディスク２|構成内容|
|:--|:--|:--|
|c0t0d0|c0t1d0|ミラー|
|c0t2d0|c0t3d0|ミラー|

## ■ Slic 構成

### < DISK0 >
|論理ディスク名|パーティション|
|:--|:--|
|c0t0d0s0|/|
|c0t0d0s1|swap|
|c0t0d0s2|backup|
|c0t0d0s3|/var|
|c0t0d0s4|-|
|c0t0d0s5|-|
|c0t0d0s6|-|
|c0t0d0s7|-|

### < DISK2 >
|論理ディスク名|パーティション|
|:--|:--|
|c0t2d0s0|/Mail|
|c0t2d0s1|-|
|c0t2d0s2|backup|
|c0t2d0s3|-|
|c0t2d0s4|-|
|c0t2d0s5|-|
|c0t2d0s6|-|
|c0t2d0s7|-|

## ■ meta デバイス名

## < DISK0 + DISK1 >
|スライス名|論理デバイス名|meta デバイス名|
|:--|:--|:--|
|/||d100|
||/dev/dsk/c0t0d0s0|d10|
||/dev/dsk/c0t1d0s0|d20|

|スライス名|論理デバイス名|meta デバイス名|
|:--|:--|:--|
|swap||d101|
||/dev/dsk/c0t0d0s1|d11|
||/dev/dsk/c0t1d0s1|d21|

|スライス名|論理デバイス名|meta デバイス名|
|:--|:--|:--|
|/var||d103|
||/dev/dsk/c0t0d0s3|d13|
||/dev/dsk/c0t1d0s3|d23|

## < DISK2 + DISK3 >

|スライス名|論理デバイス名|meta デバイス名|
|:--|:--|:--|
|/Mail||d200|
||/dev/dsk/c0t2d0s0|d30|
||/dev/dsk/c0t3d0s0|d40|
____________________________________________________________________

# ◎ 構築手順

## [  DISK0 + DISK1 ]

```shell-session
format
 > Specify disk (enter its number): 1
 > partition
 > print
 > select
 > Specify table (enter its number)[1]: 2
 > print
 > label
 > print
 > quit
```

### ファイルのバックアップ 
```shell-session
cp -p /etc/system /etc/system.org
cp -p /etc/vfstab /etc/vfstab.org
```

### メタデータベース作成
```shell-session
metadb -afc3 c0t0d0s7 c0t1d0s7 c0t2d0s7 c0t3d0s7
```

### メタデバイス名割り当て <DISK0>
```shell-session
metainit -f d10 1 1 c0t0d0s0
metainit -f d11 1 1 c0t0d0s1
metainit -f d13 1 1 c0t0d0s3
```

### メタデバイス名割り当て <DISK1>
```shell-session
metainit d20 1 1 c0t1d0s0
metainit d21 1 1 c0t1d0s1
metainit d23 1 1 c0t1d0s3
```

### メタデバイス名割り当て <DISK2>
```shell-session
metainit -f d30 1 1 c0t2d0s0
```

### メタデバイス名割り当て <DISK3>
```shell-session
metainit d40 1 1 c0t3d0s0
```

### ミラーリング元のディスクをミラーディスクへ追加
```shell-session
metainit d100 -m d10
metainit d101 -m d11
metainit d103 -m d13
metainit d200 -m d30
```

### 起動デバイスをメタデバイス名として登録
```shell-session
metaroot d0
```

### デバイス名をメタデバイス名に変更
```shell-session
vi /etc/vfstab
```
```text:/etc/vfstab
#-- 元データ
# /dev/dsk/c1t0d0s1       -       -       swap    -       no      -
# /dev/dsk/c1t0d0s0       /dev/rdsk/c1t0d0s0      /       ufs     1       no      -
# /dev/dsk/c1t0d0s3       /dev/rdsk/c1t0d0s3      /var    ufs     1       no      -
# /dev/dsk/c0t2d0s0       /dev/rdsk/c0t2d0s0      /var/log        ufs     2       yes     -
# 🔻🔻🔻🔻🔻 以下に修正 🔻🔻🔻🔻🔻
#-- 変更
/dev/md/dsk/d101        -       -       swap    -       no      -
/dev/md/dsk/d100        /dev/md/rdsk/d100       /       ufs     1       no      -
/dev/md/dsk/d103        /dev/md/rdsk/d103       /var    ufs     1       no      -
/dev/md/dsk/d200        /dev/md/rdsk/d200       /var/log        ufs     2       yes     -
```

### ファイルシステムロック
```shell-session
lockfs -fa
```

### 再起動
```shell-session
shutdown -i6 -g0 -y
```

### ミラーリング開始
```shell-session
metattach d100 d20
metattach d101 d21
metattach d103 d23
metattach d200 d40
```

### RAID 状況確認
```shell-session
metadb
metastat -a
```

### デバイス ID の機能を無効化
```shell-session
vi /kernel/drv/md.conf
```
```text:/kernel/drv/md.conf
# Begin MDD database info (do not edit) の手前に以下追加．
md_devid_destroy=1;
md_keep_repl_state=1;
```

### 再起動
```shell-session
shutdown -i6 -g0 -y
```

### ダンプデバイス設定
```shell-session
dumpadm -d swap
```

### swap デバイス割り当て確認
```shell-session
swap -l
```

### OK プロンプトにて OBP 起動デバイスの設定追加
```shell-session
{0}OK setenv boot-device disk disk1 net
{0}OK boot
```