Ejercicio: Administración de la configuración de caché con PowerShell

Completado

En el ejercicio anterior, se han realizado las tareas siguientes mediante Azure Portal:

  • Vea el estado de la caché del disco del sistema operativo.
  • Cambio de la configuración de caché del disco del sistema operativo.
  • Incorporación de un disco de datos a la máquina virtual.
  • Cambio del tipo de almacenamiento en caché en un nuevo disco de datos.

Vamos a practicar estas operaciones mediante Azure PowerShell.

Nota:

Vamos a utilizar Azure PowerShell, pero también podría usar la CLI de Azure, que proporciona una funcionalidad similar como herramienta basada en una consola. Se ejecuta en macOS, Linux y Windows. Si desea obtener más información sobre la CLI de Azure, consulte el módulo Administración de máquinas virtuales con la CLI de Azure.

Usaremos la máquina virtual que creamos en el ejercicio anterior. En las operaciones de este laboratorio se parte de los siguientes supuestos:

  • Nuestra máquina virtual existe y se llama fotoshareVM.
  • Nuestra máquina virtual está en un grupo de recursos llamado [nombre del grupo de recursos del espacio aislado].

Si usó otro conjunto de nombres, reemplace estos valores por los suyos.

Este es el estado actual de nuestros discos de VM del ejercicio anterior:

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

Hemos usado el portal para establecer el campo Almacenamiento en caché del host de los discos de datos y del sistema operativo. Tenga en cuenta este estado inicial mientras trabajamos sobre los siguientes pasos.

Configuración de algunas variables

En primer lugar, vamos a almacenar algunos nombres de recursos de modo que podamos usarlos más adelante.

A la derecha, en Azure Cloud Shell, ejecute los siguientes comandos de PowerShell:

Nota

Cambie la sesión de Cloud Shell a PowerShell antes de intentar estos comandos, si aún no cambió.

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

Sugerencia

Tiene que establecer de nuevo estas variables si el tiempo de espera de la sesión de Cloud Shell se agota. Por lo tanto, complete todo este laboratorio en una sola sesión si es posible.

Obtención de información sobre nuestra máquina virtual

  1. Ejecute el comando siguiente para obtener las propiedades de la VM:

    $myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName
    
  2. Vamos a almacenar la respuesta en nuestra variable $myVM. Se puede canalizar la salida al cmdlet select-object para filtrar la visualización a propiedades específicas:

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

    Debe obtener algo parecido a la siguiente salida:

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

Visualización del estado de caché del disco del sistema operativo

Se puede comprobar la configuración de almacenamiento en caché mediante el objeto StorageProfile si se ejecuta el comando siguiente:

$myVM.StorageProfile.OsDisk.Caching
ReadOnly

Vamos a cambiarlo por el predeterminado para un disco del sistema operativo que sea ReadWrite.

Cambio de la configuración de caché del disco del sistema operativo

  1. Podemos establecer el valor del tipo de caché con el mismo objeto StorageProfile ejecutando el comando siguiente:

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

    Este comando se ejecuta rápido, lo que debería indicarle que está haciendo algo localmente. El comando solo cambia la propiedad en el objeto myVM. Si actualiza la variable $myVM y la reasigna con el cmdlet Get-AzVM, el valor de almacenamiento en caché no cambia en la VM.

  2. Para realizar el cambio en la propia máquina virtual, llame a Update-AzVM ejecutando el comando siguiente:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    

    Tenga en cuenta que esta llamada tarda un tiempo en completarse porque estamos actualizando la máquina virtual real y Azure reinicia la máquina virtual para realizar el cambio.

    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  3. Si vuelve a actualizar la variable $myVM mediante la ejecución del siguiente comando, verá el cambio en el objeto. Si observa el disco en el portal, también verá el cambio allí.

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

Visualización de la información del disco de datos

Para ver qué discos de datos tenemos en nuestra VM, ejecute el siguiente comando:

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

En este momento, solo tenemos un disco de datos. El campo Lun es importante. Es el Número de unidad lógica. Cuando se agrega otro disco de datos, le proporcionamos un valor de Lun único.

Incorporación de un nuevo disco de datos a nuestra máquina virtual

  1. Para mayor comodidad, vamos a almacenar el nuevo nombre de disco mediante la ejecución del siguiente comando:

    $newDiskName = "fotoshareVM-data2"
    
  2. Ejecute el siguiente comando Add-AzVMDataDisk para definir un nuevo disco de datos vacío de 1 GB:

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

    Obtendrá una respuesta como la siguiente:

    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. Le dimos a este disco un valor Lun de 1 porque no se toma. Hemos definido el disco que queremos crear, así que es hora de ejecutar el comando Update-AzVM para realizar el cambio real:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    
  4. Echemos un vistazo de nuevo a la información del disco de datos mediante la ejecución del siguiente 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 :
    

Ahora tenemos dos discos. Nuestro nuevo disco tiene un Lun de 1, y el valor predeterminado de Caching es None. Vamos a cambiar ese valor.

Cambio de la configuración de caché del nuevo disco de datos

  1. Las propiedades de un disco de datos de máquina virtual pueden modificarse mediante la ejecución del comando Set-AzVMDataDisk, del siguiente modo:

    Set-AzVMDataDisk -VM $myVM -Lun "1" -Caching ReadWrite
    
  2. Como siempre, confirme los cambios mediante la ejecución del comando Update-AzVM:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    

Esta es una vista del portal de lo que hemos conseguido en este ejercicio. Nuestra VM tiene ahora dos discos de datos, y ajustamos toda la configuración del Almacenamiento en caché del host. Hemos hecho todo esto con tan solo unos pocos comandos con la eficacia de Azure PowerShell.

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