更好的方法:

更好的方法:

我有一个具有两个设备的镜像池( sda, sdb) 在我的德班

现在我插入了两个额外的设备sdc, sdd), 所以,我可以可用空间加倍/mnt/data/目录中。

是由刚刚完成的吗sudo zpool add backup-pool mirror sdc sdd

我有点害怕所以我想确认一下。抱歉这个菜鸟问题。

以下是我的泳池的详细信息:

须藤 zfs 列表

NAME               USED  AVAIL     REFER  MOUNTPOINT
backup-pool       1.47T  1.17T       96K  /backup-pool
backup-pool/data  1.47T  1.17T     1.47T  /mnt/data

sudo zpool 列表

NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
backup-pool  2.72T  1.47T  1.25T        -         -    11%    53%  1.00x    ONLINE  -

须藤 fdisk -l

Disk /dev/sdc: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/sdd: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/sdb: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: ABB57994-974B-734A-A2A9-2BA616368A52

Device          Start        End    Sectors  Size Type
/dev/sdb1        2048 5860515839 5860513792  2.7T Solaris /usr & Apple ZFS
/dev/sdb9  5860515840 5860532223      16384    8M Solaris reserved 1


Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: WDC WD30EFAX-68J
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: DCDDA5ED-CB54-C042-9AF6-076F07F44E96

Device          Start        End    Sectors  Size Type
/dev/sda1        2048 5860515839 5860513792  2.7T Solaris /usr & Apple ZFS
/dev/sda9  5860515840 5860532223      16384    8M Solaris reserved 1

谢谢!

答案1

简短回答:

是由刚刚完成的吗sudo zpool add backup-pool mirror sdc sdd

是的。

长答案:

我有点害怕所以我想确认一下。

使用非关键设备(例如小型虚拟内存磁盘或在本例中为文件支持的虚拟磁盘)进行测试通常比人们想象的要简单。

这是在 FreeBSD 上进行的,但 Linux 也有工具可以做同样的事情。

我将创建四个每个 1G 的文件,并将每个文件用作文件支持的虚拟磁盘:

# for i in $(jot 4 0)
> do
>         truncate -s1G md$i
>         mdconfig -f md$i
> done

我现在可以开车/dev/md0过去/dev/md3玩。我将通过镜像创建您拥有的原始单 VDEV 池/dev/md0/dev/md1

# zpool create tank mirror md0 md1
# zpool status tank
  pool: tank
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            md0     ONLINE       0     0     0
            md1     ONLINE       0     0     0

errors: No known data errors

错误的方法:

如果您尝试将下一个磁盘添加md2到池中,zpool则会警告您正在降级池的冗余:

# zpool add tank md2
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses mirror and new vdev is disk

事实上,如果你强制执行此操作,并同样强制添加md3你会得到:

# zpool add -f tank md2
# zpool status tank
  pool: tank
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            md0     ONLINE       0     0     0
            md1     ONLINE       0     0     0
          md2       ONLINE       0     0     0

errors: No known data errors

# zpool add -f tank md3
# zpool status tank
  pool: tank
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            md0     ONLINE       0     0     0
            md1     ONLINE       0     0     0
          md2       ONLINE       0     0     0
          md3       ONLINE       0     0     0

errors: No known data errors

请注意,设备md2md3没有冗余。您的池容易遭受以下三种故障中的任何一种:1) 如果镜像的两半都发生故障; 2)如果磁盘md2出现故障;或 3) 如果磁盘md3出现故障。这三种事件中的任何一种都会使您的泳池无法使用。

更好的方法:

我上面的例子只是为了展示当你以错误的方式做时会发生什么。更好的方法,实际上我相信您正在寻找的方法,是将两个新驱动器添加为第二个镜像,与第一个镜像连接。

为了改进冗余,请告知zpool您要向现有池添加镜像:

# zpool status tank
  pool: tank
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            md0     ONLINE       0     0     0
            md1     ONLINE       0     0     0

errors: No known data errors

# zpool add tank mirror md2 md3
# zpool status tank
  pool: tank
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            md0     ONLINE       0     0     0
            md1     ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            md2     ONLINE       0     0     0
            md3     ONLINE       0     0     0

errors: No known data errors

相关内容