zfs - 持ってけ ubuntu 16.04 仮想マシン


前回の投稿 が思いのほか評判良かったのでこさえました。

Filename ubuntu-zfs-xenial-20170211.ova
Size 1,821,399,040B (1.7GiB)
md5 b06206e04369d37abe5bc930f381aa83
sha1 8f0c471ca8846a2e8ec752a189c2bf94b3dd8247

OneDrive改め埃かぶってたVPSに置いときます。ご自由にお召し上がり下さい。

なにこれ?

何の Ubuntu 16.04 Desktop の仮想マシンです。100% ZFSな点を除いて。

FreeBSDでは10.0-RELEASE以降インストーラーもZFS対応済みなので Pure ZFS なシステムを作るのも実にちょろいのですが、Linuxはまだそこまで行ってません。Ubuntu 16.04 Root on ZFSというドキュメントは上がってますが、これを見た人は「なんて面倒なんだ!」と猫またぎするのではないでしょうか。Ubiquityの超絶安楽インストーラーに慣れた人ならなおのこと。

しかし一旦こしらえてしまえば、あとはいつもと変わりません。デフォルトのext4で構築されたシステムと全く同じように apt できますし、同じように 16.10 にも dist-upgrade できました。

召し上がり方

ovaファイルをVirtualBoxなりVMWare (Player|Fusion)なりにimportしてご賞味下さい。

  • Username: ubuntu
  • Password: zfs

があらかじめ用意されています。英語デスクトップですが、日本語環境もmozcをインストール済みです。ZFS抜きにUbuntuの教材として使えます。

もちろん実際に利用するにあたっては、アカウントを作成の上、初期ユーザーubuntuはdisableするなりdeleteするなりした方がよいでしょう。ただしZFSなので、アカウントを作成する前に

$ sudo zfs create rpool/home/youraccount

しておくと幸せになれるかもです。

RAM 4GB、vdisk 16GB、2 coreで作成していますが、2GBでも動きますし1 coreでも大丈夫です。仮想マシンですしこのあたりはいろいろいじって見て下さい。ZFSに対する一番の懸念は何と言っても「計算資源特にメモリー食い過ぎるのでは?」なのですが、今日日の基準からすれば大したことないのです。と私が言うより、各自確認していただく方がよいでしょう。実際のところ、lz4圧縮がデフォルトでかかっていることもあって、ext4なxenialより省資源ですらあります。

VirtualBox

仮想マシンの作成は VirtualBox 5.1.4 で行いました(それもVMWare Fusion上のFreeBSD 11.0-RELEASE上で)。なので設定とかは特にいじらなくてもimportするだけでそのまま問題なく動くはずです。

  • guest additions インストール済みです。後述のとおり open-vm-tools も入っているので、sudo apt purge open-vm-toolsしてもよいでしょう。

VMWare {Player,Workstation,Fusion}

以下で警告が出ますがそのままお召し上がりいただけます。

  • import時にOVF Specification違反とか。そのまま"retry"で。
  • 仮想マシンのアップグレードを促されたら素直にしたがって
  • 時計がずれていたら、設定の"Synchronize time"にチェックを入れて。仮想マシン起動後の方がいいかも。
  • open-vm-tools インストール済み。前述のとおり VirtualBox guest additions も入っているので、以下の要領で削除してもよいでしょう。
$ cd /opt/VirtualBoxAdditions-5.1.14
$ sudo ./uninstall.sh

工場出荷時に戻すには

わしゃ工場か:-)

それはさておき、「工場出荷時」の状態を@0thとしてsnapshotしてあるので、以下のようにして元どおりにできます。

$ sudo -i
# swapoff -a # to release /dev/zvol
# for d in `zfs list -t snapshot -r -Hp -o name rpool | grep @0th`; do zfs rollback -rRf "$d"; done
# reboot

未使用ブロックを0書き込みするには

VirtualBox

$ sudo -i
# cd /shrink
# dd if=/dev/zero of=/shrink/zero.img bs=1M; rm /shrink/zero.img

VMWare Fusion

$ sudo vmware-toolbox-cmd disk shrink /shrink

デフォルトでcompression=lz4となっているので、普通に0を書き込んでもダメです。そのためにcompression=offrpool/shrinkというデータセットを用意してあるのでそれを使って下さい。

演習問題

  • これを使って起動可能なUSBメモリーを作ってみる
  • (仮想環境の機能を使わず)起動ヴォリュームのフルバックアップ/リストアしてみる
  • 仮想ディスクが16GBしかないが(これでも dist-upgrade 余裕でできる程度には大きいし、初期状態では3GBを切ってるけど)、これを大きくしてみる

最後に

enjoy!

Dan the Unofficial ZFS Evangelist