ソースコードに「辞めると上司に告げた日20yy.mm.dd」とコメントを残したまま退職しました。
ぱんだり(@pandaryman)でございます。
他に、「牛さんで~す、かえるさんで~す、ぱぺっとまぺっと20yy.mm.dd」というコメントやらなんやら残してきました。
#yy.mm.ddは実際の日付
さて、今日は、バックアップのお話のKEYであります、RAID(レイド)についてのお話です。
前回までのお話と読み飛ばしはこちら
「話の流れがよくわからん」という方は、こちらをどうぞ。
RAIDなんて既に知っている!という方は、こちらをどうぞ。
バックアップを考える前に、まずはRAID(レイド)を知ろう。
RAIDって何?
かなり乱暴に言うと、複数のディスクをまとめて(アレイって言います)、一つのディスクに見立てるという感じ。
HDDが複数ある倉庫 とイメージしてください。
でも、搬入口は一つなのです。
荷物(データ)を入れたり、出したりする側は、その搬入口に行くだけでいい。
そこには指揮官(コントローラ)がいて、荷物をどのように格納するか指示をして倉庫番に荷物を渡すわけです。
指揮官は、こちらの言葉を理解してくれますが、指揮官から先の倉庫番さんは僕らとは全く違う言語で話します。
だから、僕らは、倉庫番がどのようなルールでどの棚にデータをしまったか、知ることができないわけです。
(これが、ファイルフォーマットが違う、ということです。)
そういえば昔、倉庫番ってゲームがあったよね。(どうでもいい)
RAID0って何?
RAIDっていうとバックアップとしてのイメージが強いけれど、RAID0はちょっと異質。
ストライピングとも呼ばれるRAID0は、複数のディスクをまとめて、順次に書き込む方法。
こうすることで、ディスクアクセスが速くなる。
大量のデータを倉庫に持ち込むと、整理しながらHDDに入れていくわけですが、一つだと時間がかかってしまう。
指揮官が、「A(のDisk)!B(のDisk)!A!B!」といいながら倉庫番に荷物(データ)を渡すので、高速になるわけです。
2台同時に書き込んでいくわけですから、順番待ちがなくなるので、スピードが増します。
一車線の道路と二車線の道路。どちらがたくさんの車を捌けるかと考えるとイメージがつきやすいかな…。
今でこそ、SSDやM.2という高速なストレージが出てきたので一般的には使われないですが、HDD時代には貴重な高速化技術でした。
ちなみに、M.2がまだ高価だったころは、SSDストライピングをすることで読み書き800MB/s以上でてました。
この方が断然安かった。
このRAID0は、例えば1TB + 1TB なら2TBの容量がちゃんと使えます。
RAID1って何?
これが一般的に言われているRAID。
ミラーリングって言いますね。その名の通りミラー(複製)するのです。
2つのディスクをまとめて、同時に書き込むので、障害耐性に強いといわれています。
ただ、書き込み速度が遅いというデメリットもあります。
荷物を倉庫にもっていくと、指揮官が複製して「AとBに連れて行け!」というわけです。
複製して両方に持っていくわけですから、そりゃ時間かかりますよね。
ただ、読み込みは速くなる場合もあります。
指揮官が「このデータをもってこい!」というと、倉庫番さんがAとBそれぞれに走って行き、早くもってきたデータを採用します。
このRAID1にはもう一つデメリットがあって、例えば1TB + 1TB のディスクを使っても1TBしか使えません。
他にもRAIDはありますが、大体RAID1の拡張版とでも思ってもらえたらいいです。
そして、「いや、他のRAIDの方が安全だし、いいじゃん」なんて言う人は既にプロ級です。
この記事はきっと必要ないことと思います。
RAID最大の問題点は、指揮官にあった!
個人的に、RAIDは好きではありません。
特に、RAID1はあまり使いたくないのが現状。
もちろん、本当に便利だと思います。
一度だけ書き込めば、勝手にミラーリングしてくれるんですもの。
指揮官がちゃんと生きてたらね。
この意味、おわかりでしょうか?
そうなのです、指揮官が死んでしまうと、データが取り出せなくなるのです。
指揮官を生き返らせるしか、手段はありません。
そして、生き返らせることができるのは、優秀な技術者しかいません。
一般人が手を出すべきではありません。
むしろ、専門業者さんやメーカーですら、「障害が発生したら専門業者に任せろ」と言っています。
あんなに「簡単にHDDを交換して復旧できます!」なんて、箱に書いてるのに!!
HDDを抜いてPCに指せばいいじゃない。
ほとんどの方は、これをすると失敗します。
なぜなら、指揮官は指揮官なりのルール(ファイルフォーマット等)で保存しているのです。
MacやWinにつないでいきなりHDDの中が見えるわけではありません。
指揮官を生き返らせる便利なソフトがあればよいのですが…
#誰か簡単にできるものを知ってたら教えてください。使ってみたい。
そう、指揮官が死んでしまったら、全て終わりです。
もしくは、専門業者に頼んで復旧できる場合もあります。
ただ、何十万とかかる場合もあります。
タイムイズマネー ならぬ データイズマネー です。
そりゃ、相当な専門技術ですからね…高くて当たり前ですよね。
これが、僕がRAIDをあまり使いたくない理由です。
同じロットのHDDって恐ろしい。
RAIDでは、指揮官が生きていれば、倉庫のHDD-Bが燃えてしまっても、新しいBを入れてあげれば指揮官がAからBに再び複製してくれます。
非常に便利で、非常に素敵な機能です!
もちろん、それなりに時間がかかります。
特にNASのRAIDに入っているHDDは回転数が遅めなものが多いので、かなり時間がかかります。
その間、ずっと「データは生き返るだろうか…」と不安になるわけです。
そして…僕は過去に恐ろしい現象に出会っています。(RAIDではないですが…)
同じメーカー、同じロットのHDDが次々と死んでいく、地獄の事態…
だいたい1週間くらいの間に、3台(同時期に組んだ別々のマシンのメインのHDD)が死亡…
この時はW社。
その後も、別メーカーでも同じ現象に何度か遭遇しました。
S社の2TBには何度泣かされたことか…
そう…
壊れるロットは、ほぼ同じタイミングで壊れるという恐怖…
一般に売られているNAS-RAIDに入っているHDDは同じメーカー・同じ型番、そしてほぼ同じロットのものが利用されています。
もしもそれが、「怪しいロット」だとしたら?
何より怖いのは、どのロットが使用されているか、購入者は確認することができないわけです…
回り道をしましたが、言いたい事はこれ↓です。
指揮官が生きていたとしても、HDD-Bが燃えたとしたら、HDD-Aが燃える可能性は非常に高いのです。
そして、それが復旧中に燃えたとしたら…
そうなると、専門業者でもお手上げの炎上です。
全てのデータが灰となって消えるわけです。
RAIDまとめ
僕は、RAIDの技術そのものを否定しているわけではありません。
RAIDそのものはとても便利です。
ちゃんと使える方であればどんどん使うべきですし、実際世の中のサーバーってRAIDをがっちり使ってます。
けれど、こういった危険性をしらない人達や知らせたくない人たちの「便利だ」という言葉を鵜呑みにするのは危険だと考えます。
カメラ雑誌などでも著名な方々が「RAIDを使うべき!RAIDで完璧バックアップ!」だなんて言ってますが、失ったことがない人の戯言です。
失ってからでは、遅いのです。ほんとに。
じゃあ、どうすればよいのか?
どうしても使いたくてRAIDを使っていて、異常を感じたら、お金をいとわず専門家に投げてください。
一番大切なのは、データです。データから引き起こされる想い出です。
RAIDを販売しているメーカーでさえ、異常があったら専門家という手段を推奨しています。
もしくは、RAIDを使わない、というのも選択肢の一つです。
大切なものほど、自分の手に余る技術は使わない方が良いと、僕は考えています。
おまけ
今までに、NAS-RAID障害に、二度直面しました。
一つは、障害復旧中にエラーとなり完全死亡。
(自称「コンピュータが得意」な人が対処して死亡。
3日間くらい待った後の完全死亡でした。僕は傍観者してました。)
もう一つは、
HDD+コントローラの死亡で専門家
⇒ウン十万の見積もりにあきらめる。
※知らない間に死亡していて、完全に手遅れで手が施せなかった。
また、直接携わっていない案件でいうと、
知り合いのプロカメラマンさんが「安全」という言葉に踊らされ、プライベートのNAS-RAIDが死亡。
子供が生まれてから数年間のデータが全て消えた。
他にもほぼ同様の話を数件。やはり、カメラマン界隈のお話。
導入した人の誰もが同じ事を言います。
「安全だと思った。壊れないんじゃなかったのか?」
人が作ったものだから、壊れて当然。
壊れても大丈夫なように、人が機械に合わせてあげなきゃいけないのです。
だから、僕は自分の手に負えないRAIDを使うことはしたくないのです。
RAIDについては、これくらいで。
次回は、バックアップ方法について案を少し書いてみたいと思います。
ほいじゃあの!
コメント