缩小 ZFS 分区并增加交换分区大小

缩小 ZFS 分区并增加交换分区大小

如何增加交换分区大小?

我想将分区 #5(/dev/nvme0n1p5一个 ZFS 分区)的大小缩小 6Gb,并将其添加到分区 #3(/dev/nvme0n1p3)。

我正在以 root 身份运行 Xubuntu 19.10 和 ZFS。

笔记:

  • 由于目前没有任何 GUI 分区管理器(GParted/Gnome Disks/KDE 分区管理器)支持更改/移动 ZFS 分区,因此我无法使用它们。
  • 我不想在 ZFS 上创建另一个新的交换分区,我只想使用当前的交换分区并增加其大小。
  • 我不想在 ZFS 上创建新的交换文件!

系统信息

sudo parted -l

Model: WDC PC SN520 SDAPNUW-512G-1002 (nvme)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name                  Flags
 1      1049kB  538MB   537MB   fat32           EFI System Partition  boot, esp
 2      538MB   590MB   52.4MB  ext4
 3      590MB   2738MB  2147MB  linux-swap(v1)
 4      2738MB  4885MB  2147MB  zfs
 5      4885MB  512GB   507GB   zfs
sudo fdisk -l /dev/nvme0n1

Disk /dev/nvme0n1: 476.96 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WDC PC SN520 SDAPNUW-512G-1002          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9E99ED37-A328-4F95-B9F9-946E5ED049B8

Device           Start        End   Sectors   Size Type
/dev/nvme0n1p1    2048    1050623   1048576   512M EFI System
/dev/nvme0n1p2 1050624    1153023    102400    50M Linux filesystem
/dev/nvme0n1p3 1153024    5347327   4194304     2G Linux swap
/dev/nvme0n1p4 5347328    9541631   4194304     2G Solaris boot
/dev/nvme0n1p5 9541632 1000215182 990673551 472.4G Solaris root
sudo zpool list -v

NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
bpool        1.88G   131M  1.75G        -         -     0%     6%  1.00x    ONLINE  -
  nvme0n1p4  1.88G   131M  1.75G        -         -     0%  6.82%      -  ONLINE  
rpool         472G   112G   360G        -         -     9%    23%  1.00x    ONLINE  -
  nvme0n1p5   472G   112G   360G        -         -     9%  23.8%      -  ONLINE
sudo swapon --show --output all

NAME           TYPE      SIZE USED PRIO UUID                                 LABEL
/dev/nvme0n1p3 partition   2G 7.8M   -2 52702bf2-1e50-4ece-8d3e-db01cff707fe
lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 19.10
Release:    19.10
Codename:   eoan

答案1

根据 Aaron Toponce 的指南:

您无法缩小 zpool,只能扩大它。

来源:
https://pthree.org/2012/12/04/zfs-administration-part-i-vdevs/

以下是另一个指南:
http://www.resilvered.com/2011/07/how-to-shrink-zfs-root-pool.html

看起来第二个指南通过在不同磁盘上创建一个新的(较小的)池,然后将快照从旧池发送到新池来“缩小”池。

答案2

zfs 分区不能缩小,但可以在根 zpool 中创建一个新的交换分区,如下所示:

zfs create -V 20G -b "$(getconf PAGESIZE)" \
      -o compression=zle -o logbias=throughput \
      -o sync=always -o primarycache=metadata \
      -o secondarycache=none \
      -o com.sun:auto-snapshot=false \
      rpool/swap
mkswap -f /dev/zvol/rpool/swap

相关内容