Pular para o conteúdo principal

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.

EntidadeO que éEscopo de propriedade
PoolO pool ZFS do cluster que hospeda o dataset raiz do armazenamentoCluster
Dataset raizUm dataset no formato <пул>/<имя>; o nome contém de 1 a 63 caracteres: letras latinas minúsculas, dígitos, pontos e hifensUm VDC
VolumeUm zvol com o nome completo <пул>/.vol/<имя>; o tamanho é especificado em GB, e o tamanho de bloco padrão é 32768Um VDC
Target iSCSIUm ponto de acesso com um IQN no formato iqn.2024-01.io.vstack:<имя хранилища>Um VDC
LUNUm número em 0..255 sob o qual o volume é visível no targetUm target
Grupo de portaisUm conjunto de pares "endereço + porta TCP" nos quais o target escutaUm pool
PortalUm par IP:port dentro de um grupo. Ele não é gerenciado como um objeto separado — os portais são definidos pela composição do grupoGrupo de portais
Grupo de iniciadoresUma lista de IQNs de iniciadores e de redes autorizadas em notação CIDRUm VDC
Grupo de autenticação CHAPUm conjunto de credenciais para proteção do iSCSI por senhaUm 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çãoComportamento da interfaceExemplos
Leitura de registros armazenadosResponde imediatamente usando os registros do vStack CenterResumo do armazenamento, lista de volumes, visão geral de acesso do cluster
Leitura de métricas ao vivoConsulta o controlador SAN; se ele estiver indisponível, deixa os campos ao vivo vazios, mas abre a páginaCartão do volume, capacidade atual do armazenamento
AlteraçãoAguarda a confirmação do controlador do pool e mantém o indicador de progresso exibidoAtivação do armazenamento, criação de um grupo de portais
Sequência de alteraçõesAguarda a conclusão de toda a sequência de etapas no controladorMapeamento 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.

InvarianteO que acontece se for violada
Uma instância de armazenamento por VDCUma nova ativação é rejeitada com o código -45007
Um pool por instância de armazenamentoO pool é obtido do armazenamento do VDC e não pode ser selecionado
Um target por VDCUma nova configuração do iSCSI é rejeitada com o código -45014
O nome do volume é único no armazenamento do VDCUm nome já em uso é rejeitado com o código -45018
Um volume é exportado para exatamente um grupo de iniciadoresJá mapeado — código -45027
O número do LUN está disponível no targetNúmero já em uso — código -45029
Um grupo de portais é imutávelSua composição não pode ser editada: crie um novo grupo em vez disso
Um grupo de autenticação CHAP por targetAtribuir 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égioNúmeroConcedido a
Enable vDC Storage13000Cluster master (escopo global obrigatório)
iSCSI Create Portal Group13004Cluster master
iSCSI Delete Portal Group13005Cluster master
iSCSI View Portal Group13006Cluster master, administrador de VDC (todo o cluster)
iSCSI List Portal Groups13007Cluster master, administrador de VDC (todo o cluster)
Configure vDC Storage iSCSI13009Cluster master
View vDC Storage13010Cluster master, administrador de VDC (seus VDCs)
List vDC Storages13011Cluster master, administrador de VDC (seus VDCs)
View vDC Storage iSCSI Detail13026Cluster 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​

TarefaOnde está descrita
Ativar o armazenamento do VDCComo criar um VDC com Unified Storage
Criar, ler e excluir um volumeVolumes do VDC
Configurar o ponto de acesso e o CHAPConfiguração de iSCSI e CHAP
Definir quem está autorizado e por quais endereçosGrupos de iniciadores e de portais
Exportar um volume para um host e remover o mapeamentoConexão de volumes via iSCSI
Ver o cluster inteiroEsta 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​

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.