linux – 创建zfs池,允许用稍小的磁盘替换其中一个磁盘

这是关于 Linux(CentOS 7)上的zfs的问题.我有一个非常简单的设置,有两个8 TB磁盘,一个磁盘镜像另一个磁盘.

zpool create -f -o ashift = 12 $zpoolName mirror $disksById

如果需要更换其中一个磁盘,则根据zpool手册页,替换磁盘的大小必须等于或大于配置中两个磁盘中的最小磁盘.根据我的理解,通常精确的尺寸通常在不同品牌和型号(和型号修订版)的驱动器之间略有不同,即使它们都标记为8 TB.但是,我希望能够用任何其他8 TB磁盘替换它,不一定是相同的品牌和型号.

我该如何实现这一目标?

我本来期望zpool create命令的一个选项,这样就不会将整个磁盘用于池,但留下一些松弛,但是我找不到这样的选项.我看到的唯一建议是在创建池之前对磁盘进行分区,创建一个“池”分区和一个“松弛”分区,但我读过这会影响磁盘性能,因为磁盘缓存无法正常使用zfs,所以我想我想避免这个.

解决方法

The only suggestion that I have seen is partitioning the disk before creating the pool,creating one “pool” partition and one “slack” partition

这是正确的答案.

but I’ve read the this will affect disk performance as the disk cache can not be used properly by zfs.

这是一种误解.如果分区未对齐,则使用分区而不是完整磁盘只会影响性能,如果您使用的是模糊的现代分区编辑器,则通常需要对用户进行一些真正的确定. Linux和BSD fdisk,sfdisk和gparted都了解分区边界并在其中工作,除非完全强制不这样做.

此外,如果你仔细观察一个已经整个被送到zfs的磁盘,你会发现zfs实际上已经对它自己进行了分区.例:

root@banshee:~# zpool status data
  pool: data
 state: ONLINE
  scan: scrub repaired 0 in 27h54m with 0 errors on Mon Mar 13 05:18:20 2017
config:

    NAME                                           STATE     READ WRITE CKSUM
    data                                           ONLINE       0     0     0
      mirror-0                                     ONLINE       0     0     0
        wwn-0x50014ee206fd9549  ONLINE       0     0     0
        wwn-0x50014ee2afb368a9    ONLINE       0     0     0
      mirror-1                                     ONLINE       0     0     0
        wwn-0x50014ee25d2510d4  ONLINE       0     0     0
        wwn-0x5001517bb29d5333  ONLINE       0     0     0

errors: No known data errors

root@banshee:~# ls -l /dev/disk/by-id | grep 510d4
lrwxrwxrwx 1 root root  9 Mar 22 15:57 wwn-0x50014ee25d2510d4 -> ../../sdd
lrwxrwxrwx 1 root root 10 Mar 22 15:57 wwn-0x50014ee25d2510d4-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 Mar 22 15:57 wwn-0x50014ee25d2510d4-part9 -> ../../sdd9

如您所见,ZFS已经对池中的原始磁盘进行了分区.池使用分区1;分区9松弛.

root@banshee:~# sfdisk -d /dev/sdd
label: gpt
label-id: B2DED677-DB67-974C-80A6-070B72EB8CFB
device: /dev/sdd
unit: sectors
first-lba: 34
last-lba: 3907029134

/dev/sdd1 : start=        2048,size=  3907010560,type=6A898CC3-1DD2-11B2-99A6-080020736631,uuid=A570D0A4-EA32-F64F-80D8-7479D918924B,name="zfs"
/dev/sdd9 : start=  3907012608,size=       16384,type=6A945A3B-1DD2-11B2-99A6-080020736631,uuid=85D0957B-65AF-6B4A-9F1B-F902FE539170

sdd9是16384个扇区.这是一个4K磁盘,因此它可以达到64M,并且任何比现有磁盘小不超过63M的磁盘应该可以替代这个磁盘,如果它失败了.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...