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.
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
- Debe haber instalado la CLI de Azure en su sistema anfitrión y haber creado su(s) clave(s) SSH.
Debe haber creado su entorno de clúster en Azure, lo que incluye la creación de los siguientes recursos. Los enlaces son a la documentación de Microsoft Azure.
Procedimiento
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 recursossharedblock
dentro de la zona de disponibilidad de Azurewestcentralus
.$ 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 }
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 recursossharedblock-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 }
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
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
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
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.