我最近安装了Ubuntu 20.04,使用 ZFS作为文件系统。我检查了我的 RAM/交换区,如下所示:
qallaf89@desktop : ~ $ 免费 -h
可用的免费共享缓冲区/缓存总数
内存:31Gi 22Gi 4.1Gi 1.9Gi 4.2Gi 6.0Gi
交换:2.0Gi 0B 2.0Gi
现在,如果我想正常增加交换空间,我会按照Digital Ocean 中的教程进行操作,效果非常好。但是,由于我有 ZFS,我遇到了一些问题:
qallaf89@desktop : ~ $ sudo fallocate -l 100G /swapfile Fallocate: Fallocate 失败:不支持操作
我环顾四周,确实ZFS / Fallocate()似乎有问题。
我也从 oracle看到了这个文档,但它对我来说也没有用:
qallaf89@desktop : ~ $ 交换 -l 未找到命令“交换”,您的意思是: deb systemtap 中的命令“stap”(4.2-3) deb DVB-apps 中的命令“szap”(1.1.1+rev1500-1.2) debsoapaligner 中的命令“soap”(2.20-3) deb sway 中的命令 'sway' (1.4-2) 来自 deb slurm-client 的命令“smap”(19.05.5-1) deb secure-delete 中的命令“sswap”(3.1-6ubuntu2) deb snapd (2.44.3+20.04) 中的命令“snap” 来自 debuckless-tools 的命令“swarp”(44-1) deb odin (2.0.3-2build1) 中的命令“拭子” 尝试: sudo apt install <deb name> qallaf89@desktop : ~ $ sudo apt show swap N:无法找到包交换 N:无法找到包交换 E:未找到包
有这方面知识的人可以帮我增加交换空间吗?
这来自 ArchWiki https://wiki.archlinux.org/index.php/ZFS#Swap_volume:
所以:
zfs create -V 8G -b $(getconf PAGESIZE) \
-o logbias=throughput -o sync=always\
-o primarycache=metadata \
-o com.sun:auto-snapshot=false rpool/swap
mkswap -f /dev/zvol/rpool/swap
swapon /dev/zvol/rpool/swap
Run Code Online (Sandbox Code Playgroud)
我不确定 logbias=thr..、primarycache=meta 和 '-o com.sun...' 是否适合您的情况,特别是当磁盘本身是 SSD 时。无论哪种方式,这都会创建一个 8GB 的大 zfs 卷。
在etc/fstab中:
/dev/zvol/rpool/swap none swap discard 0 0
Run Code Online (Sandbox Code Playgroud)
关于 ZFS:您应该考虑并寻找更多磁盘,为了获得设置的可用性,您需要考虑如何添加镜像。如果你失去了 1TB 三星 SSD,整个池子就完蛋了。
关于 sda5: FreeBSD 手册中的zpool 管理部分描述了如何将 vdev 更改为镜像对。
在这种情况下:
所以:
swapoff /dev/sda5
zpool attach bpool sda5 sda6
Run Code Online (Sandbox Code Playgroud)
并等待重新银化。