[[HDD管理 sysutils/smartmontools]] ---- #counter([total|today|yesterday]); &lastmod; #contents ---- *G7 のzpoolが妙なことに? 2013/03/04[#da6d2c72] 仕事場の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 で行きたいので、修正する。 **SATA-Raidのためのメタデータが書き込まれたHDDをフォーマットしなおす [#nc845406] 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 するヨロシ。 ---- *Device: /dev/ada3, unable to open device [#gd66b8d4] ほぼ同時に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 install on ZFS [#had47cd4] 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 #ref(mfsbsd-se-9.0-RELEASE-amd64.iso) をとってきて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 -dのオプションはインストールするディスクを指定。 -tはisoイメージに入っていたzfsでのインストール用ファイルを指定。 -pはインストール時に作成されるZPOOLの名前を指定。 -sはスワップ領域をどれだけ作るかを指定。 zfsinstallスクリプトが終わるとインストール終了。 最後に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 -全部ZFSにするよ! -システムは全部SSD上に入れるよ! ---> ada0 -HDD3台でRAIDZ1のZFSプールを組むよ! ---> ada1 ada2 ada3 -SSD上にZFSプールのキャッシュ領域とログ領域を用意するよ! ---> ada0 -Swapはパーティションじゃなくてファイルを使うよ! ---> ada0?? というか、既に ada0 に、完結した?システムが出来ているので、残りの ada1 ada2 ada3 上にpoolを作って /home/usr にしましょうという話。 **インストール時、usr登録しなければ、インストーラが /usr/home を作っていないので、tank にそれを置く事にする。 [#ad8f6d28] 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 *install 直後 [#zd323311] 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 [[portupgrade のインストール]] [[ports collection の更新]] G7# ln -s /usr/home/ /home **Backup Server からデータを取ってくる [#oafa0f81] portsで、net/rsync をインストールして・・・ /usr/local/bin/rsync -av blackhole.smb.net:/usr/Backups/Blackcube /usr/home/Backups/ [[Postfix on FreeBSD]] ***portinstall databases/mysql51-client [#r3a88c38] [[MySQL on FreeBSD]] *** portinstall www/apache22 [#j7c70fd2] 依存関係で、 python gdm &ref(apache22op.png); *** G7# portinstall lang/php5 [#ob69e3ff] &ref(php5op.png); ---- 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 http://mfsbsd.vx.sk/ http://d.hatena.ne.jp/k-akashi/20100802/1280717882 http://d.hatena.ne.jp/kawa_128/20120219/1329644472