« APN Architecture of the Year 2014のご報告 | メイン | [ESP for AWS] Disaster Recovery Orchestrator (Symantec: 株式会社シマンテック) »

レッドハット社技術投稿 - Red Hat Gluster Storage編

こんにちは、AWS Partner SA松本です。今回はクラウドアーキテクチャに非常にマッチする水平スケール型ストレージ・ソリューションであるRed Hat Gluster StorageについてRed Hat社の平さんに解説頂きます。大作です!

-------

皆さん、こんにちは!
Red HatのPartner SA(Partner Solutions Architect: PSA) 平です。
Global OEM PartnerとしてAWSを担当しております。
 
今回はRed Hatが提供するSoftware-Defined StorageであるRed Hat Gluster Storageをご紹介します。
※2015年3月1日付けで「Red Hat Storage Server」改め「Red Hat Gluster Storage」に名称変更しました。
 
□AWS上でNASを使おう!
Software-Defined Storageは物理サーバー、仮想サーバー、クラウドインスタンスで動きます。動作プラットフォームや、設置場所の制約を受けにくいのが最大の魅力です。
今までストレージに搭載されていたファームウェアと呼ばれるものは多くの場合でLinuxが採用されています。従来、ストレージ筐体とファームウェアが別売りで自分で組み合わせられるようになったのがSoftware-Defined Storageだとお考えください。
 
01.multi_az


AWS上で動かすことでクラウド環境から使えるNAS(ネットワーク接続ストレージ)として利用できます。そうすることでNFSやCIFS経由でデータ領域を必要とする従来型のアプリケーションを改修なしでAWS上へ展開することができます。マルチAZノードを配置することにより冗長性も担保できます。また、AWS Direct Connectや、Amazon VPCで接続された環境においては、オンプレミスのRed Hat Gluster StorageとAWS上のRed Hat Gluster Storageを同一のストレージプールとして一元管理することもできます。
 
02.software_stack

 
現在、最新のRed Hat Gluster Storage 3.0は、ベースOSにRHEL6、分散ストレージソフトウェアとしてGlusterFS 3.6を採用しており、その他、NFSv4プロトコルを使えるようにするため NFSサーバーのGanesha、Hadoop Pluginなどが含まれています。ご存じの方もいるかと思いますが、Red Hat は2011年にGluster, Inc.を買収しています。GlusterFSを従来から開発していたエンジニアによって引き続き開発が行われています。Red Hatへ買収後はLinuxのファイルシステム関連のエンジニアを開発チームに投入し、ストレージソフトウェアとしての信頼性が格段に向上しました。
 
□Red Hat Gluster Storageの機能と特徴
オープンソースの分散ストレージソフトウェア「GlusterFS」をベースとしています。GlusterFSは複数台のサーバー上のストレージリソースを1つの大きな仮想ストレージリソースとして見せることができる分散ストレージソフトウェアです。
GlusterFSはLinux上でユーザーランドのデーモン(glusterd, glusterfsd, glustershd)として動作し、最大192ノード、最大19PBの容量をサポートします。Red Hat Gluster Storageは、そのGlusterFSをベースに長期サポートと、GlusterFS本体および関連ソフトウェアに対するQAテストを与えて品質を強化した商用サポート版です。もちろん年間無制限回数のテクニカルサポートも得ることができます。
 
03.multi_protocol
GlusterFS単体では、Gluster Native ProtocolとNFSv3プロトコルが使えます。そこにGaneshaというプログラムを介することによりNFSv4プロトコル、Sambaというプログラムが介することによりCIFSプロトコルが使えるようになっています。同じストレージリソースをさまざまなプロトコルからアクセスすることを可能にします。Apacheやvsftpdと組み合わせるとHTTP/HTTPS、FTPプロトコルで使うことも可能です。
 
また、Hadoopに代表とされるデータ分析基盤の共有ストレージとしてのペタバイトクラスの採用も増えています。Red Hat Gluster Storageは汎用OSがベースですので、 Red Hat Gluster Storageで分析アプリケーションを直接動かすこともできます。分析サーバー兼ストレージとして使うことができます。
 
□GlusterFSのハッシュの仕組み
GlusterFSでは、ストレージリソースの最小管理単位はブリックと呼ばれており、指定したディレクトリがブリックとして管理されます。また、ディレクトリごとにハッシュ関数が用意されています。ファイル名をハッシュ関数に通して、その結果を事前に決められたハッシュレンジに対応するブリック上にファイルを格納します。
※以前の実装では「ディレクトリ名+ファイル名」をハッシュ関数に入れていました。
 
04.dht
 
そうすることで、ファイル数が多数ある環境においては各ブリックにおおよそ均等にファイルが格納されるという仕組みです。これをDHT(Distributed Hash Table)と呼んでいます。GlusterFSの基本形はDHTによるファイル分散の上に成り立っており、レプリカボリュームなどはその派生系です。ボリューム内のディレクトリごとにハッシュテーブルが用意されています。
たとえば、file1をボリューム内に保存した場合、ハッシュ関数の結果が123だった場合、ハッシュテーブルからハッシュレンジに当てはめて brick2 にファイルが格納されます。file2 のハッシュレンジが222だった場合、brick3にファイルが格納されます。
 
05.rhs_brick_find
 
Red Hat Storage のノードに直接ログインして、ブリックとなっているディレクトリでfindコマンドなどを実行することで、まるまる1個分のファイルを確認することができます。もちろん、分割や加工されることなく、ボリュームからアクセスした時と容量も内容も一緒のファイルです。
もし、万が一、複合要因による多重障害でボリュームが論理破壊されてしまった場合でも、直接ブリックからデータを救い出すことができます。
 
□GlusterFSのボリュームのタイプ
よく使われるボリュームタイプとして、分散ボリューム、分散レプリカボリュームがあります。ストライピングボリューム、 ストライピングレプリカボリュームは仕組み的にデータ欠損が起きる可能性が高いのでRed Hat Gluster Storageでは非サポートとしています。
しかもGlusterFSのストライピングはワークロードによっては期待通りに速くならないケースが多いので注意が必要です。キャッシュに乗らないような1個の巨大なファイルを複数のクライアントから同時にアクセスされる場合には有効ですが、ほとんどのユースケースにおいては、分散レプリカボリュームで十分要件を満たすことができます。
06.volume_type

 
また、Red Hat Storageは最低4ノード、最大192ノードで構成できます。例外的に2ノードでレプリカボリュームを構成することもできますが、その場合、データ保護の観点上、ブリックを持たない3ノード目を加えて頂くことをお薦めします。これは2ノードが連鎖で障害になった場合などにスプリットブレイン状態となり、ファイル単位で不整合が起きる可能性があります。(データロストではなく、2つのブリック上のどちらのファイルが正しいか分からなくなる状態)
なお、現在のバージョンでは、3つのブリックを使った3重レプリカ構成はサポートしておりませんのでご注意ください。
 
□AWS上での実現方法
Red Hat Gluster Storage for Public Cloudという製品があり、その製品をRed Hatもしくは認定ストレージパートナーから購入します。そして、BYOSを行うためにCloud AccessにてAWSへの持ち込み申請を行います。そうしてCloud Accessの事務手続きが終わると、AWS ConsoleからPrivate Imageとして見えるようになります。
 
07.rhs_private_images
 
インスタンスタイプは、PVタイプで m3.xlarge インスタンス以上で動かすことをお薦めしています。(HVMタイプのインスタンスの提供は現在未対応)
任意のインスタンスを4つ用意し、それらにEBSボリュームを8の倍数で付与します。EBSボリュームのサイズは問いませんが同じサイズで8の倍数で付与してください。エフェメラルディスクの利用はサポートしておりませんのでご注意ください。
また、ユーザーデータとEBSの帯域幅を分けるためにEBS Optimizedを利用されると性能向上が見込めます。あとは必要に応じて、EBSのIOPS保証、Provisioned IOPS (SSD)などもご検討されてみるとよいかもしれません。
 
□分散ストレージソフトウェアを安全に使うには?
複数台のサーバーが協調動作して1つのストレージを形成する分散ストレージという仕組みは、1台が故障したとしても全体がうまく動く必要があります。 この点に対してきちんとした技術サポートを提供できるかどうかが商用サポート付きGlusterFSであるRed Hat Gluster Storageの価値です。
Linuxは十分にコモディティ化されており、コミュニティ版ディストリビューションでも、最近では止まらない程度にそこそこ動きますが、すべてのオープンソースソフトウェアが同じ品質かというと、そんなに簡単なものではありません。
 
08.rhs_branch
 
Red Hat ではOS製品などと同じようにコミュニティ版GlusterFSからブランチさせて Red Hat Gluster Storage のエンタープライズブランチを作っています。開発版に報告されたバグ修正やセキュリティ修正をバックポートして、製品ライフサイクルの期間(現在のところ24カ月間)においてエンタープライズブランチに反映させています。
 
□Red Hat Gluster Storage Test Driveをすぐに試すには?
09.rhs_testdrive
 
Red Hat Gluster Storage Test Driveは、AWS上でRed Hatの提供するSoftware-Defined Storageをすぐに体感頂けるプログラムです。「テストドライブ」という名前の通り、ご購入前にAWS上で試乗体験することができます。
Red Hat Gluster Storage 4ノード分のEC2インスタンスと、クライアントとなるEC2インスタンスの合計5台、総容量400GBのAmazon EBSのストレージ領域が無償で用意されています。
 
事前にテストドライブ申請フォームからお申し込み頂き、Red Hat Gluster Storage Test Driveを運営されているクラスメソッド社から許可されるとテストドライブが開始できます。なお、テストドライブは開始から5時間のご評価頂くことができます。これらにかかる料金はお客様が負担する必要はありませんし、評価のためだけにAWSアカウントも必要ありません。
 
Red Hat Gluster Storage Test Driveのお申し込みは次のページから行えます。
 
最近では、AWS上にサーバー移行だけではなく、Amazon WorkSpacesによりデスクトップまで移行できる準備が整いました。そして、2015年は社内のファイルサーバー移行を検討される方も増えることでしょう。
今年は社内のファイルサーバーもAWS上への移行して、コストの最適化してみませんか?

----------------------

エコシステムソリューション部 部長
パートナーソリューションアーキテクト
松本 大樹

コメント

Featured Event

2017年9 月

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30