Pular para o conteúdo principal

Novidades do vStack Center 3.2.0

Alterações visíveis ao usuário por versão, da mais recente para a mais antiga.

3.2.0 — 25 de setembro de 2026​

Esta versão não adiciona novos métodos de API. Todas as alterações são correções, e quase todas tratam do mesmo problema: o Center não decide mais como lidar com uma máquina virtual apenas com base em um registro do seu banco de dados. Antes de iniciar uma máquina, ele agora pergunta aos nós onde a máquina está realmente em execução. Após uma falha, ele distingue o travamento de uma máquina de um desligamento normal do sistema convidado e recupera a máquina, e a parada do serviço de um pool finalmente leva em conta as máquinas em execução em nós vizinhos.

Destaques​

  • Uma máquina não pode mais ser iniciada em um segundo nó enquanto estiver em execução no primeiro. Antes de iniciá-la, o Center consulta os nós e rejeita a inicialização com o código -461 se a máquina já estiver em execução em algum lugar. Antes, quando o banco de dados divergia da realidade, o comando ainda era enviado ao segundo nó — e dois hipervisores gravavam no mesmo disco.
  • Uma máquina que trava é recuperada. O Center não trata mais o travamento do hipervisor como um desligamento feito pelo administrador e inicia a máquina assim que o seu armazenamento fica pronto — inclusive se ela travou depois que o pool já havia sido iniciado.
  • Parar o serviço de um pool também desliga as máquinas em execução remota. Antes, o Center desligava apenas as máquinas do nó proprietário; as demais mantinham o pool ocupado, e a exportação falhava com "pool is busy".
  • A lista de máquinas virtuais não repete mais a mesma máquina.

Considerações sobre a atualização​

  • A resposta à inicialização de uma máquina chega mais tarde — pelo tempo gasto para consultar os nós. O limite padrão da consulta é de 10 segundos para todos os nós juntos (não por nó), configurado pela variável de ambiente VM_LIVENESS_PROBE_TIMEOUT_SECS. A consulta pode ser totalmente desativada (VM_LIVENESS_PROBE_ENABLED=0) — nesse caso, a inicialização, a recuperação automática e o ramo "a máquina não está em execução" da parada funcionam como antes da 3.2.0.
  • Um novo código de erro -461 está disponível: "VM is running on another cluster node; unable to start". Os clientes de API que tratam falhas de inicialização pelo código devem considerá-lo. O número do nó é omitido intencionalmente da mensagem — ele é registrado no log do serviço.
  • A recuperação automática após uma falha depende do agente do nó. O agente do vStack OS 3.2.0 informa o motivo do desligamento de uma máquina. Em nós com um agente mais antigo, uma máquina desligada de forma anormal continua sendo considerada parada pelo administrador e não é recuperada automaticamente — atualize o agente em todos os nós.
  • Parar o serviço de um pool agora desliga as máquinas desse pool em nós vizinhos. Ao planejar a manutenção, considere o desligamento de máquinas além daquelas no nó proprietário.

Corrigido​

Inicialização e parada de uma máquina

  • Uma máquina virtual não pode mais ser iniciada em um segundo nó enquanto estiver em execução no primeiro. Se os nós não responderem, a inicialização não é bloqueada: um nó indisponível não deve impedir que as máquinas sejam iniciadas após uma falha — esse é justamente o cenário para o qual a recuperação existe. A recuperação automática das máquinas segue a mesma regra.
  • Parar uma máquina não a marca mais como parada se ela estiver em execução em outro nó. A resposta de um nó "essa máquina não está em execução" é verdadeira para aquele nó, mas não para o cluster — o Center a aceitava como fato e registrava a máquina como parada, e depois disso iniciá-la em outro nó passava pela validação. O estado agora é registrado somente após a verificação com os nós. A resposta à própria operação de parada não mudou — ela continua sendo concluída com sucesso.
  • Duas solicitações simultâneas para iniciar a mesma máquina em nós diferentes não prosseguem mais ambas: uma é executada, e a segunda recebe o erro já existente "a máquina já está em execução".
  • Iniciar uma máquina logo após a conclusão da sua migração entre pools não é mais rejeitado com "machine is locked". Antes, marcar a migração como concluída e desbloquear a máquina eram operações separadas: a máquina já aparecia como migrada, mas o bloqueio era liberado alguns segundos depois — e uma inicialização solicitada nesse intervalo era rejeitada. O bloqueio agora é liberado no mesmo momento em que a migração é marcada como concluída, de modo que a máquina migrada pode ser iniciada imediatamente.

Recuperação automática após uma falha

  • O travamento de uma máquina não limpa mais o seu sinalizador "deve estar em execução". Antes, o travamento do hipervisor e um desligamento normal do sistema convidado chegavam ao Center como o mesmo evento, e ambos marcavam a máquina como parada pelo administrador — assim, a recuperação automática não a iniciava mais após uma falha. O Center agora distingue o motivo com base nos dados do nó e preserva o sinalizador após um travamento, uma reinicialização solicitada pelo convidado, o desligamento de um nó ou um desligamento forçado por tempo esgotado. Um desligamento normal do sistema convidado continua levando a máquina ao estado parado.
  • Uma máquina desligada de forma anormal é iniciada automaticamente assim que o seu armazenamento fica pronto — acionada por um evento, e não por um temporizador. Antes, a única passagem de recuperação automática era executada uma vez, quando o armazenamento era iniciado: uma máquina que travava depois disso permanecia parada. Se uma inicialização falhar por causa da falha de um nó, o Center tenta novamente até três vezes sem limpar o sinalizador "deve estar em execução". Se os recursos forem insuficientes, a máquina mantém o sinalizador "deve estar em execução", o motivo é registrado no log, e a inicialização não é repetida por temporizador.
  • Um roteador edge parado não é mais iniciado de novo automaticamente alguns segundos depois. O Center tratava o seu próprio comando de parada do edge como um travamento e iniciava imediatamente a máquina — o que impedia adicionar ou remover portas de rede após parar o roteador edge.

Pools de armazenamento

  • Parar e mover um pool não falham mais com "pool is busy" quando suas máquinas virtuais estão em execução em outros nós. O script do serviço não tocava nas máquinas do mesmo pool em execução em nós vizinhos (seus discos são servidos pela rede a partir do proprietário) — o pool permanecia ocupado porque ainda estava em uso, a exportação falhava, o pool ficava no nó original, e as máquinas remotas continuavam em execução. Antes de parar o serviço, o Center agora desliga ele mesmo essas máquinas nos outros nós e só então para o serviço; o mesmo vale para a movimentação de um pool. Se alguma máquina não puder ser desligada, a operação nem sequer começa e retorna uma lista das máquinas bloqueadoras com seus nós — o serviço continua operacional.

Inventário

  • A lista de máquinas virtuais não repete mais a mesma máquina várias vezes. Uma máquina aparecia tantas vezes quantos papéis o usuário tinha no VDC (data center virtual) dela, de modo que sistemas externos que montavam seus próprios diretórios a partir da lista recebiam duplicatas e não conseguiam gerar um relatório de inventário. O conjunto de máquinas na lista não mudou — apenas as duplicatas foram removidas.

3.1.0 — 3 de setembro de 2026​

Esta versão se concentra em resiliência. A principal novidade é a migração ao vivo: uma máquina em execução agora pode ser movida para outro nó sem ser parada. Todas as outras alterações visam manter o Center e os nós de acordo sobre o que está acontecendo com uma máquina: uma operação interrompida no meio não deixa mais uma máquina bloqueada, em migração ou "em criação" para sempre, e a cota do VDC finalmente conta os discos das máquinas e os volumes de armazenamento juntos.

Destaques​

  • Migração ao vivo de VMs — mover uma máquina em execução para outro nó sem desligá-la e mover os dados de uma máquina parada entre locais de armazenamento por meio de um único método. O progresso da migração está disponível por uma solicitação de status separada: fase, porcentagem e motivo da falha.
  • Contabilização unificada da capacidade do VDC — a cota de espaço conta os volumes de armazenamento junto com os discos das máquinas. O espaço usado exibido na tela agora corresponde ao valor usado para rejeitar uma operação.
  • Tempos limite dos estados de transição — uma máquina não permanece mais no estado "iniciando" ou "migrando" indefinidamente: cada estado tem o seu próprio limite de tempo, após o qual a máquina entra no estado de falha correspondente.
  • Uma solicitação reenviada não é executada duas vezes — o mesmo ID retorna a mesma resposta em vez de executar a operação novamente.
  • O inventário de hardware volta a funcionar — as listas de discos físicos e interfaces de rede são preenchidas, incluindo unidades NVMe conectadas sem gabinete.

Considerações sobre a atualização​

  • As credenciais de acesso ao canal do controlador dos nós agora são obrigatórias em todos os clusters. O dispatcher não inicia sem elas — verifique as configurações antes de atualizar.
  • As sessões ativas são encerradas. Os tokens de sessão e os tokens de troca forçada de senha agora usam uma fonte aleatória criptograficamente segura; os usuários precisam entrar novamente após a atualização.
  • O inventário de hardware precisa ser executado à força uma vez para que as listas de discos e interfaces de rede sejam preenchidas com dados atuais.
  • VDCs com volumes de armazenamento mostrarão espaço usado e utilização de cota maiores — isso corrige a contabilização, e não reflete um aumento de consumo. Iniciar máquinas existentes continua funcionando como antes: os usuários podem ligar suas próprias máquinas paradas mesmo quando os volumes tiverem consumido a cota.
  • As alterações do esquema do banco de dados são aplicadas automaticamente durante a atualização. A etapa manual anunciada anteriormente envolvendo uma coluna na tabela de status de execução das VMs não é mais necessária — a alteração foi movida para uma migração separada.
  • O serviço agora inicia mesmo que o banco de dados contenha um registro de uma alteração de esquema que não existe na versão instalada: o registro é gravado no log como aviso. Uma falha da própria alteração de esquema continua impedindo a inicialização.

Adicionado​

Máquinas virtuais

  • Migração ao vivo: mover uma máquina em execução para outro nó (a máquina precisa estar no estado "em execução") e mover os dados de uma máquina parada para outro local de armazenamento — um único método cuida das duas tarefas, com um parâmetro que seleciona o procedimento. A operação está disponível para o papel Cluster master.
  • O progresso da migração é lido por uma solicitação de status separada: estado, fase, porcentagem, nó ou pool de origem e de destino e motivo da falha. Até que a migração seja concluída, as operações que poderiam interferir nela — parada, alteração da configuração e desbloqueio — são rejeitadas com um erro claro; a leitura dos dados da máquina continua disponível.
  • Os estados de transição (iniciando, parando, criando, excluindo, suspendendo, retomando, migrando, restaurando) agora têm limites de tempo — de 15 minutos para a inicialização a 6 horas para a migração e a restauração a partir de backup. Quando o limite expira, a máquina entra no estado de falha correspondente, e o motivo é registrado no log do serviço e no histórico de estados da máquina. Uma máquina criada com sucesso que nunca foi iniciada não está sujeita a essa regra.

VDCs e armazenamento

  • O limite de espaço de um VDC não pode ser reduzido abaixo do uso real: a tentativa é rejeitada com a indicação do limite solicitado e do uso atual, e o valor não é aplicado. O limite ainda pode ser removido por completo.
  • A tela de armazenamento mostra o espaço usado e o tamanho de cada volume — os dados do painel de capacidade ocultado na 3.0.4. Se o controlador de armazenamento estiver indisponível, o espaço usado aparece em branco, mas o cartão do armazenamento ainda abre.
  • O armazenamento agora tem um estado de desmontagem visível: ele indica que uma exclusão de VDC interrompida precisa ser repetida. Uma desmontagem bem-sucedida limpa o estado.

Discos físicos

  • A lista de discos físicos agora inclui unidades NVMe conectadas diretamente, sem um gabinete de unidades — antes, a lista ficava vazia em nós que usavam apenas unidades NVMe. Para essas unidades, o gabinete e o seu dispositivo aparecem como "sem valor": isso indica que a indicação de falhas e a localização da unidade (LED) estão indisponíveis — é o gabinete que fornece os indicadores. A integridade aparece como desconhecida porque não pode ser medida sem um gabinete.

Cluster

  • O estado do cluster informa que as configurações foram alteradas e que o serviço precisa ser reiniciado. As configurações são lidas uma vez na inicialização e não são recarregadas em tempo de execução, enquanto o estado do cluster mostrava os valores atuais delas no banco de dados — um tamanho máximo de disco alterado, por exemplo, parecia ter sido aplicado mesmo que a validação ainda usasse o valor anterior. A divergência agora é visível como um sinalizador separado, e a lista de configurações alteradas é registrada no log do serviço.

Alterado​

  • A cota de espaço do VDC conta os volumes de armazenamento junto com os discos das máquinas. Antes, essas duas partes não sabiam uma da outra: um locatário que havia consumido a cota inteira com volumes ainda podia adicionar e expandir discos de máquinas livremente.
  • Excluir um volume mapeado não exige mais desmapeá-lo antes — o mapeamento é removido automaticamente, e o volume é excluído em uma única ação. Se o controlador ainda assim rejeitar a exclusão do volume (por exemplo, por causa de snapshots ou clones), o volume permanece desmapeado: o mapeamento pode ser restaurado por meio de uma ação separada.
  • O cartão do volume de armazenamento abre mais rápido: duas solicitações ao armazenamento são executadas em paralelo, e não sequencialmente. Se o armazenamento não responder, o tempo de espera cai pela metade.
  • Um disco conectado a vários nós ao mesmo tempo (NVMe de porta dupla) é exibido no nó que atualmente é proprietário do seu pool — o mesmo nó em que o pool aparece na visualização do estado dos pools, com o nome de dispositivo usado nesse nó. Um disco que não pertence a nenhum pool continua sendo exibido no nó que o informou por último.
  • Se um nó responder com "máquina já suspensa" ou "máquina já em execução", a operação é considerada concluída: o operador vê sucesso em vez de erro quando o resultado foi de fato alcançado. A parada de uma máquina já funcionava assim.
  • Os métodos de definição de limites — limites de rede para máquinas e roteadores edge, e limites de disco para máquinas — aceitam um valor vazio como "ilimitado" e o distinguem de zero. Antes, um valor vazio causava um erro ou era substituído silenciosamente por 0.
  • Uma solicitação reenviada não é executada uma segunda vez. Se a solicitação original já recebeu uma resposta, a mesma resposta é retornada ao mesmo usuário; se ela ainda estiver em execução, é retornado o erro "solicitação já em processamento". Uma solicitação que usa o ID de outro usuário não recebe a resposta desse usuário.

Segurança​

  • Corrigidas violações do isolamento entre VDCs em vários métodos. Os administradores de VDC não podem mais criar tipos de rede de cluster — Routed e Q-in-Q: essas redes dão ao locatário acesso ao segmento compartilhado do cluster e, conforme exige o modelo de papéis, estão disponíveis apenas para o papel Cluster master. Na lista de perfis de SO, administradores, usuários e observadores de VDC não veem mais imagens privadas pertencentes a outros VDCs — apenas imagens compartilhadas e imagens atribuídas ao seu próprio VDC. A visualização do cartão de um papel agora está disponível apenas para o papel Cluster master. As alterações de permissões são aplicadas automaticamente durante a atualização.
  • Os tokens de sessão e os tokens de troca forçada de senha agora são resistentes a ataques de força bruta — eles são gerados a partir de uma fonte aleatória criptograficamente segura.
  • A proteção contra força bruta de senhas não pode mais ser contornada com tentativas de entrada simultâneas. Antes, um lote de solicitações paralelas com o mesmo nome de usuário podia testar muito mais senhas do que o limite permitia sem bloquear a conta; o contador de falhas e os registros do log de segurança subestimavam o número de falhas.
  • As verificações padrão de integridade do log de segurança não produzem mais falsos positivos em logs grandes ou após o arquivamento automático de registros antigos. A adulteração real de registros continua sendo detectada.
  • As verificações de configuração de VMs não relatam mais falsas divergências: em máquinas saudáveis, em máquinas que usam o tipo antigo de controlador de disco (todas as máquinas Windows legadas) ou em máquinas em execução fora do nó proprietário do seu pool. Antes, isso causava uma enxurrada de falsos eventos de violação de integridade com o nível de urgência mais alto no log de segurança.
  • O acesso negado às funções de edge quando o recurso correspondente está desativado volta a ser registrado como um evento separado no log de segurança — o registro havia parado de funcionar após a unificação da auditoria e agora foi restaurado.
  • Um nível de severidade especificado incorretamente nas configurações de alertas de segurança não deixa mais os alertas por e-mail ativados: as configurações são aplicadas por completo ou não são aplicadas. O mesmo vale para as configurações de arquivamento do log.
  • Uma falha do banco de dados não expõe mais detalhes internos — os nomes de tabelas e de restrições permanecem no log do dispatcher.

Corrigido​

Estado e operações das máquinas

  • Reiniciar uma máquina não limpa mais o seu sinalizador "deve estar em execução". O Center tratava o desligamento intermediário que ocorre em toda reinicialização como um desligamento do convidado e registrava a máquina como parada pelo administrador — após a falha de um nó, a máquina não era recuperada automaticamente, e a suspensão era rejeitada com "a máquina não está em execução". O desligamento do convidado continua sendo reconhecido e leva a máquina ao estado parado.
  • Uma máquina em execução não é mais marcada como parada por causa de eventos atrasados do nó. Se um nó foi desconectado do Center e envia eventos acumulados após se reconectar, os eventos desatualizados não sobrescrevem mais o status atual.
  • Uma falha na criação de uma máquina não a deixa mais no estado "Criando" para sempre: a máquina entra em "Falha na criação" e é desbloqueada. A mesma correção se aplica à clonagem e à criação de edges.
  • Uma falha na exclusão de uma máquina não a deixa mais no estado "Excluindo" — o estado anterior à exclusão é restaurado, e a operação pode ser repetida.
  • A suspensão de uma máquina parada é rejeitada imediatamente e não altera nada no banco de dados. Antes, a operação era aceita para qualquer máquina, e, se o nó a rejeitasse, o Center marcava a máquina como em execução e perdia a sua associação com o nó — isso só podia ser corrigido editando o banco de dados. A mesma correção se aplica à retomada de uma máquina.
  • Uma falha ao iniciar, parar ou reiniciar não deixa mais uma máquina no estado inconsistente "em execução, mas sem nó especificado".
  • Uma falha ao alterar uma configuração da máquina não causa mais divergência com a configuração no nó: o valor anterior é restaurado em qualquer falha. Isso se aplica ao tamanho da memória (balloon), à prioridade de CPU, à classe de CPU virtual, ao rótulo do disco e aos limites de taxa das portas do edge.
  • Uma falha de conexão com o message broker não deixa mais uma máquina bloqueada para sempre: o sinalizador de ocupado é limpo automaticamente antes de o operador ver o erro. Isso se aplica à criação de um snapshot, à reversão para um snapshot, à exclusão de um snapshot, à adição, ao redimensionamento e à exclusão de um disco, aos limites de taxa de disco e de rede e à exclusão de um roteador edge.
  • Duas solicitações simultâneas para a mesma máquina não prosseguem mais ambas: apenas uma consegue adquirir a máquina, enquanto a segunda recebe imediatamente o erro "machine is locked" e não envia nada ao nó.
  • Uma operação em uma máquina não limpa mais um bloqueio definido por outra operação que ainda está em execução.
  • Uma única solicitação não recebe mais duas respostas: a proteção contra processamento simultâneo permanece ativa independentemente da duração da operação.
  • A recuperação automática de máquinas não envia mais um segundo comando de inicialização a uma máquina cujo comando de inicialização anterior ainda está em execução. As máquinas de serviço do cluster são excluídas de forma consistente tanto das atualizações de status quanto da recuperação automática.
  • Iniciar uma máquina novamente ou recuperá-la automaticamente quando o Center a considera parada, mas ela está de fato em execução, não aciona mais uma segunda inicialização nem corrompe o seu estado no banco de dados.
  • A seleção do nó para iniciar uma máquina e as verificações da capacidade de memória do nó agora produzem resultados consistentes: uma inicialização não é mais rejeitada com uma mensagem de falta de memória no cluster quando há memória disponível de fato. A retomada de uma máquina suspensa leva em conta corretamente a memória que foi liberada.
  • Os limites de taxa de disco e de porta de rede definidos em uma máquina em execução voltam a chegar à máquina e persistem após uma reinicialização. Os limites de taxa das portas do edge podem ser definidos novamente.

Migração de máquinas

  • Os comandos de parada, reinicialização e suspensão de uma máquina movida para outro nó sem desligamento chegam ao nó em que a máquina está realmente em execução. Antes, o comando ia para o nó que hospedava o armazenamento da máquina.
  • Depois que uma máquina em execução é movida com sucesso para outro nó, ela não aparece mais como parada ou "parando": enquanto a migração está em andamento, a própria migração controla o estado da máquina.
  • Uma máquina movida sem parada para o nó proprietário do seu armazenamento não aparece mais como em execução remota — ela é executada localmente nesse nó.
  • A migração entre locais de armazenamento não pode mais relatar sucesso enquanto perde a máquina: os dados de origem são excluídos somente depois que a configuração é confirmada como aplicada no destino. A reentrega da mesma resposta do nó receptor não exclui mais os dados de origem uma segunda vez.
  • Duas solicitações consecutivas de migração para a mesma máquina não iniciam mais duas migrações.
  • Uma solicitação de migração rejeitada informa o motivo real: um tipo de migração inválido é rejeitado como tipo inválido, e uma solicitação para uma máquina inexistente informa que a máquina não foi encontrada.
  • Uma clonagem interrompida não deixa mais uma máquina fantasma — um registro com todos os seus endereços e portas de console reservados que não existe em nenhum nó.
  • Uma importação de máquina interrompida não deixa mais a máquina parcialmente importada.

Pools, discos e inventário

  • Depois que um pool é movido para outro nó, a interface mostra o nó em que o pool está realmente em execução: o Center verifica o proprietário em relação ao estado do cluster uma vez por minuto. Um pool que não está em execução em nenhum nó é exibido no último nó conhecido.
  • O uso dos pools e os tamanhos dos snapshots voltam a ser atualizados. Os nós enviavam esses dados por um novo canal, mas o Center não os entendia e os descartava silenciosamente — o que fazia a criação de máquinas com seleção automática de pool retornar "pool not found".
  • A lista de discos físicos do cluster volta a ser preenchida: o inventário de hardware parava logo no início e não registrava nada — nem discos ou gabinetes, nem interfaces de rede físicas ou interfaces de agregação de links, nem dados SMBIOS — enquanto relatava sucesso. A coleta das interfaces de rede também foi corrigida separadamente.
  • Um disco físico não fica mais preso no estado "online no cluster": durante o inventário, o Center atualiza esse sinalizador para corresponder ao estado real no nó, e o disco volta a ficar disponível para operações.
  • Uma resposta atrasada a uma operação em um disco físico não limpa mais a proteção já definida pela próxima operação no mesmo disco.

VDCs, armazenamento e redes

  • Um VDC com uma reserva de volume travada pode ser excluído novamente. Uma reserva incompleta (sem resposta recebida do controlador) era tratada como um volume real e bloqueava a exclusão permanentemente.
  • O espaço da cota do VDC reservado por uma criação incompleta de armazenamento ou volume não é mais perdido para sempre: a reserva é liberada automaticamente.
  • Uma falha na etapa final da exclusão de um VDC com armazenamento não deixa mais resquícios que não podem ser excluídos.
  • A exclusão de um volume de armazenamento não falha mais se o seu mapeamento já tiver sido removido do lado do armazenamento: o erro "LUN does not exist" é reconhecido como trabalho já concluído.
  • O espaço disponível no cartão do volume significa o espaço restante do próprio volume, e não o espaço livre do pool.
  • Criar ou modificar um conjunto iSCSI CHAP sem o par de nome de usuário e senha mútuos é rejeitado imediatamente com um erro claro, e não mais tarde pelo nó. Renomear o grupo ou alterar apenas a senha preserva o par mútuo.
  • Renomear um grupo de iniciadores ou um grupo de autenticação do armazenamento para um nome já em uso é rejeitado com um erro claro antes de contatar o controlador. O cliente de API consegue distinguir pelo código de resposta um recurso Unified Storage desativado, uma falha de infraestrutura e um erro de entrada.
  • A criação de uma rede não é mais rejeitada com a rede removida do banco de dados quando ela já foi criada nos nós: cada resposta é contabilizada para um nó específico. O mesmo vale para a exclusão e a modificação de redes.
  • Uma falha na exclusão de um edge não o destrói mais de forma irreversível: nada irreversível acontece até que a exclusão da máquina seja confirmada, e o roteador edge e todas as suas regras permanecem no lugar.
  • Uma falha ao enviar um comando a um nó não deixa mais uma operação listada como em execução. Isso se aplica a operações de sistema de arquivos e de pool, à inicialização, parada, reinicialização, exclusão e configuração de roteadores edge e à configuração de iSCSI para VDCs.

Usuários e API

  • Especificar um papel inexistente ao atribuir um papel retorna um erro claro "role not found" em vez de uma falha do banco de dados; os erros "papel já atribuído" e "não é possível atribuir um papel a um usuário do sistema" têm códigos diferentes.
  • O log de solicitações de API volta a ser preenchido em clusters em que a sua tabela foi configurada manualmente — e a obtenção do resultado de uma tarefa pelo ID também volta a funcionar. Nesses clusters, antes ela retornava "task not found" para toda solicitação. A proteção contra a execução repetida de solicitações também passou a funcionar lá. Uma falha na gravação do log aparece como uma entrada separada no log do serviço, e a frequência das falhas é resumida a cada cinco minutos.

3.0.5 — 31 de julho de 2026​

Uma versão importante. Uma biblioteca de imagens de SO de referência agora está disponível, com fontes externas e suporte a importação. Os discos físicos agora têm um ciclo de vida completo (discos reserva, reivindicação de discos no cluster, substituição de discos com falha), as máquinas virtuais agora podem ser clonadas, e os dados de disco podem ser copiados para outro cluster. O log de segurança também foi reforçado: agora ele inclui eventos dos próprios nós. As alterações visíveis ao usuário estão listadas abaixo.

Destaques​

  • Biblioteca de imagens de SO — um catálogo com imagens compartilhadas e privadas, conexões com fontes externas, importação com distribuição automática pelo armazenamento e remoção de uma imagem de todo o cluster em uma única operação.
  • Ciclo de vida dos discos físicos — discos reserva (Hot Spare), reivindicação e liberação de discos no cluster, substituição de um disco com falha em um pool e verificação da integridade dos pools com uma única solicitação. Essas operações estão disponíveis apenas para o administrador principal do cluster.
  • Clonagem de VMs — uma cópia instantânea de uma máquina parada no mesmo armazenamento, com a mesma configuração.
  • Backup entre clusters — cópia completa e incremental dos dados de disco das VMs para outro cluster.
  • Log de segurança nos nós — entrada via SSH, alterações de parâmetros do kernel, contas locais, reinicialização do nó e kernel panic do nó.

Alterações incompatíveis​

  • Uma imagem de SO é identificada por um ID global em vez de um número curto. As listas de imagens, os cartões e as listas de máquinas, a criação de máquinas e a transferência a partir da área de importação usam o novo ID — os clientes de API precisam enviá-lo e esperá-lo no novo formato. As máquinas existentes mantêm suas associações com as imagens.

Adicionado​

Biblioteca de imagens de SO

  • Uma imagem pode ser compartilhada com todo o cluster ou privada — visível apenas para o seu VDC. As imagens registradas anteriormente continuam funcionando: as imagens comuns passam a ser visíveis para todo o cluster, enquanto as imagens que já eram privadas permanecem privadas.
  • Cada imagem é acompanhada pelo estágio do seu ciclo de vida, presença no armazenamento, checksum de integridade e número de versão.
  • Bibliotecas de imagens externas: o administrador registra uma fonte pelo seu endereço e pode ver a lista de fontes disponíveis para ele. Endereços inseguros e de uso especial, bem como URLs não criptografadas sem autorização explícita, são rejeitados com uma explicação.
  • Importação de uma imagem a partir de uma biblioteca conectada: o arquivo é baixado uma vez, sua integridade é verificada, e a imagem é então distribuída pelo armazenamento. O progresso da importação é visível em tempo real — a porcentagem geral de conclusão e a porcentagem de cada local de armazenamento.
  • Uma lista unificada de gerenciamento de imagens mostra o catálogo completo do cluster, incluindo imagens que ainda estão sendo baixadas, e a origem de cada imagem — a biblioteca da qual ela foi importada.
  • Antes de excluir uma imagem, é possível ver as suas dependências: quais nós e locais de armazenamento contêm descendentes e quais máquinas são executadas neles. A exclusão de uma imagem de todos os nós e do armazenamento é uma única operação e exige a confirmação explícita de que ela é irreversível.

Gerenciamento de discos físicos

  • Discos reserva (Hot Spare): um disco livre pode ser marcado como reserva, e a marcação pode ser removida. O papel do disco é atualizado depois que o nó responde.
  • Reivindicação e liberação de um disco no cluster (Claim/Unclaim): um disco bruto é colocado online no cluster e retirado novamente; ele não é adicionado a um pool.
  • Substituição de um disco com falha em um pool: antes de começar, o sistema consulta o nó e não inicia a substituição se o disco substituto não estiver livre.
  • Integridade dos pools de armazenamento com uma única solicitação — para o cluster inteiro ou para um nó. Os nós são consultados em tempo real, e um nó indisponível é marcado com um estado separado.
  • Uma única solicitação da lista de discos do nó mostra o papel de cada disco (livre, particionado, em um pool, reserva) e o sinalizador "online no cluster".
  • O Center recebe eventos de disco dos nós — um disco recém-conectado, a substituição automática de um disco com falha por um reserva e a degradação.

Máquinas virtuais

  • Clonagem de VMs: uma cópia de uma máquina parada com a mesma configuração — CPU, memória, discos e rede. Os discos são clonados instantaneamente e quase não consomem espaço adicional. O clone é criado no armazenamento da máquina de origem.
  • Uma máquina com clones não pode ser excluída até que os clones sejam excluídos: em vez de um erro de armazenamento, é exibida uma lista dos clones bloqueadores.

Armazenamento

  • A tela All volumes: o administrador do cluster pode ver os volumes de todos os VDCs em uma única tabela, com filtros e paginação.
  • A tela de visão geral do acesso por protocolo: cinco números consistentes para o cluster inteiro em uma única tela.
  • A lista e os cartões dos grupos de portais iSCSI mostram o pool e o VDC; o cartão também mostra o endereço do endpoint.

Backup

  • Cópia dos dados de disco das máquinas virtuais para outro cluster — completa e incremental.

Log de segurança

  • Eventos nos nós do cluster: entrada via SSH (bem-sucedida e com falha), alterações de parâmetros do kernel do nó e criação e exclusão de contas locais.
  • Eventos de sistema do nó: inicialização, desligamento normal e anormal e kernel panic — com identificação do nó de origem.
  • As verificações de configuração de VMs agora registram tanto a própria verificação quanto o seu veredito. Uma divergência detectada em relação à configuração de referência é registrada como um evento separado de violação de integridade com a severidade "requer resposta imediata": ele entra no contador de eventos críticos e nos alertas por e-mail.
  • Os eventos de inicialização, parada, suspensão e retomada de VMs agora incluem o motivo da ação; os eventos de inicialização e parada do software de virtualização incluem o motivo da parada.
  • O encerramento anormal do software de virtualização (término do processo, travamento, falta de energia da máquina de gerenciamento) não passa mais despercebido.

Melhorado​

  • A importação de imagens está mais confiável: qualquer falha marca a imagem como "com falha", o que é visível no catálogo — a importação não trava mais silenciosamente.
  • A proteção ao trabalhar com fontes externas de imagens foi reforçada: o acesso a endereços internos e de uso especial é bloqueado independentemente de como o endereço é representado.
  • Os dados da imagem vindos da fonte — versão, tamanhos, checksum e carimbo de data e hora — são validados antes da importação.
  • A criação de VMs sem seleção explícita de armazenamento ficou mais inteligente: se uma imagem estiver distribuída apenas para alguns locais de armazenamento, o sistema seleciona automaticamente um adequado.
  • Os escopos de visibilidade das imagens agora são consistentes: a lista de referência de perfis e a lista de gerenciamento mostram o mesmo conjunto de imagens.
  • As operações de VMs e de armazenamento às quais o nó nunca responde não ficam mais pendentes indefinidamente — elas são encerradas quando o tempo limite expira.

Corrigido​

  • As operações não desaparecem mais sem deixar rastro quando o message broker é reiniciado ou o dispatcher é encerrado de forma anormal. Uma solicitação reentregue não é executada uma segunda vez: uma chamada síncrona recebe o erro "a solicitação já existe" e pode ser repetida com um novo ID.
  • Iniciar uma VM não pode mais sobrecarregar um nó contornando as verificações. A recuperação automática das máquinas após o retorno de um nó ao serviço as distribui pelo cluster, em vez de colocá-las todas em um único nó. A retomada de uma máquina suspensa é rejeitada se o nó não tiver memória suficiente ou se a cota do VDC for excedida — exatamente como em uma inicialização comum.
  • Corrigida uma máscara de sub-rede incorreta em VMs novas e reiniciadas — o convidado volta a ficar acessível pela rede a partir do exterior.
  • Corrigida uma violação do isolamento entre VDCs: um administrador de um VDC não pode mais ler nem modificar as propriedades de um disco de outro VDC conhecendo o seu ID interno.
  • Os usuários não podem mais mover a VM de outro usuário para o seu próprio VDC a partir de um VDC ao qual não têm acesso.
  • Corrigido um erro que impedia um usuário com papel de administrador nos seus VDCs de ver a árvore de recursos.
  • Corrigidas divergências entre o banco de dados e os nós do cluster ao adicionar e remover um adaptador de rede e ao excluir e criar uma rede.
  • Corrigida uma divergência no log de segurança: clicar no indicador de eventos críticos não mostra mais uma lista vazia.

3.0.4 — 16 de julho de 2026​

Uma versão importante: as redes agora têm suporte completo a IPv6, os data centers virtuais (VDCs) têm o seu próprio armazenamento em bloco acessível via iSCSI, e a configuração de uma VM em execução agora pode ser verificada em relação à configuração de referência em uma única ação. As alterações visíveis ao usuário estão listadas abaixo.

Destaques​

  • IPv6 (pilha dupla) — redes e portas funcionam com IPv4 e IPv6 simultaneamente; tudo o que antes aceitava um endereço IP ou CIDR agora suporta IPv6 junto com IPv4.
  • Armazenamento do VDC (Unified Storage) — o ciclo de vida completo do armazenamento em bloco dentro de um VDC: ativação do armazenamento, um target iSCSI, volumes, mapeamento de volumes para clientes via iSCSI, grupos de iniciadores e de portais e autenticação CHAP — tudo gerenciado pela interface web.
  • Verificações de configuração de VMs — verificação da configuração real de uma VM em execução em relação à configuração de referência em uma única ação, com cada verificação registrada no log de segurança.

Adicionado​

IPv6 (pilha dupla)

  • As redes podem ser criadas com endereçamento IPv4 e/ou IPv6: especificar um intervalo IPv4 ou um intervalo IPv6 é suficiente para criar uma rede. Um gateway padrão separado pode ser especificado para IPv6 — o sistema verifica se ele pertence à rede.
  • Até oito endereços IPv6 podem ser atribuídos a uma porta de VM ou de edge ao criar uma VM, adicionar um adaptador de rede ou criar um roteador edge. Se nenhum endereço IPv6 for especificado, o comportamento permanece inalterado.
  • Sinalizadores de porta separados controlam quais famílias de endereços (IPv4, IPv6) são usadas para alocar endereços.
  • Os endereços IPv6 são retornados nas respostas da API junto com os IPv4: nas listas de redes e de redes do VDC, nos cartões e nas listas de VMs, no cartão do edge e em todas as operações com pools de endereços.
  • Valores IPv6 são aceitos em todos os lugares onde antes só era aceito IPv4: regras de firewall e NAT do edge, servidores DNS das VMs e configurações de acesso remoto dos usuários.

Armazenamento do VDC (Unified Storage)

  • Ativação do armazenamento em um VDC: o administrador especifica um nome e um pool, e o sistema cria a área raiz de armazenamento. Uma instância de armazenamento por VDC.
  • Configuração de um target iSCSI com um único comando: o nome do target é derivado do nome do armazenamento, e o target é criado no controlador do pool. Os detalhes do target mostram o grupo de portais, o número de sessões ativas e o grupo CHAP atribuído.
  • Volumes: criação com validação da cota do VDC, listagem e exclusão. O cartão de detalhes do volume mostra os parâmetros e as métricas atuais — espaço usado e disponível, taxas de compressão e deduplicação e status do mapeamento.
  • Mapeamento de um volume para clientes via iSCSI (Map): o volume é atribuído a um grupo de iniciadores com o número de LUN especificado e fica visível apenas para esse grupo. A operação inversa (Unmap) desmapeia o volume preservando o grupo e o target.
  • Grupos de iniciadores — listas de clientes (IQNs) e redes autorizados a acessar os volumes: criação, visualização, alteração de membros e exclusão. As alterações nos membros do grupo afetam imediatamente o acesso a todos os seus volumes.
  • Grupos de portais iSCSI: criação, visualização e exclusão. Um grupo vinculado a um target não pode ser excluído.
  • Autenticação CHAP: conjuntos nomeados de contas (vários pares "usuário/segredo", incluindo CHAP mútuo), atribuição a um target e alteração de membros. Os segredos não são exibidos após a criação. Um grupo CHAP pode ser especificado ao criar um target.
  • A página de detalhes do VDC na interface web agora tem a aba Storage: uma visão geral do armazenamento (propriedades, status dos protocolos, capacidade, formulário de configuração), uma lista de volumes e uma seção iSCSI. Foram adicionadas páginas de detalhes para volumes (com as ações Map / Unmap), targets (com gerenciamento de usuários CHAP) e grupos de iniciadores. O armazenamento é ativado por um assistente passo a passo, e uma etapa Unified Storage também foi adicionada ao assistente de criação de VDC.
  • Todo o subsistema é controlado por um único sinalizador do cluster e vem desativado por padrão.

Máquinas virtuais

  • Verificações de configuração de VMs: uma nova ação compara a configuração real de uma VM em execução (como o hipervisor a vê) com o registro de referência no banco de dados do vStack Center e retorna o resultado "corresponde / não corresponde" com o número de divergências. Cada verificação é registrada no log de segurança com um ID de solicitação de ponta a ponta. Na interface web, o resultado está disponível na janela Config integrity da página da VM.

Segurança

  • Saída efetiva: uma nova ação encerra imediatamente a sessão atual do usuário ou, opcionalmente, todas as suas sessões em todos os dispositivos; a entrada anterior deixa de ser válida. Cada saída é registrada no log de segurança — quem, quando e de onde.
  • Uma chave do cluster para a funcionalidade de edge. Quando a chave está desativada, o vStack Center rejeita todas as operações com roteadores edge, incluindo a visualização de listas e cartões, e registra cada tentativa no log de segurança. Na distribuição padrão, a chave vem ativada e o comportamento permanece inalterado. Os roteadores edge que já estão em execução continuam funcionando; o vStack Center deixa de gerenciá-los.

Alterado​

  • A exclusão de um VDC com armazenamento ativado agora é feita em cascata: o sistema remove sequencialmente os mapeamentos de volumes, exclui o target e a partição de disco e, em seguida, exclui o próprio VDC. Se restarem volumes no armazenamento, a exclusão é interrompida com uma solicitação para excluí-los primeiro.
  • Se o nó em que uma VM está em execução estiver indisponível, as operações da VM agora retornam um erro separado "nó indisponível" — antes, essa situação retornava um erro genérico sem motivo.
  • O cookie de sessão agora é enviado apenas via HTTPS: aos atributos HttpOnly e SameSite=Strict agora se junta Secure.
  • O tratamento do token de acesso ao console da VM foi reforçado: ele não aparece mais nos logs do serviço, tem tempo de vida limitado (5 minutos por padrão) e é estritamente de uso único; os arquivos de serviço do token ficam inacessíveis para outros usuários no nó.
  • A lista de VDCs foi redesenhada como uma tabela plana com um filtro por estado do armazenamento. A visão geral do VDC foi atualizada: anéis de utilização de recursos, cotas, papéis e configurações.

Corrigido​

Rede

  • Corrigido o erro "network is not assigned to this vDC", que podia ocorrer ao criar uma VM mesmo com a rede atribuída corretamente.
  • Se a criação de uma rede falhar em um nó, não permanece mais no banco de dados um registro da rede inexistente — a rede não aparece nas listas.
  • Um intervalo sem máscara de rede (por exemplo, 192.0.2.1 em vez de 192.0.2.0/24) agora é rejeitado com um erro de validação claro — antes, a solicitação terminava com um erro interno.

Máquinas virtuais

  • Corrigido um erro intermitente ao criar uma VM sob carga simultânea: o registro de um disco e a sua atribuição à VM podiam falhar com um erro interno mesmo com todos os parâmetros válidos.
  • Corrigida a entrega do status das VMs: o status exibido na interface não volta mais a um status desatualizado após eventos do nó.

Log de segurança

  • Quando várias instâncias do dispatcher eram executadas simultaneamente, os registros do log podiam comprometer a verificabilidade da cadeia de hashes. Os registros agora são serializados, e a cadeia continua verificável.
  • Corrigido o enriquecimento dos registros do log com informações do armazenamento do VDC — o nome do pool volta a ser adicionado aos registros.
  • Na interface do log, o botão de filtro não desaparece mais quando restam menos de cinco eventos após a filtragem; as cores das etiquetas de severidade foram padronizadas.

Armazenamento

  • Os nomes das partições de disco do armazenamento agora são únicos entre os VDCs — ativar armazenamento com o mesmo nome em VDCs diferentes não causa mais conflito.
  • Os administradores de VDC agora têm acesso à lista de grupos de portais iSCSI, sem a qual não conseguiam mapear um volume mesmo tendo permissão para a própria ação.

Para uma descrição completa das alterações da API, consulte a documentação de operação do vStack Center: as seções "Gerenciamento de redes", "Armazenamento do VDC", "Máquinas virtuais" e "Gerenciamento de acesso".

3.0.3​

Esta versão se concentra no acesso. O modelo de papéis passou de uma associação fixa a números de papéis para privilégios com escopo, com papéis personalizados e dois novos papéis fixos. A entrada agora é protegida por uma política de senhas e por proteção contra força bruta. A camada de gerenciamento também passou para a arquitetura atual do dispatcher do cluster.

Destaques​

  • Privilégios em vez de números de papéis. O acesso é determinado por um privilégio com escopo, e não pelo papel do usuário. As verificações são feitas de forma centralizada para cada método. As atribuições existentes foram migradas automaticamente do modelo antigo.
  • Papéis personalizados. O administrador do cluster monta um papel a partir de privilégios e o atribui dentro de um VDC. Os números dos papéis personalizados começam em 10000; os papéis fixos são protegidos contra modificação e exclusão.
  • O papel Security Admin (ID 6) — escopo de cluster, apenas para auditoria: visualização, filtragem e exportação do log de eventos de segurança e verificação da integridade. Ele não tem acesso a máquinas, redes, usuários ou infraestrutura. O papel atende aos requisitos do FSTEC (Serviço Federal de Controle Técnico e de Exportação da Rússia) para um administrador de segurança.
  • O papel VM Developer (ID 7) — escopo de VDC: criação de máquinas e edição da sua configuração, incluindo discos e adaptadores de rede. Esse papel não pode iniciar, parar ou excluir máquinas, acessar o console nem trabalhar com snapshots.
  • Política de senhas e proteção contra força bruta. Os requisitos de senha são configuráveis, as tentativas com falha são contadas, e a conta é bloqueada quando o limite é atingido.
  • Seleção automática do nó ao iniciar uma VM. Uma máquina que usa o modo de disco NVMe sem nó selecionado explicitamente é iniciada no nó menos carregado no estado ONLINE. Uma máquina que usa virtio-blk continua sendo iniciada apenas no nó proprietário do seu pool.

Adicionado​

Papéis e privilégios

  • Papéis personalizados: criação, modificação, exclusão e visualização. O gerenciamento está disponível apenas para o papel Cluster Master. A lista de papéis mostra o criador de cada papel personalizado.
  • O escopo "criador do objeto": um administrador de VDC pode ver e gerenciar suas próprias redes e roteadores edge mesmo fora do seu VDC.
  • 24 privilégios Own para acesso a objetos de propriedade do usuário: 8 para redes e 16 para roteadores edge.
  • Acesso de leitura ao registro de acesso: mapeamentos de papéis para privilégios, o registro de privilégios com categorias e escopos e as listas de referência de categorias e escopos. Disponível para todos os sete papéis fixos.

Entrada e contas

  • Requisitos de senha configuráveis: comprimento mínimo, letra maiúscula, letra minúscula, dígito, caractere especial e proibição de coincidir com o nome da conta.
  • A reutilização da senha atual é proibida.
  • Um contador de tentativas de entrada com falha, com bloqueio automático quando o limite é atingido e desbloqueio automático quando o período de bloqueio expira. Um período de bloqueio zero torna o bloqueio permanente: somente o administrador do cluster pode removê-lo.
  • Troca forçada de senha: na primeira entrada ou a critério do administrador, é emitido um token de uso único válido por 5 minutos em vez de uma sessão comum. Ele permite apenas alterar a própria senha do usuário e ler as configurações de segurança.
  • Desbloqueio manual de contas pelo administrador do cluster.
  • As respostas de entrada com falha são mais informativas: a resposta de senha incorreta inclui o número de tentativas com falha, o limite e o horário da primeira falha; a resposta de bloqueio temporário inclui o horário em que o bloqueio expira.
  • Os cartões de usuário e a lista de usuários mostram o contador de tentativas com falha, o horário da primeira falha, o período de bloqueio e o sinalizador de troca obrigatória de senha. Um bloqueio expirado é removido quando o registro é lido.

Máquinas virtuais

  • Os cartões de máquinas e a lista de máquinas mostram o nó mesmo depois que a máquina é parada.
  • Um pool de armazenamento específico pode ser selecionado ao criar uma máquina; se nenhum for especificado, o pool é selecionado automaticamente.
  • A visão geral do cluster mostra a memória alocada e disponível no nível do nó.

Melhorado​

  • Validação de dados ao criar e modificar uma VM: alinhamento da memória a 4 KiB, o limite superior de memória com base no máximo do cluster, o nome do host na seção do convidado e a chave de entrada SSH por senha. O redimensionamento de discos volta a ser verificado em relação ao máximo do cluster.
  • O perfil de SO da máquina de serviço do edge agora é uma opção do cluster, em vez de estar fixo no template.
  • As senhas são convertidas em hash no próprio dispatcher, e não por funções do banco de dados.

Corrigido​

  • Corrigidos erros visíveis ao usuário no tratamento de operações assíncronas.
  • Trocas de senha simultâneas para o mesmo usuário não causam mais condição de corrida. O token de troca forçada de senha agora é realmente de uso único: uma solicitação simultânea com o mesmo token é rejeitada. Após uma troca de senha bem-sucedida, todas as sessões emitidas anteriormente para esse usuário são encerradas.
  • Os erros para objetos inexistentes não aparecem mais como erros de permissão. Iniciar, parar e reiniciar uma máquina inexistente agora retornam "a máquina não existe", e não "a máquina está fora do seu escopo de visibilidade". Os erros de limite de largura de banda de disco também distinguem entre uma máquina inexistente, um disco não conectado à máquina e uma máquina fora do escopo de visibilidade.
  • Uma solicitação do histórico de uma máquina com um ID inexistente retorna um erro claro, e não uma lista vazia que não podia ser distinguida de "ainda sem histórico".
  • Atribuir ou remover um papel de um usuário inexistente retorna "usuário não encontrado" em vez de um erro obscuro do banco de dados.
  • Nomes e descrições de VDC longos demais são rejeitados com um erro de validação claro, e não com um erro do banco de dados. O comprimento é medido em caracteres, de modo que texto em cirílico é medido corretamente.
  • Os roteadores edge sem portas atribuídas voltam a aparecer na lista.
  • O uso de endereços por VDC é calculado corretamente: o administrador do cluster recebe os resultados do VDC especificado, um usuário sem VDC recebe um resultado vazio, e o VDC de outro usuário não retorna mais dados.
  • O inventário de discos físicos não cria mais registros duplicados por causa de espaços no número de série recebido do agente do nó.
  • A visão geral do cluster leva em conta a memória e as CPUs de máquinas movidas entre nós.

3.0.2​

Adicionado​

  • Operações básicas de gerenciamento do cluster, dos nós e das máquinas virtuais.

Veja também​