Pular para o conteúdo principal

Substituição planejada de disco em um nó

A substituição planejada é feita enquanto o disco ainda está funcionando: ele chegou ao fim da vida útil, seu modelo não é mais suportado ou ele apresenta sinais de falha iminente. Ela difere da substituição de emergência em um ponto importante: quem determina a sequência é você, e não uma falha. Isso significa que você pode preparar um disco substituto, acender o indicador no gabinete correto e substituir o disco sem deixar o pool sem redundância nem por um minuto.

No modelo do vStack Center, um disco tem três atributos independentes. Confundi-los é a principal fonte de erros neste procedimento. Nenhum deles pode ser deduzido de outro.

AtributoOnde é visívelO que significaO que o altera
IntegridadeColuna Status na aba Disk propsO estado real do discoO nó, com base nas condições reais
PapelSomente pela APIPapel do disco: livre, particionado, membro de pool, spareConsulta ao disco, marcação como spare, remoção do rótulo de spare, substituição
Online no clusterSomente pela APIO disco é disponibilizado na fabric do cluster e fica visível para todos os nósColocação do disco online no cluster e remoção do disco do cluster

A substituição em si é uma única operação. Ela não "remove" o disco do gabinete: ela muda o pool para o dispositivo substituto e inicia o resilver. O disco antigo é removido fisicamente depois, quando o pool não o usa mais.

As operações com discos físicos, exceto o acendimento de indicadores, não estão disponíveis na interface web. Um administrador usa a API para substituir um disco, marcá-lo como spare e removê-lo do cluster — consulte a referência da API. A interface tem outra finalidade neste procedimento: mostrar o disco, sua localização no gabinete, a integridade do pool e o status do resilver.

A substituição é a operação mais perigosa do subsistema de discos, por isso tem sua própria proteção contra perda de dados. Antes de enviar o comando, o vStack Center consulta o nó sobre o papel real do disco substituto e só envia o comando se o disco substituto estiver livre: spare ou não utilizado. Se o disco substituto estiver em uso, se o estado dele não puder ser determinado ou se o dispositivo com defeito e o novo dispositivo forem o mesmo, a substituição é rejeitada antes de o comando ser enviado ao nó. Substituições simultâneas no mesmo pool não são permitidas.

Todos os comandos do subsistema de discos são assíncronos: um comando aceito significa "encaminhado ao agente do nó". O resultado real chega na resposta do nó e fica visível na próxima vez que você ler a lista de discos ou o estado do pool.

Pré-requisitos​

  • O papel Cluster master (role_id=1), necessário para todas as operações com discos físicos;
  • A flag feature.physical_disc_management: sem ela, todo o subsistema de discos fica indisponível. A flag está nas opções do cluster;
  • Um disco substituto no mesmo nó: livre ou já marcado como spare. Um disco substituto em outro nó não pode ser usado; a substituição opera dentro de um único nó;
  • O nome do pool e o caminho do dispositivo a ser substituído são conhecidos;
  • Nenhuma outra substituição está em andamento no pool: apenas uma substituição por pool de cada vez;
  • vStack Center versão 3.0.5: as operações com discos físicos foram introduzidas nesta versão.

Etapa 1. Encontre o disco e sua localização no gabinete​

Identifique o disco de três formas: pela entrada na lista de discos, pelo caminho do dispositivo (exigido pelo comando de substituição) e pela localização no gabinete, para remover o disco correto.

  1. Abra Provider Data Center → Server Nodes e selecione o nó; depois, expanda a seção Disks. A mesma lista, filtrada por pool, está disponível no cartão do pool, na seção Pool Disks. Abra o pool a partir da tabela ZFS pools em Storage Resources.

  2. Alterne entre as abas: elas mostram visões diferentes da mesma lista. A coluna ID relaciona as linhas entre todas as abas, e há uma busca acima da tabela (Search in table).

    AbaColunasFinalidade nesta etapa
    Disk propsID, Model, Size (GB), StatusIdentificar o modelo, o tamanho e a integridade
    ZFS propsPool name, Vdev_pool_name, Vdev_guid, Vdev_pool_guidCertificar-se de que o disco pertence ao pool correto
    PlacementEnclosure_device, Enclosure_id, Dev_index, DeviceEncontrar o gabinete e o slot
    LED on panelLed_fault, Led_locateVerificar se o indicador está aceso
    TimestampsCreated, Last_seenDeterminar se o registro do disco está atualizado
  3. Anote o nó e Device para o comando de substituição, e Enclosure_device e Dev_index para acender o indicador. Os campos Pool name e Vdev_pool_name preenchidos confirmam que o disco é membro de um pool, e não um disco livre.

Essas tabelas não mostram o papel do disco nem a flag "online no cluster"; a API os fornece. Verifique-os antes da substituição: o papel determina qual disco pode ser usado como substituto.

Etapa 2. Acenda o indicador do disco no gabinete​

Escolher o slot errado custa um segundo disco, por isso acenda o indicador antes de ir à sala de servidores. Há dois indicadores: localização ("é este") e falha.

  1. Na seção Disks do cartão do nó, vá para a aba Front view ou Inner view. Cada disco tem ali botões de indicador de localização e de falha.
  2. Ligue o indicador de localização do disco a ser substituído.
  3. Verifique se o indicador está realmente aceso na aba LED on panel, nas colunas Led_fault e Led_locate.

Você pode executar a mesma operação pela API. Nesse caso, informe o nome do gabinete no formato /dev/sesN, e não como exibido na coluna Enclosure_device. Outro formato é rejeitado com o código -24307, e um gabinete desconhecido, com -24316.

Etapa 3. Registre a integridade do pool antes da operação​

Registre o estado inicial antes de fazer alterações; caso contrário, você não terá com o que comparar após a substituição.

  1. Abra Provider Data Center → Storage Resources. A tabela ZFS pools contém as colunas GUID, Name, Health, Consuming, Scrubbing, Resilvering, Current node e Capacity (RAW).
  2. Anote Health, Resilvering e Current node do pool em que o disco será substituído. Inicie a substituição planejada somente em um pool íntegro. Um pool degradado exige outro procedimento, descrito em "Recuperação de um pool degradado".
  3. Abra o pool e verifique a seção Properties: Capacity, Provisioned, Used e Free indicam se há espaço suficiente para o resilver.

A tabela e a página do pool leem o banco de dados do vStack Center e exibem o último estado registrado. A API fornece a árvore atual do pool com o estado de cada dispositivo. Você precisará dela se as informações da interface divergirem do estado real.

Etapa 4. Prepare o disco substituto​

O disco substituto deve estar livre; caso contrário, a proteção bloqueará o comando. "Livre" significa um papel "spare" ou "não utilizado". O papel no banco de dados pode estar desatualizado, por isso atualize-o primeiro consultando o nó diretamente.

  1. Encontre candidatos na seção Disks do cartão do nó: na aba ZFS props, um disco livre tem os campos Pool name e Vdev_pool_name vazios. Verifique Size (GB): o disco substituto deve ser pelo menos do mesmo tamanho que o disco substituído.
  2. Atualize o papel do candidato consultando o nó diretamente pela API: o nó informa sobre o disco pelo caminho do dispositivo, e o vStack Center registra o papel atual. Para um disco que ainda não foi inventariado, a consulta não altera nada; primeiro, inventarie esse disco a partir da página do nó.
  3. Se o disco substituto estiver simplesmente livre, você pode deixá-lo como está: a substituição aceita discos spare e não utilizados. Se você mantém um spare designado no nó, marque o disco como spare pela API. Esta é uma operação destrutiva: o nó grava um rótulo de serviço no disco; por isso, ele recusa a operação em um disco com dados ativos, a menos que a rotulação seja forçada.
  4. Leia novamente a lista de discos e certifique-se de que o Pool name do disco substituto continua vazio.

Etapa 5. Substitua o disco​

Agora emita um único comando. Um administrador o executa pela API. Todas as verificações ocorrem antes de o comando ser enviado ao nó, portanto uma chamada inválida não chegará ao disco.

Prepare o seguinte:

  • O nó que contém os dois discos;
  • O nome do pool em que a substituição está sendo feita;
  • O caminho do dispositivo a ser substituído, da coluna Device;
  • O caminho do disco substituto, que deve ser diferente do caminho do dispositivo substituído.

Um comando aceito significa apenas "enviado ao nó". O resultado real chega na resposta do nó. Em caso de sucesso, o novo dispositivo é marcado como membro do pool. Em caso de falha, um erro é retornado, e o disco antigo não é marcado automaticamente como defeituoso: seu papel permanece inalterado.

Etapa 6. Aguarde o resilver​

O próprio pool restaura a redundância; o vStack Center apenas exibe o processo.

  1. Abra Storage Resources e acompanhe as colunas Resilvering e Health do pool em que o disco está sendo substituído. O valor um em Resilvering significa que o pool está restaurando a redundância após a substituição.
  2. A substituição está concluída quando Resilvering volta a zero e Health permanece íntegro.
  3. Verifique a composição do pool: no cartão do pool, na aba Placement da seção Pool Disks, o disco substituto deve aparecer no lugar do disco antigo.

O vStack Center não mostra o progresso em porcentagem; há apenas um indicador de que o processo está em andamento. Estime a duração a partir do tamanho do pool na seção Properties.

Etapa 7. Desconecte e remova o disco antigo​

Enquanto um disco está online no cluster, o cluster o considera parte do cluster. Antes de removê-lo fisicamente, limpe essa flag. A operação usa a API e remove o LUN da fabric. Especifique o disco pelo número de série (preferível) ou pelo caminho do dispositivo.

aviso

Não remova um disco do cluster enquanto ele ainda for membro de um pool ativo: o pool ficará degradado. Verifique a seção Pool Disks para se certificar de que o pool usa o disco substituto, e não o disco antigo. O nó protege layouts de dados ativos e recusará a operação, mas você não deve contar com essa recusa em vez de verificar.

Após a chamada, leia novamente a lista de discos: a flag "online no cluster" do disco foi limpa. Agora você pode remover o disco fisicamente.

Conclusão do trabalho​

  1. Apague os dois indicadores: cartão do nó → seção Disks → aba Front view ou Inner view. Verifique o resultado na aba LED on panel.
  2. Restaure a reserva de discos spare. O disco substituto agora está no pool, e não resta nenhum spare no nó: coloque um novo disco online no cluster e marque-o como spare pela API.
  3. Atualize o inventário após as alterações físicas: execute um inventário do nó para a classe ses e depois cam. Caso contrário, a lista de discos manterá uma entrada do disco removido com um Last_seen desatualizado.
  4. Verifique o estado final na aba ZFS props: o novo membro do pool tem os campos Pool name e Vdev_pool_name preenchidos, enquanto o Pool name do spare está vazio.

Verificação do resultado​

O que verificarOnde verResultado esperado
O pool usa o novo discoCartão do pool, Pool Disks → PlacementO disco substituto tomou o lugar do disco antigo
O resilver terminouStorage ResourcesResilvering = 0, Health íntegro
O novo disco está registrado como membro do poolPool Disks → ZFS propsOs campos Pool name e Vdev_pool_name do disco substituto estão preenchidos
O disco antigo foi removido do clusterPela APIA flag "online no cluster" foi limpa
Os indicadores estão apagadosSeção Disks → LED on panelLed_fault e Led_locate estão apagados
A reserva de discos spare foi restauradaPela APIO nó tem um disco com o papel "spare" e Pool name vazio

Se algo der errado​

O que você vêCausaO que fazer
Código de erro -24907O disco substituto não está livre: seu papel não é "spare" nem "não utilizado"Libere o disco ou escolha outro; atualize o papel consultando o nó diretamente
Código de erro -24908Não foi possível determinar o estado do disco substituto: o nó não respondeu ou a solicitação excedeu o tempo limiteA substituição foi rejeitada intencionalmente. Verifique a conectividade com o nó e consulte o disco novamente
Código de erro -24905O dispositivo a ser substituído e o novo dispositivo são o mesmoEspecifique dispositivos diferentes
Código de erro -24906Já há uma substituição em andamento neste poolAguarde o término da substituição atual: uma substituição por pool
Código de erro -24902O pool está vazio ou não existe no nóConfira o nome do pool com a coluna Name da tabela ZFS pools; o pool pode não estar importado neste nó
Código de erro -24903O caminho do dispositivo a ser substituído não foi informadoUse o caminho da coluna Device
Código de erro -24904, -24502, -24402, -24803A validação do formato do caminho do dispositivo falhouUse um caminho no formato /dev/daN
Código de erro -24504Uma operação destrutiva já está em andamento no discoAguarde a resposta do nó: duas operações destrutivas não podem ser executadas no mesmo disco
Código de erro -24503O disco já está marcado como spareNão é necessário repetir; verifique o papel do disco
Código de erro -24603O disco não está marcado como spare, portanto não há rótulo a removerVerifique o papel do disco antes de remover o rótulo
Código de erro -24307Formato incorreto do nome do gabineteUse um nome no formato /dev/sesN, e não como exibido na coluna Enclosure_device
Código de erro -24316O gabinete não foi encontradoVerifique Enclosure_id e Enclosure_device na aba Placement; se divergirem, colete o inventário novamente
Código de erro -24311, -24313, -24315O valor do indicador não é 0 nem 1, ou nenhum indicador foi informadoInforme pelo menos um indicador com valor 0 ou 1
Código de erro -24802Não foi especificado nem um número de série nem um caminho de discoInforme pelo menos um identificador do disco
Código de erro -24901, -24501, -24601, -24801, -24401, -24301, -24201A flag feature.physical_disc_management está desabilitadaHabilite o gerenciamento de discos físicos nas opções do cluster
Código de erro -403A operação está disponível apenas para o papel Cluster masterEntre com um papel de nível de cluster
O comando é aceito, mas nada mudou na lista de discosO comando apenas foi encaminhado ao agente do nó; o resultado chega depoisAbra as telas novamente; verifique Last_seen para saber se os dados estão atualizados
A marcação do disco como spare foi bem-sucedida, mas o papel dele não mudouO disco ainda não foi inventariado, portanto não há registro em que armazenar o papelExecute um inventário do nó para a classe cam e tente novamente
O pool entrou em DEGRADED depois que o disco foi removidoO disco foi removido antes de o pool mudar para o disco substitutoRecoloque o disco no gabinete e siga o procedimento de recuperação
A substituição foi bem-sucedida, mas ainda não há redundânciaO pool usa o disco substituto, e não resta nenhum spare no nóColoque um novo disco online no cluster e marque-o como spare

Limitações​

Não é possível iniciar uma verificação de integridade do pool (scrub) a partir do vStack Center; essa operação não está disponível. A coluna Scrubbing apenas informa se um processo iniciado no nó está em execução.

O vStack Center também não pode adicionar um disco a um pool como um novo dispositivo. Colocar um disco online no cluster o torna visível para os nós, mas a composição do pool é alterada no nó. Substituir um membro existente do pool é a única operação de composição de pool disponível no vStack Center.

A API fornece a propriedade autoreplace do pool. Se ela estiver desabilitada, um disco spare não será substituído automaticamente, e a substituição sempre deverá ser iniciada por um administrador.

Veja também​

Métodos da API​

Operações da API nesta página: pd-list, pd-status-map, pd-led, pd-info, pd-spare, pd-unspare, pd-replace, pd-use, pd-unuse, pd-pools-status, pool-map-by-guid, pools-get, node-inventory — consulte a referência da API.