我有 2x3TB 带有 GPT 的磁盘,并且 zpool 在第一个磁盘(sda4)上使用 2.7TB 分区,在第二个磁盘(sdb4)上使用 1TB 分区。
原因是最初两个磁盘都只有 1TB,我依次将它们都替换为 3TB。但在我拥有 1x1TB 和 1x3TB 期间,我将剩余的 3TB 用于另一个分区,现在我想将其删除。
我在 Linux 上使用最新的 ZFS (0.6.5.7-8-wheezy)。将池大小调整为完整的 2.7TB 的正确方法是什么?
autoresize
lsblk
当前处于关闭状态。这是和的当前输出zpool status
:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2,7T 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 14,5G 0 part
│ └─md0 9:0 0 14,5G 0 raid1 /
├─sda3 8:3 0 4,2G 0 part
│ └─md2 9:2 0 4,2G 0 raid1 [SWAP]
└─sda4 8:4 0 2,7T 0 part
sdb 8:16 0 2,7T 0 disk
├─sdb1 8:17 0 1M 0 part
├─sdb2 8:18 0 14,5G 0 part
│ └─md0 9:0 0 14,5G 0 raid1 /
├─sdb3 8:19 0 4,2G 0 part
│ └─md2 9:2 0 4,2G 0 raid1 [SWAP]
├─sdb4 8:20 0 912,9G 0 part
└─sdb5 8:21 0 1,8T 0 part
# zpool status
pool: zpradix1imain
state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(5) for details.
scan: resilvered 687G in 6h2m with 0 errors on Fri Dec 26 18:39:27 2014
config:
NAME STATE READ WRITE CKSUM
zpradix1imain ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-WDC_WD30EZRZ-00WN9B0_WD-WCC4E7CL5U9D-part4 ONLINE 0 0 0
ata-WDC_WD30EZRX-00D8PB0_WD-WMC4N0E6K1AW-part4 ONLINE 0 0 0
第一步,我将删除 sdb5 并将 sdb4(通过 gdisk)调整为 2.7TB,然后重新扫描分区表(这样两个磁盘将具有相同的分区布局)。
但是之后?
答案1
看起来有点乱。
简而言之:
autoexpand=on
在你的 zpool 上设置。- 将分区大小调整为合适的大小。
- 运行
partprobe
或者重启。 - 完成后,使用
zpool online -e zpradix1imain ata-WDC_WD30EZRZ-00WN9B0_WD-WCC4E7CL5U9D-part4
并zpool online -e zpradix1imain ata-WDC_WD30EZRX-00D8PB0_WD-WMC4N0E6K1AW-part4
- 重新加载 ZFS 模块或者直接重新启动。
zpool online [-e] pool device...
Brings the specified physical device online.
This command is not applicable to spares or cache devices.
-e Expand the device to use all available space. If the device is part of a mirror or raidz
then all devices must be expanded before the new space will become available to the pool.