さくらインターネット研究所の大井です。
今回は商用の分散ファイルシステムであるParaScale Cloud Storage(以下ParaScaleと省略)を試してみたいと思います。ParaScaleはParaScale社が開発している有償のソフトウェアですが、公式サイトで無料の試用版を配布しているので、これを使って導入過程や調査した結果について書いていきたいと思います。
今回は「概要編」として、具体的な構築作業を行う前に、ParaScaleの特徴についてまとめてみました。
1. ParaScaleとは
まずはParaScaleについての概要です。
- アメリカにあるParaScale社が開発している商用のストレージソフトウェア
- 有償のソフトウェアパッケージ(具体的な価格はWebサイト上には明記されておらず、メールなどによる問い合わせが必要なようです)
- 提供しているのはCentOSおよびRedHat ELで動作するソフトウェアのパッケージのみ
- ハードウェアは一般的なIAサーバから自由に選択できる
- Webインタフェースにより、容易にシステム全体の集中管理が行える
- SOAPを利用したAPIが提供され、ユーザが独自に作成したコントロールパネルなどに組み込みやすい
- ストレージノード間のデータの移動や複製が自動的に行われるため、システム規模の拡大や縮小、障害ノードの排除や代替などの作業が容易
- 単一障害点がなく、各機能のサーバを多重化でき、障害ノードの切り離しも自動的に行われる
このように、規模の拡張や統合管理機能といったハードウェア一体型のベンダー製ファイルサーバが持つ一般的な特徴を持ちながら、提供されるのはソフトウェアのみであるため、ユーザ側にハードウェア選択の自由がある(ベンダーロックオンされない)のが大きな利点です。そのため、ParaScaleが動作する程度のスペックを持つIAサーバが大量にあり、それらのハードウェアに障害が発生した場合は自前で対応している当社においてはコスト的に大きなメリットがあると考えられます。
2. ParaScaleのシステム構成
ParaScaleのシステム構成について説明します。
2-1. サーバ構成
ParaScaleでは
- クライアントからの接続の待ちうけやストレージの管理を行うコントロールノード
- 実際のデータを格納するブロックデバイスを持つストレージノード
の2種類のサーバで構成されています。どちらのサーバになるかは、ParaScaleインストール時のパッケージ選択により決定されます。コントロールノード1台とストレージノード3台を使用した場合の構成例を以下に示します。
なお、コントロールノードのCPU/メモリ/ディスクは
- 4コアを搭載した2.3GHz動作のCPU 1個以上
- 8GB以上の物理メモリ
- メタデータ用として500GB以上の空きディスク容量
を、ストレージノードでは
- 4コアを搭載した1.86GHz動作のCPU 1個以上
- 4GB以上の物理メモリ
- システムがサポートする最大限のディスク
のハードウェアを要求しますが、実際にはこれよりも低いスペックで動作します。ただし、各ノードごとに均質なスペックである事が推奨され、特に32ビットOSと64ビットOSの混在環境での動作は保証していないので注意が必要です。
2-2. クライアントからみたParaScale
ParaScaleでは、ストレージノードの持つ実際のディスクをひとつのディスクとして統合し、そこから任意の容量の仮想的なディスクを作成します。ここで作成された仮想ディスクが、クライアントがアクセスする際に見えるディスクとなります。
この仮想ディスクは、
- NFSサーバ
- FTPサーバ
- WebDAVサーバ
- HTTPサーバ(読み込みのみ)
としてクライアントへ公開することができます。
2-3. 必要なネットワーク環境
ParaScaleでは次のようなIPアドレスを設定する必要があります。
- 外部ネットワーク
ParaScaleに接続するクライアントが接続可能なネットワーク。通常はグローバルIPアドレスが付与される。 - 内部ネットワーク
ParaScaleの各ノードが接続し、管理や相互のデータの通信に使うネットワーク。通常はParaScaleのノードのみで構成されたプライベートネットワークが使用される。 - ParaScaleの仮想IPアドレス
ParaScaleに接続するクライアントの接続先となる代表窓口で、実際にはコントロールノードが受け持つ。接続後は各ストレージノードに割り当てられている仮想IPアドレスに接続がリダイレクトされ、負荷が分散される。 - ストレージ用仮想IPアドレス
ストレージノードに対して割り当てられる仮想IPアドレス。コントロールノードが状況に応じて割り当てを行い、あるノードのダウン時に他のノードへ一時的に移動するなどの制御を行うことで、クライアントからは障害を意識することなくストレージノードとの通信が行える。
また、外部ネットワーク、内部ネットワークそれぞれの物理的なネットワークを構成するため、それぞれのノードでは2つのギガビット以上のネットワークインタフェースを持つ必要があります。
以下の構成例では、
- 外部ネットワーク用IPアドレス: 192.168.10.11~192.168.10.14
- 内部ネットワーク用IPアドレス: 192.168.11.1~192.168.11.4
- ParaScaleの仮想IPアドレス: 192.168.10.10
- 仮想IPアドレス: 192.168.10.20~192.168.10.22
を割り当てた場合の例です。
ストレージ用仮想IPアドレスは、状況に応じてコントロールノードが動的にストレージノードに割り当てるIPアドレスです。クライアントからはこの仮想IPアドレスに対して接続しますが、メンテナンスや障害などでストレージノードの一部がダウンしてもParaScaleに継続して接続ができるようになります。
この機能については、検証時の記事で詳しく触れたいと思います。
3. まとめと今後の予定
このように、ParaScaleでは標準的なハードウェアやフリーなOSで動作する事が大きな特徴であり、コストの大幅な削減が期待できる製品です。次回は実際にインストール手順を説明して行きたいと思います。
[…] This post was mentioned on Twitter by 横田真俊, 鷲北 賢. 鷲北 賢 said: さくらインターネット研究所ブログ ParaScaleを試す(概要編) http://research.sakura.ad.jp/2010/05/24/parascale-overview/ […]
パフォーマンスはどの程度でるのでしょうか?