Cresce o espelho ZFS

4

Eu tenho um pool ZFS com 6 discos em uma configuração RAID 10.

Eu gostaria de atualizar as unidades em um dos espelhos, de 1 TB para 3 TB. Eu tenho todas as unidades instaladas no sistema.

Eu prefiro que não faça isso substituindo uma unidade, resilver, repeat. Existe uma maneira de executar todas as minhas leituras do espelho existente, mantendo todo o desgaste das unidades que estou removendo?

root@e7-4860:~# zpool status
  pool: stuffpoll
 state: ONLINE
  scan: scrub repaired 0 in 6h50m with 0 errors on Sun Dec 10 07:14:34 2017
config:

    NAME                                               STATE     READ WRITE CKSUM
    stuffpoll                                          ONLINE       0     0     0
      mirror-0                                         ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR10004M0LGN6E-part1  ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR10004M0M17TE-part1  ONLINE       0     0     0
      mirror-1                                         ONLINE       0     0     0
        ata-HGST_HTS541010A9E680_JA1000102MG9UR-part1  ONLINE       0     0     0
        ata-HGST_HTS541010A9E680_JA1009C03158BP-part1  ONLINE       0     0     0
      mirror-2                                         ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR100X6P2TJKVE        ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR100Y4M01200M        ONLINE       0     0     0

errors: No known data errors


root@e7-4860:~# zpool list
NAME        SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
stuffpoll  2.72T  2.47T   254G         -    48%    90%  1.00x  ONLINE  -


root@e7-4860:~# ls /dev/disk/by-id/ -1
ata-CT240BX200SSD1_1613F0194817
ata-CT240BX200SSD1_1613F0194817-part1
ata-HGST_HTS541010A9E680_JA1000102MG9UR
ata-HGST_HTS541010A9E680_JA1000102MG9UR-part1
ata-HGST_HTS541010A9E680_JA1000102MG9UR-part9
ata-HGST_HTS541010A9E680_JA1009C03158BP
ata-HGST_HTS541010A9E680_JA1009C03158BP-part1
ata-HGST_HTS541010A9E680_JA1009C03158BP-part9
ata-HGST_HTS721010A9E630_JR10004M0LGN6E
ata-HGST_HTS721010A9E630_JR10004M0LGN6E-part1
ata-HGST_HTS721010A9E630_JR10004M0LGN6E-part9
ata-HGST_HTS721010A9E630_JR10004M0M17TE
ata-HGST_HTS721010A9E630_JR10004M0M17TE-part1
ata-HGST_HTS721010A9E630_JR10004M0M17TE-part9
ata-HGST_HTS721010A9E630_JR100X6P2TJKVE
ata-HGST_HTS721010A9E630_JR100X6P2TJKVE-part1
ata-HGST_HTS721010A9E630_JR100X6P2TJKVE-part9
ata-HGST_HTS721010A9E630_JR100Y4M01200M
ata-HGST_HTS721010A9E630_JR100Y4M01200M-part1
ata-HGST_HTS721010A9E630_JR100Y4M01200M-part9
scsi-35000c50055fb009b
scsi-35000c50055fb395f

Gostaria de substituir as unidades em mirror-1 por scsi-35000c50055fb009b e scsi-35000c50055fb395f

    
por wmantly 11.12.2017 / 17:09

1 resposta

2

Se você quiser expandir o volume manualmente, tudo o que precisa fazer é colocá-lo on-line com a opção -e .

zpool online -e stuffpoll

Você também pode alternar a opção de autoexpand para que isso aconteça automaticamente.

zpool set autoexpand=on stuffpoll

Então, digamos que você esteja adicionando novas unidades ao mirror-2 para expandir isso. Você precisa anexar as novas unidades usando um dos nomes de dispositivos existentes como o destino. Você pode adicionar os dois novos dispositivos a um espelho antes de remover os dispositivos antigos.

# zpool attach pool existing_vdev_member new_device
zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100X6P2TJKVE new_dev1
zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100X6P2TJKVE new_dev2

Após a sincronização dos novos dispositivos, você pode remover os dispositivos antigos.

zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100X6P2TJKVE
zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100Y4M01200M

Man zpool

zpool attach [-f] pool device new_device

Attaches new_device to an existing zpool device. The existing device
cannot be part of a raidz configuration. If device is not currently
part of a mirrored configuration, device automatically transforms
into a two-way mirror of device and new_device.  If device is part of
a two-way mirror, attaching new_device creates a three-way mirror,
and so on. In either case, new_device begins to resilver immediately.
...

zpool online [-e] pool device ...

Brings the specified physical device online.
-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.

Links

Além disso, gosto de lembrar as pessoas. Verifique seus backups / restaura primeiro. Sempre há uma chance de algo ruim acontecer. Considere também a criação de um pool zfs em uma máquina de teste / VM e pratique seus comandos com antecedência.

    
por 13.12.2017 / 19:41