2013-03-04 (月) 17:03:34
仕事場のG7のzpoolが何時の頃からか?こんな事に。っていうか、多分、FreeBSD 9.0を9.1にUPしたあたり・・・から。
NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 raid/r0 ONLINE 0 0 0 ada2 ONLINE 0 0 0 3964903653718771644 OFFLINE 0 0 0 was/dev/ada3
の様になっていました。これ、raid/r0 というディスクと、本来の ada3 で構成されているraid0ということのようです。って、そうですか?
さらには、dmessage で、こんな行も
Mar 4 15:25:31 g7 kernel: GEOM_RAID: SiI-070101104925: Array SiI-070101104925 created. Mar 4 15:25:31 g7 kernel: GEOM_RAID: SiI-070101104925: Disk ada2 state changed from NONE to ACTIVE. Mar 4 15:25:31 g7 kernel: GEOM_RAID: SiI-070101104925: Subdisk SiI Concatenatio:0-ada2 state changed from NONE to ACTIVE. Mar 4 15:25:31 g7 kernel: GEOM_RAID: SiI-070101104925: Array started. Mar 4 15:25:31 g7 kernel: GEOM_RAID: SiI-070101104925: Volume SiI Concatenatio state changed from STARTING to OPTIMAL. Mar 4 15:25:31 g7 kernel: GEOM_RAID: SiI-070101104925: Provider raid/r0 for volume SiI Concatenatio created. Mar 4 15:25:31 g7 kernel: GEOM_RAID: NVIDIA-1: Array NVIDIA-1 created. Mar 4 15:25:31 g7 kernel: Root mount waiting for: GRAID-NVIDIA Mar 4 15:25:31 g7 last message repeated 29 times Mar 4 15:25:31 g7 kernel: GEOM_RAID: NVIDIA-1: Force array start due to timeout. Mar 4 15:25:31 g7 kernel: GEOM_RAID: NVIDIA-1: Disk ada3 state changed from NONE to ACTIVE. Mar 4 15:25:31 g7 kernel: GEOM_RAID: NVIDIA-1: Subdisk RAID 0+1 465.77G:2-ada3 state changed from NONE to REBUILD. Mar 4 15:25:31 g7 kernel: GEOM_RAID: NVIDIA-1: Array started. Mar 4 15:25:31 g7 kernel: GEOM_RAID: NVIDIA-1: Volume RAID 0+1 465.77G state changed from STARTING to BROKEN. Mar 4 15:25:31 g7 kernel: Trying to mount root from zfs:zfspool/root []...
どうやら、G7のBIOS設定のなかにあるSATAーRaid(工場出荷時はディスエーブル)がイネーブルになってる風味。
さらに、HDD二基をraidに組んでしまった模様。データは正常なのだが、なんか気持ち悪い。(ーー;)
POST画面からF9を押して、種々設定を確認・変更するも、raidの解除には至らず。orz
方々調べてみるも、G7のSATA-Raidの解除方の記載は皆無・・・
で、HPのHPへ質問コメントを出してみた。
「G7サーバのBIOS設定でSATA-Raidを解除する方法は?」
すると、翌日、サポートさんからお電話が来た。キタ━━━(゚∀゚)━━━!! で、おおざっぱに纏めると
「BIOSの設定で、SATA-Raid機能をOFFにしても、HDDにアレイの情報が書き込まれていたらRaidチップは動作する」
とのこと。また
「複数のHDDが搭載された場合、自動的に最適なアレイを組もうとする」
のだそうです。
方針としてはSATA-Raid(Software)は使わず、物理HDD3基によるraidz1 で行きたいので、修正する。
root@g7:/root # dd if=/dev/zero of=/dev/ada3 bs=1m count=1 dd: /dev/ada2: Operation not permitted
と、フォーマット出来ない。そこで、
root@g7:/root # sysctl kern.securelevel kern.securelevel: -1 root@g7:/root # sysctl kern.geom.debugflags=0x10 kern.geom.debugflags: 0 -> 16
と、カーネルデバッグレベルを下げてから、
root@g7:/root # dd if=/dev/zero of=/dev/ada3 bs=1m count=1 1+0 records in 1+0 records out 1048576 bytes transferred in 0.006510 secs (161071105 bytes/sec)
の様にして、目的のHDD総てをフォーマットをして、
root@g7:/root # gpart create -s GPT ada1 gpart: geom 'ada1': File exists root@g7:/root # gpart create -s GPT ada2 ada2 created root@g7:/root # gpart create -s GPT ada3 ada3 created
と、GPTディスクを作成し、念のため
root@g7:/root # gpart list -a
等で出来ているかを確認して、
root@g7:/root # zpool create -f tank raidz1 ada1 ada2 ada3
する。
root@g7:/root # zpool status pool: tank state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 ada1 ONLINE 0 0 0 ada2 ONLINE 0 0 0 ada3 ONLINE 0 0 0 errors: No known data errors pool: zfspool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zfspool ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 errors: No known data errors
ということで、目出度く復旧。( ´ ▽ ` )ノ
念のため、reboot してみたけど、NVIDIAはお出ましにならず。ホッ(・_・)
あとは、続きの http://piano2nd.smb.net/~kuji/pukiwiki-1.4.7/index.php?ZFS%20FreeBSD%209.0#ad8f6d28 するヨロシ。
ほぼ同時にSMART error (FailedOpenDevice) detected on host: blackcube.smb.net というメールが、
Device: /dev/ada2, unable to open device Device: /dev/ada3, unable to open device
blackcube# zpool status pool: tank state: ONLINE status: One or more devices are faulted in response to IO failures. action: Make sure the affected devices are connected, then run 'zpool clear'. see: http://www.sun.com/msg/ZFS-8000-HC scan: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 4 6.26M 0 ada1 ONLINE 0 0 0 ada2 ONLINE 6 12.5M 0 ada3 ONLINE 3 15 0 errors: 112 data errors, use '-v' for a list pool: zfspool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zfspool ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 errors: No known data errors
だったので、ググって、http://docs.oracle.com/cd/E19253-01/819-6260/gbctx/index.html
http://docs.oracle.com/cd/E19253-01/819-6260/gbctt/index.html
blackcube# zpool clear -F tank
するも、プロンプト帰らず
blackcube# zpool status -v pool: tank state: UNAVAIL status: One or more devices are faulted in response to IO failures. action: Make sure the affected devices are connected, then run 'zpool clear'. see: http://www.sun.com/msg/ZFS-8000-HC scan: none requested config: NAME STATE READ WRITE CKSUM tank UNAVAIL 0 1 0 ada1 ONLINE 0 0 0 3618713481250398537 UNAVAIL 0 0 0 was /dev/ada2 5288351998824643618 UNAVAIL 0 0 0 was /dev/ada3 errors: Permanent errors have been detected in the following files: <metadata>:<0x0> <metadata>:<0x4e> <metadata>:<0x4f> <metadata>:<0x50> tank:<0x11fd32> tank:<0x11fc6e> tank:<0x18e488> tank:<0x18ccef> pool: zfspool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zfspool ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 errors: No known data errors
で、余計に悪化?
サーバを停めて、飛んだHDD、ada2, ada3 を新品に交換。
新らしくtankを作る。
データをバックアプから取ってくる。 tank は、/usr/home なので、まず、
blackcube# /usr/local/bin/rsync -av blackhole.smb.net:/usr/Backups/Blackcube/usr/home /usr/ blackcube# /usr/local/bin/rsync -av blackhole.smb.net:/usr/Backups/Blackcube_G7/usr/home /usr/
を取ってくる。Down Time 5hr orz
FreeBSD 9.0R で、ルートファイルシステムをZFSにするメモ 参考URL http://d.hatena.ne.jp/k-akashi/20100802/1280717882
mfsBSDを使えば楽ちんとのこと。 ファイルシステムをZFSでフォーマットしてFreeBSDをインストールするスクリプトを実行してインストールするとのこと。
具体的には、http://mfsbsd.vx.sk/ から、ISOイメージをDLしてきてインストール。
9.0-RELEASE amd64 special edition (100MB) checksums
をとってきてCD-Rに焼く。
イメージをダウンロードしたらCDブートで起動。
すると、普通にFreeBSDが起動するので、まずはログイン。
rootでパスワードはmfsroot。
あとの作業はログインメッセージにある程度書いているが、まずはCDをマウントする。
# mount_cd9660 /dev/acd0 /cdrom
HP ProLiant ML110 G7サーバの場合は、 http://h10010.www1.hp.com/wwpc/jp/ja/sm/WF25a/15351-15351-241434-3328424-3328424-5075942.html?dnr=1
# mount_cd9660 /dev/cd0 /cdrom
としてマウント。
マウントすると、FreeBSDのインストール用ファイルが使えるようになるので、それを指定してZFSでのインストールスクリプトを実行する。
# zfsinstall -d /dev/ada0 -t /cdrom/9.0-RELEASE-AMD64.tar.xz -p zfspool -s 4G
最後にchrootしてrootのパスワードを設定して再起動。
# chroot /mnt # passwd hogehogehoge #パスワード入力 # reboot
再起動後はportsもないし、rc.confにもzfs_enable="YES"しか書いてないので、ちょろちょろ環境作ることになる。
/usr/sbin/sysinstall
が使えると、Configer で設定出来てちょっとだけGUI!w
ここから参考URL http://yet-another-su.txt-nifty.com/endeavor_nt340freebsd/2012/05/freebsd-9zfs-66.html
というか、既に ada0 に、完結した?システムが出来ているので、残りの ada1 ada2 ada3 上にpoolを作って /home/usr にしましょうという話。
G7# zpool create tank raidz ada1 ada2 ada3
したら、なんだか、エラー。そこいらに転がってたHDDかき集めた tank なのでデータが残っているとダメらしい。っつうことで、
G7# zpool create -f tank raidz1 ada1 ada2 ada3
しる。
# zfs set mountpoint=/boot/zfs/zroot/usr/home tank # cd /boot/zfs/zroot; ln -s usr/home home
ZFSのexportとimportを行います
# cd /boot/zfs # zpool export tank # zpool import tank
マウントポイントを指定します。
# zfs set mountpoint=/usr/home tank
/home へリンク張る
G7# ln -s /usr/home/ /home
G7# df Filesystem 1K-blocks Used Avail Capacity Mounted on zfspool/root 235245429 1007697 234237731 0% / devfs 1 1 0 100% /dev zfspool/root/tmp 234237769 38 234237731 0% /tmp tank 1436810379 19644987 1417165391 1% /usr/home zfspool/root/var 234331816 94084 234237731 0% /var
G7# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT tank 1.36T 23.0G 1.34T 1% 1.00x ONLINE - zfspool 228G 1.05G 227G 0% 1.00x ONLINE -
G7# zpool status pool: tank state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 ada1 ONLINE 0 0 0 ada2 ONLINE 0 0 0 ada3 ONLINE 0 0 0 errors: No known data errors pool: zfspool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zfspool ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 errors: No known data errors
23 6:31 dmesg | grep MB 24 6:41 zpool create tank ada1 ada2 ada3 25 6:41 zpool status 26 6:42 zpool list 27 6:42 zpool create -f tank ada1 ada2 ada3 28 6:43 zpool list 29 6:43 zpool status 30 6:43 df 31 6:54 pwd 32 6:54 cd 33 6:55 cd / 34 6:55 zfs set mountpoint=/boot/zfs/zroot/usr/home tank 35 6:55 cd /boot/zfs/zroot ; ln -s usr/home home 36 6:58 cd /boot/zfs 37 6:59 zpool export tank 38 6:59 zpool export zroot 39 6:59 zpool export zfspool 40 7:00 zpool import tank 41 7:01 zfs set mountpoint=/usr/home tank 42 7:01 history
いつも最初の locate hogehoge で database too small と言われて
/usr/libexec/locate.updatedb
するw
7 5:18 portsnap fetch && portsnap extract
G7# ln -s /usr/home/ /home
portsで、net/rsync をインストールして・・・
/usr/local/bin/rsync -av blackhole.smb.net:/usr/Backups/Blackcube /usr/home/Backups/
依存関係で、
python gdm
http://yet-another-su.txt-nifty.com/endeavor_nt340freebsd/2012/05/freebsd-9zfs-66.html
http://www.seichan.org/wiki/index.php?FreeBSD-ZFS#l5494be8