このシリーズのパート1で説明したように、Stratisは、ZFSやBtrfsと同様の機能を備えたボリューム管理ファイルシステム(VMF)です。 Stratisの設計では、既存のソリューションの開発者が行った選択を調査しました。
既存のソリューションを採用してみませんか?
理由はさまざまです。まず、ZFSについて考えてみましょう。元々はSunMicrosystemsfor Solaris(現在はOracleが所有)によって開発されましたが、ZFSはLinuxに移植されました。ただし、そのCDDLライセンスのコードをGPLライセンスのLinuxソースツリーにマージすることはできません。 CDDLとGPLv2が本当に互換性がないかどうかは議論の対象ですが、不確実性は、エンタープライズLinuxベンダーがそれを採用してサポートすることを望まないようにするのに十分です。
Btrfsも確立されており、ライセンスの問題はありません。何年もの間、それは多くのユーザーにとって「選ばれたもの」でしたが、安定性と機能の点で必要な場所にまだ到達していません。
そのため、現状を改善したいという願望と既存のオプションに対する欲求不満に支えられて、Stratisが考案されました。
Stratisの違い
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
ZFSとBtrfsが明確に示していることの1つは、VMFをカーネル内ファイルシステムとして作成するには、バグを解決して安定させるために多大な作業と時間がかかることです。貴重なデータに関しては、正しく理解することが不可欠です。ゼロから始めて、Stratisで同じアプローチをとるには、おそらく10年かかるでしょうが、これは受け入れられませんでした。
代わりに、StratisはLinuxカーネルの他の既存の機能の一部を使用することを選択しました。デバイスマッパーサブシステム。これは、ブロックデバイス上にRAID、シンプロビジョニング、およびその他の機能を提供するためにLVMによって最も顕著に使用されます。十分にテストされた高性能のXFSファイルシステム。 Stratisは、既存のテクノロジーのレイヤーを使用してプールを構築し、ユーザーにシームレスな全体として表示されるようにそれらを管理することを目標としています。
StratisがZFSから学んだこと
多くのユーザーにとって、ZFSは次世代のファイルシステムがどうあるべきかについての期待を設定します。 ZFSについて話している人々からのコメントをオンラインで読むことは、Stratisの初期開発目標を設定するのに役立ちました。 ZFSの設計では、避けるべきことも暗黙のうちに強調されています。たとえば、ZFSでは、別のシステムで作成されたプールを接続するときに「インポート」手順が必要です。これにはいくつかの理由があり、それぞれの理由は、同じアプローチまたは異なるアプローチを採用することによって、Stratisが解決しなければならなかった問題である可能性があります。
ZFSについて私たちが気に入らなかったことの1つは、特にプールが冗長性のために構成されている場合、新しいハードドライブの追加または既存のドライブのより大きなドライブへの置き換えにいくつかの制限があることです。もちろん、これには理由がありますが、改善できる分野だと思いました。
最後に、コマンドラインでZFSのツールを使用することは、一度習得すれば、良い経験になります。 Stratisのコマンドラインツールでも同じように感じたいと思っていました。また、位置パラメータを使用し、各コマンドに必要な入力の量を制限するツールの傾向も気に入りました。
StratisがBtrfsから学んだこと
Btrfsについて私たちが気に入った点の1つは、位置サブコマンドを備えた単一のコマンドラインツールでした。また、Btrfsは冗長性(Btrfsプロファイル)をプールのプロパティとして扱います。これは、ZFSのアプローチよりも理解しやすく、ドライブを追加したり、削除したりすることもできます。
最後に、スナップショットの実装や送受信のサポートなど、ZFSとBtrfsの両方が提供する機能を確認することで、Stratisに含める必要のある機能を決定するのに役立ちました。
StratisがLVMから学んだこと
Stratisの初期の設計段階から、LVMを広範囲に研究しました。 LVMは現在、Linuxデバイスマッパー(DM)サブシステムの最も重要なユーザーです。実際、DMはLVMコアチームによって維持されています。実際に使用する可能性から両方を検討しました StratisのレイヤーとしてのLVMと、StratisがピアとしてLVMを使用して直接実行できるDMの使用例。 Stratisのディスク上のメタデータ形式を定義する際のインスピレーションを得るために、LVMのディスク上のメタデータ形式(およびZFSとXFS)を調べました。
リストされたプロジェクトの中で、LVMは両方ともDMを使用しているため、Stratisと内部で最も共通しています。ただし、使用法の観点から、LVMはその内部動作についてはるかに透過的です。これにより、エキスパートユーザーは、Stratisが行わない方法でボリュームグループ(プール)レイアウトを正確に構成するための多くの制御とオプションを利用できます。
多様なソリューション
自由ソフトウェアとオープンソースに取り組むことの素晴らしい点の1つは、かけがえのないコンポーネントがないことです。現在のソフトウェアがユーザーのニーズを満たしていない場合は、カーネルも含め、すべての部分が表示、変更、さらには置換のために開かれています。両方を並行して維持するのに十分なサポートがある場合、新しいプロジェクトは既存のプロジェクトを終了する必要はありません。
Stratisは、一部との出会いを深める試みです。 ローカルストレージ管理に対するユーザーのニーズ—手間がかからず、使いやすく、強力なソリューションを探しているユーザー。これは、すべてのユーザーにとって適切ではない可能性のある設計上の選択を行うことを意味します。ユーザーには他の選択肢があるため、選択肢によって難しい選択が可能になります。最終的には、すべてのユーザーが自分に最適なツールを使用できるというメリットがあります。