Ubuntu
如何在 Ubuntu 20.04 ZFS 上增加交換空間?
我最近安裝了帶有 ZFS作為文件系統的**Ubuntu 20.04 。**我檢查了我的 RAM / 交換,如下所示:
**qallaf89 @ 桌面**: **~** $ free -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 @ 桌面**: **~** $ swap -l 找不到命令“交換”,您的意思是: 來自 deb systemtap 的命令“stap”(4.2-3) 來自 deb dvb-apps (1.1.1+rev1500-1.2) 的命令“szap” 來自 deb soapaligner (2.20-3) 的命令“soap” 來自 deb sway (1.4-2) 的命令“搖擺” 來自 deb slurm-client (19.05.5-1) 的命令“smap” 來自 deb 安全刪除 (3.1-6ubuntu2) 的命令“sswap” 來自 deb snapd (2.44.3+20.04) 的命令“snap” 來自 deb sinkless-tools 的命令 'swarp' (44-1) 來自 deb odin (2.0.3-2build1) 的命令“swab” 嘗試: sudo apt install <deb name> **qallaf89@desktop** : **~** $ sudo apt show swap N:無法找到包交換 N:無法找到包交換 **E:**沒有找到包
有這方面知識的人可以幫我增加我的交換空間嗎?
這來自 ArchWiki https://wiki.archlinux.org/index.php/ZFS#Swap_volume:
- ‘getconf PAGESIZE’,即記憶體系統的首選記憶體頁面大小是什麼?
- 為交換創建一個 zfs 卷
- 準備交換
- 開始交換
- 在 etc/fstab 中將其標記為交換(由於 zfs 屬性,這完全有可能自動完成。)
所以:
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
我不確定 logbias=thr..、primarycache=meta 和 ‘-o com.sun…’ 是否適合您的情況,尤其是當磁碟本身是 SSD 時。無論哪種方式,這都會創建一個 8GB 的大型 zfs 卷。
在 etc/fstab 中:
/dev/zvol/rpool/swap none swap discard 0 0
關於 ZFS:您應該考慮並尋找更多磁碟,以獲得設置的可用性,您需要考慮如何添加鏡像。如果您鬆開 1TB 三星 SSD,則整個池都會吐司。
關於 sda5:FreeBSD 手冊中的zpool 管理部分描述瞭如何將 vdev 更改為鏡像對。
在這種情況下:
- 交換 sda5
- 最終清除標籤
- 重新連接 vdev
- 等待重發
- 添加引導程序
所以:
swapoff /dev/sda5 zpool attach bpool sda5 sda6
然後等待resilver。