Observação: usar um hot spare nessa situação provavelmente não é a melhor ideia. Veja abaixo o raciocínio por trás disso, abaixo da resposta à pergunta, conforme solicitado.
A resposta à pergunta feita:
Antes de reduzir a redundância do conjunto, sugiro veementemente que uma execução completa do scrub funcione para garantir que todos os dispositivos estejam funcionando e que não haja erros de dados latentes:
# zpool scrub rpool
... wait for it to finish, check zpool status for the status of the scrub ...
Os espelhos ZFS permitem adicionar e remover os lados do espelho (chamados de anexar e desanexar), portanto, liberar o sdc3 é fácil:
# zpool detach rpool sdc3
Você pode adicioná-lo como sobressalente. Talvez seja necessário liberar o rótulo primeiro (caso contrário, o ZFS pode reclamar que faz parte de um pool existente):
# zpool labelclear /dev/sdc3
Observe que, após o labelclear, o ZFS não fará idéia de como ler o dispositivo, portanto, isso exclui todos os dados dele. Por isso, tenha cuidado com o comando acima.
Depois, veja o que adicionar como hot spare, sem fazer alterações:
# zpool add -n rpool spare /dev/sdc3
O resultado do acima deve ser uma configuração semelhante a:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 0
sdb3 ONLINE 0 0 0
spares
sdc3 AVAIL
Observe que a seção "peças de reposição" pode não aparecer; o que é importante aqui é que você não adiciona outro vdev no mesmo nível que o mirror-0 . Em outras palavras, o exemplo abaixo está errado:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 0
sdb3 ONLINE 0 0 0
sdc3 ONLINE 0 0 0
Quando estiver certo de que o comando fará o que você pretende, remova o -n
para efetuar a alteração. Particularmente, não passe -f
para zpool add
a menos que você esteja absolutamente certo de que vai fazer o que você quer fazer.
Observe que o acima apenas lida com a configuração real do dispositivo como sobressalente. Eu não sei como configurá-lo como uma substituição sobressalente e automática do hot no Proxmox VE.
Por que isso pode não ser a melhor ideia:
Lembre-se de que o hot spare exigirá um resilver quando for necessário e não estiver disponível para atender a solicitações de leitura durante a operação normal, portanto, fazendo isso , você está realmente reduzindo > a resiliência do seu pool ao fracasso, bem como reduzir potencialmente o desempenho de leitura. Atualmente, se qualquer um dos sd [abc] 3 falhar, você ainda terá dois drives funcionando, fornecendo redundância; com a configuração do hot spare, se qualquer um dos sd [ab] 3 falhar, a única unidade remanescente será necessária para suportar a resilver completa no sdc3 do hot spare sem erros. Se qualquer erros de leitura forem encontrados na única unidade funcional durante o processo de resilver no hot spare para atualizá-lo, você perderá os dados.
Supondo que o HBA é capaz de acompanhar a carga, um espelho N terá o desempenho de gravação de uma única unidade, independentemente do número de dispositivos no espelho, já que todos devem ser atualizado antes que a gravação possa ser considerada concluída e as gravações sejam realizadas paralelamente nos dispositivos físicos. Em leitura, dependendo das particularidades você pode obter desde o desempenho de uma unidade, até o desempenho de todas as unidades N.
Se sua carga de trabalho for pesada em gravação síncrona, que é o que eu esperaria é mais provável que cause contenção de desempenho de gravação, considere adicionar um bom SSD para usar como SLOG. Isso deve melhorar o desempenho de gravação em gravações síncronas. Se a maioria de suas gravações é assíncrona (que normalmente é o padrão, exceto para coisas como NFS), então você não verá muita diferença, mas você também não verá muito impacto no desempenho pelo espelho de três direções tendo a gravação desempenho de apenas uma unidade até ficar sem ARC RAM e um espelho bidirecional não será mais rápido; se esse for o caso, considere adicionar mais RAM para o ZFS usar como ARC.