Armazenamento do VDC — modelo e arquitetura
O que é
O armazenamento do VDC (Unified Storage) é um armazenamento em blocos que pertence a um único data center virtual (VDC) e é exportado para hosts externos via iSCSI. O armazenamento usa um pool do cluster: o vStack Center cria um dataset ZFS raiz no pool e o associa ao VDC. Os volumes são criados dentro desse dataset, são contabilizados na cota de armazenamento do seu VDC e são exportados como LUNs.
O modelo é limitado e previsível: uma instância de armazenamento por VDC, um pool para esse armazenamento e um target iSCSI. Essas restrições rígidas simplificam a principal questão operacional: "A quem pertence este volume e quem pode vê-lo?" A resposta é sempre inequívoca, porque um volume tem exatamente um VDC proprietário e é exportado para exatamente um grupo de iniciadores.
Componentes do armazenamento
As entidades formam uma cadeia do hardware até o consumidor. O pool fornece o espaço, o dataset raiz isola o espaço do VDC, o volume é a unidade exportada, o target e o LUN fornecem o acesso, e os grupos de iniciadores e de portais definem quem pode se conectar e por quais endereços.
| Entidade | O que é | Escopo de propriedade |
|---|---|---|
| Pool | O pool ZFS do cluster que hospeda o dataset raiz do armazenamento | Cluster |
| Dataset raiz | Um dataset no formato <пул>/<имя>; o nome contém de 1 a 63 caracteres: letras latinas minúsculas, dígitos, pontos e hifens | Um VDC |
| Volume | Um zvol com o nome completo <пул>/.vol/<имя>; o tamanho é especificado em GB, e o tamanho de bloco padrão é 32768 | Um VDC |
| Target iSCSI | Um ponto de acesso com um IQN no formato iqn.2024-01.io.vstack:<имя хранилища> | Um VDC |
| LUN | Um número em 0..255 sob o qual o volume é visível no target | Um target |
| Grupo de portais | Um conjunto de pares "endereço + porta TCP" nos quais o target escuta | Um pool |
| Portal | Um par IP:port dentro de um grupo. Ele não é gerenciado como um objeto separado — os portais são definidos pela composição do grupo | Grupo de portais |
| Grupo de iniciadores | Uma lista de IQNs de iniciadores e de redes autorizadas em notação CIDR | Um VDC |
| Grupo de autenticação CHAP | Um conjunto de credenciais para proteção do iSCSI por senha | Um VDC |
O nome do armazenamento não é apenas um rótulo: o IQN do target é derivado dele. O segmento
de nome do dataset raiz após a / é acrescentado ao prefixo iqn.2024-01.io.vstack:.
Por isso, os nomes de armazenamento devem ser únicos no cluster — caso contrário, o segundo
target não pode ser criado.
Como as operações funcionam
O vStack Center não acessa o pool diretamente. Os comandos de armazenamento são enviados ao controlador SAN do pool que hospeda o dataset raiz. Isso causa diferenças no comportamento da interface que é importante entender — elas determinam quando você vê o resultado.
| Classe de operação | Comportamento da interface | Exemplos |
|---|---|---|
| Leitura de registros armazenados | Responde imediatamente usando os registros do vStack Center | Resumo do armazenamento, lista de volumes, visão geral de acesso do cluster |
| Leitura de métricas ao vivo | Consulta o controlador SAN; se ele estiver indisponível, deixa os campos ao vivo vazios, mas abre a página | Cartão do volume, capacidade atual do armazenamento |
| Alteração | Aguarda a confirmação do controlador do pool e mantém o indicador de progresso exibido | Ativação do armazenamento, criação de um grupo de portais |
| Sequência de alterações | Aguarda a conclusão de toda a sequência de etapas no controlador | Mapeamento e desmapeamento de um volume |
Os registros são gravados mediante confirmação. Se o controlador rejeitar a operação, nenhum grupo, target ou volume aparece no vStack Center — o motivo da rejeição é repassado pelo controlador sem alterações. O inverso também é verdadeiro: um objeto na lista significa que o controlador confirmou a operação. Esses objetos não têm um estado intermediário de "criação".
A exclusão, por sua vez, tem um estado intermediário. A partir da 3.1.0, uma remoção de armazenamento interrompida é exibida como um estado separado: ele indica que a exclusão do VDC deve ser executada novamente — antes, esse armazenamento parecia estar ativado e íntegro. Uma remoção bem-sucedida limpa esse estado.
Invariantes do modelo
Algumas restrições são incorporadas ao modelo e verificadas antes de contatar o controlador. Conhecer essas regras economiza tempo ao investigar falhas.
| Invariante | O que acontece se for violada |
|---|---|
| Uma instância de armazenamento por VDC | Uma nova ativação é rejeitada com o código -45007 |
| Um pool por instância de armazenamento | O pool é obtido do armazenamento do VDC e não pode ser selecionado |
| Um target por VDC | Uma nova configuração do iSCSI é rejeitada com o código -45014 |
| O nome do volume é único no armazenamento do VDC | Um nome já em uso é rejeitado com o código -45018 |
| Um volume é exportado para exatamente um grupo de iniciadores | Já mapeado — código -45027 |
| O número do LUN está disponível no target | Número já em uso — código -45029 |
| Um grupo de portais é imutável | Sua composição não pode ser editada: crie um novo grupo em vez disso |
| Um grupo de autenticação CHAP por target | Atribuir um novo grupo substitui o anterior |
Capacidade e cota
A capacidade do armazenamento do VDC é igual à cota de armazenamento do VDC — o armazenamento não tem um limite separado. No resumo do armazenamento, a cota aparece no campo Capacity do cartão Properties. A coluna Storage da tela Virtual Data Centers mostra o espaço usado em todos os VDCs; o próprio limite é editado nas configurações do VDC usando o campo Storage (GB).
A cota abrange todo o espaço usado pelo VDC, não apenas os volumes do armazenamento: os discos de máquinas
virtuais e os volumes criados anteriormente são somados. A verificação é executada antes de
contatar o controlador e sob um bloqueio no VDC — duas requisições simultâneas
não conseguem ultrapassar o limite em conjunto. Se o tamanho solicitado não couber, a operação
é rejeitada com o código -45017, e a mensagem mostra o espaço solicitado e o disponível.
Feature flag
Todo o domínio é controlado pela flag feature.unified_storage nas opções
do cluster. A flag é desativada por padrão. Enquanto ela estiver desativada, qualquer operação de armazenamento
é rejeitada após a verificação de privilégios com o código -45001 e a mensagem "Unified Storage
feature is disabled". O papel Cluster master não contorna a flag.
Quem pode ver o quê
O domínio é dividido entre os níveis de cluster e de VDC. A ativação do armazenamento e a criação e exclusão de grupos de portais são reservadas ao papel Cluster master. Um administrador de VDC pode ler o seu armazenamento e trabalhar com seus volumes e grupos de iniciadores. Ele pode ler os grupos de portais de todo o cluster; esse acesso não é limitado ao seu VDC.
| Privilégio | Número | Concedido a |
|---|---|---|
Enable vDC Storage | 13000 | Cluster master (escopo global obrigatório) |
iSCSI Create Portal Group | 13004 | Cluster master |
iSCSI Delete Portal Group | 13005 | Cluster master |
iSCSI View Portal Group | 13006 | Cluster master, administrador de VDC (todo o cluster) |
iSCSI List Portal Groups | 13007 | Cluster master, administrador de VDC (todo o cluster) |
Configure vDC Storage iSCSI | 13009 | Cluster master |
View vDC Storage | 13010 | Cluster master, administrador de VDC (seus VDCs) |
List vDC Storages | 13011 | Cluster master, administrador de VDC (seus VDCs) |
View vDC Storage iSCSI Detail | 13026 | Cluster master, administrador de VDC (seus VDCs) |
Create vDC Volume | — | Cluster master, administrador de VDC (seu VDC) |
Delete vDC Volume | — | Cluster master, administrador de VDC (seu VDC) |
Map vDC Volume | — | Cluster master, administrador de VDC (seu VDC) |
Unmap vDC Volume | — | Cluster master, administrador de VDC (seu VDC) |
List All Volumes | — | Cluster master (escopo global) |
View Storage Overview | — | Cluster master (escopo global) |
Os privilégios 13006 e 13007 não levam o escopo em conta; por isso, um administrador de VDC pode ver os grupos de portais de todos os pools do cluster. Mesmo assim, ele não pode criá-los nem excluí-los.
Os privilégios 13010 e 13011 levam o escopo em conta: um administrador de VDC recebe dados
apenas dos VDCs que está autorizado a acessar. Uma requisição para outro VDC retorna
-403 sem revelar se esse VDC existe. A mesma abordagem protege as
leituras entre VDCs: a visão geral do cluster e a tabela combinada de volumes mostram a topologia
de todos os VDCs e, por isso, ficam indisponíveis para um administrador de VDC individual.
Visão geral de acesso do cluster
A visão do cluster fica na seção Unified Storage, sob o nó do cluster. A aba Overview mostra o bloco Protocol Access Overview — um funil de acesso com cinco contagens: Initiators → Portal Groups → VDC with Unified Storage → Targets → LUNs. Todas as contagens vêm de um único snapshot consistente; assim, os níveis do funil são aritmeticamente consistentes entre si.
O detalhamento é por protocolo: na versão atual, a tela tem uma coluna — iSCSI. Um cluster sem armazenamento mostra uma mensagem separada em vez de uma grade de zeros, enquanto um zero em um cluster não vazio é exibido como "0" — são estados diferentes. Um erro de carregamento também é distinguível de "sem dados".
A seção só é visível para o papel Cluster master: sem os privilégios de visão geral do cluster, o nó Unified Storage nem aparece na árvore.
Os grupos de portais do cluster ficam na mesma seção, na aba Protocols → seletor iSCSI.
Onde encontrar informações
| Tarefa | Onde está descrita |
|---|---|
| Ativar o armazenamento do VDC | Como criar um VDC com Unified Storage |
| Criar, ler e excluir um volume | Volumes do VDC |
| Configurar o ponto de acesso e o CHAP | Configuração de iSCSI e CHAP |
| Definir quem está autorizado e por quais endereços | Grupos de iniciadores e de portais |
| Exportar um volume para um host e remover o mapeamento | Conexão de volumes via iSCSI |
| Ver o cluster inteiro | Esta página, seção "Visão geral de acesso do cluster" |
Ordem de implantação
As etapas seguem uma sequência rígida, e cada etapa depende da anterior. O administrador do cluster prepara antecipadamente um grupo de portais no pool: sem ele, o formulário de configuração do iSCSI não permite prosseguir. Em seguida, ative o armazenamento no pool, configure o iSCSI, crie um grupo de iniciadores e só então mapeie os volumes.
Você pode criar volumes assim que o armazenamento for ativado — o iSCSI não é necessário para a criação; ele é necessário para o mapeamento.
Veja também
- Como criar um VDC com Unified Storage — o procedimento inicial, desde a criação de um VDC até a criação do primeiro volume.
- Pools de armazenamento — onde o dataset raiz reside e como a capacidade do pool é calculada.
- Cotas e recursos do VDC — como funciona a cota de armazenamento que determina a capacidade do armazenamento.
Métodos da API
Operações de API abordadas nesta página: vdc-storage-get, vdc-storage-list,
cluster-storage-overview, cluster-list-volumes — consulte a
referência da API.