2010-01-02

1PBのストレージを組むには

注)この記事には新たに書かれたものがあります。
1PBのストレージを組むには (2013年版)



以前ブログで、「10TBのストレージを組むには」、「100TBのストレージを組むには」と、大容量ストレージを組む場合どのような方法があるかを取り上げてきました。
まぁストレージマニアの自分が組んでみたい構成を取り上げてるだけなんですが。。

前回の記事から1年少々、そろそろ次を考えてみようなぁと思っていた所にこんなブログを見つけました。(HPC界では有名な方ですよね)
弊社の名前もチラッと出ていましたし、「例えば 1PB 程度のストレージ はどの程度のコストで組むことができるのでしょうか?」という事を書かれていましたので、丁度良いと機会と思いコチラも考えてみることにしました。

1PBのストレージは実現出来るのか?


とは言っても構成を考えるだけなら、今は難しいことは無くなってきました。何故ならエクスパンダのエンクロージャで拡張していけば良いだけの話なので。でも難しい所は他に有る(後述)のです。

では実際の構成はどのようにしていったらいいのでしょうか。
ここでは「1台のPCで動作させるのは非現実的」とか「ホントに動くのか?」とかは別として、純粋に技術的に可能なのか?という点だけで話を進めていきます。(妄想全開)


1PB=1000TBとした場合、単純に計算すると(2009年12月現在で最大容量の)2TBのハードディスクを使用すると1000TB/2TB=500台のハードディスクが必要ということになります。

 弊社のSAS Expanderエンクロージャ「NS-330S-8020」を使った場合を想定すると、16発入るエンクロージャなので、500/16=31.25。つまり最低32台のエンクロージャが必要だということになります。

1枚のカードでは実現出来ない

RAIDカードはArecaのARC-1680ix-16を使用します。1枚のカードあたり128台のハードディスクを認識出来るので、エンクロージャの数にすると8台分。となると8(HDD)×4(カード)=32(エンクロージャ)となり4枚のRAIDカードが必要だということになります。

 ArecaのRAIDカードは複数枚挿しが可能なカードですので、1台のPCに4枚のRAIDカードを乗せることにします。


RAIDの構成は?
1枚のRAIDカードに8台のエンクロージャが接続される形になりますので、下図の様な構成になります。これを4セット作るわけですね。


1セットでRAIDを構築しますが、128台のハードディスクの内127台でRAID6を組みます。
これで2TBのハードディスクで組めば(理論上)250TBになりますので、4セットで合計1000TBですね。
(1セット内の残り1ディスクについてはホットスペア設定。まぁRAID6メンバーに加えてもいいんですが)
この1セットを合わせて4セット構築し1台のPCに4セット分のRAIDカード、4枚をインストールします。
ここで問題になってくるのがPCI-Express(x8)のRAIDカードを4枚装着出来るPCを探すことですが、Supermicoあたりのマザーボードを探せばそれほど難しくなく見つけることが出来ます。
Asusにもワークステーションボードがありますが、RAIDカードとの相性や信頼性を考えるとSupermicroの方が無難な気はしますね。値段もこのクラス(PCI-Expressスロットが複数)になるとSupermicroもAsusさほど変わらないと思いますし。
という訳でマザーボードはこの辺を選んでおけば良いと思います。電源やらケースやらが気になるならシャーシセットのモデルがSupermicroから出ているのでそっちを選んでも良いかも知れませんね。

ちなみにサーバ側に必要な空きスロットパネルは最低8つ必要です。RAIDカードと外部ポートに変換するブラケット「ML-miniSAS-Quad」がそれぞれ1つづつ使って2スロット、それを4セット付けるので8スロット。
VGAがオンボードで付いていれば別途空きスロットは要りませんが、NICを付けるとなると更に1スロット必要です。(オンボードはGbEが関の山なのでこの際10GbEのNICでも付ければ良いんじゃないでしょうか)

問題はそんなところにある訳では無く....

上に紹介したブログでも書かれているように、問題はストレージ自体というよりは他に有るわけです。
例えば電源をどうするのか。32台のエンクロージャを賄う電力をどうやって確保するのか?物理的にも3Uのラックマウントストレージを32台入れる為には24Uのラック4本か42Uのラック3本が必要です。それにディスクフルのエンクロージャが入る訳ですから床の耐荷重も検討しなければなりません。
また500台ものハードディスクを管理するのは、結構大変です(と思う)。HDDのトラブル時はアラートをメールで飛ばすことは出来ますが交換作業をするのは人間です。ここまでの台数になると本当はもっとホットスペアを付けたかったりするのですが・・・。
また、そもそも「1台のPCで1000TBのストレージを作るなんで狂ってる!」という話もあるかも知れません。まぁそこは最初に述べたように純粋に技術的に可能かどうかという点から書いているので、それは置いておきます。
複数台のホストPCにそれぞれ1枚づつRAIDカードを取り付けて8台のエンクロージャをコントロールすればリスク分散になるかも知れませんが、それだと本来の「1PBのストレージを作る」という題目から離れてしまうので却下です(笑

もう一つ懸念すべき点はファイルシステムです。1PBものアレイを1発で切れるファイルシステムが実はそれほど多くないのです。
まずWindowsではNTFSですが、今のところ実装上は256TBまでになっているようですので1PBを一つのファイルシステムとしては扱うことが出来ません。
Linuxですと様々なファイルシステムが扱えるのですが、まず標準的なファイルシステムであるext2/ext3でも1PBは無理です。ext4では1EBまでいけるらしいのでこれは大丈夫でしょう。
他ですとXFSが8EBまでOKですがファイルシステムのサイズにより必要とするメモリが増大するらしいので、ちょっと選択には注意が必要かも知れません。
Sunが開発したZFSやAppleのHFS+は16EBまでOKです。(が、Appleのマシンでは拡張スロットが足りなくなるので無理ですね)

コストは幾らかかるのか?

そんなわけで構成は決まったのでコストは一体幾らかかるのか計算してみましょう。(価格は税抜)

  • エンクロージャ NS-330S-8020 ×32台 1056万円
  • ハードディスク 2TB ×512台 921万6000円
  • RAIDカード ARC-1680ix-16 ×4枚 52万円
  • ケーブル ML-miniSAS-1M ×32本 24万9600円
  • 外部変換ブラケット ML-miniSAS-Quad 5万2000円
  • ラックマウントレールキット ×32セット 25万6000円
  • ホストPC 1台 40万円
  合計 2125万3600円

ホストPCの値段は適当です。ざっくり計算してみましたが大体このくらいで出来るんじゃないでしょうか。但し10GbEのNICを付けるとプラス10万ですね。
(上記価格はあくまでも定価ベースなので実際はこの限りではありませんです・・・)
勿論最大のコストであるハードディスクの単価が下がることによって、この合計金額は大きく変わってきます。

とまぁ年末年始の休みにフラッと書いてみましたが、如何でしたでしょうか。
もうTBの単位が常識になってきている今、ペタバイトまで見えてきた訳ですね。ま、数年前はテラバイトってすごいねーとか言っていたので、数年後には割と当たり前の時代になってるんでしょうね。

1 件のコメント:

批評家 さんのコメント...

現行実装で言えばLinuxのext4は16TBまでなのでXFS一択