CentOS Streamインストール

CentOSがポリシーを変更して、RHELのクローンではなくてRHELFedoraの中間になるそうなので、そろそろ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

後はバックアップを戻せば完了。