ファイルサーバの再構築

自宅のファイルサーバで docker を動かしたくなってしまったので、いろいろ再構築しました。過去の記事が役に立ちました。

http://blog.maedee.net/entry/2015/09/27/135933

なんでルートファイルシステムまで zfs にしちゃうかな?、4 年前の自分。ブートしなくなった場合、 zfsカーネルモジュールがロードされる Live イメージから起動しないと、何が起きたかわからないとか、怖い。主な作業としては以下の 2 つです。

  1. init から systemd へ移行
  2. docker と zfs が動くようカーネルを再構築

1. はねぇ、カーネルはすでに systemd に対応しているので、ユーザランドだけ「移行」しようと試みましたが、あきらめました。いろいろ依存関係がめんどくさくて、ちょっとパッケージ消して再起動したら起動してこなくなる事象が発生したので。zfs をルートファイルシステムに使っているためか、ブートローダが systemd をうまく呼び出せていないからか、原因の切り分けが面倒になってきたので、 zfs をやめて普通に再インストールしました。そもそも、 systemd 自体が UNIX のコンセプトに反するもののように(略。というわけで、久しぶりにハンドブックを読みながらの作業でした。

Gentoo AMD64 Handbook
https://wiki.gentoo.org/wiki/Handbook:AMD64

もう、ハンドブックがすばらしくて、日本語でも懇切丁寧で、サクサクとインストールできちゃいましたよ。さらに言うとね、どこでも動くバイナリが容易に手に入るこのご時世に、なんで自分はこんなに時間のかかるディストリビューションを選んでいるのか、いろいろ思うところもありました。時間はかかりますが、「わかりやすい」ディストリビューションだと思います、 Gentoo は。理解度が上がる、という意味で、わかりやすいです。ハンドブックと異なるのは、 systemd のユーザランドを持っている stage3 のイメージを使ったくらいかな。なので、忘れちゃいけないのは、ブートローダの設定で systemd を指定すること。

このページの後ろの方に記載があります。

GRUB2 Quick Start
https://wiki.gentoo.org/wiki/GRUB2_Quick_Start

2. についても、 Wiki ページがあるので、かなり楽ができます。

Docker
https://wiki.gentoo.org/wiki/Docker

ZFS
https://wiki.gentoo.org/wiki/ZFS

なんというか、 Linuxカーネル再構築って、設定がものすごくわかりにくいよね。make menuconfig って、とっつきやすいように見えて、 GUI 特有の再現性のなさ、みたいなところがあってもどかしいです。昔、FreeBSD で生活していた頃はコメント付きの設定ファイルを編集して、 make してエラーがなければ OK でした。そのぶん、依存関係のあるような設定で詰まったりしないから、そこは良いところだと思います。と、もどかしいながらも上記のドキュメント通りにカーネルを作って、必要なパッケージを入れると zfs のプールも認識されますし、 docker も動くようになります。

というわけで、 docker は簡単なテストが通りました。俺たちの戦いはこれからだ!