RAID組もうとしたけどrsync(robocopy)で済ませた話
#windows #hardwareちょびちょびバックアップはとっていたけど、まともな冗長構成の取れたストレージが自宅になかった。
写真とか自炊本を失う前にいい加減なんとかしようそうしよう。
紆余曲折あったのでありのままの紆余曲折を書いていく。
自宅の環境
- デスクトップPC (Windows)
- 常時起動していて自宅サーバ状態
- 意識低いことする用
- Macbook Air
- コード書いたりする
- 意識高いことする用
プランをいくつか考えてみる
RAIDを組めるストレージといえばNASということで、NASを買うかどうかも含め考えられるプランは3つ。
- アプライアンスNAS案
- 自作NAS案
- Windows機でがんばる案
アプライアンスNAS案
箱物のNASを買う案。
買うからにはスロット4本以上ほしい。
QNAP評判良いけど、結構良いお値段するんだなー。
QNAP TurboNAS デュアルコアCPU 512MBメモリ 4ベイ 2年保証 多機能NAS TS-431
お手頃価格ではReadyNASだけどFirmwareが不評。
NETGEAR ReadyNAS 104 4ベイ Diskless 3年保証 ネットワークストレージ 個人/SOHO RN10400-100AJS
Pros
- アプライアンスなので楽
- メディアサーバとしても使える
Cons
- しっかりしたものを買おうとすると結構高い
- Firmwareで駄目パッチが来ると色々辛い
自作NAS案
zfs(w/Linux)が気になるので、RAID-Z2で組むことを主軸に考えた。
- 自作するならディスク5本位挿したいな
- RAID-Z2は現状あとからディスクを増やせないので、始めから多めに挿しておく
- ディスク4本だとRAID10と実効容量変わらずで負けた気がする
- 小さいほうがいいよねってことでMini-ITX
といった要件を満たすケースを探しながらキャッキャウフフしてた。
Pros
- Linuxなのでお勉強にもなる
Cons
- Skylake出たばっかりでかなり時期が悪い感
- 駆け込み需要でHaswell以前のM/Bが品薄状態
- メモリの規格も変わっちゃったし…
Windows機でがんばる案
今時のWindowsはSoftware RAIDが組めてしまうすごい。
この案ではお手軽に小さく始めるのが主軸なので、RAID1で最低限の冗長構成でいいかな。
Pros
- 一番お手頃価格
Cons
- Windows…
結局どれにしたの
今回おさいふ事情が芳しくなかったので、WindowsでRAID1を作ることにした。
とりあえずディスク2本買うだけで良いし、小さく始めるにはちょうどいい感じ。
時期が来たらNAS機自作するのも楽しそうだな。
買ってきたもの
- Western Digital Corporation WD60EZRZ-RT * 2
- エアリア Raid JET PCI Express X1 接続 Raidボード Raid0 1対応 SD-PESA3-2RL
SATAポート足りなかったので拡張カード買いに行ったら、RAID有りモデルと無しモデルで同じ値段だったので有りなやつを買ってみた。
ふわっとRAIDカードを買ってきたら、今度はHardware RAIDとSoftware RAIDどっちにしようかという話になった。
Hardware RAID1 v.s. Software RAID1
ファイ!
- Hardware RAIDは、Marvellチップ搭載の上記RAIDカード
- Software RAIDは、Windows標準のミラーボリューム
CrystalDiskInfoとCrystalDiskMarkで見比べてみる。
HDD単品
RAID組まずにHDD(WD60EZRZ-RT)単品だとどうなんじゃろ。
これが比較の基準だな。
Hardware RAID1 (Marvell RAID Volume)
Amazonのレビューにも書いてあったけど、smart見れない(´・ω・`)
下調べせずにふわっと買ってきちゃったから仕方ないね。
もともとお高いRAIDカードは買うつもりなかったから悔しくないもん。
やっぱりwriteは落ちちゃう。
Pros
- Software RAIDに比べればCPU負荷は低いんじゃないかな(測ってないけど^p^)
Cons
- smart見れない(´・ω・`)
- rebuildはBIOS上で行うため、rebuild中はWindowsを使用できない
- RAIDコントローラのベンダロックイン
Software RAID1 (Windows Mirrored Volume)
writeはHardware RAID1と同じくらい。
Pros
- rebuildはWindows上で行うため、rebuild中もWindowsが利用できる
Cons
- Windowsのベンダロックイン
結局どっちにしたの
どっちにもしてない><
当初smart見れないのは辛いので、ミラーボリュームを使ったSoftware RAID1にしようと決めた。
このミラーボリューム、ダイナミックディスクという形式でフォーマットする必要がある。
そしてこのダイナミックディスクの評判が芳しくない様子。
めっちゃ怖い。
もう定期バックアップだけでいいんじゃなかろうか
なんかもう疲れちゃって、RAID自体微妙な気がしてきた。
自宅環境ならもう定期バックアップだけ取っていればいいんじゃないかな。
目的はデータ自体の冗長化(バックアップ)であって、高可用性ではない。
と考えだしたらrsync
が輝きだした。
Pros
- ベンダロックインがない
- 復旧がめっちゃ楽
Cons
- バッチによる非同期処理のため一時的に差分が生まれる
- ディスクは当然2本見えるので、“mirror側は絶対に触らない"という"運用でカバー"が発生する
ええやん!
robocopyでそそくさと設定する
Windowsにはrobocopy
というrsync
相当のコマンドが存在する。
下記のコマンドをタスクスケジューラに登録してdailyで実行させる。
$ robocopy %SRC% %DST% /MIR /R:3 /W:5 /XD "System Volume Information" "$RECYCLE.BIN" /XJ /TEE /LOG:"/PATH/TO/LOG.log"
/MIR
ミラーリング(削除もしてくれる)/R:n
コピー失敗時のリトライ数/W:n
コピー失敗時のリトライまでの待ち時間/XD <DIR>
指定ディレクトリを除外/XJ
ジャンクションポイント(シンボリックリンクのようなもの)を除外/TEE
標準出力にも出力する/LOG
ログの出力先
勝った!これで大勝利や!
まとめ
お金のこと
- お金に余裕があるなら
- QNAPとかアプライアンスNAS買えばいいと思う
- Linuxのお勉強したいなら自作NASアリだと思う
- お金に余裕が無いからといって、Windowsのダイナミックディスクに手を出してはいけない
冗長化のこと
- 欲しいのは本当に高可用性(RAID)なのかよく考える
- データ自身をバックアップしていれば、可用性は低くても大丈夫なケース
- サービスをホスティングしていない
- 一人暮らしなど、利用者=運用者な状況(困るの自分だけだし…)
- 可用性高くしたいケース
- サービスをホスティングしている
- 家族など自分以外の利用者がいる状況