オンライン・デフラグやリサイズも
次世代ファイルシステム「Btrfs」はSSD最適化にも注力
2009/10/23
Linux向けの次世代ファイルシステムとして注目されている「Btrfs」(バター・エフエス)。東京・秋葉原で開催中のThe Linux Symposium 2009で10月23日、Btrfsプロジェクトの創始者で開発をリードするクリス・メイソン氏が、Btrfsで実現する機能や現状について紹介した。
Btrfsは2007年にオラクルが発表した新しいファイルシステムだ。2009年1月にカーネルに取り込まれていて、すでにディスク上のフォーマットはフィックスされていることから、アーリアダプター層などには「すでに十分に使えるレベル」(メイソン氏)になっているという。Btrfsはオラクルが開発していると思われがちだが、IBMやインテルからもコードの貢献があり、例えば次期バージョンに含まれるRAID 5/6/60にはインテルが取り組んでいるという。また、SSDへの最適化も進めており、マウント時に非回転デバイスを認識すると自動的にSSDとしてマウントする。今後SSDの重要性が増すことが見込まれるため、Btrfsでもチューニングに注力していくという。
Btrfsは、主流のext3/ext4など既存ファイルシステムとの互換性はない(ext3/4からのコンバートは可能)。Btrfsは、名称の元になっているB-Tree構造を採用する点でReiserFSに似ていると言われる。すべてのメタデータを1つのB-Treeに収めるため探索が速いことが特徴という。特に一定時間内に行われた変更に高速にアクセス可能で、バックアップ時の効率が良いという。
コピー・オン・ライトによる軽量なスナップショット作成、チェックサム機能、複数デバイスを1つのストレージプールとして扱い、ディスク上のオブジェクト単位でストライピングやミラーリングで分散させることができる機能など、Btrfsはサン・マイクロシステムズのZFSと同世代のモダンなファイルシステムだ。ただ、メイソン氏によればBtrfsとZFSとは根本的に実装が異なり、機能的にも、例えば使用中のデバイスをストレージシステムから取り除くような機能はBtrfsにしかないという違いがあるという。
これまでLinuxでもLVM(Logical Volume Manager)を使えばコピー・オン・ライトによるスナップショット作成は可能だったが、実装の違いにより、例えば400MBのファイルを20回連続して作成するケースではLVMで558秒かかるところ、Btrfsでは1.6秒で済む例があるという。ファイルのクローンも同様に軽量なため、仮想マシンのイメージやデータベースファイルのクローンを、フルスナップショットを作成することなく作れるのもメリットだという。
オンラインのデフラグで起動高速化も
Btrfsではディスク上のデータ配置変更が容易なため、オンラインでボリュームのリサイズやデバイスの除去、デフラグが可能という特徴がある。メイソン氏はミラーリングのデモンストレーションで、一方のデータを破壊してそれをオンラインのまま簡単に修復できる様子や、4GBのボリュームを900MBに縮めてから再び元のサイズに戻すデモンストレーションをシステムを停止することなく行ってみせた。
オンラインのデフラグが可能であることの応用を示すデモンストレーションとしてメイソン氏は、Moblinの起動シーケンストレースパッチを使ってファイルを再配置。OS起動時のI/Oを最適化する様子を、直感的なアニメーションを用いて説明した。
起動時に発生するファイルの読み出しでは、フラグメンテーションがあるために、頻繁にヘッドのシークが発生する。以下の動画では、まず最初に理想的なシーケンシャルなブロック読み出しの様子、次に完全に断片化した通常の状態を説明している。3つ目の流れ星がときどき流れるようなアニメーションが、Btrfsを使ってデフラグした場合のディスクアクセスの様子を示していて、ときどき連続読み出しが起こっている様が見て取れる。
これによってカーネルの初期化とGNOMEの起動、Firefoxの起動までに要する時間が12秒から6秒に短縮。平均のデータ転送レートが5.53MB/秒から12.37MB/秒に改善されたという。「まだ改善の余地はあるが、デフラグは効果がある」(メイソン氏)
関連記事
情報をお寄せください:
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
キャリアアップ
- - PR -
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
トランプ氏圧勝で気になる「TikTok禁止法」の行方
米大統領選で共和党のトランプ前大統領が勝利した。これにより、TikTokの米国での将来は...
インバウンド消費を左右する在日中国人の影響力
アライドアーキテクツは、独自に構築した在日中国人コミュニティーを対象に、在日中国人...
SEOは総合格闘技である――「SEOおたく」が語る普遍のマインド
SEOの最新情報を発信する「SEOおたく」の中の人として知られる著者が、SEO担当者が持つべ...