1台に100台のマシン(それぞれ2TBのハードドライブを搭載)があり、すべてがネットワークに接続されているとします。
この結合された200TBのディスクスペースを1つのフォルダーに統合する方法(Linuxの場合)はありますか?ネットワーク内のすべてのマシン間でNFSを使用して共有できますか?
このルートを進むと、すべてのマシンが同じフォルダーに対して読み取り/書き込みを行うことができるようになり、このようにして、I/Oがマシン間で均等に分散されます。数百のTBのデータを格納するために大きなファイルシステムが必要な場合、これは良い考えですか?(注:データはそれぞれサイズが約500GBの多数の小さなファイルに分割されます)。
それを実現する既製のソリューション(できればオープンソースのソリューション)はありますか?
頭に浮かぶ2つのオプションは、 GlusterFS と Hadoop HDFS です。
IBMの [〜#〜] gpfs [〜#〜] これを行うことができます(注:オープンソースではありません)。
GPFSを使用すると、任意のタイプのブロック・ストレージ(ローカル、またはiSCSIまたはFCを介して提示されるものなど)で構成されるネットワーク共有ディスク(NSD)を作成できます。 100台のサーバーにまたがる各2TBハードドライブにまたがるNSDで構成されるGPFSファイルシステム(デバイス)を作成することは完全に可能です。
クレイジーなマーケティングの数字をすべて思い出すつもりはありませんが、GPFSは、非常に大量のデータと信じられないほど高い並列I/Oをサポートするため、「トップ500」リストのスーパーコンピューターで最も人気のあるクラスター化ファイルシステムの1つです。 ウィキペディア いくつかの数字があります。
GPFSは、ファイルシステム全体でデータおよびメタデータブロックを複製できます。 「障害グループ」を定義するNSDを作成するときは、GPFSがブロックレプリカを別の場所に書き込むようにします(つまり、ブロックの両方のコピーを同じ障害グループに入れないようにします)。 「ストレージプール」の概念を使用してストレージを階層化することもできます。これにより、先週アクセスしたファイルが私のFusion IOまたはSSDドライブでライブになりますが、その後ブロックをより安価なストレージに移動します。
クラスタ内のすべてのノードは、ファイルシステム全体が各ノードに対してローカルであるため、マウントしてアクセスできるデバイス(/ dev/gpfs0など)にアクセスできます。あなたはNFSについて言及しました。ただし、このモデルでは、データのコンシューマー/クライアントとして機能する100ノード・クラスター外のシステムがあり、それらをGPFSクライアント/ NSDサーバーにしたくない場合を除いて、追加のプロトコルを導入する必要はありません( GPFSカーネルモジュール)。ただし、NFSを介してGPFSファイルシステムを簡単にエクスポートでき、必要に応じてClustered-NFS(CNFS)を活用することもできます。
私はまだそれで遊ぶ機会がなかったので、完全なレビューをすることはできませんが、Openstackクラウドのものを見てください-> http://www.openstack.org/projects/storage /
おそらく [〜#〜] pvfs [〜#〜] のようなものが必要です。
ウィキペディアには 全リスト があります。
Cephは別のものですが、まだ製品の準備はできていません。 http://ceph.newdream.net/wiki/Main_Page