ファイルサーバのOSをmanjaroに移行する2 (サーバ設定移行編)
前回の記事の続き。
サーバのOSを入れ直しに伴いバックアップと再設定をした。
全体の流れ
- 旧サーバの移行準備
- ZFSのエクスポート★
- 設定ファイルのバックアップ★
- 新サーバのセットアップ
- Manjaroのインストール
- 設定★
- ZFSのインポート
- fstabの再設定
- sambaの再設定
★:今回の記事で取り扱うところ
Manjaroのインストールについては前回の記事を参照。
旧サーバの移行準備
zfsのエクスポート
zfsのディレクトリはSambaで利用されていたため、念の為sambaを止めてからエクスポートした。
$ sudo systemctl stop smb
$ sudo zpool export tank
設定ファイルのバックアップ
今回はディスクの構成やsambaの設定はそのまま移行するつもりだったので、以下の2ファイルをコピーした
- /etc/fstab
- /etc/samba/smb.conf
Manjaroのインストール
省略
新サーバの設定
GUIの無効化
ランレベルやsystemd ターゲットについて、説明すると長くなるうえにそもそも理解しきれてないので、ざっくり結論だけ、
最近のLinuxはどう起動するかをsystemdというもので管理していて、このsystemdにおいて、いわゆるGUIでの起動はgraphical.target、CUI(CLI)での起動はmulti-user.targetという割当になっている。
今回の場合、systemdのデフォルトの起動方式をgraphical.targetからmulti-user.targetに変更することで、起動時にGUIが起動しなくなる。
具体的なコマンドは以下。
$ systemctl set-default multi-user.target
ZFSの再設定
ZFSのインストール(Manjaro)
先に以下のコマンドでカーネルを確認しておく
$ mhwd-kernel -li
Currently running: 4.19.66-1-MANJARO (linux419)
The following kernels are installed in your system:
* linux419
zfsをインストールしようとすると以下のようにカーネルごとに選択肢が出てくる。
$ sudo pacman -S zfs
:: 7 個の選択肢が zfs にはあります:
:: リポジトリ extra
1) linux316-zfs 2) linux414-zfs 3) linux419-zfs 4) linux44-zfs 5) linux49-zfs 6) linux51-zfs 7) linux52-zfs
数字を入力してください (デフォルト=1): 3
今回であれば3(linux419-zfs)を選択する。
もしくはdkms(Dynamic Kernel Module Support)という、カーネルに合わせてくれる(らしい)パッケージもある
$ sudo pacman -S zfs-dkms
で、実際に自分がどうしたかという(片方ずつ確認するのが面倒で)両方入れたままにしている。
特にエラーなど出てないので様子見。
あとは自動マウントなどのデーモンを有効化しておく
$sudo systemctl enable zfs.target
$sudo systemctl enable zfs-import-cache
$sudo systemctl enable zfs-mount
$sudo systemctl enable zfs-import.target
ZFSインポート
エクスポートしたディスクがついた状態で、以下のコマンドを実行
$ sudo zpool -import tank
特に問題なくインポートできた。
はじめにパッケージのインストールが必要ではあるが、それを差し引いても
UUIDとか確認しなくて良い分他のファイルシステムと比べかなり楽な印象
fstab、SAMBAの再設定
そもそもZFSを使う以前からの構成としては、nvmeの起動ディスクとは別にHDDに共有用のホームディレクトリ的なものを/mnt/hdd/
にマウントし、それをsambaで共有していた
その際sambaで公開していたディレクトリが/srv/samba
で、ここに/mnt/hdd/
をバインドしていた。
HDDのファイルシステムをZfsに移行した際もデータの置き場は/tank/home
になったが公開のディレクトリ自体はそのまま/srv/samba
で、同様に/tank/home
をバインドして運用していた。
sambaについて
設定ファイルをそのまま移行しただけなので特筆することがなかった。
ZFSとftsabについて
旧サーバのfstabの行をそのまま移したら何故かzfsがうまくマウントできなくなった。
改めて調べたところzfsをfstabでバインドマウントする場合、zfsがマウントするよりも先にfstabがマウントをしようとしてしまいエラーになることがあるらしい。
旧サーバではたまたまzfsのマウントが先になっていたが、原因は不明。
fstabのマウントをZFSよりあとにするにはfstabのオプションにx-systemd.requires=zfs-mount.service
を足せばいいらしい。
具体的にはfstabの末尾に以下の行を足した
/tank/home /srv/samba none bind,defaults,nofail,x-systemd.requires=zfs-mount.service 0 0
これで問題は解決した。