Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os Managed Disks do Azure são armazenamento de blocos duráveis e de alto desempenho concebidos para utilização com as Máquinas Virtuais do Azure e a Solução VMware do Azure. Eles simplificam o gerenciamento de disco, oferecem maior escalabilidade, aumentam a segurança e eliminam a necessidade de gerenciar contas de armazenamento diretamente. Para obter mais informações, consulte Managed Disks do Azure.
Para operações em Discos Geridos associados a uma VM existente, use a azure-mgmt-compute biblioteca.
Os exemplos de código neste artigo demonstram operações comuns com discos gerenciados usando a azure-mgmt-compute biblioteca. Estes exemplos não são feitos para serem executados como scripts autónomos, mas sim para serem integrados no seu próprio código. Para saber como criar uma ComputeManagementClient instância a partir do azure.mgmt.compute script, consulte Exemplo - Criar uma máquina virtual.
Para obter exemplos mais completos de como usar a azure-mgmt-compute biblioteca, consulte Exemplos do SDK do Azure para Python para computação no GitHub.
Discos gerenciados autônomos
Os exemplos a seguir mostram diferentes maneiras de provisionar discos gerenciados autônomos.
Criar um disco gerenciado vazio
Este exemplo mostra como criar um novo Managed Disk vazio. Você pode usá-lo como um disco em branco para anexar a uma máquina virtual ou como um ponto de partida para criar instantâneos ou imagens.
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()
Criar um disco gerido a partir do armazenamento de blobs
Este exemplo mostra como criar um Disco Gerenciado a partir de um arquivo VHD armazenado no Armazenamento de Blobs do Azure. Este método é útil quando quiser reutilizar ou mover um disco rígido virtual existente para o 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()
Criar uma imagem de disco gerido a partir do armazenamento de bolha
Este exemplo mostra como criar uma imagem de Disco Gerenciado a partir de um arquivo VHD armazenado no Armazenamento de Blobs do Azure. Este método é útil quando queres criar uma imagem reutilizável que possas usar para criar novas máquinas virtuais.
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()
Criar um disco gerenciado a partir de sua própria imagem
Este exemplo mostra como criar um novo disco gerenciado copiando um existente. Este método é útil quando quiseres fazer uma cópia de segurança ou usar a mesma configuração de disco noutra 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 com discos gerenciados
Pode criar uma máquina virtual com um disco gerido criado implicitamente com base numa imagem de disco específica, pelo que não precisa de definir manualmente todos os detalhes do disco.
Implicitamente crias um Disco Gerido quando crias uma VM a partir de uma imagem do sistema operativo no Azure. O Azure processa automaticamente a conta de armazenamento, pelo que não precisa de especificar storage_profile.os_disk ou criar uma conta de armazenamento manualmente.
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 um exemplo completo que mostra como criar uma máquina virtual usando as bibliotecas de gestão do Azure para Python, veja Exemplo - Criar uma máquina virtual. Este exemplo demonstra como usar o storage_profile parâmetro.
Você também pode criar um storage_profile a partir de sua própria imagem:
# 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
)
)
Você pode anexar facilmente um disco gerenciado provisionado 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 dimensionamento de máquinas virtuais com discos gerenciados
Antes dos Discos Geridos do Azure, necessitava criar manualmente uma conta de armazenamento para cada VM no seu Conjunto de Dimensionamento de Máquinas Virtuais e usar o parâmetro vhd_containers para especificar essas contas de armazenamento na API REST do Conjunto de Dimensionamento.
Com o Managed Disks do Azure, já não precisa de gerir contas de armazenamento. Como resultado, o storage_profile para Conjuntos de Dimensionamento de Máquinas Virtuais pode agora corresponder ao usado para criação individual de VM:
'storage_profile': {
'image_reference': {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
}
},
A amostra completa é a seguinte:
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()
Outras operações com Managed Disks
Redimensionamento de um disco gerenciado
Este exemplo mostra como aumentar um Managed Disk existente. Esta mudança é útil quando precisa de mais espaço para os seus dados ou aplicações.
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()
Atualizar o tipo de conta de armazenamento dos Managed Disks
Este exemplo mostra como alterar o tipo de armazenamento de um disco gerenciado e torná-lo maior. Esta mudança é útil quando precisa de mais espaço ou melhor desempenho para os seus dados ou aplicações.
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()
Criar uma imagem a partir do armazenamento de blob
Este exemplo mostra como criar uma imagem de disco gerida a partir de um ficheiro VHD armazenado no Armazenamento de Blobs do Azure. Este método é útil quando queres criar uma imagem reutilizável que possas usar para criar novas máquinas virtuais.
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()
Crie um snapshot de um disco gerido que esteja atualmente ligado a uma máquina virtual
Este exemplo mostra como tirar um snapshot de um disco gerido que está ligado a uma máquina virtual. Você pode usar o instantâneo para fazer backup do disco ou restaurá-lo mais tarde, se necessário.
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()
Ver também
- Exemplo: Criar uma máquina virtual
- Exemplo: Criar um grupo de recursos
- Exemplo: Listar grupos de recursos em uma assinatura
- Exemplo: Criar armazenamento do Azure
- Exemplo: Usar o Armazenamento do Azure
- Exemplo: Criar e usar um banco de dados MySQL
- Conclua uma breve pesquisa sobre o SDK do Azure para Python