📥

Root on ZFSしてたらaptでエラー出た件

2021/11/25に公開

おはこんばんにちわ

今回もまっとうに生きてたらハマらないような問題にハマってます

私の作業OSはLinux Mintなのですがちょっと前のバージョンからインストール時にZFSで構築出来るようになったのでZFSにして使うようにしています

元々の目的はZFSだとファイルに圧縮かかるので容量逼迫した時にバックアップで圧縮とかしなくて済むしそれでもディスク足りなくなったらプールにディスク足すだけでいいし便利だなって目的だったので多少のCPU負荷位はいいかなと選択したのですがある日aptするとこんなエラーが出てるのに気づきました

Requesting to save current system state
ERROR couldn't save system state: Minimum free space to take a snapshot and preserve ZFS performance is 20%.
Free space on pool "bpool" is 19%.
Please remove some states manually to free up space.

容量足らんから失敗したみたいな事言うてる。。。?

気になったので容量を確認

$ df -h /
Filesystem                                        Size  Used Avail Use% Mounted on
rpool/ROOT/ubuntu_opzg67                           79G  6.5G   73G   9% /

あれ?79G?いくら容量ケチってたとはいえこんな少なく割り当てたつもりはないぞ。。。。

ということでZFSで確認

$ zfs list -o space rpool
NAME  AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
rpool 71.8G   170G        0B     96K             0B       170G

なんか170G使ってるとかいうとるな。。。。

そんなに使ってるはずは無いんだが。。。。

実は前からaptする時に毎回スナップショットがどうのこうのGRUBがどうのこうのってメッセージ出てたのが気になってはいたんだよなぁ。。。。

多分あいつやろなぁ。。。

というわけで今まで目を背けていたスナップショットを確認

$ zfs list -t snapshot
~略~

はい、めっちゃ出ましたスナップショット600個位🤣

ちょっとこれは1個ずつ確認は辛いのでこいつ誰が作ってんのかってのを調べてみたらこの記事がヒット

https://didrocks.fr/2020/06/09/zfs-focus-on-ubuntu-20.04-lts-zsys-for-system-administrators/

「System state saves on apt changes」とか言う所を翻訳して読んでたらなんかaptで状態変更掛かる前にスナップショット取って起動時にGRUBメニューから変更前の状態で起動しなおせるようにしてるみたいな事が書かれてました

正直私の環境はVMなので大幅な変更前はVMの機能でスナップショット取って戻せるようにしてるからこの機能いらない。。。

直接実行してたらこの機能ありがたかったんだけど。。。

というわけで古いスナップショットを一気に削除する方法を探ってみた所

https://github.com/ubuntu/zsys/issues/204

なんかこのエラー出た時の対処方どうするかで議論になっとる。。。
そして決定的なこれだって解決方法が無い。。。。

とりあえずzsysdが作った履歴を確認

$ zsysctl show
~略~
- rpool/USERDATA/dev_jxki8i@autozsys_rqjfjn (2021-11-24 16:13:05)
~略~

あーなんかautozsys_ってついてるスナップショットが自動で作成されたやつやなって事がわかったのでもういいやってなってこんな感じで消しちゃいました

$ zfs list -t snapshot | grep autozsys | awk '{print $1}' | xargs -n1 sudo zfs destroy

zsysctlで1個ずつ消すみたいなのが確実みたいだけど一通りzfs list見直した所これで行けそうだったのでやっちゃいました

で結果は

$ df -h /
Filesystem                Size  Used Avail Use% Mounted on
rpool/ROOT/ubuntu_opzg67  146G  6.5G  140G   5% /
$ zfs list -o space rpool
NAME   AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
rpool   139G   103G        0B     96K             0B       103G
$ sudo du / -hs 2> /dev/null
78G     /

70G位増えた🤣

ちなみに25G位まだ足りてないからなんでだろって思ったので再度スナップショットを見てみたらコンテナ系のスナップショット取ってる分だったので問題なかったです(てか忘れてる時点で不要だな。。。こいつらも消して良い気がしてきたな。。。)

というわけで何も考えずに新しいもの導入したせいで勝手に嵌ってる私の為の備忘録でした

しゃみしゃっきり〜

P.S.

最近仕事が忙しくなってきたけど古いのをメンテする仕事ばかりなので新しい技術に触れる機会が減るだけでどんどん世間と乖離していってる気がする

PG35歳定年説とかって多分こういうのが原因なんだろうなぁ。。。。

25位から働き始めたとして10年も古い技術のメンテしかして無かったらそら10年後に入ってきた新入社員の方が最新の動向も知ってて新しい技術も常識も持ってるよね

パスワード付きzipメールで送ってパスワードは電話で〜が常識な世代とか会社に禁止されて文句ぶつぶつ言うてたりするしな。。。

その会社の独自文化的な知識以外もう陳腐化した知識しか持ってない状態になると定年するというより肩身が狭くなって追い出されるっていうのが近い気がするなぁ

まぁいくら技術力が凄くてもその独自文化に馴染めなかったら地獄だけど。。。
これは技術というよりただの適正だし別の会社いけばいいやね

中小企業だと即追い出されるんだろうけどこれが大企業になると強力な労働組合に守られてるから沈殿物みたいにそういう人たちが溜まっていく悪循環が発生するんだろうなぁ

Discussion