ファイルサーバでは信頼性が最も重要です。この課題をクリアした後に、容量と速度が追求されます。さて弊社では高い信頼性を、高品質なハードウェアの採用とRAID10 + スペアディスク構成により達成しました。そして、現在の構成ではRAID10を採用していても2TBを越える物理ボリュームを容易に作成できます。また、kernel2.6からはOSレベルでも2TB以上のボリュームがサポートされるようになりました。ようやくOver 2TBの大容量ボリュームの実用化の条件が整ってきたようです。さらに、お客様からのOver 2TBに関するお問い合わせも増えてきました。そこで、Over 2TBの実用性を確認するために調査を行いました。
最初に調査の結果をお伝えすると、「現実的な観点からはOver 2TBは時期尚早」という判断になりました。
・ 現在は2TB以下のボリュームでの運用が現実的
・ 2TB単位のボリュームを複数持ち、これらの有効かつ便利な利用方法の開発にリソースを費やすほうが価値がある
・ デファクトスタンダードとして実績のあるext3を離れ、XFSに鞍替えする積極的な理由は見出せなかった
なお、テスト過程でNFS version 4がversion 3と比べて性能を上げていることが確認できました。Gigabit Ethernet接続のNFSファイル転送の実効性能でWrite 64MB/s、Read 85MB/sというものです。これは良い性能です。(このNFSの速さにはlocalのファイル転送速度の速さWrite196MB/s、Read 211MB/sも貢献しています。)
・ NFS version 4は性能が出ており、この採用はお勧め
Over 2TBの状況に関して調査し、以下のようなことが判りました。
・ kernel2.6からOver 2TBがサポートされた
・ Over 2TBに対応している主なLinux用ファイルシステムはext2/3 (1.39以降)、XFS、JFS、ReiserFSなど
・ ext2/3はLinuxのファイルシステムとしてはデファクトスタンダード的
・
XFSはSGIが開発してIrixでの利用実績があり、Linuxにも移植されている
・ JFSはLinuxへのポーティングが最も新しく、経験の蓄積や運用実績が最も少ない
・ XFSは大容量ボリュームの利用を想定して設計され、大きなファイルや多数のファイルの扱いに優れる
・ ReiserFSは以前はSuSEが正式採用していたが撤退し、現在はext3をデフォルトにしている
・ Over 2TBではXFSが主流となると予想されている
・ ext3のデファクトスタンダードとして蓄積した基盤も深い
テストに用いるサーバには9TB (500GB x18)のRAIDボリュームを作成しました。ところがfdiskコマンドは2TBのパーティション作成が上限となっていて、そのままでは2TB以上のパーティションを作成することができません。2TB以上のパーティションを作成するため、パーティショニングツールのpartedコマンドを使用しました。
ext3でOver 2TBのファイルシステムを作成するには、RHEL4/Cent4ではe2fsprogsをバージョン1.39にアップデートする必要あります。SRPMやRPMは用意されていないので、Webサイトからソースコードをダウンロードしてセットアップし、Over 2TBのファイルシステム作成に成功しました。
RHEL4/Cent4の標準kernelはXFSに対応していません。CentOSplusにkernelを入れかえてXFS対応kernelにし、XFSのツールをインストールすることでXFSを利用することができるようにし、Over 2TBのファイルシステム作成に成功しました。
ext3、XFSともにOver 2TBのサーバをFTPサーバとして、WindowsXP Home (x86)、CentOS3.8 (x86)、CentOS4.4 (x86-64)の各OSをFTPクライアントとしてアクセスを試みました。
・ どの組み合わせでもFTPでのファイルのアップロード、ダウンロードは可能だった
ext3、XFSともにOver 2TBのサーバをNFSサーバとして、CentOS3.8 (x86)、CentOS4.4 (x86-64)の各OSをNFSクライアントとしてマウントを試みました。
・ XFSの8.2TBボリュームではCentOS4.4 (x86-64)はNFSマウントできた
・ XFSの8.2TBボリュームではCentOS3.8 (x86)はNFSマウントできなかった
・ ext3の2.3TBボリュームではCentOS4.4 (x86-64)はNFSマウントできた
・ ext3の2.3TBボリュームではCentOS3.8 (x86)もNFSマウントできた
・ CentOS3.8 (NFSv3)が原因か、x86の制限か不明だが、恐らく8TBあたりでNFSクライアントの制限がある
・ CentOS3.8よりも古いOS (例えばRH8、SuSE7.xなど) ではNFSクライアントのどこかに制限があると推測
もう少し工夫すればこれらの課題はクリアできるのかもしれません。しかし、Over 2TBはデフォルトで問題なく動作している状態にはなっておらず、一般的な普及にはまだ程遠い印象でした。これは利用者数が少ないことを意味しており、もし実際に運用すると未解決の課題に遭遇する可能性が高そうで、Over 2TBの採用にはリスクがあります。また、RHEL3 CentOS (x86)は現役のサーバとして運用されていることが多く、ここでの接続の問題もあります。
このNFSテストの結果から、Over 2TBは技術的には可能だとしても、実運用となると厳しいものがあり、現段階では調査に留めるのが妥当だと判断しました。
しかし他方で、ハードウェア的には大容量RAIDボリュームの実装は実用的になっています。そこで、2TBの制約下で、この大容量RAIDボリュームの有効な利用法の探索が課題として残ります。弊社としてはこれを積極的に探ってゆきたいと考えています。
ext3、xfs、NFS version3、NFS version4の各組み合わせでの性能測定を行いました。その結果を以下に掲載します。
・ ext3とxfsでは性能に大差ない
・ NFSではversion3とversion4との間で大きな性能差があり、NFS version 4の使用を推奨
| 接続 | ファイルシステム | 読み/書き | 転送速度 (MB/sec) |
| local | ext3 | W | 196 |
| R | 211 | ||
| xfs | W | 208 | |
| R | 215 | ||
| NFSv3 | ext3 | W | 53 |
| R | 70 | ||
| xfs | W | 54 | |
| R | 75 | ||
| NFSv4 | ext3 | W | 64 |
| R | 85 | ||
| xfs | W | 62 | |
| R | 87 |
xfsをテストで操作した感想を述べると、I/O性能ではext3と大きな差はつきませんでした。ただ、xfsでは最初の巨大なファイルシステムの作成が瞬時に終わったり、巨大なファイルの削除が瞬間的に終わることが目を引きました。しかし、ファイルシステムの作成は最初だけのことで、しかもユーザには直接関係のない仕事です。巨大なファイルの削除も、保守は多少楽になる程度で、ユーザのメリットはあまりありません。(ext3では、これらの操作に分単位の時間がかかります。しかし、その間のI/O要求は処理されます。)
問題はxfsがデファクトスタンダードではないということです。オープンソースの世界では利用者数の多さが品質に直結します。ext3はRedHatの標準であり、SuSEでも標準に返り咲いています。特殊で重大な障害が起こったとき、利用者数が多ければ、過去に誰かが遭遇した可能性が高く、その対応を調べることができます。ところが利用者数が少ないと、その対応を調べても何も出てこない可能性が高いです。この差が、デファクトスタンダードの強さの本質です。
もし、xfsを利用開始するならば、RedHatとSuSEの標準に採用され、さらに少し間を置いてから利用開始しても遅くはなさそうです。現段階で利用開始する積極的な理由はなさそうでした。
弊社はファイルサーバの用途では保守的なスタンスからext3の利用を推奨しています。しかし、HPC分野で広く利用されているスクラッチファイル用のファイルシステムとしてはxfsはext3よりも優れているとのご指摘をお客様より頂きました。そこで、弊社でも追試を行ったところ、明らかな性能向上が確認できました。xfsはスクラッチファイル用のファイルシステムとしては優れています。
● テスト環境 ファイルサーバ側
Platform: DPe860+DPm1000 2台
CPU: Xeon 3040 1.86GHz/2MBcache/1066MHz 1cpu2core
Memory: DDR2-667 2GB (1024MBx2)
RAID Card: PERC/5E
Ssystem Disk: SATA 250GBx2(WD2500JS-75NCB3 7200rpm) H/W RAID1
RAID: SATA 500GB x18 (ST2500630NS 7200rpm) H/W RAID0
Network: Gigabit Ethernet
※ ext3/XFSともにファイルシステムのパラメータはデフォルト値をそのまま使用
● テスト環境 クライアント側
Platform: DPr690
CPU: Xeon5060 3GHz/4MBcache/1333MHz 2cpu4core
Memory: DDR2-667 FB-DIMM 8GB(1024MBx8)
Network: Gigabit Ethernet
OS: CentOS4.4など
この文章を作成してから約一年後の2008年7月になり、弊社としてもOver 2TBのファイルサーバの製造を開始しました。