Exercício: adicionar um disco de dados a uma VM

Concluído

Seu escritório de advocacia está expandindo sua carga de casos, 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-lhe carregar documentos e armazená-los em disco.

Gorjeta

Este exercício utiliza o Linux como exemplo, mas o processo básico de criação de VMs e adição de discos é o mesmo para o Windows. A principal diferença está no particionamento e formatação do disco. No Windows, pode estabelecer ligação à sua VM através do Ambiente de Trabalho Remoto e utilizar as ferramentas de Gestão de Discos incorporadas ou implementar um script do PowerShell semelhante ao script de Bash que vai utilizar aqui.

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

Predefinir valores da CLI do Azure

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

Você pode especificar o local ou região padrão do Azure. Esse local é onde sua VM do Azure é colocada.

O ideal é que este local esteja perto dos seus clientes. Neste caso, selecione a região mais próxima de si a partir das localizações disponíveis para o sandbox do Azure.

O sandbox gratuito permite-lhe criar recursos num subconjunto das regiões globais do Azure. Selecione uma região desta lista quando criar recursos:

  • westus2
  • E.U.A Centro-Sul
  • centralus
  • eastus
  • westeurope
  • Sudeste Asiático
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia
  1. Execute az configure para definir a localização predefinida que pretende utilizar. Substitua eastus pelo local escolhido na etapa anterior.

    az configure --defaults location=eastus
    

    Gorjeta

    Pode utilizar o botão Copiar para copiar comandos para a área de transferência. Para colar, 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 da área restrita]

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

Criar uma VM do Linux

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

  1. Execute o comando az vm create para criar uma 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 da VM é Standard_DS1_v2.
    • O nome do utilizador administrador é azureuser. Na prática, este nome pode ser o que pretender.
    • O --generate-ssh-keys argumento gera um par de chaves SSH para você, permitindo que você se conecte à sua VM por SSH.

    A implementação da VM demora alguns minutos. Quando a VM estiver pronta, você obterá informações sobre ela no formato JSON. Eis um exemplo:

    {
      "fqdns": "",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
      "zones": ""
    }
    

    Nota

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

Adicionar um disco de dados vazio à sua VM

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

Gorjeta

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

  1. Execute o 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
    

    Este comando:

    • Atribui o nome uploadDataDisk1 ao disco.
    • Define seu tamanho para 64 GB.
    • Especifica o uso de armazenamento premium com redundância local.

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

Inicializar e formatar o seu disco de dados

A sua unidade de dados vazia precisa de ser inicializada e formatada. Este processo é igual ao dos discos físicos.

No caso das tarefas únicas, poderá ligar manualmente à sua VM através do SSH e executar os comandos de que necessita. No entanto, para tornar o processo mais repetível e menos propenso a erros, você pode especificar seus comandos em um script Bash ou um script PowerShell (se estiver disponível).

Usar um script para automatizar o processo tem um benefício adicional: seu script serve como documentação de como o processo é executado. Desta forma, as outras pessoas podem ler o seu script para compreender a forma como o sistema está configurado. Se precisar alterar o processo, basta modificar o script e testá-lo em uma VM de rascunho temporária antes de implantar a alteração na produção.

Para automatizar o processo nesta lição, você pode usar a Extensão de Script Personalizada. A Extensão de Script Personalizado é uma forma fácil de transferir e de executar scripts nas VM do Azure. Esta é apenas uma das muitas formas de configurar o sistema depois de a VM se encontrar em execução.

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

Para fins de aprendizagem, 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 sua VM e guarde o endereço IP sob a forma de uma variável de Bash.

    ipaddress=$(az vm show \
      --name support-web-vm01 \
      --show-details \
      --query [publicIps] \
      --output tsv)
    
  2. Execute o comando a seguir ssh para executar o lsblk comando em sua VM em uma conexão SSH usando os ipaddress dados variáveis criados na etapa anterior. Lembre-se de que azureuser era o nome de utilizador administrador que utilizámos quando criámos a VM. Se selecionar um nome diferente, utilize esse. Digite sim quando solicitado.

    ssh azureuser@$ipaddress lsblk
    

    O resultado deste comando deverá ter um aspeto semelhante ao seguinte.

    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 (sdc) que você criou não está montada. A unidade está listada desta forma porque ainda não foi inicializada.

  3. Execute o seguinte az vm extension set comando para executar o script Bash pré-fabricado em sua VM.

    Aviso

    O script modifica /etc/fstab. A modificação incorreta do ficheiro /etc/fstab poderá resultar num sistema não inicializável. Teste sempre as alterações efetuadas ao nível da configuração num sistema de rascunho temporário antes de implementar na produção. Consulte a sua documentação de distribuição para saber como pode modificar corretamente este ficheiro. Na produção, também recomendamos que crie uma cópia de segurança deste ficheiro para que possa restaurar a configuração caso seja 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, você pode examinar o script Bash a partir de uma guia separada do navegador, se desejar.

    Para resumir, o script:

    • Cria partições da unidade /dev/sdc.
    • Cria um sistema de ficheiros ext4 na unidade.
    • Cria o /uploads diretório, 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 o reinício do sistema.
  4. Para verificar a configuração, execute o mesmo comando ssh conforme fez anteriormente para executar o comando lsblk na sua VM através de uma ligação SSH.

    ssh azureuser@$ipaddress lsblk
    

    Você deve achar que sdc/sdc1 é particionado e montado no /uploads diretório como você espera.

    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 /
    

Gorjeta

Alguns kernels do Linux suportam TRIM para eliminar blocos não utilizados nos discos. Esta funcionalidade está disponível nos discos do Azure e pode poupar-lhe dinheiro se criar ficheiros grandes e, em seguida, os eliminar. Saiba como ativar esta funcionalidade na documentação do Azure.

Resumo

Aqui, criou um disco de dados e anexou-o à sua VM. Você usou a extensão de script personalizada para executar um script Bash pré-fabricado em sua VM para tornar o processo mais repetível. O script de Bash cria partições, formata e monta o disco para que o servidor Web possa escrever 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. A sua principal decisão consiste na escolha do armazenamento Standard ou Premium.