Como anexar um espelho listrado de 2 dispositivos a um pool?

1

Eu tenho um pool de unidade única que consiste em um HDD de 2 TB. Eu tenho dois drives de 1 TB que posso usar no espelho - gostaria de adicionar redundância ao meu pool.

Como posso anexar essas duas unidades como um único dispositivo para que possam ser usadas como um espelho listrado?

Vamos chamar minha unidade de 2TB de sda , as unidades de 1TB em branco são sdb e sdc .

Eu tentei: zfs attach tank sda sdb sdc , mas isso diz too many arguments .

Eu tentei: zfs attach tank sda sdb , mas isso diz device is too small

Eu tentei: zfs attach tank sda sdb+sdc , mas isso diz no such device in /dev

Eu tentei: zfs attach tank sda sdb,sdc , mas isso diz no such device in /dev

Li o manual e pesquisei na Web - estou sem ideias.

Eu acho que eu poderia tentar criar um novo pool listrado a partir desses dois drives de 1 TB, criar um zvol dentro e usar isso como um espelho para o meu pool principal, mas isso provavelmente não me dará capacidade suficiente para um espelho , além de muita sobrecarga desnecessária.

Como posso fazer isso?

    
por unfa 26.02.2018 / 22:30

2 respostas

3

Isso não pode ser feito diretamente pelo ZFS. Na página de manual :

Virtual devices cannot be nested, so a mirror or raidz virtual device can only contain files or disks. Mirrors of mirrors (or other combinations) are not allowed.

Minha sugestão é criar um novo pool composto pelos dois discos de 1 TB e usar algo como syncoid para enviar com frequência o primeiro pool conteúdo para o novo pool.

--- AVISO: solução desajeitada abaixo! NÃO use se não for REALMENTE seguro !!! ---

De qualquer forma, se você realmente deseja adicionar os dois discos de 1 TB como um espelho dos primeiros 2 TB discos, uma solução alternativa pode ser tentada. Você pode usar o mapeador de dispositivos (em seu formulário LVM) para concatenar os dois discos e anexar o volume resultante ao dispositivo de 2 TB. Por exemplo:

pvcreate /dev/sdb
pvcreate /dev/sdc
vgcreate zvg /dev/sdb
vgextend zvg /dev/sdc
lvcreate zvg --name zdev -l +100%FREE
zpool attach tank /dev/sda /dev/zvg/zdev
zpool status

Você pode obter um resultado semelhante (ainda melhor) com o mdadm, criando um dispositivo RAID0 e anexando-o ao zpool:

mdadm --create md127 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
zpool attach tank /dev/sda /dev/md127
zpool status

Esta abordagem não é recomendada . Use a seu próprio risco.

    
por 26.02.2018 / 23:53
1

Para adicionar os dois novos discos ao pool, você pode usar zpool add tank mirror sdb sdc , mas isso adicionará o novo par como um espelho e distribui-o com o disco existente. (Isso não adiciona redundância).

Você precisaria usar o comando zpool attach para anexar os discos ao vdev existente, mas não é possível usar um par espelhado para fazer o backup de um único disco, você teria que adicionar um novo disco de 2 TB para torná-lo um par espelhado.

    
por 26.02.2018 / 23:02