我正在以 root 身份运行带有 ZFS 的 Ubuntu,我的系统bpool
似乎快满了。
输出zpool list bpool
:
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
bpool 1.88G 1.69G 191M - - 60% 90% 1.00x ONLINE -
输出df -h /boot
:
Filesystem Size Used Avail Use% Mounted on
bpool/BOOT/ubuntu_s2c09x 367M 303M 64M 83% /boot
这导致无法完成内核更新的安装,例如运行sudo apt upgrade
:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
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 10%.
Please remove some states manually to free up space.
Setting up linux-firmware (1.197.5) ...
update-initramfs: Generating /boot/initrd.img-5.11.0-41-generic
I: The initramfs will attempt to resume from /dev/nvme0n1p2
I: (UUID=abdb40da-2d0b-4a45-b024-1c7245ea27ea)
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.11.0-41-generic with 1.
dpkg: error processing package linux-firmware (--configure):
installed linux-firmware package post-installation script subprocess returned error exit status 1
Setting up linux-image-5.11.0-34-generic (5.11.0-34.36) ...
Processing triggers for linux-image-5.11.0-34-generic (5.11.0-34.36) ...
/etc/kernel/postinst.d/dkms:
* dkms: running auto installation service for kernel 5.11.0-34-generic
Error! Your kernel headers for kernel 5.11.0-34-generic cannot be found.
Please install the linux-headers-5.11.0-34-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located
...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.11.0-34-generic
I: The initramfs will attempt to resume from /dev/nvme0n1p2
I: (UUID=abdb40da-2d0b-4a45-b024-1c7245ea27ea)
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.11.0-34-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: error processing package linux-image-5.11.0-34-generic (--configure):
installed linux-image-5.11.0-34-generic package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
linux-firmware
linux-image-5.11.0-34-generic
ZSys is adding automatic system snapshot to GRUB menu
我尝试销毁一些 bpool 快照,但zfs list -t snapshot | grep bpool
没有列出任何超过 100K 的快照。我还尝试删除一些内核,请参见输出dpkg -l linux-{image,headers}-"[0-9]*"
:
un linux-headers-3.0 <none> <none> (no description available)
un linux-headers-5.10.0-1045-oem <none> <none> (no description available)
un linux-headers-5.11.0-34-generic <none> <none> (no description available)
un linux-headers-5.11.0-35-generic <none> <none> (no description available)
un linux-headers-5.11.0-36-generic <none> <none> (no description available)
un linux-headers-5.11.0-37-generic <none> <none> (no description available)
un linux-headers-5.11.0-38-generic <none> <none> (no description available)
ii linux-headers-5.11.0-40 5.11.0-40.44 all Header files related to Linux kernel version 5.11.0
ii linux-headers-5.11.0-40-generic 5.11.0-40.44 amd64 Linux kernel headers for version 5.11.0 on 64 bit x86 SMP
ii linux-headers-5.11.0-41 5.11.0-41.45 all Header files related to Linux kernel version 5.11.0
ii linux-headers-5.11.0-41-generic 5.11.0-41.45 amd64 Linux kernel headers for version 5.11.0 on 64 bit x86 SMP
un linux-headers-686-pae <none> <none> (no description available)
ic linux-image-5.10.0-1045-oem 5.10.0-1045.47 amd64 Signed kernel image oem
un linux-image-5.11.0-27-generic <none> <none> (no description available)
iF linux-image-5.11.0-34-generic 5.11.0-34.36 amd64 Signed kernel image generic
rc linux-image-5.11.0-35-generic 5.11.0-35.37 amd64 Signed kernel image generic
rc linux-image-5.11.0-36-generic 5.11.0-36.40 amd64 Signed kernel image generic
rc linux-image-5.11.0-37-generic 5.11.0-37.41 amd64 Signed kernel image generic
rc linux-image-5.11.0-38-generic 5.11.0-38.42 amd64 Signed kernel image generic
ii linux-image-5.11.0-40-generic 5.11.0-40.44 amd64 Signed kernel image generic
ii linux-image-5.11.0-41-generic 5.11.0-41.45 amd64 Signed kernel image generic
目前安装的最旧的似乎是 linux-image-5.11.0-34-generic,但是sudo apt purge linux-image-5.11.0-34-generic
表明它还要安装linux-image-unsigned-5.11.0-34-generic
,占用更多空间。
我还能尝试什么?是否可以选择调整/扩大我的 bpool?我对使用 ZFS 还很陌生。
编辑:我做了更多的调查。zfs list bpool/BOOT/ubuntu_s2c09x -o space -r
报告
NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD
bpool/BOOT/ubuntu_s2c09x 229M 1.51G 1.22G 303M 0B 0B
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_weekly-2021-11-19-1344 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-21-1339 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-22-1336 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-23-1340 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-24-1335 - 56K - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-25-1339 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-26-1338 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_weekly-2021-11-26-1343 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-27-1338 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-28-1336 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-29-1338 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-11-30-1340 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-01-1340 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-02-1340 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-03-1339 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_weekly-2021-12-03-1344 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-04-1337 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-05-1338 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-06-1338 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-07-1339 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-08-1337 - 80K - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-09-0645 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_a2u0ly - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-10-1336 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_weekly-2021-12-10-1341 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-11-1339 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-12-1335 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_omna1o - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_5q7106 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-13-1336 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_fwalez - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-14-1336 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_dsm4th - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-15-1335 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_4t769s - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-16-1336 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_z8aa09 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-17-1339 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_weekly-2021-12-17-1344 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_dqsnib - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_7w0l6s - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_323q08 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@autozsys_gqbsa5 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-18-1338 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-19-1339 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0217 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0317 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0417 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0517 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0617 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0717 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0817 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-0917 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1017 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1117 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1217 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1317 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_daily-2021-12-21-1337 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1417 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1517 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1617 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1717 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1817 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-1917 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-2017 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-2117 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-2217 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-21-2317 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-22-0017 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_frequent-2021-12-22-0100 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_frequent-2021-12-22-0115 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_hourly-2021-12-22-0117 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_frequent-2021-12-22-0130 - 0B - - - -
bpool/BOOT/ubuntu_s2c09x@zfs-auto-snap_frequent-2021-12-22-0145 - 0B - - - -
我不明白它怎么能声称快照使用了 1.22 GB,但是列出的 bpool 快照都没有使用任何空间?
答案1
卸载旧的和未使用的内核以及相关文件是正确的操作;为避免建议安装未签名的内核,请删除依赖于以下linux-image-5.11.0-34-generic
方式的软件包:
sudo apt purge linux*5.11.0-34*
释放空间所需的第二步是删除引用已删除文件的旧快照;通过以下方式列出快照:
zfs list -r -t snapshot -o name,used,referenced,creation bpool/BOOT
您可以在REFER
列中看到引用了多少数据。相同的数字通常与最小值相符USED
;快照实际上是先前快照的副本。
通过以下方式手动删除五个最旧的快照:
zfs list -H -r -t snapshot -o name,used,referenced,creation bpool/BOOT | head -n 5 | cut -c 35-40 | xargs -n 1 sudo zsysctl state remove --system
继续删除快照,直到看到空间被释放。
(最后一句的来源和更多信息:https://github.com/ubuntu/zsys/issues/155)
笔记:
如果有未分配的空间,则可以扩大 ZFS 池,但 Ubuntu 会将剩余空间分配给
rpool
。显然,就地缩小 ZFS 池是不可能的。我看到已启用自动快照功能
bpool
,但除非您预计任何文件会在 APT 之外发生变化,否则 ZSys 快照功能应该足够了,并且可以减少您必须考虑的快照数量。为了避免将来出现此问题,请密切关注内核升级并定期删除旧版本。还请考虑减少 ZSys 垃圾清理默认值
/etc/zsys.conf
。有关示例,请参阅:https://github.com/ubuntu/zsys/issues/155#issuecomment-758902487
答案2
这将从 zfs 中删除最旧的 5 个内核。如果安装的内核不超过 5 个,则不会删除最新的 5 个。
# Run "zfs list" to list all the installed kernels.
# Tail removes the header line
# head -n -5 preserves the last 5 in the list, listing all others
# head -5 removes only the first 5 (if at least that many exist)
zfs list -r -t snapshot -o name,used,referenced,creation bpool/BOOT | tail -n +2 | head -n -5 | head -5 | cut -c 35-40 | xargs -n 1 /usr/bin/sudo zsysctl state remove --system
# List the amount of space remaining on /boot
df -h /boot
答案3
自从我在 Sun Microsystems 工作时开始使用 ZFS 以来,我一直在使用它。超级早期采用者。
无论如何,快照就是这样...从 BPOOL 上删除它们
对于 `zfs list -t snapper | grep bpool | awk '{print $1}'` 中的 i;执行 echo $i;zfs destroy $i;完成
然后您就可以
zfs 列表 | grep bpool您应该会看到开辟出了很多空间。
现在您可以尝试更新您的服务器。