Exercício – Adicionar um disco de dados a uma VM
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 está no particionamento e na formatação do 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 o local ou a 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
Execute
az configure
para definir a localização padrão que deseja usar. Substitua eastus pelo local que você escolheu 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).
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.
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ê obterá informações sobre ela no formato JSON. Veja 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": "" }
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
na 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.
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 desta 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.
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)
Execute o comando
ssh
a seguir para executar o comandolsblk
em sua VM em uma conexão SSH usando os dados de variávelipaddress
criados na etapa anterior. Lembre-se de queazureuser
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 (
sdc
) que você criou não está montada. A unidade é listada dessa forma porque ainda não foi inicializada.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.
- Particiona a unidade
Para verificar a configuração, execute o mesmo comando
ssh
como fez anteriormente para executar o comandolsblk
em sua VM ao longo de uma conexão SSH.ssh azureuser@$ipaddress lsblk
Você verá que
sdc/sdc1
está particionado e montado no diretório/uploads
conforme o 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.