Exercício: adicionar um disco de dados a uma VM
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
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).
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.
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.
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.
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)
Execute o comando a seguir
ssh
para executar olsblk
comando em sua VM em uma conexão SSH usando osipaddress
dados variáveis criados na etapa anterior. Lembre-se de queazureuser
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.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.
- Cria partições da unidade
Para verificar a configuração, execute o mesmo comando
ssh
conforme fez anteriormente para executar o comandolsblk
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.