Exercício – gerenciar as configurações de cache com o PowerShell

Concluído

No exercício anterior, realizamos as tarefas a seguir usando o portal do Azure:

  • Exibir o status do cache de disco do sistema operacional.
  • Altere as configurações de cache do disco do sistema operacional.
  • Adicione um disco de dados à VM.
  • Altere o tipo de cache em um novo disco de dados.

Vamos praticar essas operações usando o Azure PowerShell.

Observação

Usaremos o Azure PowerShell, mas você também pode usar a CLI do Azure, que fornece funcionalidade semelhante a uma ferramenta baseada em console. Ele é executado no Windows, no Linux e no macOS. Se quiser saber mais sobre a CLI do Azure, confira o módulo Gerenciar máquinas virtuais com a CLI do Azure.

Usaremos a VM criada no exercício anterior. As operações deste laboratório pressupõem:

  • Nossa VM existe e chama-se fotoshareVM.
  • Nossa VM reside em um grupo de recursos chamado [nome do grupo de recursos da área restrita].

Se você usou um conjunto diferente de nomes, substitua esses valores pelos seus.

Aqui está o estado atual dos discos de VM do último exercício:

Screenshot of our OS and data disks, both set to Read-only caching.

Usamos o portal para definir o campo Cache de host para discos de dados e do sistema operacional. Tenha esse estado inicial em mente enquanto trabalhamos nas etapas a seguir.

Configurar algumas variáveis

Primeiro, vamos armazenar alguns nomes de recurso para que possamos usá-los mais tarde.

No Azure Cloud Shell à direita, execute os seguintes comandos do PowerShell:

Observação

Mude sua sessão do Cloud Shell para o PowerShell antes de tentar esses comandos, caso ainda não tenha feito isso.

$myRgName = "<rgn>[sandbox resource group name]</rgn>"
$myVMName = "fotoshareVM"

Dica

Você terá que definir essas variáveis novamente se a sessão do Cloud Shell atingir o tempo limite, portanto, se possível, trabalhe em todo o laboratório em uma única sessão.

Obter informações sobre a VM

  1. Execute o seguinte comando para obter as propriedades da VM:

    $myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName
    
  2. Vamos armazenar a resposta em nossa variável $myVM. Podemos direcionar a saída para o cmdlet select-object para filtrar a exibição para propriedades específicas:

    $myVM | select-object -property ResourceGroupName, Name, Type, Location
    

    Você deverá obter algo como a saída a seguir:

    ResourceGroupName Name        Type                              Location
    ----------------- ----        ----                              --------
    <rgn>[sandbox resource group name]</rgn> fotoshareVM Microsoft.Compute/virtualMachines eastus
    

Exibir status do cache de disco do sistema operacional

Podemos verificar a configuração do cache por meio do objeto StorageProfile executando o seguinte comando:

$myVM.StorageProfile.OsDisk.Caching
ReadOnly

Alteraremos essa configuração de volta para o padrão de um disco do sistema operacional, que é ReadWrite.

Alterar as configurações de cache do disco do sistema operacional

  1. Podemos definir o valor para o tipo de cache usando o mesmo objeto StorageProfile, executando o seguinte comando:

    $myVM.StorageProfile.OsDisk.Caching = "ReadWrite"
    

    Esse comando é executado rapidamente, o que indica que ele está executando algo localmente. O comando só altera a propriedade no objeto myVM. Se você atualizar a variável $myVM reatribuindo-a utilizando o cmdlet Get-AzVM, o valor do cache não será alterado na VM.

  2. Para fazer a alteração na própria VM, chame Update-AzVM executando o seguinte comando:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    

    Observe que essa chamada demora um pouco para ser concluída porque estamos atualizando a VM real, e o Azure reinicia a VM para fazer a alteração.

    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  3. Se você atualizar a variável $myVM novamente executando o comando a seguir, verá a alteração no objeto. Se você observar o disco no portal, também verá a alteração.

    $myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName
    $myVM.StorageProfile.OsDisk.Caching
    
    ReadWrite
    

Listar informações do disco de dados

Para ver quais discos de dados há na VM, execute o comando a seguir:

$myVM.StorageProfile.DataDisks
Name            : fotoshareVM-data
DiskSizeGB      : 4
Lun             : 0
Caching         : ReadOnly
CreateOption    : Attach
SourceImage     :
VirtualHardDisk :

No momento, há apenas um disco de dados. O campo Lun é importante. Ele é o Número de Unidade Lógica exclusivo. Quando adicionamos outro disco de dados, atribuímos a ele um valor Lun exclusivo.

Adicionar um novo disco de dados à VM

  1. Por conveniência, vamos armazenar o nome do nosso novo disco executando o seguinte comando:

    $newDiskName = "fotoshareVM-data2"
    
  2. Execute o seguinte comando Add-AzVMDataDisk para definir um novo disco de dados vazio de 1 GB:

    Add-AzVMDataDisk -VM $myVM -Name $newDiskName  -LUN 1  -DiskSizeinGB 1 -CreateOption Empty
    

    Você recebe uma resposta do tipo:

    ResourceGroupName  : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
    Id                 : /subscriptions/xxxxxxxx-xxxx-xxxx-xxx-xxxxxxx/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/fotoshareVM
    VmId               : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
    Name               : fotoshareVM
    Type               : Microsoft.Compute/virtualMachines
    Location           : eastus
    Tags               : {}
    DiagnosticsProfile : {BootDiagnostics}
    HardwareProfile    : {VmSize}
    NetworkProfile     : {NetworkInterfaces}
    OSProfile          : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
    ProvisioningState  : Succeeded
    StorageProfile     : {ImageReference, OsDisk, DataDisks}
    
  3. Atribuímos a esse disco um valor Lun de 1 porque ele não está ocupado. Definimos o disco que queremos criar, então é hora de executar o comando Update-AzVM para fazer a mudança real:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    
  4. Vamos dar uma olhada nas informações de disco de dados novamente executando o seguinte comando:

    $myVM.StorageProfile.DataDisks
    
    Name            : fotoshareVM-data
    DiskSizeGB      : 4
    Lun             : 0
    Caching         : ReadOnly
    CreateOption    : Attach
    SourceImage     :
    VirtualHardDisk :
    
    Name            : fotoshareVM-data2
    DiskSizeGB      : 1
    Lun             : 1
    Caching         : None
    CreateOption    : Empty
    SourceImage     :
    VirtualHardDisk :
    

Agora, temos dois discos. Nosso novo disco tem um Lun de 1 e o valor padrão de Caching é None. Vamos alterar esse valor.

Alterar as configurações de cache do novo disco de dados

  1. Podemos modificar as propriedades de um disco de dados de máquina virtual executando o comando Set-AzVMDataDisk da seguinte maneira:

    Set-AzVMDataDisk -VM $myVM -Lun "1" -Caching ReadWrite
    
  2. Como sempre, confirme as alterações executando o comando Update-AzVM:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    

Essa é uma visão do portal do que foi realizado nesse exercício. Nossa VM agora tem dois discos de dados e ajustamos todas as configurações do Cache do Host. Fizemos tudo isso com apenas alguns comandos utilizando o poder do Azure PowerShell.

Screenshot of the Azure portal showing the Disks section of our VM pane with two data disks.