Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Managed Disks es un almacenamiento en bloques duradero y de alto rendimiento diseñado para su uso con Azure Virtual Machines y Azure VMware Solution. Simplifican la administración de discos, ofrecen mayor escalabilidad, mejoran la seguridad y eliminan la necesidad de administrar las cuentas de almacenamiento directamente. Para más información, consulte Azure Managed Disks.
Para las operaciones en Managed Disks asociadas a una máquina virtual existente, use la azure-mgmt-compute
biblioteca .
En los ejemplos de código de este artículo se muestran las operaciones comunes con Managed Disks mediante la azure-mgmt-compute
biblioteca. Estos ejemplos no están diseñados para ejecutarse como scripts independientes, sino para integrarse en su propio código. Para obtener información sobre cómo crear una ComputeManagementClient
instancia desde azure.mgmt.compute
en el script, consulte Ejemplo: Creación de una máquina virtual.
Para obtener ejemplos más completos de cómo usar la azure-mgmt-compute
biblioteca, consulte Ejemplos de Azure SDK para Python relacionados con cómputo en GitHub.
Discos administrados independientes
En los ejemplos siguientes se muestran diferentes formas de aprovisionar Managed Disks independientes.
Creación de un disco administrado vacío
En este ejemplo se muestra cómo crear un disco administrado vacío. Puede usarlo como un disco en blanco para conectarse a una máquina virtual o como punto de partida para crear instantáneas o imágenes.
from azure.mgmt.compute.models import DiskCreateOption
poller = compute_client.disks.begin_create_or_update(
'my_resource_group',
'my_disk_name',
{
'location': 'eastus',
'disk_size_gb': 20,
'creation_data': {
'create_option': DiskCreateOption.empty
}
}
)
disk_resource = poller.result()
Creación de un disco administrado a partir de Blob Storage
En este ejemplo se muestra cómo crear un disco administrado a partir de un archivo VHD almacenado en Azure Blob Storage. Esto resulta útil cuando desea reutilizar o mover un disco duro virtual existente a Azure.
from azure.mgmt.compute.models import DiskCreateOption
poller = compute_client.disks.begin_create_or_update(
'my_resource_group',
'my_disk_name',
{
'location': 'eastus',
'creation_data': {
'create_option': DiskCreateOption.IMPORT,
'storage_account_id': '/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>',
'source_uri': 'https://<storage-account-name>.blob.core.windows.net/vm-images/test.vhd'
}
}
)
disk_resource = poller.result()
Creación de una imagen de Managed Disk a partir de Blob Storage
En este ejemplo se muestra cómo crear una imagen de Managed Disk a partir de un archivo VHD almacenado en Azure Blob Storage. Esto resulta útil cuando desea crear una imagen reutilizable que se pueda usar para crear nuevas máquinas virtuales.
from azure.mgmt.compute.models import OperatingSystemStateTypes, HyperVGeneration
poller = compute_client.images.begin_create_or_update(
'my_resource_group',
'my_image_name',
{
'location': 'eastus',
'storage_profile': {
'os_disk': {
'os_type': 'Linux',
'os_state': OperatingSystemStateTypes.GENERALIZED,
'blob_uri': 'https://<storage-account-name>.blob.core.windows.net/vm-images/test.vhd',
'caching': "ReadWrite",
},
},
'hyper_v_generation': HyperVGeneration.V2,
}
)
image_resource = poller.result()
Creación de un disco administrado a partir de su propia imagen
En este ejemplo se muestra cómo crear un disco administrado mediante la copia de uno existente. Esto resulta útil cuando desea realizar una copia de seguridad o usar la misma configuración de disco en otra máquina virtual.
from azure.mgmt.compute.models import DiskCreateOption
# If you don't know the id, do a 'get' like this to obtain it
managed_disk = compute_client.disks.get(self.group_name, 'myImageDisk')
poller = compute_client.disks.begin_create_or_update(
'my_resource_group',
'my_disk_name',
{
'location': 'eastus',
'creation_data': {
'create_option': DiskCreateOption.COPY,
'source_resource_id': managed_disk.id
}
}
)
disk_resource = poller.result()
Máquina virtual con Managed Disks
Puede crear una máquina virtual con un disco administrado creado implícitamente en función de una imagen de disco específica, lo que elimina la necesidad de definir manualmente todos los detalles del disco.
Un disco administrado se crea implícitamente al crear una máquina virtual a partir de una imagen del sistema operativo en Azure. Azure controla automáticamente la cuenta de almacenamiento, por lo que no es necesario especificar storage_profile.os_disk
ni crear manualmente una cuenta de almacenamiento.
storage_profile = azure.mgmt.compute.models.StorageProfile(
image_reference = azure.mgmt.compute.models.ImageReference(
publisher='Canonical',
offer='UbuntuServer',
sku='16.04-LTS',
version='latest'
)
)
Para obtener un ejemplo completo en el que se muestra cómo crear una máquina virtual mediante las bibliotecas de administración de Azure para Python, consulte Ejemplo: Creación de una máquina virtual. En este ejemplo se muestra cómo usar el storage_profile
parámetro .
También puede crear un storage_profile
a partir de su propia imagen.
# If you don't know the id, do a 'get' like this to obtain it
image = compute_client.images.get(self.group_name, 'myImageDisk')
storage_profile = azure.mgmt.compute.models.StorageProfile(
image_reference = azure.mgmt.compute.models.ImageReference(
id = image.id
)
)
Puede conectar fácilmente un disco administrado aprovisionado anteriormente:
vm = compute_client.virtual_machines.get(
'my_resource_group',
'my_vm'
)
managed_disk = compute_client.disks.get('my_resource_group', 'myDisk')
vm.storage_profile.data_disks.append({
'lun': 12, # You choose the value, depending of what is available for you
'name': managed_disk.name,
'create_option': DiskCreateOptionTypes.attach,
'managed_disk': {
'id': managed_disk.id
}
})
async_update = compute_client.virtual_machines.begin_create_or_update(
'my_resource_group',
vm.name,
vm,
)
async_update.wait()
Conjuntos de escalado de máquinas virtuales con discos administrados
Antes de Azure Managed Disks, tenías que crear manualmente una cuenta de almacenamiento para cada máquina virtual en tu Conjunto de Escala de Máquinas Virtuales y usar el parámetro vhd_containers
para especificar esas cuentas de almacenamiento en la API REST del conjunto de escala.
Con Azure Managed Disks, la administración de cuentas de almacenamiento ya no es necesaria. Como resultado, los storage_profile
conjuntos de escalado de máquinas virtuales usados para los conjuntos de escalado de máquinas virtuales ahora pueden coincidir con el usado para la creación de máquinas virtuales individuales:
'storage_profile': {
'image_reference': {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
}
},
El ejemplo completo es el siguiente:
naming_infix = "PyTestInfix"
vmss_parameters = {
'location': self.region,
"overprovision": True,
"upgrade_policy": {
"mode": "Manual"
},
'sku': {
'name': 'Standard_A1',
'tier': 'Standard',
'capacity': 5
},
'virtual_machine_profile': {
'storage_profile': {
'image_reference': {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
}
},
'os_profile': {
'computer_name_prefix': naming_infix,
'admin_username': 'Foo12',
'admin_password': 'BaR@123!!!!',
},
'network_profile': {
'network_interface_configurations' : [{
'name': naming_infix + 'nic',
"primary": True,
'ip_configurations': [{
'name': naming_infix + 'ipconfig',
'subnet': {
'id': subnet.id
}
}]
}]
}
}
}
# Create VMSS test
result_create = compute_client.virtual_machine_scale_sets.begin_create_or_update(
'my_resource_group',
'my_scale_set',
vmss_parameters,
)
vmss_result = result_create.result()
Otras operaciones con Managed Disks
Cambio de tamaño de un disco administrado
En este ejemplo se muestra cómo hacer que un disco administrado existente sea mayor. Esto resulta útil cuando necesita más espacio para los datos o las aplicaciones.
managed_disk = compute_client.disks.get('my_resource_group', 'myDisk')
managed_disk.disk_size_gb = 25
async_update = self.compute_client.disks.begin_create_or_update(
'my_resource_group',
'myDisk',
managed_disk
)
async_update.wait()
Actualización del tipo de cuenta de almacenamiento de Managed Disks
En este ejemplo se muestra cómo cambiar el tipo de almacenamiento de un disco administrado y aumentar su tamaño. Esto resulta útil cuando necesita más espacio o un mejor rendimiento para los datos o las aplicaciones.
from azure.mgmt.compute.models import StorageAccountTypes
managed_disk = compute_client.disks.get('my_resource_group', 'myDisk')
managed_disk.account_type = StorageAccountTypes.STANDARD_LRS
async_update = self.compute_client.disks.begin_create_or_update(
'my_resource_group',
'myDisk',
managed_disk
)
async_update.wait()
Creación de una imagen a partir de Blob Storage
En este ejemplo se muestra cómo crear una imagen de Managed Disk a partir de un archivo VHD almacenado en Azure Blob Storage. Esto resulta útil cuando desea crear una imagen reutilizable que puede usar para crear nuevas máquinas virtuales.
async_create_image = compute_client.images.create_or_update(
'my_resource_group',
'myImage',
{
'location': 'eastus',
'storage_profile': {
'os_disk': {
'os_type': 'Linux',
'os_state': "Generalized",
'blob_uri': 'https://<storage-account-name>.blob.core.windows.net/vm-images/test.vhd',
'caching': "ReadWrite",
}
}
}
)
image = async_create_image.result()
Creación de una instantánea de un disco administrado que está conectado actualmente a una máquina virtual
En este ejemplo se muestra cómo tomar una instantánea de un disco administrado que está conectado a una máquina virtual. Puede usar la instantánea para hacer una copia de seguridad del disco o restaurarlo más adelante si es necesario.
managed_disk = compute_client.disks.get('my_resource_group', 'myDisk')
async_snapshot_creation = self.compute_client.snapshots.begin_create_or_update(
'my_resource_group',
'mySnapshot',
{
'location': 'eastus',
'creation_data': {
'create_option': 'Copy',
'source_uri': managed_disk.id
}
}
)
snapshot = async_snapshot_creation.result()
Consulte también
- Ejemplo: Creación de una máquina virtual
- Ejemplo: Creación de un grupo de recursos
- Ejemplo: Enumeración de grupos de recursos en una suscripción
- Ejemplo: Creación de Azure Storage
- Ejemplo de uso de Azure Storage
- Ejemplo: Creación y uso de una base de datos MySQL
- Complete una breve encuesta sobre el SDK de Azure para Python