====== Solaris 10 設定 svm RAID 1編 ======
===== RAID 1 (2面ミラー)作成 =====
==== 準備 ====
VMにプライマリと同じサイズのディスクを追加する。今回は12Gbyte HDDを追加。
関連ファイルのバックアップを行う。それぞれ、cp -p 元ファイル名 元ファイル名.yyyymmddなどでバックアップ。
* /etc/vfstab
* /etc/lvm/md.tab
* /etc/lvm/mddb.cf
* /etc/system
* /boot/grub/menu.lst
ディスクの命名規則は以下の通りとする。
^ mount ^ ミラーディスク名 ^ サブミラー名 ^^
^ ::: ^ ::: ^ c0d0上 ^ c0d1上 ^
|/|d0|d10|d20|
|/var|d3|d13|d23|
|swap|d4|d14|d24|
|/opt|d5|d15|d25|
|/usr|d6|d16|d26|
|/export/home|d7|d17|d27|
==== 手順 ====
追加したHDDを認識させる。
* 認識前のformat
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0d0
/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
Specify disk (enter its number):
* devfsadmの実行
# devfsadm
# (特に応答はない)
* devfsadm実行後のformat
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0d0
/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
1. c0d1
/pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
Specify disk (enter its number):
c0d1にSolaris用の領域を確保する。
* format -> c0d1選択 -> fdisk
format> fdisk
No fdisk table exists. The default partition for the disk is:
a 100% "SOLARIS System" partition
Type "y" to accept the default partition, otherwise type "n" to edit the
partition table.
n
* Create -> SOLARIS2 -> 100%
Total disk size is 1566 cylinders
Cylinder size is 16065 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
WARNING: no partitions are defined!SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection: 1
Select the partition type to create:
1=SOLARIS2 2=UNIX 3=PCIXOS 4=Other
5=DOS12 6=DOS16 7=DOSEXT 8=DOSBIG
9=DOS16LBA A=x86 Boot B=Diagnostic C=FAT32
D=FAT32LBA E=DOSEXTLBA F=EFI 0=Exit? 1
Specify the percentage of disk to use for this partition
(or type "c" to specify the size in cylinders). 100
Should this become the active partition? If yes, it will be activated
each time the computer is reset or turned on.
Please type "y" or "n". n
パーティション情報のコピー
* c0d0の情報をc0d1へコピー
# prtvtoc /dev/rdsk/c0d0s2 | fmthard -s - /dev/rdsk/c0d1s2
fmthard: New volume table of contents now in place.
#
* prtvtocで確認
# prtvtoc /dev/rdsk/c0d1s2
* /dev/rdsk/c0d1s2 partition map
*
* Dimensions:
* 512 bytes/sector
* 63 sectors/track
* 255 tracks/cylinder
* 16065 sectors/cylinder
* 1565 cylinders
* 1563 accessible cylinders
*
* Flags:
* 1: unmountable
* 10: read-only
*
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
0 2 00 48195 1076355 1124549
1 0 00 1124550 273105 1397654
2 5 00 0 25109595 25109594
3 7 00 1397655 4209030 5606684
4 3 01 5606685 2104515 7711199
5 0 00 7711200 2104515 9815714
6 4 00 9815715 14233590 24049304
7 8 00 24049305 1060290 25109594
8 1 01 0 16065 16064
9 9 01 16065 32130 48194
#
ファイルシステムの作成
* ファイルシステム作成のスクリプトを作成する。
# cat /var/tmp/01_newfs.sh
#!/bin/sh
newfs /dev/rdsk/c0d1s0
newfs /dev/rdsk/c0d1s1
newfs /dev/rdsk/c0d1s3
newfs /dev/rdsk/c0d1s4
newfs /dev/rdsk/c0d1s5
newfs /dev/rdsk/c0d1s6
newfs /dev/rdsk/c0d1s7
* 実行例
# sh /var/tmp/01_newfs.sh
/dev/rdsk/c0d1s0: Unable to find Media type. Proceeding with system determined parameters.
newfs: construct a new file system /dev/rdsk/c0d1s0: (y/n)? y
/dev/rdsk/c0d1s0: Unable to find Media type. Proceeding with system determined parameters.
Warning: 4990 sector(s) in last cylinder unallocated
/dev/rdsk/c0d1s0: 1076354 sectors in 176 cylinders of 48 tracks, 128 sectors
525.6MB in 14 cyl groups (13 c/g, 39.00MB/g, 18624 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 80032, 160032, 240032, 320032, 400032, 480032, 560032, 640032, 720032,
800032, 880032, 960032, 1040032
(以下、c0d1s7まで続く)
c0d1を起動ディスクとして使用可能にする
* mbootのインストール
# fdisk -b /usr/lib/fs/ufs/mboot /dev/rdsk/c0d1p0
Total disk size is 1566 cylinders
Cylinder size is 16065 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Solaris2 1 1565 1565 100
SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection: 5
* grubのインストール
# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0d1s0
Solaris boot partition inactive.
stage1 written to partition 0 sector 0 (abs 16065)
stage2 written to partition 0, 265 sectors starting at 50 (abs 16115)
#
状態データベースの作成
* c0d0s1(/REPLICA)に状態データベースを作成するため、umountする
# umount /REPLICA
#
* /etc/vfstabで/REPLICAを無効化する
#/dev/dsk/c0d0s1 /dev/rdsk/c0d0s1 /REPLICA ufs 2 yes -
* (気になるなら)/REPLICAを削除する
# rm -r /REPLICA
* 状態データベースを作成する
# metadb -a -c 5 -l 8192 -f c0d0s1 c0d1s1
#
* metadbで確認
# metadb
flags first blk block count
a u 16 8192 /dev/dsk/c0d0s1
a u 8208 8192 /dev/dsk/c0d0s1
a u 16400 8192 /dev/dsk/c0d0s1
a u 24592 8192 /dev/dsk/c0d0s1
a u 32784 8192 /dev/dsk/c0d0s1
a u 16 8192 /dev/dsk/c0d1s1
a u 8208 8192 /dev/dsk/c0d1s1
a u 16400 8192 /dev/dsk/c0d1s1
a u 24592 8192 /dev/dsk/c0d1s1
a u 32784 8192 /dev/dsk/c0d1s1
#
ミラーの作成
* /var/tmp/02_metainit.shを作成
#!/bin/sh
metainit -f d10 1 1 c0d0s0
metainit -f d20 1 1 c0d1s0
metainit d0 -m d10
metainit -f d13 1 1 c0d0s3
metainit -f d23 1 1 c0d1s3
metainit d3 -m d13
metainit -f d14 1 1 c0d0s4
metainit -f d24 1 1 c0d1s4
metainit d4 -m d14
metainit -f d15 1 1 c0d0s5
metainit -f d25 1 1 c0d1s5
metainit d5 -m d15
metainit -f d16 1 1 c0d0s6
metainit -f d26 1 1 c0d1s6
metainit d6 -m d16
metainit -f d17 1 1 c0d0s7
metainit -f d27 1 1 c0d1s7
metainit d7 -m d17
* ミラー構成
# sh /var/tmp/02_metainit.sh
d10: Concat/Stripe is setup
d20: Concat/Stripe is setup
d0: Mirror is setup
(中略)
d17: Concat/Stripe is setup
d27: Concat/Stripe is setup
d7: Mirror is setup
#
状態確認
* まだc0d1上のサブミラーは接続されていないのでd1xのみ表示される。
# metastat
d7: Mirror
Submirror 0: d17
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 1060290 blocks (517 MB)
d17: Submirror of d7
State: Okay
Size: 1060290 blocks (517 MB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0d0s7 0 No Okay Yes
(以下略)
起動ディスク変更
* metarootで起動ディスクをd0に変更する
# metaroot d0
#
* /etc/vfstabの/のデバイスが/dev/(r)dsk/d0に更新されている事を確認する
# cat /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0d0s4 - - swap - no -
/dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no -
(以下略)
* /etc/systemにrootdevのエントリが追加された事を確認する
# cat /etc/system
(中略)
* Begin MDD root info (do not edit)
rootdev:/pseudo/md@0:0,0,blk
* End MDD root info (do not edit)
* /etc/vfstabを編集し、各デバイスをmdに変更する。
^ mount point ^ FS type ^ 変更前 ^^ 変更後 ^^
^ ::: ^ ::: ^ device to mount ^ device to fsck ^ device to mount ^ device to fsck ^
|/|ufs|/dev/dsk/c0d0s0|/dev/rdsk/c0d0s0|/dev/md/dsk/d0|/dev/md/rdsk/d0|
|/var|ufs|/dev/dsk/c0d0s3|/dev/rdsk/c0d0s3|/dev/md/dsk/d3|/dev/md/rdsk/d3|
|-|swap|/dev/dsk/c0d0s4|-|/dev/md/dsk/d4|-|
|/opt|ufs|/dev/dsk/c0d0s5|/dev/rdsk/c0d0s5|/dev/md/dsk/d5|/dev/md/rdsk/d5|
|/usr|ufs|/dev/dsk/c0d0s6|/dev/rdsk/c0d0s6|/dev/md/dsk/d6|/dev/md/rdsk/d6|
|/export/home|ufs|/dev/dsk/c0d0s7|/dev/rdsk/c0d0s7|/dev/md/dsk/d7|/dev/md/rdsk/d7|
一度リブート後、サブミラーの接続を行う。
* /var/tmp/03_metattach.shの作成
#!/bin/sh
metattach d0 d20
metattach d3 d23
metattach d4 d24
metattach d5 d25
metattach d6 d26
metattach d7 d27
* サブミラー接続
# sh /var/tmp/03_metattach.sh
d0: submirror d20 is attached
d3: submirror d23 is attached
d4: submirror d24 is attached
d5: submirror d25 is attached
d6: submirror d26 is attached
d7: submirror d27 is attached
#
* 状態確認
# metastat
d7: Mirror
Submirror 0: d17
State: Okay
Submirror 1: d27
State: Resyncing
Resync in progress: 6 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 1060290 blocks (517 MB)
d17: Submirror of d7
State: Okay
Size: 1060290 blocks (517 MB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0d0s7 0 No Okay Yes
d27: Submirror of d7
State: Resyncing
Size: 1060290 blocks (517 MB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0d1s7 0 No Okay Yes
(以下略)
同期完了の確認を行う。同期の進捗は以下の様に出力される。何も表示されなくなったら完了。
# metastat | grep done
Resync in progress: 46 % done
Resync in progress: 24 % done
Resync in progress: 24 % done
Resync in progress: 12 % done
Resync in progress: 51 % done
Resync in progress: 2 % done
#
metastatで各ミラー(d)に属するSubmirrorのStateが全てOkay(Resyncingではない)であれば同期完了
GRUB設定
* /boot/grub/menu.lstに代替ルートを追加する。
title alternate boot
root(hd1,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
追加した構成で起動できる事を確認する。
===== RAID 1 (3面ミラー)作成 =====
2面ミラー構成後に3面ミラーにする手順は下記の通り。
==== 準備 ====
VMにプライマリと同じサイズのディスクを追加する。今回は12Gbyte HDDを追加。
関連ファイルのバックアップを行う。それぞれ、cp -p 元ファイル名 元ファイル名.yyyymmddなどでバックアップ。
* /etc/vfstab
* /etc/lvm/md.tab
* /etc/lvm/mddb.cf
* /etc/system
* /boot/grub/menu.lst
ディスクの命名規則
^ mount ^ ミラーディスク名 ^ サブミラー名 ^^^
^ ::: ^ ::: ^ c0d0上 ^ c0d1上 ^ c1d1上 ^
|/|d0|d10|d20|d30|
|/var|d3|d13|d23|d33|
|swap|d4|d14|d24|d34|
|/opt|d5|d15|d25|d35|
|/usr|d6|d16|d26|d36|
|/export/home|d7|d17|d27|d37|
==== 手順 ====
追加したHDDを認識させる
* 認識前のformat
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0d0
/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
1. c0d1
/pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
Specify disk (enter its number):
* devfsadmの実行
# devfsadm
# (特に応答はない)
* 認識後のformat
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0d0
/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
1. c0d1
/pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
2. c1d1
/pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
Specify disk (enter its number):+領域の確保
c1d1にSolaris用の領域を確保する
* format -> c1d1選択 -> fdisk
format> fdisk
No fdisk table exists. The default partition for the disk is:
a 100% "SOLARIS System" partition
Type "y" to accept the default partition, otherwise type "n" to edit the
partition table.
n
* Create -> SOLARIS2 -> 100%
Total disk size is 1566 cylinders
Cylinder size is 16065 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
WARNING: no partitions are defined!SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection: 1
Select the partition type to create:
1=SOLARIS2 2=UNIX 3=PCIXOS 4=Other
5=DOS12 6=DOS16 7=DOSEXT 8=DOSBIG
9=DOS16LBA A=x86 Boot B=Diagnostic C=FAT32
D=FAT32LBA E=DOSEXTLBA F=EFI 0=Exit? 1
Specify the percentage of disk to use for this partition
(or type "c" to specify the size in cylinders). 100
Should this become the active partition? If yes, it will be activated
each time the computer is reset or turned on.
Please type "y" or "n". n
パーティション情報のコピー
* c0d0の情報をc1d1へコピー
# prtvtoc /dev/rdsk/c0d0s2 | fmthard -s - /dev/rdsk/c0d1s2
fmthard: New volume table of contents now in place.
#
* prtvtocで確認
# prtvtoc /dev/rdsk/c1d1s2
* /dev/rdsk/c1d1s2 partition map
*
* Dimensions:
* 512 bytes/sector
* 63 sectors/track
* 255 tracks/cylinder
* 16065 sectors/cylinder
* 1565 cylinders
* 1563 accessible cylinders
*
* Flags:
* 1: unmountable
* 10: read-only
*
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
0 2 00 48195 1076355 1124549
1 0 00 1124550 273105 1397654
2 5 00 0 25109595 25109594
3 7 00 1397655 4209030 5606684
4 3 01 5606685 2104515 7711199
5 0 00 7711200 2104515 9815714
6 4 00 9815715 14233590 24049304
7 8 00 24049305 1060290 25109594
8 1 01 0 16065 16064
9 9 01 16065 32130 48194
#
ファイルシステムの作成
* スクリプトの再利用
# cat /var/tmp/01_newfs.sh
#!/bin/sh
newfs /dev/rdsk/c1d1s0
newfs /dev/rdsk/c1d1s1
newfs /dev/rdsk/c1d1s3
newfs /dev/rdsk/c1d1s4
newfs /dev/rdsk/c1d1s5
newfs /dev/rdsk/c1d1s6
newfs /dev/rdsk/c1d1s7
* 実行例
# sh /var/tmp/01_newfs.sh
/dev/rdsk/c1d1s0: Unable to find Media type. Proceeding with system determined parameters.
newfs: construct a new file system /dev/rdsk/c1d1s0: (y/n)? y
/dev/rdsk/c1d1s0: Unable to find Media type. Proceeding with system determined parameters.
Warning: 4990 sector(s) in last cylinder unallocated
/dev/rdsk/c1d1s0: 1076354 sectors in 176 cylinders of 48 tracks, 128 sectors
525.6MB in 14 cyl groups (13 c/g, 39.00MB/g, 18624 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 80032, 160032, 240032, 320032, 400032, 480032, 560032, 640032, 720032,
800032, 880032, 960032, 1040032
(以下、c1d1s7まで続く)
c1d1を起動ディスクとして使用可能にする
* mbootのインストール
# fdisk -b /usr/lib/fs/ufs/mboot /dev/rdsk/c1d1p0
Total disk size is 1566 cylinders
Cylinder size is 16065 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Solaris2 1 1565 1565 100
SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection: 5
* grubのインストール
# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1d1s0
Solaris boot partition inactive.
stage1 written to partition 0 sector 0 (abs 16065)
stage2 written to partition 0, 265 sectors starting at 50 (abs 16115)
#
状態データベースの追加
* 状態データベースをc1d1s1にも作成する
# metadb -a -c 5 -l 8192 c1d1s1
#
* metadbで確認
# metadb
flags first blk block count
a m p luo 16 8192 /dev/dsk/c0d0s1
a p luo 8208 8192 /dev/dsk/c0d0s1
a p luo 16400 8192 /dev/dsk/c0d0s1
a p luo 24592 8192 /dev/dsk/c0d0s1
a p luo 32784 8192 /dev/dsk/c0d0s1
a p luo 16 8192 /dev/dsk/c0d1s1
a p luo 8208 8192 /dev/dsk/c0d1s1
a p luo 16400 8192 /dev/dsk/c0d1s1
a p luo 24592 8192 /dev/dsk/c0d1s1
a p luo 32784 8192 /dev/dsk/c0d1s1
a u 16 8192 /dev/dsk/c1d1s1
a u 8208 8192 /dev/dsk/c1d1s1
a u 16400 8192 /dev/dsk/c1d1s1
a u 24592 8192 /dev/dsk/c1d1s1
a u 32784 8192 /dev/dsk/c1d1s1
#
* サブミラーの作成 。/var/tmp/02_metainit.shを再利用
#!/bin/sh
metainit -f d30 1 1 c1d1s0
metainit -f d33 1 1 c1d1s3
metainit -f d34 1 1 c1d1s4
metainit -f d35 1 1 c1d1s5
metainit -f d36 1 1 c1d1s6
metainit -f d37 1 1 c1d1s7
* サブミラー構成
# sh /var/tmp/02_metainit.sh
d30: Concat/Stripe is setup
d33: Concat/Stripe is setup
d34: Concat/Stripe is setup
d35: Concat/Stripe is setup
d36: Concat/Stripe is setup
d37: Concat/Stripe is setup
#
状態確認
* まだc1d1上のサブミラーは接続されていない
# metastat
(省略)
d37: Concat/Stripe
Size: 1060290 blocks (517 MB)
Stripe 0:
Device Start Block Dbase Reloc
c1d1s7 0 No Yes
(中略)
d30: Concat/Stripe
Size: 1076355 blocks (525 MB)
Stripe 0:
Device Start Block Dbase Reloc
c1d1s0 0 No Yes
Device Relocation Information:
Device Reloc Device ID
c1d1 Yes id1,cmdk@AVMware_Virtual_IDE_Hard_Drive=11000000000000000001
c0d1 Yes id1,cmdk@AVMware_Virtual_IDE_Hard_Drive=01000000000000000001
c0d0 Yes id1,cmdk@AVMware_Virtual_IDE_Hard_Drive=00000000000000000001
* サブミラーの接続。/var/tmp/03_metattach.shの再利用
#!/bin/sh
metattach d0 d30
metattach d3 d33
metattach d4 d34
metattach d5 d35
metattach d6 d36
metattach d7 d37
* サブミラー接続
# sh /var/tmp/03_metattach.sh
d0: submirror d30 is attached
d3: submirror d33 is attached
d4: submirror d34 is attached
d5: submirror d35 is attached
d6: submirror d36 is attached
d7: submirror d37 is attached
#
* 状態確認
# metastat
d7: Mirror
Submirror 0: d17
State: Okay
Submirror 1: d27
State: Okay
Submirror 2: d37
State: Resyncing
Resync in progress: 4 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 1060290 blocks (517 MB)
(以下略)
* 同期完了の確認。何も表示されなくなったら完了
# metastat | grep done
Resync in progress: 19 % done
Resync in progress: 9 % done
Resync in progress: 9 % done
Resync in progress: 4 % done
Resync in progress: 21 % done
Resync in progress: 0 % done
#
metastatで各ミラー(d)に属するSubmirrorのStateが全てOkay(Resyncingではない)であれば同期完了
GRUB設定
* /boot/grub/menu.lstに代替ルートを追加する。
title boot from c1d1
root(hd2,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
* 追加した構成で起動できる事を確認する。