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

前端之家收集整理的这篇文章主要介绍了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

@H_301_17@

这是正确的答案.

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

@H_301_17@

这是一种误解.如果分区未对齐,则使用分区而不是完整磁盘只会影响性能,如果您使用的是模糊的现代分区编辑器,则通常需要对用户进行一些真正的确定. 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相关文章