CentOSがポリシーを変更して、RHELのクローンではなくてRHELとFedoraの中間になるそうなので、そろそろFedoraの更新を追いかけるのがつらくなってきたやつを入れ替えてみた。
とりあえず必要なものだけrsyncで別のマシンにバックアップ。
公式からインストールイメージを落としてきてインストール。
何も考えずネットインストール用のイメージを選択したんだが、失敗だったかもしれない。
インストールソースの設定で躓いた。
何故か選択肢にあるRedhatCDNは当然ながらRedhatとの契約が必要で使えない。
あとはURLの手入力するしかないようで、Mirrorリストを見ながら種別を"http"にして"ftp.jaist.ac.jp/pub/Linux/CentOS/8-stream/"とか入れてみても何故かエラー。
最終的にはBugTrackerの情報を頼りに種別を"mirrorlist"にしたうえで"mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=BaseOS"を入れたらうまくいった。
Fedoraはbtrfs押しだけど、CentOSはXFS押しのようなので、パーティションからやり直した。
RedhatはXFSの上にかぶせるStraitsとかいうのをZFS対抗で推進していたはずなんだが、CentOSのドキュメントには影も形もない。
代わりにVDOとかいうのがあって、これはブロックデバイスのレイヤーでシンプロヴィジョニング/重複排除/オンライン圧縮を担当するみたい。
ただ、インストール時には設定できないみたいなので、とりあえず領域だけ開けておく。
再起動後、Dockerをインストール。
公式のドキュメントだとCentOSならyumを使えとなっているが、CentOSも8はDNFへ移行済みなので、Fedora向けの記述を頼りにインストール。
$ sudo dnf -y install dnf-plugins-core
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io
ここでDocker RootとしてVDOで重複排除の有効になった領域を使用すべく設定。
$ sudo vdo create --name=vdovolume --device=/dev/sda5 --vdoLogicalSize=1TB
$ sudo mkfs.xfs /dev/mapper/vdovolume
既存のDockerRootの内容を移動したうえで、fstabに以下を追加。
x-systemdで始まるのはsystemd用のオプションだが、これがないとvdoサービスが立ち上がる前にマウントしようとしてエラーを吐くっぽい。
/dev/mapper/vdovolume /var/lib/docker xfs defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
後はバックアップを戻せば完了。