Implantar aplicativos clusterizados no Azure Elastic SAN
Os volumes do Azure Elastic SAN podem ser anexados simultaneamente a vários clientes de computação, o que lhe permite implantar ou migrar aplicativos clusterizados para o Azure. Utilize um gerenciador de cluster para compartilhar um volume do Elastic SAN, como o Cluster de Failover do Windows Server (WSFC) ou o Pacemaker. O gerenciador de cluster lida com as comunicações do nó do cluster e o bloqueio da gravação. O Elastic SAN não oferece nativamente um sistema de arquivos totalmente gerenciado que possa ser acessado por SMB ou NFS.
Quando utilizados como um volume compartilhado, os volumes do Elastic SAN podem ser compartilhados entre zonas de disponibilidade ou regiões. O compartilhamento de um volume em uma SAN de armazenamento com redundância de zona entre zonas reduz o desempenho devido ao aumento da latência entre o volume e os clientes.
Limitações
- Os scripts de conexão do Elastic SAN podem ser utilizados para anexar volumes compartilhados a máquinas virtuais em Conjuntos de Dimensionamento de Máquinas Virtuais ou máquinas virtuais em Conjuntos de Disponibilidade. O alinhamento do domínio de falhas não é suportado.
- O número máximo de sessões suportado por um volume compartilhado é 128.
- Um cliente individual pode criar várias sessões em um volume individual para aumentar o desempenho. Por exemplo, se você criar 32 sessões em cada um dos seus clientes, apenas quatro clientes poderão se conectar a um único volume.
Confira Suporte para recursos do Armazenamento do Microsoft Azure para outras limitações do Elastic SAN.
Como ele funciona
Os volumes compartilhados do Elastic SAN utilizam Reservas Persistentes SCSI-3 para permitir que os iniciadores (clientes) controlem o acesso a um volume compartilhado do Elastic SAN. Esse protocolo habilita um iniciador a reservar acesso a um volume Elastic SAN, limitar o acesso de gravação (ou leitura) por outros iniciadores e manter a reserva em um volume além do tempo de vida de uma sessão por padrão.
O SCSI-3 PR tem uma função essencial na manutenção da consistência e da integridade dos dados em volumes compartilhados nos cenários de cluster. Os nós de computação em um cluster podem fazer a leitura ou a gravação em seus volumes Elastic SAN anexados com base na reserva escolhida pelos seus aplicativos de cluster.
Fluxo de reserva persistente
O diagrama a seguir ilustra um exemplo de aplicativo de banco de dados clusterizado de dois nós que utiliza o SCSI-3 PR para habilitar o failover de um nó para o outro.
O fluxo é da seguinte maneira:
- O aplicativo clusterizado em execução na VM1 e na VM2 do Azure registra sua intenção de fazer a leitura ou gravação no volume do Elastic SAN.
- Em seguida, a instância do aplicativo na VM1 recebe uma reserva exclusiva para gravar no volume.
- Essa reserva é imposta no seu volume e o banco de dados agora pode gravar exclusivamente no volume. Todas as gravações da instância do aplicativo na VM2 falham.
- Se a instância do aplicativo na VM1 estiver inoperante, a instância na VM2 poderá iniciar um failover do banco de dados e assumir o controle do volume.
- Essa reserva agora está imposta no volume e não aceitará gravações da VM1. Ele só aceita gravações da VM2.
- O aplicativo clusterizado pode concluir o failover do banco de dados e atender às solicitações da VM2.
O diagrama a seguir ilustra outra carga de trabalho em cluster comum que consiste em vários nós fazendo a leitura de dados de um volume do Elastic SAN para executar processos paralelos, como o treinamento de modelos de aprendizado de máquina.
O fluxo é da seguinte maneira:
- O aplicativo clusterizado em execução em todas as VMs registra sua intenção de fazer a leitura ou gravação no volume do Elastic SAN.
- A instância do aplicativo na VM1 tem uma reserva exclusiva para gravar no volume e, ao mesmo tempo, abre espaço para fazer a leitura no volume de outras VMs.
- Essa reserva é imposta no volume.
- Todos os nós do cluster agora podem fazer a leitura do volume. Apenas um nó faz write-back dos resultados no volume, em nome de todos os nós do cluster.
Comandos de RP do SCSI com suporte
Os comandos a seguir são suportados com volumes do Azure Elastic SAN:
Para interagir com o volume, comece com a ação de reserva persistente apropriada:
- PR_REGISTER_KEY
- PR_REGISTER_AND_IGNORE
- PR_GET_CONFIGURATION
- PR_RESERVE
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE_RESERVATION
Ao utilizar PR_RESERVE, PR_PREEMPT_RESERVATION ou PR_RELEASE_RESERVATION, forneça um dos seguintes tipos de reserva persistente:
- PR_NONE
- PR_WRITE_EXCLUSIVE
- PR_EXCLUSIVE_ACCESS
- PR_WRITE_EXCLUSIVE_REGISTRANTS_ONLY
- PR_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY
- PR_WRITE_EXCLUSIVE_ALL_REGISTRANTS
- PR_EXCLUSIVE_ACCESS_ALL_REGISTRANTS
O tipo de reserva persistente determina o acesso ao volume de cada nó do cluster.
Tipo de Reserva Persistente | Titular da Reserva | Registrada | Others |
---|---|---|---|
SEM RESERVA | N/D | Leitura/Gravação | Leitura-Gravação |
EXCLUSIVO DE GRAVAÇÃO | Leitura/Gravação | Somente leitura | Somente leitura |
ACESSO EXCLUSIVO | Leitura/Gravação | Sem Acesso | Sem Acesso |
EXCLUSIVO DE GRAVAÇÃO - SOMENTE REGISTRANTES | Leitura-Gravação | Leitura/Gravação | Somente leitura |
ACESSO EXCLUSIVO - SOMENTE REGISTRANTES | Leitura-Gravação | Leitura/Gravação | Sem Acesso |
ACESSO EXCLUSIVO DE GRAVAÇÃO - TODOS OS REGISTRANTES | Leitura-Gravação | Leitura/Gravação | Somente leitura |
ACESSO EXCLUSIVO - TODOS OS REGISTRANTES | Leitura-Gravação | Leitura/Gravação | Sem Acesso |
Também é necessário fornecer uma chave de reserva persistente ao utilizar:
- PR_RESERVE
- PR_REGISTER_AND_IGNORE
- PR_REGISTER_KEY
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE-RESERVATION.