先週末、またPCがイカれてしまった。何を行うにもやたら遅い。
また仮想マシンファイルが逝ったか?と思ったがlinuxネイティブのホスト環境でも遅い。
logを確認すると、
hptiop_reset(6/0/0) scp=ffff8802ed4db100
てなkernel警告がずらり。何の警告か良くわからないが、RAIDカードで良くないことが
起こっていることは俺に十分伝わった。それくらいの空気は読める。(`・ω・´)
で、RAIDカードのユーティリティで確認するとDISK2に不良セクタの代替処理が9回発生していた。このためIOが異常に遅くなりUbuntuの起動に20分とかアホな状況に陥っていた。
RAIDを構成していても不良セクタの発生は非常にやっかいだ。
Amazonで新品DISKを1本購入、昨日届いたのでRAIDをバックグラウンドでリビルド。
不良セクタの発生したDISKは何かに再利用できないかなと不良セクタのスキャン開始。
badblocks -c 32 -o /tmo/bblock.txt -v -s -w /dev/sde
を実行してelapsd time 29:32:27経過、まだ更新中。いつ終わるんだ?まだ不良セクタ登録しないといけないのに。
ところで、以前はWD5000BEVTx2台でのオンボードRAID0で適当に構成していて、VMwareなど使い始めたらIO性能のプアさに嫌気が差して現在の構成はこうなっている。
[HW]
MB:ASUS P5N7A-VM
HBA:HighPoint RocketRAID4310 x 1 + BBU-04(バックアップバッテリ)
HDD:日立0S03191 x 4 (2TB SATA600 7200rpm)
メモリ:12GB
[システム]
Ubuntu 10.04 64bit
VirtualBox
今後は仮想マシン主体に使うから前回の反省を踏まえて、今回はストレージ設計をもう少しまじめに行った。HDD4台でのRAID5(3D+1P)とし、IO性能とパーティション用途を考慮したスライスになるよう次のようにRaidグループを分ける。
R/G SIZE Block
RG1 1TB 64KB
RG2 1TB 64KB
RG3 2TB 256KB
RG4 2TB 256KB
先頭シリンダ寄りの1TBは高速性を活かしてOSやVM用などシステム用に割り当てる。
残りはデータ用として、細かいファイル用と大サイズ用でチャンクを64KBと256KBに分けた。しかし、パーソナル利用でこんなに容量要らない・・・
HighPointのIOプロセッサ付きRAIDボード買ったの初めてだけど、あまり細かい設定はできないようだ。オプション見てたらBCVなんて項目もあり、一瞬ニコっとしたがTimeFinderなど動くはずもない。
移行やサルベージのためにトリプルブート用にパーティションを切る。
システム用ボリュームの内容。
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 1 4177 33551721 7 HPFS/NTFS
/dev/sda2 * 4178 7310 25165822+ 83 Linux
/dev/sda3 7311 10443 25165822+ 83 Linux
/dev/sda4 10444 121576 892675792 5 拡張領域
/dev/sda5 10444 114876 838858041 8e Linux LVM
/dev/sda6 114877 118009 25165791 7 HPFS/NTFS
/dev/sda7 118010 118270 2096451 b W95 FAT32
/dev/sda8 118271 120009 13968486 7 HPFS/NTFS
/dev/sda9 120010 121576 12586896 82 Linux スワップ
※/dev/sdb~/dev/sddはデータ用なので大雑把に1TBづつパーティショニング。
sda1は素のWindowsを導入。
sda2はルートパーティションとしてUbuntu Server 10.04を導入。
sda3はVine6用に確保したがインストーラがハングするためもうひとつUbuntu Server 10.04を導入。
/homeや/var/log、VM用のボリュームなど必要に応じてLVMから切り出すため全てVGを作成。
PV VG Fmt Attr PSize PFree
/dev/sda5 SysVG3201 lvm2 a- 799.97g 291.97g
/dev/sdb1 DataVG3201 lvm2 a- 931.31g 557.31g
/dev/sdc1 DataVG12801 lvm2 a- 931.25g 0
/dev/sdc2 DataVG12801 lvm2 a- 931.25g 662.50g
/dev/sdd1 DataVG12801 lvm2 a- 931.25g 931.25g
/dev/sdd2 DataVG12801 lvm2 a- 931.25g 931.25g
VG #PV #LV #SN Attr VSize VFree PEsize
DataVG12801 4 1 0 wz--n- 3.64t 2.47t 128MB
DataVG3201 1 3 0 wz--n- 931.31g 557.31g 32MB
SysVG3201 1 2 0 wz--n- 799.97g 291.97g 32MB
サルベージや互換性を考えてファイルシステムはxfsはやめてext4とした。
ext4のファイルシステムはバカチョンフォーマットせず各RAIDグループに合わせてパフォーマンスを最適化すべくオプションを指定。
ex.) mkfs.ext4 -b 4096 -E stride=16,stripe-width=48 /dev/sdaXX
チャンクサイズ64KBの場合、4096byteブロック16個分なのでstrideは16、RAIDは3D+1Pなのでstripe-widthはstride x 3DataDisk =48。
チャンク256KBの場合はそれぞれ64、192となる。
これら作成されたファイルシステムのマウントもオプションを指定する。
/etc/fstabにstripeを指定。ここではmkfsでのstrideと同じ意味でチャンクをfsのブロックサイズで割ったものをstripeに指定する。
fstabの例)
/dev/SysVG3201/SysLV02 /opt/virtual ext4 stripe=16 0 1
/dev/DataVG3201/DataLV04 /SRV/Share ext4 data=writeback,stripe=16,noatime 0 1
ブロックサイズ、チャンクサイズ、ストリップサイズ、ストライプサイズとメーカーで呼び方がバラバラなのでややこしい。この状態でのIO性能を確認するためhdparmで計測したが、before/afterの計測データをどこへ保管したか忘れた。
こうなったらたぶんもう見つからない。
ただ、仮想マシンを4つや5つ起動したくらいではビクともしないからまぁOKでしょ。
TintriやIsilon、LeftHand、Panasasなどの面白いNASが世の中にはあるのに個人環境ではこんな面倒なことして頑張らなければいけない。トホホ。
最新の画像[もっと見る]
- 双眼鏡三脚アダプタ 2週間前
- 双眼鏡で見る土星 3週間前
- 紫金山・アトラス彗星 2ヶ月前
- 今シーズン初の土星 2ヶ月前
- SPT99T-01用ブレードその2 3ヶ月前
- SPT99T-01用ブレードその2 3ヶ月前
- SPT99T-01用ブレードその2 3ヶ月前
- サイトロン Stellar Glassesが届いた! 6ヶ月前
- サイトロン Stellar Glassesが届いた! 6ヶ月前
- サイトロン Stellar Glassesが届いた! 6ヶ月前
※コメント投稿者のブログIDはブログ作成者のみに通知されます