Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Managed Disks är högpresterande, beständig blocklagring utformad för användning med Azure Virtual Machines och Azure VMware Solution. De förenklar diskhanteringen, ger bättre skalbarhet, förbättrar säkerheten och eliminerar behovet av att hantera lagringskonton direkt. Mer information finns i Azure Managed Disks.
Använd biblioteket för åtgärder på hanterade diskar som är associerade med en befintlig virtuell dator azure-mgmt-compute .
Kodexemplen i den här artikeln visar vanliga åtgärder med hanterade diskar med hjälp av azure-mgmt-compute biblioteket. De här exemplen är inte avsedda att köras som fristående skript, utan snarare för att integreras i din egen kod. Mer information om hur du skapar en ComputeManagementClient instans från azure.mgmt.compute i skriptet finns i Exempel – Skapa en virtuell dator.
Mer fullständiga exempel på hur du använder biblioteket finns i azure-mgmt-computeAzure SDKs för Python-exempel för beräkning i GitHub.
Fristående hanterade diskar
I följande exempel visas olika sätt att etablera fristående hanterade diskar.
Skapa en tom hanterad disk
Det här exemplet visar hur du skapar en ny tom hanterad disk. Du kan använda den som en tom disk för att ansluta till en virtuell dator eller som utgångspunkt för att skapa ögonblicksbilder eller avbildningar.
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()
Skapa en hanterad disk från bloblagring
Det här exemplet visar hur du skapar en hanterad disk från en VHD-fil som lagras i Azure Blob Storage. Den här metoden är användbar när du vill återanvända eller flytta en befintlig virtuell hårddisk till 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()
Skapa en Hanterad disk-avbildning från Blob Storage
Det här exemplet visar hur du skapar en Hanterad disk-avbildning från en VHD-fil som lagras i Azure Blob Storage. Den här metoden är användbar när du vill skapa en återanvändbar avbildning som du kan använda för att skapa nya virtuella datorer.
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()
Skapa en hanterad disk från din egen avbildning
Det här exemplet visar hur du skapar en ny hanterad disk genom att kopiera en befintlig disk. Den här metoden är användbar när du vill göra en säkerhetskopia eller använda samma diskkonfiguration på en annan virtuell dator.
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()
Virtuell dator med hanterade diskar
Du kan skapa en virtuell dator med en implicit skapad hanterad disk baserat på en specifik diskbild, så du behöver inte definiera all diskinformation manuellt.
Du skapar implicit en hanterad disk när du skapar en virtuell dator från en OS-avbildning i Azure. Azure hanterar lagringskontot automatiskt, så du behöver inte ange storage_profile.os_disk eller skapa ett lagringskonto manuellt.
storage_profile = azure.mgmt.compute.models.StorageProfile(
image_reference = azure.mgmt.compute.models.ImageReference(
publisher='Canonical',
offer='UbuntuServer',
sku='16.04-LTS',
version='latest'
)
)
Ett fullständigt exempel som visar hur du skapar en virtuell dator med hjälp av Azure hanteringsbibliotek för Python finns i Exempel – Skapa en virtuell dator. Det här exemplet visar hur du använder parametern storage_profile .
Du kan också skapa en storage_profile från din egen avbildning:
# 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
)
)
Du kan enkelt ansluta en tidigare tilldelad hanterad disk.
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()
Virtuella Maskin Skalningsuppsättningar med Hanterade Diskar
Innan Azure Managed Disks var du tvungen att manuellt skapa ett lagringskonto för varje virtuell dator i vm-skalningsuppsättningen och använda parametern vhd_containers för att ange dessa lagringskonton i REST API för skalningsuppsättning.
Med Azure Managed Disks behöver du inte längre hantera lagringskonton. Därför kan storage_profile för Virtual Machine Scale Sets nu vara samma som den som används när enskilda virtuella datorer skapas:
'storage_profile': {
'image_reference': {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
}
},
Det fullständiga exemplet är följande:
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()
Andra åtgärder med hanterade diskar
Ändra storlek på en hanterad disk
Det här exemplet visar hur du gör en befintlig hanterad disk större. Den här ändringen är användbar när du behöver mer utrymme för dina data eller program.
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()
Uppdatera lagringskontotypen för hanterade diskar
Det här exemplet visar hur du ändrar lagringstypen för en hanterad disk och gör den större. Den här ändringen är användbar när du behöver mer utrymme eller bättre prestanda för dina data eller program.
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()
Skapa en avbildning från Blob Storage
Det här exemplet visar hur du skapar en hanterad diskbild från en VHD-fil som lagras i Azure Blob Storage. Den här metoden är användbar när du vill skapa en återanvändbar avbildning som du kan använda för att skapa nya virtuella datorer.
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()
Skapa en ögonblicksbild av en hanterad disk som för närvarande är ansluten till en virtuell dator
Det här exemplet visar hur du tar en ögonblicksbild av en hanterad disk som är ansluten till en virtuell dator. Du kan använda ögonblicksbilden för att säkerhetskopiera disken eller återställa den senare om det behövs.
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()