Exercício - Gerenciar configurações de cache com o PowerShell

Concluído

No exercício anterior, executamos as seguintes tarefas usando o portal do Azure:

  • Veja o estado da cache de disco do SO.
  • 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

Vamos usar o Azure PowerShell, mas você também pode usar a CLI do Azure, que fornece funcionalidade semelhante como uma ferramenta baseada em console. Ele roda em macOS, Linux e Windows. Se estiver interessado em saber mais sobre a CLI do Azure, consulte o módulo Gerir Máquinas Virtuais com a CLI do Azure.

Vamos usar a VM que criamos no exercício anterior. As operações neste laboratório assumem:

  • Nossa VM existe e é chamada fotoshareVM.
  • Nossa VM vive em um grupo de recursos chamado [sandbox resource group name].

Se você usou um conjunto diferente de nomes, substitua esses valores pelo seu.

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

Captura de ecrã do nosso SO e discos de dados, ambos definidos como Cache só de leitura.

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

Configurar algumas variáveis

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

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

Observação

Altere a sua sessão do Cloud Shell para PowerShell antes de tentar estes comandos, se ainda não o tiver feito.

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

Dica

Você terá que definir novamente estas variáveis se a sua sessão do Cloud Shell expirar. Portanto, se possível, conclua todo este laboratório numa única sessão.

Obtenha informações sobre a nossa 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 canalizar 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
    

    Deverá obter algo como o seguinte resultado:

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

Ver o estado da cache de disco do SO

Podemos verificar a configuração de cache através do objeto StorageProfile executando o seguinte comando:

$myVM.StorageProfile.OsDisk.Caching
ReadOnly

Vamos alterá-lo de volta para o padrão para 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"
    

    Este comando é executado rapidamente, o que deve dizer que está fazendo algo localmente. O comando altera apenas a propriedade no objeto myVM. Se você atualizar a variável $myVM reatribuindo-a usando o cmdlet Get-AzVM, o valor de 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 leva um tempo 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 olhares para o disco no portal, também vais ver a mudança lá.

    $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 temos em nossa VM, execute o seguinte comando:

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

Neste momento, temos apenas um disco de dados. O campo Lun é importante. É o único Número de Unidade Lógica. Quando adicionamos outro disco de dados, damos-lhe um valor Lun único.

Adicionar um novo disco de dados à nossa VM

  1. Por conveniência, vamos armazenar nosso novo nome de 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 como:

    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 este disco um valor Lun de 1 porque não está ocupado. Definimos o disco que queremos criar, então é hora de executar o comando Update-AzVM para fazer a alteração real:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    
  4. Vamos examinar nossas 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. O nosso novo disco tem um Lun de 1 e o valor padrão para Caching é None. Vamos mudar 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
    

Aqui está uma vista do portal sobre o que alcançámos neste exercício. Nossa VM agora tem dois discos de dados e ajustamos todas as configurações de cache Host. Fizemos tudo isso com apenas alguns comandos usando o poder do Azure PowerShell.

Captura de ecrã do portal do Azure a mostrar a secção Discos do nosso painel VM com dois discos de dados.