$ su - # VBoxAddIF vbox1 kazmuzik br0 # ^D $ alias VBoxManage="VBoxManage -nologo" $ VBoxManage createvm -name opensolaris200805 -register Virtual machine 'opensolaris200805' is created and registered. UUID: 9fc2287c-a16c-4912-cda4-ef5b7ae5dbfb Settings file: '/home/kazmuzik/.VirtualBox/Machines/opensolaris200805/opensolaris200805.xml' $ VBoxManage modifyvm opensolaris200805 -memory 1024MB -acpi on -boot1 dvd $ VBoxManage modifyvm opensolaris200805 -nic1 hostif -hostifdev1 vbox1 $ VBoxManage createvdi -filename /KazMuzik/vbox/opensolaris200805.vdi -size 32000 -register Disk image created. UUID: 4ba496cc-14ef-4d9e-53b1-f600f47ce4f8 $ VBoxManage modifyvm opensolaris200805 -hda /KazMuzik/vbox/opensolaris200805.vdi $ VBoxManage registerimage dvd /KazMuzik/os200805g.iso $ VBoxManage modifyvm opensolaris200805 -dvd /KazMuzik/os200805g.iso $ nohup VBoxHeadless -startvm opensolaris200805 -p 3390 & |
今回は、Windows Vista で、RDC (Remote Desktop Connection) を用いて接続しました。RDP 標準ポートの 3389番は、Fedora 9 Guest が使用中なので、3390番を使いました。
インストールが完了して、OpenSolaris が立ち上がってきたら、root になり、次の設定をしました。
# svcadm disable gdm # sys-unconfig |
今回も GUI は不要なので、最初のコマンドで、graphical-login を diable にしました。また、ネットワークの設定は、自分で設定したいので、sys-uncon
まずは、Host で、raidz2 zpool 用の VDI を作成します。今回は、1GB の小さな VDI を 8つ作成して、SATA ドライブとして、設定しました。
$ VBoxManage controlvm opensolaris200805 poweroff $ VBoxManage modifyvm opensolaris200805 -dvd none $ VBoxManage createvdi -filename /KazMuzik/vbox/z1.vdi -size 1000 -register Disk image created. UUID: 954f1542-eca1-485f-a892-901f5009795e $ VBoxManage clonevdi /KazMuzik/vbox/z1.vdi /KazMuzik/vbox/z2.vdi $ VBoxManage registerimage disk /KazMuzik/vbox/z2.vdi $ VBoxManage clonevdi /KazMuzik/vbox/z1.vdi /KazMuzik/vbox/z3.vdi ... $ VBoxManage registerimage disk /KazMuzik/vbox/z8.vdi $ VBoxManage modifyvm opensolaris200805 -sata on -sataportcount 8 -sataport1 /KazMuzik/vbox/z1.vdi \ -sataport2 /KazMuzik/vbox/z2.vdi ... -sataport8 /KazMuzik/vbox/z8.vdi $ nohup VBoxHeadless -startvm opensolaris200805 -p 3390 & |
それでは、Guest の OpenSolaris にログインして、raidz2 zpool の設定を行います。
$ su - # format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c4d0 |
6台のドライブで、raiz2 zpool を作成し、"pool6" としました。そこに、"kazmuzik" というファイルシステムを作成して、簡単なテキストファイル "test1.txt" を作成しました。
raidz2 なので、2つのドライブを offline にしても、大丈夫なはずです。
# zpool offline pool6 c6t1d0 # zpool status pool6 pool: pool6 state: DEGRADED status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool6 DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c6t0d0 ONLINE 0 0 0 c6t1d0 OFFLINE 0 0 0 c6t2d0 ONLINE 0 0 0 c6t3d0 ONLINE 0 0 0 c6t4d0 ONLINE 0 0 0 c6t5d0 ONLINE 0 0 0 errors: No known data errors # zpool offline pool6 c6t3d0 cannot offline c6t3d0: no valid replicas # |
ひとつめの c6t1d0 は offline になり、pool6 の status が degraded となりました。しかし、2つ目の c6t3d0 を offline にしようとしたところ、replica がなくなってしまうため、拒否されてしまいました。こうなったら、別の手段で、強制的
Guest をこの状態で shutdown して、Host の方で、c6t3d0 を壊してしまいます。
$ VBoxManage modifyvm opensolaris200805 -sataport4 none $ rm /KazMuzik/vbox/z4.dvi $ nohup VBoxHeadless -startvm opensolaris200805 -p 3390 & |
再び、Guest にログインして、確認します。
# zpool status pool6 pool: pool6 state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: resilver completed after 0h0m with 0 errors on Sun Aug 3 10:21:51 2008 config: NAME STATE READ WRITE CKSUM pool6 DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c6t0d0 ONLINE 0 0 0 c6t1d0 OFFLINE 0 0 0 c6t2d0 ONLINE 0 0 0 c6t3d0 UNAVAIL 0 0 0 cannot open c6t4d0 ONLINE 0 0 0 c6t5d0 ONLINE 0 0 0 errors: No known data errors # cat /pool6/kazmuzik/test1.txt a pen a desk This is a pen. This is a desk. # |
今回は、ディスク自体が1個なくなった状態です。これで、zpool を構成するドライブが 2個 online でなくなりましたが、raidz2 のため、degraded で正常に動作しています。テスト用のテキストファイルもちゃんと読めます。
それでは、手動で offline にした c6t1d0 を online にしてやり、なくなった c6t3d0 は、c6t6d0 で replace してやります。
# zpool replace pool6 c6t3d0 c6t6d0 # zpool online pool6 c6t1d0 # zpool status pool6 pool: pool6 state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Sun Aug 3 10:28:01 2008 config: NAME STATE READ WRITE CKSUM pool6 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c6t0d0 ONLINE 0 0 0 c6t1d0 ONLINE 0 0 0 c6t2d0 ONLINE 0 0 0 c6t6d0 ONLINE 0 0 0 c6t4d0 ONLINE 0 0 0 c6t5d0 ONLINE 0 0 0 errors: No known data errors # cat /pool6/kazmuzik/test1.txt a pen a desk This is a pen. This is a desk. # |
これで、めでたく、正常な状態に復帰しました。
ディスクドライブが2台、余分に必要になりますが、1台壊れた時でも、残りのドライブ
Tags: computer_technology