Anteckning
Å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.
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
Den här artikeln beskriver expanderande operativsystemdiskar (OS) och datadiskar för en virtuell Linux-dator (VM). Du kan lägga till datadiskar för att ge mer lagringsutrymme och du kan även expandera en befintlig datadisk. Standardstorleken för virtuella hårddiskar för operativsystemet är vanligtvis 30 GB på en virtuell Linux-dator i Azure. Den här artikeln beskriver hur du expanderar os-diskar eller datadiskar.
En OS-disk har en maximal kapacitet på 4 095 GiB. Många operativsystem är dock partitionerade med master boot record (MBR) som standard. MBR begränsar den användbara storleken till 2 TiB. Om du behöver mer än 2 TiB kan du överväga att ansluta datadiskar för datalagring. Om du behöver lagra data på OS-disken och behöver extra utrymme konverterar du dem till en GUID-partitionstabell (GPT).
Varning
Kontrollera alltid att filsystemet är i felfritt tillstånd och att diskpartitionstabelltypen (GPT eller MBR) har stöd för den nya storleken. Säkerhetskopiera dina data innan du utför diskexpansionsåtgärder. Mer information finns i snabbstarten för Azure Backup.
Identifiera ett Azure-datadiskobjekt i operativsystemet
När du expanderar en datadisk som har flera datadiskar på den virtuella datorn kan det vara svårt att relatera Azures logiska enhetsnummer (LUN) till Linux-enheterna. Om OS-disken behöver utökas är den tydligt märkt i Azure-portalen som OS-disk.
Börja med att identifiera relationen mellan diskanvändning, monteringspunkt och enhet med df kommandot .
df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 xfs 97G 1.8G 95G 2% /
<truncated>
/dev/sdd1 ext4 32G 30G 727M 98% /opt/db/data
/dev/sde1 ext4 32G 49M 30G 1% /opt/db/log
Här kan du till exempel se att /opt/db/data filsystemet nästan är fullt och finns på partitionen /dev/sdd1 . Utdata från df visar enhetssökvägen, oavsett om disken är monterad med hjälp av enhetssökvägen eller det (föredragna) UUID i fstab. Observera kolumnen Typ, som anger filsystemformat. Formatet är viktigt senare.
Leta nu upp det LUN som korrelerar med /dev/sdd genom att undersöka innehållet i /dev/disk/azure/scsi1. Utdata från följande ls kommando visar att enheten som /dev/sdd kallas i Linux-operativsystemet finns på LUN1 när du tittar i Azure-portalen.
sudo ls -alF /dev/disk/azure/scsi1/
total 0
drwxr-xr-x. 2 root root 140 Sep 9 21:54 ./
drwxr-xr-x. 4 root root 80 Sep 9 21:48 ../
lrwxrwxrwx. 1 root root 12 Sep 9 21:48 lun0 -> ../../../sdc
lrwxrwxrwx. 1 root root 12 Sep 9 21:48 lun1 -> ../../../sdd
lrwxrwxrwx. 1 root root 13 Sep 9 21:48 lun1-part1 -> ../../../sdd1
lrwxrwxrwx. 1 root root 12 Sep 9 21:54 lun2 -> ../../../sde
lrwxrwxrwx. 1 root root 13 Sep 9 21:54 lun2-part1 -> ../../../sde1
Expandera en Azure-hanterade disk
Expandera utan stilleståndstid
Du kan expandera dina hanterade diskar utan att frigöra den virtuella datorn. Inställningen för värdcachen för disken ändrar inte om du kan expandera en datadisk utan att frigöra den virtuella datorn.
Den här funktionen har följande begränsningar.
Viktigt!
Den här begränsningen gäller inte för Premium SSD v2 eller Ultra Disks.
Om en Standard HDD-, Standard SSD- eller Premium SSD-disk är 4 TiB eller mindre, stäng av den virtuella datorn och koppla bort disken innan du expanderar den så att den överstiger 4 TiB. Om en av dessa disktyper redan är större än 4 TiB kan du expandera den utan att frigöra den virtuella datorn och koppla från disken.
- Stöds endast för datadiskar.
- Stöds inte för delade diskar.
- Måste installeras och använda något av följande alternativ:
- Den senaste Azure CLI.
- Den senaste Azure PowerShell-modulen.
- Azure-portalen.
- En Azure Resource Manager-mall med en API-version som är
2021-04-01eller senare.
- Är inte tillgängligt på vissa klassiska virtuella datorer. Använd det här skriptet för att hämta en lista över klassiska VM-produkter som stöder utökning utan driftstopp.
Expandera med Ultra Disks och Premium SSD v2
Att expandera Ultra Disks- och Premium SSD v2-diskar utan avbrott har följande ytterligare begränsningar:
- Du kan inte expandera en disk medan en bakgrundskopia av data också sker på disken. Ett exempel är när en disk återfylls från ögonblicksbilder.
Du kan expandera Ultra Disks- och Premium SSD v2-diskar som är anslutna till virtuella datorer med hjälp av NVMe-styrenheter utan avbrott i alla regioner som stöder någon av dessa disktyper med hjälp av antingen Azure-portalen, Azure CLI eller Azure PowerShell-modulen för att göra ändringen.
Tillåt upp till 10 minuter för att rätt storlek ska återspeglas i virtuella Windows-datorer och virtuella Linux-datorer. För virtuella Linux-datorer måste du utföra en Omskanningsfunktion för Linux. För en virtuell Windows-dator som inte har någon arbetsbelastning måste du utföra en Windows-omsökningsfunktion. Du kan söka om omedelbart, men om tiden är inom 10 minuter kan du behöva söka igen för att visa rätt storlek. Om en omskanning inte fungerar korrekt kan du antingen upprepa omskanningen eller starta om den virtuella datorn för att visa rätt storlek.
Expandera Azure-hanterad disk
Kontrollera att du har installerat den senaste Azure CLI och är inloggad på ett Azure-konto med az login.
Den här artikeln kräver en befintlig virtuell dator i Azure med minst en datadisk ansluten och förberedd. Om du inte redan har en virtuell dator som du kan använda kan du läsa Skapa och förbereda en virtuell dator med datadiskar.
I följande exempel ersätter du platshållarparameternamnen som myResourceGroup och myVM med dina egna värden.
Viktigt!
Om disken uppfyller kraven i Expandera utan stilleståndstid kan du hoppa över steg 1 och 3.
Krympning av en befintlig disk stöds inte och kan leda till dataförlust.
När du har expanderat diskarna expanderar du volymen i operativsystemet för att dra nytta av den större disken.
Det går inte att utföra åtgärder på virtuella hårddiskar när den virtuella datorn körs. Frigör den virtuella datorn med az vm deallocate. I följande exempel frigörs den virtuella datorn med namnet myVM i resursgruppen med namnet myResourceGroup:
az vm deallocate --resource-group myResourceGroup --name myVMDen virtuella datorn måste deallokeras för att expandera den virtuella hårddisken. Om du stoppar den virtuella datorn med
az vm stopfrigörs inte beräkningsresurserna. Om du vill frigöra beräkningsresurser använder duaz vm deallocate.Visa en lista över hanterade diskar i en resursgrupp med az disk list. I följande exempel visas en lista över hanterade diskar i resursgruppen med namnet myResourceGroup:
az disk list \ --resource-group myResourceGroup \ --query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \ --output tableExpandera den disk som krävs med az disk update. I följande exempel expanderas den hanterade disken med namnet myDataDisk till 200 GB:
az disk update \ --resource-group myResourceGroup \ --name myDataDisk \ --size-gb 200När du expanderar en hanterad disk avrundas den uppdaterade storleken upp till närmaste hanterade diskstorlek.
Starta den virtuella datorn med az vm start. I följande exempel startas den virtuella datorn med namnet myVM i resursgruppen med namnet myResourceGroup:
az vm start --resource-group myResourceGroup --name myVM
Expandera en diskpartition och ett filsystem
Du kan använda många verktyg för att ändra storlek på partitioner. Verktygen som beskrivs i resten av den här artikeln är samma som vissa automatiserade processer använder, till exempel cloud-init. Som beskrivs här, ger verktyget tillsammans med growpart-paketet universell kompatibilitet med GPT-diskar eftersom äldre versioner av vissa verktyg som gdisk inte stödde GPT.
Identifiera en ändrad diskstorlek
Om du använde den tidigare nämnda proceduren för att expandera en datadisk utan stilleståndstid ändras inte den rapporterade diskstorleken förrän enheten har genomsökts igen. Omskanning sker normalt endast under startprocessen. För att kalla på den här omskanningen på begäran, använd följande procedur. När du använder metoderna i den här artikeln bör du observera att i det här exemplet är datadisken för närvarande /dev/sda och har storleksändrats från 256 GiB till 512 GiB.
Identifiera den storlek som för närvarande identifieras på den första raden med utdata från
fdisk -l /dev/sda:sudo fdisk -l /dev/sdaDisk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x43d10aad Device Boot Start End Sectors Size Id Type /dev/sda1 2048 536870878 536868831 256G 83 LinuxInfoga ett
1tecken i genomsökningsfilen för den här enheten. Observera referensen tillsdai exemplet. Diskidentifieraren ändras om en annan diskenhet ändras i storlek.echo 1 | sudo tee /sys/class/block/sda/device/rescanKontrollera att den nya diskstorleken nu känns igen.
sudo fdisk -l /dev/sdaDisk /dev/sda: 512 GiB, 549755813888 bytes, 1073741824 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x43d10aad Device Boot Start End Sectors Size Id Type /dev/sda1 2048 536870878 536868831 256G 83 Linux
Resten av den här artikeln använder OS-disken för exemplen på proceduren för att öka storleken på en volym på OS-nivå. Om den expanderade disken är en datadisk använder du föregående vägledning för att identifiera datadiskenheten. Följ dessa instruktioner som en riktlinje. Ersätt datadiskenheten (till exempel /dev/sda), partitionsnummer, volymnamn, monteringspunkter och filsystemformat efter behov.
Betrakta all vägledning för Linux-operativsystemet som allmän och att den kan gälla för alla distributioner, men den matchar vanligtvis konventionerna för den namngivna Marketplace-utgivaren. Se Red Hat-dokumentationen för paketkraven för all distribution baserat på Red Hat eller som gör anspråk på Red Hat-kompatibilitet.
Öka storleken på OS-disken
Följande instruktioner gäller för godkända Linux-distributioner.
Innan du fortsätter ska du göra en fullständig säkerhetskopia av den virtuella datorn eller åtminstone ta en ögonblicksbild av os-disken.
På Ubuntu 16.x och senare expanderas rotpartitionen för OS-disken och filsystemen automatiskt för att använda allt ledigt sammanhängande utrymme på rotdisken av cloud-init. En liten mängd ledigt utrymme måste vara tillgängligt för storleksändringsåtgärden. I det här fallet är sekvensen att:
- Öka storleken på OS-disken enligt beskrivningen ovan.
- Starta om den virtuella datorn och få åtkomst till den virtuella datorn med hjälp av rotanvändarkontot.
- Kontrollera att OS-disken nu visar en ökad filsystemstorlek.
Så som det visas i följande exempel, ändrades operativsystemdisken via portalen till 100 GB. Filsystemet /dev/sda1 som är monterat på / visar nu 97 GB.
df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 314M 0 314M 0% /dev
tmpfs tmpfs 65M 2.3M 63M 4% /run
/dev/sda1 ext4 97G 1.8G 95G 2% /
tmpfs tmpfs 324M 0 324M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 324M 0 324M 0% /sys/fs/cgroup
/dev/sda15 vfat 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 ext4 20G 44M 19G 1% /mnt
tmpfs tmpfs 65M 0 65M 0% /run/user/1000
user@ubuntu:~#
Expandera stöd för klassisk VM SKU utan driftstopp
Om du använder en klassisk SKU för virtuella datorer kanske den inte stöder expanderande diskar utan driftstopp.
Använd följande PowerShell-skript för att avgöra vilka VM-SKU:er som är tillgängliga med:
Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}
foreach($vmSize in $vmSizes){
foreach($capability in $vmSize.Capabilities)
{
if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
{
$vmSize.Name
}
}
}