ZFSとは なぜ人々はそれに夢中ですか?

今日は、高度なファイルシステムであるZFSについて見ていきます。 それがどこから来たのか、それが何であるのか、そしてなぜそれが技術や企業の間でそれほど人気が​​あるのか​​を議論します。

私は米国出身ですが、涼しいのでZeeFSではなくZedFSと発音することを好みます。 あなたはそれを自由に発音できます。

注:この記事ではZFSが何度も繰り返されているのがわかります。 機能とインストールについて話すときは、OpenZFSについて話します。 OracleがOpenSolarisをシャットダウンしてから、ZFS(Oracleによって開発された)とOpenZFSは異なる道をたどりました。 (詳細は後で)

ZFSの歴史

Zファイルシステム(ZFS)は、2001年にMatthew AhrensとJeff Bonwickによって作成されました。ZFSは、Sun MicrosystemsのOpenSolaris用の次世代ファイルシステムとして設計されました。 2008年に、ZFSはFreeBSDに移植されました。 同じ年に、ZFSをLinuxに移植するプロジェクトが始まりました。 ただし、ZFSは、GNU General Public Licenseとは互換性がないCommon Development and Distribution Licenseの下でライセンスされているため、Linuxカーネルに含めることはできません。 この問題を回避するために、ほとんどのLinuxディストリビューションはZFSをインストールする方法を提供しています。

OracleがSun Microsystemsを買収して間もなく、OpenSolarisはクローズソースになりました。 ZFSの今後の開発もすべてクローズドソースになりました。 ZFSの開発者の多くは、この一連の出来事に不満を感じていました。 AhrensとBonwickを含むコアZFS開発者の3分の2は、この決定によりOracleを去りました。 彼らは他の企業に加わり、2013年9月にOpenZFSプロジェクトを作成しました。このプロジェクトはZFSのオープンソース開発を主導しました。

上記のライセンスの問題に戻りましょう。 OpenZFSプロジェクトはOracleとは別のものであるため、Linuxカーネルに含めることができるように、なぜライセンスをGPLと互換性のあるものに変更しないのかという疑問があるかもしれません。 OpenZFSのWebサイトによると、ライセンスを変更するには、現在のOpenZFS実装にコードを提供した人(OpenSolarisまでの最初の一般的なZFSコードを含む)に連絡して、ライセンスを変更する許可を得る必要があります。 この仕事はほぼ不可能なので(一部の貢献者は死んでいるか見つけるのが難しいかもしれないので)、彼らは彼らが持っているライセンスを保持することにしました。

ZFSとは その機能は何ですか?

前にも述べたように、ZFSは高度なファイルシステムです。 そのように、それはいくつかの興味深い機能を持っています。 といった:

  • プールストレージ
  • コピーオンライト
  • スナップショット
  • データの整合性検証と自動修復
  • RAID-Z
  • 最大16エクサバイトファイルサイズ
  • 最大256個の4兆Zettabytesストレージ

これらの機能をいくつか分解しましょう。

プールストレージ

ほとんどのファイルシステムとは異なり、ZFSはファイルシステムとボリュームマネージャの機能を兼ね備えています。 つまり、他のファイルシステムとは異なり、ZFSは一連のドライブまたはプールにまたがるファイルシステムを作成できます。 それだけでなく、別のドライブを追加することによってプールにストレージを追加できます。 ZFSは分割とフォーマットを処理します。

ZFSのプールストレージ

コピーオンライト

コピーオンライトは、もう1つの興味深い(そしてクールな)機能です。 ほとんどのファイルシステムでは、データが上書きされると永久に失われます。 ZFSでは、新しい情報は別のブロックに書き込まれます。 書き込みが完了すると、ファイルシステムのメタデータは新しい情報を指すように更新されます。 これにより、書き込みが行われている間にシステムがクラッシュした場合(または他の何かが発生した場合)、古いデータが保持されます。 また、システムクラッシュ後にシステムがfsckを実行する必要がないことも意味します。

スナップショット

コピーオンライトは、別のZFS機能、スナップショットにつながります。 ZFSはスナップショットを使ってファイルシステムの変更を追跡します。 スナップショットには元のバージョンのファイルシステムが含まれ、ライブファイルシステムにはスナップショットの作成以降に行われた変更がすべて含まれます。 追加のスペースは使用されません。 新しいデータがライブファイルシステムに書き込まれると、このデータを格納するために新しいブロックが割り当てられます。ファイルが削除されると、スナップショット参照も削除されます。 そのため、スナップショットは主にファイルへの変更を追跡するように設計されていますが、ファイルの追加や作成は追跡しません。

スナップショットを読み取り専用としてマウントして、ファイルの過去のバージョンを回復することができます。 ライブシステムを以前のスナップショットにロールバックすることも可能です。 スナップショット以降に行われたすべての変更は失われます。

データの整合性検証と自動修復

新しいデータがZFSに書き込まれるたびに、そのデータのチェックサムが作成されます。 そのデータが読み取られると、チェックサムが検証されます。 チェックサムが一致しない場合、ZFSはエラーが検出されたことを認識しています。 ZFSは自動的にエラーの修正を試みます。

RAID-Z

ZFSは、追加のソフトウェアやハードウェアを必要とせずにRAIDを処理できます。 当然のことながら、ZFSには独自のRAIDの実装、RAID-Zがあります。 RAID-Zは実際にはRAID-5の変形です。 ただし、「予期しない再起動後にデータとパリティ情報が矛盾する」というRAID-5ライトホールエラーを解消するように設計されています。 基本レベルのRAID-Z(RAID-Z1)を使用するには、少なくとも2台のディスクをストレージ用に、もう1台をパリティ用に使用する必要があります。 RAID-Z2では、パリティ用に少なくとも2台のストレージドライブと2台のドライブが必要でした。 RAID-Z3では、パリティ用に少なくとも2台のストレージドライブと3台のドライブが必要です。 ドライブをRAID-Zプールに追加するときは、2の倍数で追加する必要があります。

巨大なストレージの可能性

ZFSが作成されたとき、それはファイルシステムの最後の単語になるように設計されました。 当時ほとんどのファイルシステムが64ビットだった当時、ZFSの作成者たちは将来それを証明するために128ビットに急上昇することにしました。 これは、ZFSが「32または64ビットシステムの160億倍の容量を提供する」ことを意味します。 事実、Jeff Bonwick氏(作成者の一人)は、「128ビットのストレージプールを完全に実装するには、文字通り、海を沸かすよりも多くのエネルギーが必要だ」と述べた。

ZFSをインストールするにはどうすればいいですか?

ZFSをそのまま使用したい場合は、FreeBSDか、illumosカーネルを使用しているオペレーティングシステムのいずれかをインストールする必要があります。 illumosはOpenSolarisカーネルのフォークです。

実際、ZFSのサポートは、一部の経験豊富なLinuxユーザーがBSDを選ぶ主な理由の1つです。

LinuxでZFSを試したい場合は、ストレージファイルシステムとしてしか使用できません。 私の知る限りでは、Linuxのディストリビューションでは、箱から出してすぐにZFSをルートにインストールすることはできません。 Linux上でZFSを試すことに興味があるならば、Linux上のZFSプロジェクトにそれを行う方法に関する多数のチュートリアルがあります。

警告

この記事ではZFSの利点について説明しました。 それでは、ZFSの簡単な問題についてお話しましょう。 RAID-Zを使用すると、ストレージ容量を増やすために購入する必要があるドライブの数が多いため、高価になる可能性があります。

ZFSを使ったことがありますか? あなたの経験はどうでしたか? 以下のコメントでお知らせください。

この記事が面白いと感じた場合は、ソーシャルメディア、Hacker News、Redditで共有してください。

推奨されます

Ubuntu Phone:仕様、発売日および価格
2019
System76、UbuntuベースのミニPCを発表:Meerkat
2019
ナシOSは歴史だ!
2019