HDDとSAS Expander追加購入

HDDをまた買ってしまいました。3台も。ebayにて。

買うつもりは無かったんですけどね、ウォッチリストにいれてたやつに対して「$15.00割引するから買わない?」ってオファーが来たんです。それでもまだちっと高かったのでカウンタオファーで更に安く提案してみた。「これ通してくれたら貴方が売ってる他のHDDも買うよ!」って。

通っちゃった。3台の平均TB単価は$17.5程度だけどHDDの状態は良かったのでまぁいいかなと。

Seagate Iron Wolf 12TBとToshiba X300 8TB x2

HDDRACK5の3台目がスカスカだったのでそこに入れました。

ついでにebayでSAS Expanderをリピートしました。

前に買ったのとSellerも価格も全く同じです。

本当はPCIEスロットタイプのが欲しくて入札してました。一時期よりは安くなったとはいえ、dellのなら$39.99で買えますからね。こっちは購入見送りました。

自作ケーブルも同じ部材でサクッと。

2度目だったから本当にすぐに作れた。

完成~。

もうケースの中には入らないので外に設置しました。あと内蔵SASポート4つの余裕ができましたが、さすがに全部埋めるのは物理的にも電源容量的にも無理そうです。

ついでに先日買っておいたSASケーブルを交換しました。L字アングルタイプが安かったので。HDDRACK5の下段2つはL字タイプに変更しました。こっちのがスッキリするかなと。

肝心の中古HDDは…

使用時間が3桁時間!?流石にちょっとこれは少なすぎでは・・・電源投入回数に比べてどう考えても少ないですね。バグでしょうか。SMART書き換えられたのでしょうか。うーむ。

こっちも400時間、少なすぎる気がする。まぁ使えればいいや。

設定は後述しますが、IronWolf12TBは1台だけのZPOOLにしています。

テストサイズ1GiBではディスクのボトルネックを遥かに上回る性能が出てます。キャッシュ効いてます。ZFSすごいな。

テストサイズを最大の64GiBにしてもこれだけ早い!すごい!

Toshiba X300 8TBx2はZFSのRAID0で組みました。こっちも早いですね。素晴らしい。

設定編(備忘録)

HDDRACK5のケーブルを交換したのはいいんですけど、1本うまく認識してなくて、ZFS(RAID0)のPoolが一つSUSPENDEDになってしまいました。

ケーブルさしなおしたら無事にディスクを認識したので指示どおりzpool clearしてみました。どうやらエラーカウントがあるとSUSPENDEDになるらしい。

ディスク確認
sudo lshw -short | grep disk

エラーカウントクリア
sudo zpool clear sg2tb

これでひとまず使えるように。試しにもうひとつのpoolでディスク1本抜いてみたら同じようになったので同じように復旧させました。(pool壊れたらまたplot作ればいいやーって気楽に)

ZFSの再同期処理はresilverというらしい。
zpool clearしてからしばらく経つと無事にstate: ONLINEにもどりました。

改めて新しいHDDを3台接続してディスク番号を確認します。

/0/b/0.23.0 /dev/sdm disk 12TB ST12000VN0007-2G
/0/b/0.24.0 /dev/sdn disk 8001GB TOSHIBA HDWF180
/0/b/0.25.0 /dev/sdo disk 8001GB TOSHIBA HDWF180

IronWolf12TBを1台RAID0にする。-fで強制フォーマット、-mでマウントポイント指定
sudo zpool create -f -m /mnt/ironwolf12tb ironwolf12tb /dev/sdm

権限変更
sudo chown hyperbanana:hyperbanana /mnt/ironwolf12tb

toshiba8TBを2台RAID0にする。-fで強制フォーマット、-mでマウントポイント指定
sudo zpool create -f -m /mnt/toshiba8tb toshiba8tb /dev/sdn /dev/sdo

権限変更
sudo chown hyperbanana:hyperbanana /mnt/toshiba8tb

確認
ls -la /mnt
df -Th | grep mnt
zpool list
zpool status toshiba8tb
zpool status ironwolf12tb

SMB設定
sudo vi /etc/samba/smb.conf

[IronWolf12tb]
path = /mnt/ironwolf12tb
writable = yes
guest ok = no
valid users = @hyperbanana
create mode = 0644
directory mode = 0755

[Toshiba8tb]
path = /mnt/toshiba8tb
writable = yes
guest ok = no
valid users = @hyperbanana
create mode = 0644
directory mode = 0755

反映
sudo systemctl restart smbd

クライアント側ubuntuにて。

自動マウント設定
sudo /etc/fstab

//ibuypower/ironwolf12tb/ /mnt/ironwolf12tb cifs vers=3.0,username=hyperbanana,password=******,uid=1000,gid=1000,file_mode=0644,dir_mode=0755 0 0
//ibuypower/toshiba8tb/ /mnt/toshiba8tb cifs vers=3.0,username=hyperbanana,password=******,uid=1000,gid=1000,file_mode=0644,dir_mode=0755 0 0

マウントポイント作成
sudo mkdir /mnt/ironwolf12tb
sudo mkdir /mnt/toshiba8tb

マウント
sudo mount -a

ちなみにメモリ8GBのCore i7-2600kではubuntuからCIFS経由のファイル転送でメモリ不足に陥っていましたが、メモリ32GBのCore i7-7700kでは特に問題なくCIFS転送できてます。よってNFSは設定していません。

zpool破損!?

ふとzpool statusを見るとひとつだけ何やらおかしな状態になっていました。指示通り-vをつけて見てみます。sudoじゃないと駄目でした。
sudo zpool status -v sg2tb

どうやらファイルが壊れたっぽい?とりあえず整合性をチェックするコマンドを走らせてみました。
sudo zpool scrub sg2tb

6時間以上かかりましたが無事に終了し、エラーは消えました。

ただこれすごく時間かかる上にscrub中にアクセス速度がガクッと落ちてしまうようです。

invalid出まくるレベルで該当プールへのアクセスが重くなってしまいました。おそらく5秒ルールとかに失敗してるのでしょう。

scrubを中止するコマンドはこちら
sudo zpool scrub -s sg2tb

ZFSのディスクを抜き差しする場合はどうしたらいいのでしょうか。通常であればumount/mountをすればいいわけですが、ZFSの場合はexport/importがそれに当たるようです。

-fは強制オプションですが、SMBで共有してると駄目でしたので、一旦SMBの設定を削ってから実施しました。
sudo zpool export -f ironwolf12tb
sudo zpool export toshiba8tb

sudo zpool import ironwolf12tb
sudo zpool import toshiba8tb

importする前にOSがディスクを認識してることを確認してから実施するとエラーなく行けるんじゃないかと思います。SAS Expanderのケーブル配線を変更する際はこれで問題なくいけました。OS起動しっぱなしでやれるのが地味に便利ですねえ。ホットスワップは楽でいい。

importしなおすとデバイス番号sdxってのが全部シリアル入の表記に変わるんで若干見やすくなるという利点もあります。

余談…

HDDが届いたのは7/30の夕方、今日は8/2です。ちょっと本業が忙しくてブログ執筆が遅れました。そして、今現在のHDDの空き容量はこうなっています。

madmaxとramdiskが優秀過ぎてあっという間に埋まりますね。恐ろしや。

最近のチア農場

種類 個数 容量 POOL
og 1941 192.20 TiB hpool
portable 1162 115.006TiB SpacePool

ogもっと消してる気がするけども、hpoolのOnline Plot数に反映されるまで結構ラグがありますね。そのラグの間も多分報酬多くもらえてるような気がします。hpoolが想定より報酬すくない理由が少しわかった気がします。