Ubuntu Weekly Recipe

第597回 UbuntuのルートファイルシステムをZFSにしてみる

この記事を読むのに必要な時間:およそ 13 分

Ubuntu 19.10ではデスクトップのインストール時にファイルシステムとしてZFSを選択できる機能が実験的に導入されました。そこで今回はそのZFSを実際に使ってみましょう。

なぜZFSをデスクトップに?

Ubuntu Weekly Topicsの2019年8月9日号でも紹介しているように,Ubuntu 19.10からインストール時に「デスクトップ」のルートファイルシステムとして,ZFS on LinuxのZFSを選択できるようになりました※1⁠。これはあくまで実験的な機能であり,ZFS特有の機能がすぐに活用できる状態になるわけでもありませんし,環境や使い方によっては不安定になる可能性もあります。将来の可能性に向けたお試し機能であることを十分に理解しておいてください。

※1
「zFS」ではなく「ZFS」です。z/OS File Systemではありません。念のため。また本記事において「ZFS」の機能・仕組みはZFS on Linuxの実装に基づいて説明します。

ZFSそのものはUbuntu 15.10の頃から利用可能でした。その後,19.10に向けて次の対応が行われます。

  • GRUBからZFSなルートファイルシステムを簡単に選択できるようにする※2
  • LinuxカーネルのパッケージにZFSのカーネルモジュールを同梱する※3
  • インストーラー(Ubiquity)でZFSなルートファイルシステムを作成できるようにする

これらの対応により,デスクトップ環境において「インストール直後のルートファイルシステム」としてZFSを指定できるようになったのです。

※2
GRUBのZFSサポート自体は8年前のGRUB 1.99の時点で導入されています。その後,少しずつさまざまな機能をサポートしていったようです。
※3
ちなみにZFSのカーネルモジュールは,Linuxカーネルのバイナリパッケージをビルドする際にサードパーティモジュールのDKMSパッケージをダウンロードし,DKMSを実行して同梱しています。思わず「いいのかそれで」と言いたくなる対応です。ちなみにNVIDIAのグラフィックスドライバーとVirtualBox用のドライバーもこの方式でカーネルパッケージに取り込まれています。また,Ubuntu 18.04 LTSのカーネルパッケージにもこの仕組みが取り込まれました。

UbuntuとZFSの関係やライセンスに関する話は,現在発売中のSoftware Design 2019年12月号に掲載されている「Ubuntu Monthly Report」『⁠⁠115】Ubuntu 19.10とZFS』にて,あわしろいくや氏がいろいろと言及していますので,そちらを参照してください。

ZFSは非常にメモリを使うファイルシステムです。ZFS on LinuxのFAQにもHardware Requirementsとして,⁠ECCの利用を強く推奨」⁠最良のパフォーマンスを得るためには8GB以上のメモリを。2GB以下でもきちんと動きはするが,重複削除(dedup)機能を使うより多くのメモリが必要になる」とあります。

最近ではPC用途でも8GB以上のメモリは一般的になったものの,ECC付きとなるとまだワークステーションやサーバークラスのマシンになってしまいます。ましてや,ZFSの強みはファイルシステムとしてRAIDやスクラビングによる故障検知,そして障害発生時のホットスワップなど,⁠複数のストレージデバイス」が前提になっている機能が大半です。

よってデスクトップやノートPCで「ZFS」と言われても,一般的なユーザー※4には機能の使い道がなく,オーバーキル気味な印象を受けます。とは言えスナップショット・リストアや暗号化など個人でも使いやすい機能もたくさん存在するため,今後Ubuntuとしてどういうユースケースを提案していくのか楽しみです※5⁠。

※4
この記事では1台のクライアントマシンに1台(HDD or SSD or eMMC)ないし2台(HDD and SSD and eMMC)な内蔵ストレージデバイスを繋いでいるユーザーを「一般的なユーザー」と定義しています。それ以外の人はアブノーマルです。
※5
「RHELがLVM+XFS,openSUSEがbtrfsを推しているので,UbuntuはZFSだ!」とかそういう短絡的な発想ではないはずです。たぶん。サーバー用途ではMAASでの利用をはじめとして周辺ツールを用意すれば十分に有用なので,ZFSそのものを推すこと自体は理解できます。

とにもかくにも食わず嫌いは良くありません。今回は実際にZFSを使っていろいろ試してみることにします。あらかじめ仮想マシンか何かに,Ubuntu 19.10をZFSでインストールしておいてください※6⁠。

※6
本記事では4GBのメモリと20GBのQCOW2ディスクで作成したKVMによる仮想マシンインスタンス上にインストールして動作確認しました。もちろんVirtualBoxなどでも問題なく使えるはずです。

図1 インストーラーで「実験的機能」を選択する勇気

画像

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。