検索
特集

FUSE経由でZFSを使うLinux Hacks(2/3 ページ)

LinuxカーネルではサポートされていないZFSだが、ZFS_on_FUSEを使えばLinuxでも用いることができる。読み取りを多く行う用途であれば、FUSE経由でZFSを使用することによる速度的なマイナスはない。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
SourceForge.JP Magazine

性能

 性能はVMWareサーバの仮想マシン内で試してみた。新規の仮想ディスクを作成して、ディスク内の8Gバイトの領域をあらかじめ割り当てた。仮想化を使用することがベンチマーク全体に対して影響を与えると考えられるが、FUSE経由でZFSを実行した場合に期待できる性能は、仮想マシン内でのZFSと仮想マシン内でのカーネル内ファイルシステムとの性能比からある程度の予測ができるはずだ。カーネル内のLinuxファイルシステムとしては、今回使用したBonnie++ベンチマークのような大規模ファイルについての性能が高いXFSを使用した。

 ZFSの設計は、ほとんどのLinuxファイルシステムとやや異なっている。ZFSでは、1つ以上のパーティーションがある状態でまずはZFSの「プール」を作成し、その後プールの中に必要な数のファイルシステムを作成する。今回はベンチマーク用として、8Gバイトの仮想ディスク上の単一のパーティーション内に単一のプールを作成し、そのプールの中に2つのZFSファイルシステムを作成した。一方XFSのベンチマークのためには、ZFSが使用していたパーティーションのZFSのデータをすべて消去した後、そのパーティーション上に直接XFSファイルシステムを作成した。

 以下にZFSファイルシステムの作成とベンチマークの様子を示す。まず始めにfdiskを使ってディスク全体を占めるパーティーション1つを新規に作成した。その後「zpool create」コマンドを使って新規のプールを作成し、前記で作成したパーティーションにそのプールを割り当てた。「-n」オプションをつければ、実際にはプールを作成せずにコマンドの結果をシミュレーションする。分かりやすくするためにその結果も以下に示した。その後zfsコマンドを使ってtank/testfsというZFSファイルシステムを作成すると、以下のように普通のdfコマンドを使って/tank/testfsとしてLinuxカーネルからアクセス可能な新しいファイルシステムができる。それからBonnieベンチマークを実行した。なおベンチマークは、初回の実行ゆえの何らかの悪影響を受けていない数値を得るために何度か実行した。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 以下に、XFSファイルシステム上でBonnieベンチマークを実行した様子を示す。やはりベンチマークは複数回実行した。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ベンチマーク結果から分かるように、FUSE経由でZFSを使った場合、出力操作についてはXFSの30〜60%の性能しか得られないようだ。一方、キャラクタ入力とブロック入力についてのテストでは、FUSEが行うキャッシュの効果によってzfs-fuseの性能の方がXFSよりも顕著に優れていた。つまり実用上の観点から言えば、書き込みよりも読み取りを多く行うファイルシステムの場合には、FUSE経由でZFSを使用することによる速度的なマイナスはないということだ。またzfs-fuseでの書き込み操作の性能がカーネル内ファイルシステムと比べたときに劣るとは言っても、システムが使用に耐えないというほどではない。ただし例のごとく、期待通りの性能を得られるかどうかについては、各自の使用目的についてのベンチマークを行って確かめるべきだろう。

Copyright © 2010 OSDN Corporation, All Rights Reserved.

ページトップに戻る