Red Hat Training

A Red Hat training course is available for RHEL 8

2.15. Configuración del almacenamiento en bloque compartido

Esta sección proporciona un procedimiento opcional para configurar el almacenamiento de bloques compartido para un clúster de alta disponibilidad de Red Hat con discos compartidos de Microsoft Azure. El procedimiento asume tres VMs de Azure (un cluster de tres nodos) con un disco compartido de 1 TB.

Nota

Este es un procedimiento de ejemplo independiente para configurar el almacenamiento en bloque. El procedimiento asume que aún no ha creado su clúster.

Requisitos previos

Procedimiento

  1. Crear un volumen de bloques compartido mediante el comando Azure az disk create.

    $ az disk create -g <resource_group> -n <shared_block_volume_name> --size-gb <disk_size> --max-shares <number_vms> -l <location>

    Por ejemplo, el siguiente comando crea un volumen de bloques compartido llamado shared-block-volume.vhd en el grupo de recursos sharedblock dentro de la zona de disponibilidad de Azure westcentralus.

    $ az disk create -g sharedblock-rg -n shared-block-volume.vhd --size-gb 1024 --max-shares 3 -l westcentralus
    
    {
      "creationData": {
        "createOption": "Empty",
        "galleryImageReference": null,
        "imageReference": null,
        "sourceResourceId": null,
        "sourceUniqueId": null,
        "sourceUri": null,
        "storageAccountId": null,
        "uploadSizeBytes": null
      },
      "diskAccessId": null,
      "diskIopsReadOnly": null,
      "diskIopsReadWrite": 5000,
      "diskMbpsReadOnly": null,
      "diskMbpsReadWrite": 200,
      "diskSizeBytes": 1099511627776,
      "diskSizeGb": 1024,
      "diskState": "Unattached",
      "encryption": {
        "diskEncryptionSetId": null,
        "type": "EncryptionAtRestWithPlatformKey"
      },
      "encryptionSettingsCollection": null,
      "hyperVgeneration": "V1",
      "id": "/subscriptions/12345678910-12345678910/resourceGroups/sharedblock-rg/providers/Microsoft.Compute/disks/shared-block-volume.vhd",
      "location": "westcentralus",
      "managedBy": null,
      "managedByExtended": null,
      "maxShares": 3,
      "name": "shared-block-volume.vhd",
      "networkAccessPolicy": "AllowAll",
      "osType": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "sharedblock-rg",
      "shareInfo": null,
      "sku": {
        "name": "Premium_LRS",
        "tier": "Premium"
      },
      "tags": {},
      "timeCreated": "2020-08-27T15:36:56.263382+00:00",
      "type": "Microsoft.Compute/disks",
      "uniqueId": "cd8b0a25-6fbe-4779-9312-8d9cbb89b6f2",
      "zones": null
    }
  2. Compruebe que ha creado el volumen de bloques compartido mediante el comando Azure az disk show.

    $ az disk show -g <grupo_de_recursos> -n <nombre_de_bloque_compartido>

    Por ejemplo, el siguiente comando muestra los detalles del volumen de bloques compartido shared-block-volume.vhd dentro del grupo de recursos sharedblock-rg.

    $ az disk show -g sharedblock-rg -n shared-block-volume.vhd
    
    {
      "creationData": {
        "createOption": "Empty",
        "galleryImageReference": null,
        "imageReference": null,
        "sourceResourceId": null,
        "sourceUniqueId": null,
        "sourceUri": null,
        "storageAccountId": null,
        "uploadSizeBytes": null
      },
      "diskAccessId": null,
      "diskIopsReadOnly": null,
      "diskIopsReadWrite": 5000,
      "diskMbpsReadOnly": null,
      "diskMbpsReadWrite": 200,
      "diskSizeBytes": 1099511627776,
      "diskSizeGb": 1024,
      "diskState": "Unattached",
      "encryption": {
        "diskEncryptionSetId": null,
        "type": "EncryptionAtRestWithPlatformKey"
      },
      "encryptionSettingsCollection": null,
      "hyperVgeneration": "V1",
      "id": "/subscriptions/12345678910-12345678910/resourceGroups/sharedblock-rg/providers/Microsoft.Compute/disks/shared-block-volume.vhd",
      "location": "westcentralus",
      "managedBy": null,
      "managedByExtended": null,
      "maxShares": 3,
      "name": "shared-block-volume.vhd",
      "networkAccessPolicy": "AllowAll",
      "osType": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "sharedblock-rg",
      "shareInfo": null,
      "sku": {
        "name": "Premium_LRS",
        "tier": "Premium"
      },
      "tags": {},
      "timeCreated": "2020-08-27T15:36:56.263382+00:00",
      "type": "Microsoft.Compute/disks",
      "uniqueId": "cd8b0a25-6fbe-4779-9312-8d9cbb89b6f2",
      "zones": null
    }
  3. Crear tres interfaces de red con el comando Azure az network nic create. Ejecute el siguiente comando tres veces utilizando un <nic_name> diferente para cada uno.

    az network nic create -g <resource_group> -n <nic_name> --subnet <subnet_name> --vnet-name <virtual_network> --location <location> --network-security-group <network_security_group> --private-ip-address-version IPv4

    Por ejemplo, el siguiente comando crea una interfaz de red con el nombre shareblock-nodea-vm-nic-protected.

    $ az network nic create -g sharedblock-rg -n sharedblock-nodea-vm-nic-protected --subnet sharedblock-subnet-protected --vnet-name sharedblock-vn --location westcentralus --network-security-group sharedblock-nsg --private-ip-address-version IPv4
  4. Cree tres máquinas virtuales y adjunte el volumen de bloques compartido mediante el comando Azure az vm create. Los valores de las opciones son los mismos para cada VM excepto que cada VM tiene su propio <vm_name>, <new_vm_disk_name>, y <nic_name>.

    az vm create -n <nombre_del_móvil> -g <grupo_de_recursos> --attach-data-disks <nombre_del_volumen_de_bloques_compartidos> --data-disk-caching None --os-disk-caching ReadWrite --os-disk-name <new-vm-disk-name> --os-disk-size-gb <disk_size> --location <location> --size <virtual_machine_size> --image <image_name> --admin-username <vm_username> --authentication-type ssh --ssh-key-values <ssh_key> --nics <nic_name> --availability-set <availability_set> --ppg <proximity_placement_group>

    Por ejemplo, el siguiente comando crea una VM llamada sharedblock-nodea-vm.

    $ az vm create -n sharedblock-nodea-vm -g sharedblock-rg --attach-data-disks shared-block-volume.vhd --data-disk-caching None --os-disk-caching ReadWrite --os-disk-name sharedblock-nodea-vm.vhd --os-disk-size-gb 64 --location westcentralus --size Standard_D2s_v3 --image /subscriptions/12345678910-12345678910/resourceGroups/sample-azureimagesgroupwestcentralus/providers/Microsoft.Compute/images/sample-azure-rhel-8.3.0-20200713.n.0.x86_64 --admin-username sharedblock-user --authentication-type ssh --ssh-key-values @sharedblock-key.pub --nics sharedblock-nodea-vm-nic-protected --availability-set sharedblock-as --ppg sharedblock-ppg
    
    {
      "fqdns": "",
      "id": "/subscriptions/12345678910-12345678910/resourceGroups/sharedblock-rg/providers/Microsoft.Compute/virtualMachines/sharedblock-nodea-vm",
      "location": "westcentralus",
      "macAddress": "00-22-48-5D-EE-FB",
      "powerState": "VM running",
      "privateIpAddress": "198.51.100.3",
      "publicIpAddress": "",
      "resourceGroup": "sharedblock-rg",
      "zones": ""
    }

Pasos de verificación

  1. Para cada una de las máquinas virtuales de su clúster, verifique que el dispositivo de bloque está disponible utilizando el comando ssh con su máquina virtual <ip_address>.

    # ssh <ip_address> "hostname ; lsblk -d | grep ' 1T '"

    Por ejemplo, el siguiente comando enumera los detalles, incluyendo el nombre del host y el dispositivo de bloque para la IP de la VM 198.51.100.3.

    # ssh 198.51.100.3 "hostname ; lsblk -d | grep ' 1T '"
    
    nodea
    sdb    8:16   0    1T  0 disk
  2. Utilice el comando ssh para verificar que cada máquina virtual de su clúster utiliza el mismo disco compartido.

    # ssh <ip_address> "hostname ; lsblk -d | grep ' 1T ' | awk '{print \$1}' | xargs -i udevadm info --query=all --name=/dev/{} | grep '^E: ID_SERIAL='"

    Por ejemplo, el siguiente comando enumera los detalles, incluyendo el nombre del host y el ID del volumen de disco compartido para la dirección IP de la instancia 198.51.100.3.

    # ssh 198.51.100.3 "hostname ; lsblk -d | grep ' 1T ' | awk '{print \$1}' | xargs -i udevadm info --query=all --name=/dev/{} | grep '^E: ID_SERIAL='"
    
    nodea
    E: ID_SERIAL=3600224808dd8eb102f6ffc5822c41d89

Después de haber verificado que el disco compartido está conectado a cada VM, puede configurar el almacenamiento resistente para el cluster. Para obtener información sobre la configuración del almacenamiento resistente para un cluster de Alta Disponibilidad de Red Hat, consulte Configuración de un sistema de archivos GFS2 en un cluster. Para obtener información general sobre el sistema de archivos GFS2, consulte Configuración de sistemas de archivos GFS2.