Exercício – implantar VMs em cluster usando discos compartilhados do Azure

Concluído

O CTO da sua empresa precisa fornecer uma prova de conceito para usar discos compartilhados do Azure para implantar um aplicativo em cluster em VMs (máquinas virtuais) do Azure. Você foi solicitado a testar cenários em cluster com VMs do Linux e do Windows.

Observação

Na primeira vez que você ativar uma área restrita e aceitar os termos, sua conta Microsoft será associada a um novo diretório do Azure chamado Área Restrita do Microsoft Learn. Você também é adicionado a uma Assinatura do Concierge especial.

Observação

Você pode usar o Azure PowerShell ou a CLI do Azure para gerenciar VMs do Windows e do Linux no Azure. Aqui, para fins de aprendizado, se você escolher o Windows, usará o Azure PowerShell. Se você escolher o Linux, usará a CLI do Azure.

Observação

Este exercício é opcional. Para concluir este exercício, será necessário criar uma assinatura do Azure antes de começar. Se você não tiver uma conta do Azure ou não quiser criar uma no momento, poderá ler as instruções para entender as informações que estão sendo apresentadas.

Implantar VMs do Linux usando discos compartilhados do Azure

Para fornecer uma prova de conceito, implante duas VMs do Linux que estão executando o SO Ubuntu Server. Você também testará os comandos de PR (Reservas Persistentes SCSI) no disco compartilhado do Azure.

Neste exercício, você vai explorar a implantação de disco compartilhado do Azure e executar as seguintes tarefas:

  • Criar um disco compartilhado do Azure.
  • Crie um conjunto de disponibilidade.
  • Implante duas VMs que estão executando o sistema operacional do Ubuntu Server e anexe um disco compartilhado às duas VMs.
  • Comandos de RP do SCSI com suporte.

Criar um disco compartilhado do Azure

Use o Azure Cloud Shell com a CLI do Azure para criar um disco compartilhado do Azure.

az disk create -g <rgn>[sandbox resource group name]</rgn> -n mySharedDisk --size-gb 1024 --sku Premium_LRS --max-shares 2

Criar um conjunto de disponibilidade

Execute o seguinte comando para criar um conjunto de disponibilidade:

az vm availability-set create \
  --resource-group <rgn>[sandbox resource group name]</rgn> \
  --name myAvailabilitySet \
  --platform-fault-domain-count 2 \
  --platform-update-domain-count 2

Criar duas VMs que executem o Ubuntu Server

Enquanto você ainda estiver no Cloud Shell, execute os seguintes comandos para criar duas VMs que executem o SO do Ubuntu:

for i in `seq 1 2`; 
do
   az vm create --resource-group <rgn>[sandbox resource group name]</rgn> --name myVM$i --availability-set myAvailabilitySet --size Standard_DS1_v2 --vnet-name myVnet --subnet mySubnet --image Ubuntu2204 --admin-username azureuser --generate-ssh-keys
done

Anexar um disco compartilhado do Azure em ambas as VMs

Enquanto você ainda estiver no Cloud Shell, anexe o disco compartilhado do Azure às duas VMs usando os seguintes comandos:

diskId=$(az disk show -g <rgn>[sandbox resource group name]</rgn> -n mySharedDisk --query 'id' -o tsv)

# attach the shared disk to the first VM.
az vm disk attach -g <rgn>[sandbox resource group name]</rgn> --vm-name myVM1 --name $diskId

# attach the shared disk to the second VM.
az vm disk attach -g <rgn>[sandbox resource group name]</rgn> --vm-name myVM2 --name $diskId

Quando você conclui essa tarefa, o disco compartilhado é anexado a duas VMs ao mesmo tempo.

Testar a PR SCSI usando as ferramentas "sg3-utils"

  1. Enquanto você ainda estiver no Cloud Shell, conecte-se à primeira VM usando o protocolo SSH (Secure Shell).

  2. Use o seguinte comando para recuperar os endereços IP da VM1:

    myPublicIP1=$(az network public-ip show --resource-group <rgn>[sandbox resource group name]</rgn> --name myVM1PublicIP --query 'ipAddress' --output tsv)
    
  3. Conectar-se à primeira VM por SSH:

    ssh azureuser@$myPublicIP1
    
  4. No prompt Tem certeza de que deseja continuar se conectando? (sim/não), insira Sim e selecione Enter.

  5. Para instalar o sg3-utils, execute os seguintes comandos:

    sudo apt-get update
    sudo apt-get install -y sg3-utils
    
  6. Para ler a reserva atual, execute o seguinte comando:

    sudo sg_persist /dev/sdc -s
    

    Esse comando identifica as reservas atuais que existem para o disco compartilhado. Como esta é a primeira vez que você a executa, não deve haver novas reservas.

    Screenshot of disk status without V M registration.

  7. Execute o seguinte comando para registrar a nova chave de reserva 1234 em myVM1:

    sudo sg_persist --register --device /dev/sdc --param-rk=0 --param-sark=1234 --out
    

    Esse comando fornece registro SCSI_PR, que garante que a VM1 pode ler ou gravar no novo disco compartilhado.

  8. Leia novamente as chaves na VM1:

    sudo sg_persist /dev/sdc -s
    

    O comando deve mostrar uma reserva para o disco compartilhado para a VM1.

    Screenshot of disk status with V M 1 registration.

  9. Feche a sessão SSH:

    exit
    
  10. Conecte-se à segunda VM por SSH usando o seguinte comando:

    myPublicIP2=$(az network public-ip show --resource-group <rgn>[sandbox resource group name]</rgn> --name myVM2PublicIP --query 'ipAddress' --output tsv)
    
    ssh azureuser@$myPublicIP2
    
  11. Quando consultado sobre se você Tem certeza de que deseja continuar se conectando (sim/não)?, insira sim e selecione Enter.

  12. Para instalar o sg3-utils, execute os seguintes comandos:

    # Install sg3-utils
    sudo apt-get update
    sudo apt-get install -y sg3-utils
    
    # Register the key 1235 on VM2. This command will provide SCSI_PR registration for VM2, so it can read or write on the shared disk.
    sudo sg_persist --register --device /dev/sdc --param-rk=0 --param-sark=1235 --out
    
    # Read back the keys for the shared disk. Now it should show 2 reservation to the shared disk for both VM1 and VM2.
    sudo sg_persist /dev/sdc -s
    

    Disk status with VM1 and VM2 registrations.

  13. Feche a sessão SSH:

    exit
    
  14. Conecte-se à myVM1 usando SSH:

    ssh azureuser@$myPublicIP1
    
  15. Execute os comandos a seguir:

    # Reserve the device with exclusive write permission. This command will ensure that VM1 has exclusive write to the disk, while any write from VM2 will not succeed.
    sudo sg_persist --reserve --device /dev/sdc --param-rk=1234 --prout-type=1 --out
    
    # Check the reservation on the device.
    sudo sg_persist /dev/sdc -s
    

    Screenshot of disk status with V M 1 reservation.

  16. Feche a sessão SSH:

    exit
    
  17. Conecte-se à myVM2 usando SSH:

    ssh azureuser@$myPublicIP2
    
  18. Execute os comandos a seguir:

    # Preempt the DEVICE from **myVM2**. This command will take over the exclusive write operation from VM1. Now VM2 has write access to the disk.
    sudo sg_persist --preempt --device /dev/sdc --param-rk=1235 --param-sark=1234 --prout-type=5 --out
    
    # Report capabilities. Verify that reservation exist for VM2 with key 1235.
    sudo sg_persist /dev/sdc -c
    

    Screenshot of disk status with V M 2 reservation.

    # Unregister from **myVM2**. This command release access to the shared disk.
    sudo sg_persist --out --register --param-rk=1235 --param-sark=0 --device /dev/sdc
    
    # Report capabilities.
    sudo sg_persist /dev/sdc -s
    
  19. Feche a sessão SSH:

    exit
    

Implantar VMs do Windows usando discos compartilhados do Azure

Para demonstrar ainda mais a funcionalidade de disco compartilhado do Azure, implante duas VMs Windows que executam o SO (sistema operacional) Windows Server. Em seguida, você testará os comandos de PR (Reservas Persistentes SCSI) no disco compartilhado do Azure.

Neste exercício, você vai explorar uma implantação de disco compartilhado do Azure e executar as seguintes tarefas:

  • Criar um disco compartilhado do Azure.
  • Crie um conjunto de disponibilidade.
  • Implante duas VMs em execução no SO Windows Server e configure serviços em cluster.
  • Comandos de RP do SCSI com suporte.

Criar um disco compartilhado do Azure

  1. No Cloud Shell, você pode alternar da CLI do Azure para o Azure PowerShell executando o seguinte comando:

    # Switch to PowerShell
    pwsh
    
    # Create Azure Shared disk
    $dataDiskConfig=New-AzDiskConfig -Location "EastUs" -DiskSizeGB 1024 -AccountType Premium_LRS -CreateOption Empty -MaxSharesCount 2
    $dataDisk=New-AzDisk -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -DiskName "mySharedDisk1" -Disk $dataDiskConfig
    

Criar um conjunto de disponibilidade

  1. Execute o seguinte comando para criar um conjunto de disponibilidade:

    # Create a managed availability set by using New-AzAvailabilitySet with the -sku aligned parameter.
    New-AzAvailabilitySet `
      -Location "EastUS" `
      -Name "myAvailabilitySet1" `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Sku aligned `
      -PlatformFaultDomainCount 2 `
      -PlatformUpdateDomainCount 2
    

Criar duas VMs que estão executando o Windows Server

  1. Ainda no Cloud Shell, execute os seguintes comandos para definir um objeto de credencial para registro em log nas VMs:

    $cred = Get-Credential
    
  2. Use as seguintes credenciais:

    • Usuário: Estudante
    • Senha: Pa55w.rd1234
  3. Crie duas VMs que estão executando o SO Windows:

    for ($i=3; $i-le4; $i++)
    {
        New-AzVm `
          -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
          -Name "myVM$i" `
          -Location eastus `
          -VirtualNetworkName "myVnet1" `
          -SubnetName "mySubnet" `
          -ImageName "MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest" `
          -SecurityGroupName "myNetworkSecurityGroup1" `
          -PublicIpAddressName "myPublicIpAddress$i" `
          -AvailabilitySetName "myAvailabilitySet1" `
          -Credential $cred
    }
    

Anexar um disco compartilhado do Azure a ambas as VMs

  1. Use o seguinte comando para anexar o disco compartilhado do Azure à primeira VM:

    $vm3 = Get-AzVM -Name "myvm3" -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    $vm3 = Add-AzVMDataDisk -VM $vm3 -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
    
    Update-AzVM -VM $vm3 –ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  2. Anexe o disco compartilhado do Azure à segunda VM:

    $vm4 = Get-AzVM -Name "myvm4" -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    $vm4 = Add-AzVMDataDisk -VM $vm4 -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
    
    Update-AzVM -VM $vm4 –ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

Instalar o Serviço de Clustering de Failover do Windows na myVM3

  1. Entre no portal do Azure e verifique se você está na assinatura da área restrita.

  2. No campo pesquisar recursos, serviços e documentos (G+/), insira máquinas virtuais e selecione máquinas virtuais.

  3. Selecione a VM myVM3 na barra de ferramentas, selecione Conectar e selecione RDP.

  4. Selecione Baixar Arquivo RDP e conecte-se usando as seguintes credenciais:

    • Nome de usuário: Student
    • Senha: Pa55w.rd1234
  5. No Gerenciador do Servidor, no menu Ferramentas, selecione o snap-in Gerenciamento do Computador.

  6. No console de gerenciamento do Gerenciamento do Computador (Local), selecione Gerenciamento de Disco.

  7. Na janela Inicializar Disco, verifique se o Disco 2 está selecionado e selecione OK.

  8. Clique com o botão direito do mouse ou selecione o rótulo preto no Disco 2 e selecione Novo Volume Simples. Aceite os valores padrão para criar um volume simples.

  9. Feche o console Gerenciamento do Computador.

  10. No Gerenciador do Servidor, selecione Adicionar funções e recursos. O assistente Adicionar Funções e Recursos será aberto.

  11. No assistente Adicionar Funções e Recursos, na página Antes de Começar, selecione Avançar.

  12. Na página Selecionar tipo de instalação, selecione Instalação baseada em função ou recurso e selecione Avançar.

  13. Na página Seleção de Servidor, clique em Avançar.

  14. Na página Selecionar funções do servidor, selecione Avançar.

  15. Na página Selecionar recursos, marque a caixa de seleção Clustering de Failover.

  16. Verifique se a caixa de seleção Incluir ferramentas de gerenciamento (se aplicável) está marcada. Selecione Adicionar Recursose selecione Avançar.

  17. Na página Confirmação, marque a caixa de seleção Reiniciar o servidor de destino automaticamente, se necessário, e selecione Sim. Selecione Instalar para instalar a função Clustering de Failover.

Observação

Depois que o recurso de cluster de failover for instalado, a máquina virtual myVM3 será reiniciada automaticamente.

Instalar o Serviço de Clustering de Failover do Windows na myVM4

  1. No portal do Azure, no campo pesquisar recursos, serviços e documentos (G+/), insira máquinas virtuais e selecione máquinas virtuais.

  2. Selecione a VM myVM4 na barra de ferramentas, selecione Conectar e selecione RDP.

  3. Selecione Baixar Arquivo RDP e conecte-se usando as seguintes credenciais:

    • Nome de usuário: Student
    • Senha: Pa55w.rd1234
  4. No Gerenciador do Servidor, no menu Ferramentas, selecione o snap-in Gerenciamento do Computador.

  5. No console de gerenciamento do Gerenciamento do Computador (Local), selecione Gerenciamento de Disco.

  6. Na janela Inicializar Disco, verifique se o Disco 2 está selecionado e selecione OK.

  7. Clique com o botão direito do mouse ou selecione o rótulo preto no Disco 2 e selecione Novo Volume Simples. Aceite os padrões para criar um volume simples.

  8. Feche o console Gerenciamento do Computador.

  9. No Gerenciador do Servidor, selecione Adicionar funções e recursos. O assistente Adicionar Funções e Recursos será aberto.

  10. No assistente Adicionar Funções e Recursos, na página Antes de Começar, selecione Avançar.

  11. Na página Selecionar tipo de instalação, selecione Instalação baseada em função ou recurso e selecione Avançar.

  12. Na página Seleção de Servidor, clique em Avançar.

  13. Na página Selecionar funções do servidor, selecione Avançar.

  14. Na página Selecionar recursos, marque a caixa de seleção Clustering de Failover.

  15. Verifique se a caixa de seleção Incluir ferramentas de gerenciamento (se aplicável) está marcada. Selecione Adicionar Recursose selecione Avançar.

  16. Na página Confirmação, marque a caixa de seleção Reiniciar o servidor de destino automaticamente se necessário e selecione Sim. Selecione Instalar para instalar a função clustering de failover.

Observação

Depois que o recurso de cluster de failover for instalado, a máquina virtual myVM4 será reiniciada automaticamente.

Testar o armazenamento para o Serviço de Clustering de Failover do Windows na myVM3

  1. No portal do Azure, no campo pesquisar recursos, serviços e documentos (G+/), insira e selecione máquinas virtuais.

  2. Selecione a primeira VM, myVM3, na barra de ferramentas, selecione Conexão e selecione RDP.

  3. Selecione Baixar Arquivo RDP e conecte-se usando as seguintes credenciais:

    • Nome de usuário: Student
    • Senha: Pa55w.rd1234
  4. No Gerenciador do Servidor, no menu Ferramentas, selecione Gerenciador de Cluster de Failover.

  5. No Gerenciador de Cluster de Failover, no menu Ações, selecione Validar Configuração. O Assistente para Validar uma Configuração é aberto.

  6. No Assistente para Validar Configuração, na página Antes de Começar, selecione Avançar.

  7. Na página Selecionar Servidores ou um Cluster, no campo Inserir Nome, insira myVM3 e selecione Adicionar.

  8. Na página Selecionar Servidores ou um Cluster, no campo Inserir Nome, insira myVM4 e selecione Adicionar.

  9. Selecione Avançar para continuar testando a configuração do cluster.

  10. Na página Opções de Teste, selecione Executar somente os testes que eu selecionar e selecione Avançar.

  11. Limpe todos os outros testes, marque apenas a caixa de seleção Armazenamento e selecione Avançar.

  12. Na página Confirmação, selecione Avançar.

  13. Verifique se todos os testes foram bem-sucedidos e selecione Concluir.

  14. Feche a conexão de RDP.

Observação

Para continuar criando o cluster, você precisará atender aos pré-requisitos adicionais, como o Microsoft Entra Domain Services e criar um endereço IP estático a ser usado para o balanceador de carga interno.

Essa etapa está fora do escopo deste exercício.