Exercício – Adicionar um disco de dados a uma VM

Concluído

O volume de casos do seu escritório de advocacia está aumentando, e você tem a tarefa de criar um novo servidor Web Linux para armazenar documentos críticos de várias fontes: clientes, outros escritórios de advocacia e escritórios de aplicação da lei. O servidor Web permite que você carregue documentos e armazene-os em disco.

Dica

Este exercício usa o Linux como o exemplo, mas o processo básico de criação de VMs e adição de discos é o mesmo para Windows. A principal diferença seria no particionamento e na formatação de disco. No Windows, você pode se conectam à sua VM pela Área de Trabalho Remota e usar as ferramentas internas de Gerenciamento de Disco ou implantar um script do PowerShell semelhante ao script de Bash que usará aqui.

Sua meta é criar uma VM do Linux e anexar um novo disco rígido virtual (VHD) chamado uploadDataDisk1 para armazenar o diretório /uploads.

Definir valores padrão para o CLI do Azure

A CLI do Azure permite que você defina valores padrão para que não precise repeti-los sempre que executar um comando.

Especifique a localização ou região padrão do Azure. Esse local é onde sua VM do Azure é colocada.

O ideal é que esse local esteja próximo de seus clientes. Nesse caso, selecione a região mais próxima de você entre as localizações disponíveis para a área restrita do Azure.

A área restrita gratuita permite criar recursos em um subconjunto das regiões globais do Azure. Selecione uma região desta lista quando você criar recursos:

  • westus2
  • southcentralus
  • centralus
  • eastus
  • westeurope
  • southeastasia
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia
  1. Execute az configure para definir a localização padrão que deseja usar. Substitua eastus pelo local escolhido na etapa anterior.

    az configure --defaults location=eastus
    

    Dica

    Use o botão Copiar para copiar os comandos para a área de transferência. Para colar o conteúdo, clique com o botão direito do mouse em uma nova linha no terminal do Cloud Shell e selecione Colar ou use o atalho de teclado Shift + Insert (⌘ + V no macOS).

  2. Defina o nome do grupo de recursos padrão para o grupo de recursos pré-configurado criado para você por meio da área restrita do Azure: [grupo de recursos de área restrita]

    az configure --defaults group="<rgn>[sandbox Resource Group]</rgn>"
    

Criar uma VM Linux

Aqui, você cria uma VM do Linux para hospedar seu servidor Web.

  1. Execute este comando az vm create para criar sua VM do Ubuntu Linux.

    az vm create \
      --name support-web-vm01 \
      --image Canonical:UbuntuServer:16.04-LTS:latest \
      --size Standard_DS1_v2 \
      --admin-username azureuser \
      --generate-ssh-keys
    
    • O nome da VM é support-web-vm01.
    • O tamanho dela é Standard_DS1_v2.
    • O nome de usuário administrador é azureuser. Na prática, esse nome pode ser o que quiser.
    • O argumento --generate-ssh-keys gera um par de chaves SSH para você, permitindo que se conecte à sua VM via SSH.

    A VM demora alguns minutos para implantar. Quando a VM estiver pronta, você verá informações sobre ela no formato JSON. Veja um exemplo:

    {
      "fqdns": "",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/680469d8-edB7-42ec-b118-cd80d51741e7/providers/Microsoft.Compute/virtualMachines/support-web-vm01",
      "location": "eastus",
      "macAddress": "00-0D-3A-10-63-0A",
      "powerState": "VM running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "104.211.38.211",
      "resourceGroup": "680469d8-edB7-42ec-b118-cd80d51741e7",
      "zones": ""
    }
    

    Observação

    Nesta lição, você está usando essa VM para aprender a gerenciar discos. Na prática, você pode também instalar o servidor Web e outros softwares e, em seguida, executar az vm open-port para disponibilizar as portas que precisa para o mundo exterior.

Adicione um disco de dados vazio à sua VM

Aqui, você cria um disco de dados vazio e o anexa à VM. Inicialmente, o disco de dados tem 64 GB de tamanho. Posteriormente, você montará esse disco no diretório /uploads em sua VM.

Dica

Para fins de aprendizado, você está criando a VM e o disco de dados em etapas separadas. Na prática, você poderá especificar o argumento --data-disk-sizes-gb para o comando az vm create e adicionar discos de dados quando a VM for criada.

  1. Execute o seguinte comando az vm disk attach para adicionar um novo disco vazio à VM.

    az vm disk attach \
      --vm-name support-web-vm01 \
      --name uploadDataDisk1 \
      --size-gb 64 \
      --sku Premium_LRS \
      --new
    

    Esse comando:

    • Nomeia o disco uploadDataDisk1.
    • Define seu tamanho para 64 GB.
    • Especifica o uso do armazenamento Premium com redundância local.

Para usar o disco, você precisa particioná-lo e formatá-lo. Vamos fazer isso em seguida.

Inicializar e formatar o disco de dados

Sua unidade de dados vazia precisa ser inicializada e formatada. Para fazer isso, é o mesmo processo do disco físico.

Para tarefas de uso único, você poderá se conectar à sua VM via SSH manualmente e executar os comandos que precisa. No entanto, para tornar o processo mais repetível e menos propenso a erros, você pode especificar seus comandos em um script Bash ou em um script do PowerShell (se estiver disponível).

O uso de um script para automatizar o processo oferece um benefício agregado: seu script serve como documentação de como o processo é executado. Outras pessoas podem ler seu script para entender como o sistema está configurado. Se você precisar alterar o processo, basta modificar o script e testá-lo em uma VM de teste temporária antes de implantar a alteração na produção.

Para automatizar o processo nesta lição, use a extensão de script personalizado. A Extensão de Script Personalizado é uma maneira fácil de baixar e executar scripts em suas VMs do Azure. Ela é apenas uma das muitas maneiras de configurar o sistema depois que a VM está em funcionamento.

Você pode armazenar seus scripts no armazenamento do Azure ou em uma localização pública, como o GitHub. Você pode executar scripts manualmente ou como parte de uma implantação mais automatizada. Aqui, você executa um comando da CLI do Azure para baixar um script Bash predefinido do GitHub e executá-lo em sua VM.

Para fins de aprendizado, também vamos executar alguns comandos em sua VM para verificar se a VM está configurada como você espera.

  1. Execute az vm show para obter o endereço IP público da VM e salve o endereço IP como uma variável de Bash.

    ipaddress=$(az vm show \
      --name support-web-vm01 \
      --show-details \
      --query [publicIps] \
      --output tsv)
    
  2. Execute o comando ssh a seguir para executar o comando lsblk em sua VM em uma conexão SSH usando os dados de variável ipaddress criados na etapa anterior. Lembre-se de que azureuser era o nome de usuário do administrador que usamos ao criar a VM. Se você tiver escolhido um nome diferente, use-o. Insira sim quando solicitado.

    ssh azureuser@$ipaddress lsblk
    

    A saída desse comando deve ser semelhante àquela mostrada a seguir.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

    Observe que a unidade de 64 GB que você criou, sdc, não está montada. A unidade é listada dessa forma porque ainda não foi inicializada.

  3. Execute o comando az vm extension set a seguir para executar o script Bash predefinido em sua VM.

    Aviso

    O script modifica /etc/fstab. A modificação inadequada do arquivo /etc/fstab pode resultar em um sistema não inicializável. Sempre teste as alterações na configuração em um sistema de rascunho temporário antes de implantar na produção. Veja a documentação da distribuição sobre como modificar este arquivo corretamente. Na produção, também recomendamos que você crie um backup desse arquivo para que possa restaurar a configuração se necessário.

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/add-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
    

    Enquanto o comando é executado, se desejar, você poderá examinar o script do Bash em uma guia separada no navegador.

    Para resumir, o script:

    • Particiona a unidade /dev/sdc.
    • Cria um sistema de arquivos ext4 na unidade.
    • Cria o diretório /uploads, que usamos como nosso ponto de montagem.
    • Anexa o disco ao ponto de montagem.
    • Atualiza /etc/fstab, para que a unidade seja montada automaticamente após a reinicialização do sistema.
  4. Para verificar a configuração, execute o mesmo comando ssh como fez anteriormente para executar o comando lsblk em sua VM ao longo de uma conexão SSH.

    ssh azureuser@$ipaddress lsblk
    

    Você verá que sdc/sdc1 é particionada e montada no diretório /uploads conforme esperado.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    └─sdc1    8:33   0   64G  0 part /uploads
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

Dica

Alguns kernels Linux dão suporte ao TRIM para descartar os blocos não utilizados em discos. Esse recurso está disponível nos discos do Azure e você poderá economizar dinheiro se criar arquivos grandes e, em seguida, excluí-los. Saiba como ativar esse recurso na documentação do Azure.

Resumo

Aqui, você criou um disco de dados e o anexou à sua VM. Você usou a extensão de script personalizado para executar um script Bash predefinido em sua VM para tornar o processo mais repetível. O script Bash particiona, formata e monta seu disco para que o servidor Web possa gravar nele.

Agora que o disco de dados em sua VM está preparado, vamos explorar um pouco mais sobre os vários tipos de discos que você pode criar. Sua decisão principal é escolher entre o armazenamento Standard ou Premium.