無題の備忘録

IT技術について調べたことや学んだこと、試したこと記録するブログです。Erlang、ネットワーク、 セキュリティ、Linux関係のものが多いです。

次世代なファイルシステム ZFS on Linux を学ぶ1 - 概要編

ZFS on Linuxとは

もともとSolaris上で実装されていた128bitファイルシステムとのことで、そのファイルシステムを、Linux上に実装したものがZFS on Linuxのようです。 ただし、ライセンスの制限があるためいくつか制限があるらしい。 いままでのファイルシステムよりも大容量のデータをシンプルに管理できるというのがメリットですかね。 その代償として、メモリをたくさん食うらしいです。 以下、適当にZFSの特徴を箇条書きします。

ZFS on Linuxの特徴

  • 128bitファイルのシステム。大容量のデータを格納できる。
  • シンプルなコマンドで、zfsとzpoolだけ覚えれば良い。
    • zfsコマンド
    • zpoolコマンド
      • 物理ディスクからストレージプールを作成
      • ディスクの冗長構成を設定
      • データ整合のチェック
  • ストレージプールという概念を用いることで、ディスクを一元管理する
  • オンラインのままディスクの増設できる
  • 設計時にパーティション構成やファイルサイズを決める必要がない
  • RAID構成によるデータ冗長化は次の形式をサポートしている
  • スナップショットである時点のファイルシステムを保存できる

トランザクションファイルシステム採用

  • データの書き込みは上書きされずに、別のファイルに書き込まれる(コピーオンライト)
  • トランザクションが途中で失敗した場合は、無視され、以前のファイルに復元できる
  • ただし、ディスクへの書き込みが非同期なので、タイミングによってはディスク容量などで差がでる。
  • duコマンドやdfコマンドによって報告されるZFSディスク領域の消費量については注意が必要。

チェックサムとデータ自己修復

  • End-to-Endのチェックサムによる信頼性の高いデータ保護
  • データとチェックサムを異なるブロックに保存することで、チェックサム自身の信頼性が向上している
  • データの読み書き時は、チェックサムによって不正データが検出される
  • 不正データが検出された場合、冗長構成であれば、複製データから自動的にデータを修復する