擴充 Linux VM 上的虛擬硬碟
本文內容
適用於: ✔️ Linux VM ✔️ 彈性擴展集
本文涵蓋擴充 Linux 虛擬機的 OS 磁碟和數據磁碟。 您可以新增資料磁碟 來提供更多儲存空間,而您也可以擴充既有的資料磁碟。 在 Azure 中,Linux VM 上作業系統 (OS) 的預設虛擬硬碟大小通常是 30 GB。 本文說明如何擴充 OS 磁碟或資料磁碟。 您無法擴充等量磁碟區的大小。
OS 磁碟的最大容量為 4,095 GiB。 不過,根據預設,許多作業系統會分割 主開機記錄 (MBR) 。 MBR 會將可用大小限制為 2 TiB。 如果您需要超過 2 TiB,請考慮將資料磁碟連結至資料儲存體。 如果需要將資料儲存在 OS 磁碟上,而且需要額外空間,請轉換為 GUID 磁碟分割表格 (GPT)。
警告
請務必確定檔案系統處於健全狀態、磁碟分割資料表類型 (GPT 或 MBR) 將支援新的大小,並確定您在執行磁碟擴充作業之前已先備份資料。 如需詳細資訊,請參閱 Azure 備份快速入門 。
識別作業系統內的 Azure 資料磁碟物件
在擴充資料磁碟的情況下,當虛擬機器上存在多個資料磁碟時,可能很難將 Azure LUN 與 Linux 裝置關聯起來。 如果 OS 磁碟需要擴充,則會在 Azure 入口網站中將其標示為 OS 磁碟。
首先,使用 df
命令來識別磁碟使用率、掛接點及裝置之間的關聯性。
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
例如,我們在這裡可以看到 /opt/db/data
文件系統幾乎已滿,而且位於 /dev/sdd1
分割區。 df
的輸出會顯示裝置路徑,不論磁碟是使用裝置路徑掛接,還是 fstab 中的 (慣用) UUID。 也請記下「類型」資料行,指出文件系統的格式。 此格式在稍後很重要。
現在,藉由檢查 /dev/disk/azure/scsi1
的內容,找出與 /dev/sdd
相互關聯的 LUN。 下列 ls
命令的輸出顯示,在 Azure 入口網站中查看時,Linux OS 中稱為 /dev/sdd
的裝置位於 LUN1。
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
擴充 Azure 受控磁碟
不停機擴充
您無須解除配置 VM,即可擴充受控磁碟。 您的磁碟主機快取設定不會變更您是否可以擴充資料磁碟,而不需要解除分配 VM。
這項功能有下列限制:
僅支援資料磁碟。
如果標準 HDD、標準 SSD 或進階 SSD 磁碟為 4 TiB 或更少,請在將其擴充至超過 4 TiB 之前先解除配置您的 VM 並中斷連結磁碟。 如果這些其中一個磁碟類型已經大於 4 TiB,您可以對其進行擴充,而無需解除配置 VM 並中斷連結磁碟。 這不適用於進階 SSD v2 或 Ultra 磁碟。
不支援共用磁碟。
擇一安裝和使用:
在某些傳統 VM 上無法使用。 使用此指令碼 取得支援無需停機擴充的傳統 VM SKU 清單。
使用 Ultra 磁碟和進階 SSD v2 展開
擴充 Ultra 磁碟和進階 SSD v2 磁碟有下列額外限制:
當磁碟上同時正在進行資料的背景複製 時 (例如當磁碟正在從快照中進行資料恢復時),您無法擴充該磁碟。
您無法在不停機的情況下擴充使用用於 Ultra 磁碟或進階 SSD v2 磁碟的 NVMe 控制器 的 VM。
區域可用性
目前有下列區域提供調整 Ultra 磁碟和進階 SSD v2 磁碟的大小:
澳大利亞中部 2
澳大利亞東部
巴西南部
東亞
德國北部
JIO 印度西部
日本東部
南韓中部
南韓南部
美國中北部
北歐
挪威西部
波蘭中部
卡達中部
南非西部
東南亞
東南亞
瑞典南部
瑞士西部
阿拉伯聯合大公國中部
英國西部
美國中西部
印度西部
展開 Azure 受控磁碟
確定您已安裝最新的 Azure CLI ,並且已使用 az login 登入 Azure 帳戶。
本文需要 Azure 中存有一個虛擬機器,且該虛擬機器至少掛載一個已備妥使用的資料磁碟。 如果您還沒有可使用的虛擬機器,請參閱建立並準備掛載有資料磁碟的虛擬機器 。
在下列範例中,以您自己的值取代範例參數名稱,例如 myResourceGroup 和 myVM 。
重要
如果您的磁碟符合不停機擴充 中的需求,您可以跳過步驟 1 和 3。
不支援壓縮現有的磁碟,這可能會導致資料遺失。
在擴充磁碟之後,您必須擴充作業系統內的磁碟區以使用較大的磁碟。
當 VM 正在執行時,無法對虛擬硬碟執行作業。 使用 az vm deallocate 解除配置您的 VM。 下列範例會解除配置名為 myResourceGroup 資源群組中名為 myVM 的 VM:
az vm deallocate --resource-group myResourceGroup --name myVM
注意
必須解除配置 VM,才能擴充虛擬硬碟。 使用 az vm stop
停止 VM,不會釋放計算資源。 若要釋放計算資源,請使用 az vm deallocate
。
使用 az disk list 來檢視資源群組中的受控磁碟清單。 下列範例會顯示名為 myResourceGroup 之資源群組中的受控磁碟清單:
az disk list \
--resource-group myResourceGroup \
--query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \
--output table
使用 az disk update 擴充所需的磁碟。 下列範例會將名為 myDataDisk 的受控磁碟擴充為 200 GB:
az disk update \
--resource-group myResourceGroup \
--name myDataDisk \
--size-gb 200
使用 az vm create 啟動 VM。 下列範例會啟動名為 myResourceGroup 資源群組中名為 myVM 的 VM:
az vm start --resource-group myResourceGroup --name myVM
擴充磁碟分割與檔案系統
注意
雖然有許多工具可用來執行分割區調整大小,但本文件其餘部分詳述的工具與某些自動化流程所使用的工具相同,例如 cloud-init。 如這裡所述,具有 gdisk
套件的 growpart
工具提供與 GUID 分割區資料表 (GPT) 磁碟的通用相容性,因為某些工具 (例如 fdisk
) 的舊版本不支援 GPT。
偵測變更的磁碟大小
如果使用先前所述的程序來擴充資料磁碟,則在重新掃描裝置之前,回報的磁碟大小不會變更,這通常只會在開機過程中發生。 您可以使用下列程序視需要呼叫此重新掃描。 在此範例中,我們找到使用本文件中的方法,指出資料磁碟目前已 /dev/sda
,且已從 256 GiB 調整為 512 GiB。
識別目前從 fdisk -l /dev/sda
輸出第一行所辨識的大小
sudo fdisk -l /dev/sda
Disk /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 Linux
將 1
字元插入此裝置的重新掃描檔案中。 請注意範例中 sda 的參考。 如果不同磁碟裝置已調整大小,磁碟識別碼就會變更。
echo 1 | sudo tee /sys/class/block/sda/device/rescan
驗證現在已辨識的新磁碟大小
sudo fdisk -l /dev/sda
Disk /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
本文的其餘部分會使用 OS 磁碟作為程序範例,以增加 OS 等級的磁碟區大小。 如果展開的磁碟是資料磁碟,請使用先前的指導來識別資料磁碟裝置 ,並依照這些指示作為指導方針,視需要替代資料磁碟裝置 (例如範例 /dev/sda
)、分割區編號、磁碟區名稱、掛接點及檔案系統格式。
所有 Linux OS 指導都應該視為一般,而且可能會套用在任何發行版上,但通常符合具名市集發行者的慣例。 參考 Red Hat 文件,以了解任何依據 Red Hat 或宣告 Red Hat 相容性的散發套件需求。
增加 OS 磁碟的大小
下列指示適用於背書的 Linux 發行版。
注意
繼續進行之前,請先製作 VM 的完整備份副本,或至少擷取 OS 磁碟的快照集。
在 Ubuntu 16.x 與較新的版本上,OS 磁碟和檔案系統的根分割區會自動擴充,以藉由 cloud-init 來利用根磁碟上所有可用的連續空間,前提是調整大小作業有一些可用空間。 在此情況下,順序就是
如先前所述增加 OS 磁碟的大小
重新啟動 VM,然後使用根 使用者帳戶來存取 VM。
確認 OS 磁碟現在顯示增加的檔案系統大小。
如下列範例所示,已從入口網站將 OS 磁碟大小重新調整為 100 GB。 / 上掛接的 /dev/sda1 檔案系統現在顯示 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:~#
增加 SUSE 12 SP4、SUSE SLES 12 for SAP、SUSE SLES 15、SUSE SLES 15 for SAP 中的 OS 磁碟大小:
請遵循先前所述的程序,在 Azure 基礎結構中展開磁碟。
以其他使用者身分登入之後,使用 sudo
命令,以根 使用者身分存取您的 VM:
sudo -i
使用下列命令安裝 growpart 套件,該套件會用於調整分割區大小 (如果尚不存在):
zypper install growpart
使用 lsblk
命令來尋找掛接在檔案系統根目錄上的分割區 (/ )。 在此情況下,我們看到裝置 sda 的分割區 4 已掛接在 / 上:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 48G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 512M 0 part /boot/efi
├─sda3 8:3 0 1G 0 part /boot
└─sda4 8:4 0 28.5G 0 part /
sdb 8:16 0 4G 0 disk
└─sdb1 8:17 0 4G 0 part /mnt/resource
使用 growpart
命令和上一個步驟中決定的資料分割編號來調整所需分割區的大小:
growpart /dev/sda 4
CHANGED: partition=4 start=3151872 old: size=59762655 end=62914527 new: size=97511391 end=100663263
再次執行 lsblk
命令,檢查分割區是否增加。
下列輸出顯示 /dev/sda4 分割區的大小調整為 46.5 GB:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 48G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 512M 0 part /boot/efi
├─sda3 8:3 0 1G 0 part /boot
└─sda4 8:4 0 46.5G 0 part /
sdb 8:16 0 4G 0 disk
└─sdb1 8:17 0 4G 0 part /mnt/resource
使用 lsblk
命令搭配 -f
旗標,識別 OS 磁碟上的檔案系統類型:
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 vfat EFI AC67-D22D /boot/efi
├─sda3 xfs BOOT 5731a128-db36-4899-b3d2-eb5ae8126188 /boot
└─sda4 xfs ROOT 70f83359-c7f2-4409-bba5-37b07534af96 /
sdb
└─sdb1 ext4 8c4ca904-cd93-4939-b240-fb45401e2ec6 /mnt/resource
根據檔案系統類型,使用適當的命令來調整檔案系統的大小。
針對 xfs ,使用此命令:
xfs_growfs /
範例輸出︰
meta-data=/dev/sda4 isize=512 agcount=4, agsize=1867583 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=7470331, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3647, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 7470331 to 12188923
針對 ext4 ,使用此命令:
resize2fs /dev/sda4
使用下列命令,確認 df -Th 增加的檔案系統大小:
df -Thl
範例輸出︰
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 445M 4.0K 445M 1% /dev
tmpfs tmpfs 458M 0 458M 0% /dev/shm
tmpfs tmpfs 458M 14M 445M 3% /run
tmpfs tmpfs 458M 0 458M 0% /sys/fs/cgroup
/dev/sda4 xfs 47G 2.2G 45G 5% /
/dev/sda3 xfs 1014M 86M 929M 9% /boot
/dev/sda2 vfat 512M 1.1M 511M 1% /boot/efi
/dev/sdb1 ext4 3.9G 16M 3.7G 1% /mnt/resource
tmpfs tmpfs 92M 0 92M 0% /run/user/1000
tmpfs tmpfs 92M 0 92M 0% /run/user/490
在上述範例中,我們可以看到 OS 磁碟的檔案系統大小已增加。
請遵循先前所述的程序,在 Azure 基礎結構中展開磁碟。
以其他使用者身分登入之後,使用 sudo
命令,以根 使用者身分存取您的 VM:
sudo -i
使用 lsblk
命令來判斷檔案系統根目錄 (/ ) 上掛接的邏輯磁碟區 (LV)。 在此情況下,我們看到 rootvg-rootlv 掛接在 / 上。 如果不同的檔案系統需要調整大小,請在整個區段中取代 LV 和掛接點。
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
fd0
sda
├─sda1 vfat C13D-C339 /boot/efi
├─sda2 xfs 8cc4c23c-fa7b-4a4d-bba8-4108b7ac0135 /boot
├─sda3
└─sda4 LVM2_member zx0Lio-2YsN-ukmz-BvAY-LCKb-kRU0-ReRBzh
├─rootvg-tmplv xfs 174c3c3a-9e65-409a-af59-5204a5c00550 /tmp
├─rootvg-usrlv xfs a48dbaac-75d4-4cf6-a5e6-dcd3ffed9af1 /usr
├─rootvg-optlv xfs 85fe8660-9acb-48b8-98aa-bf16f14b9587 /opt
├─rootvg-homelv xfs b22432b1-c905-492b-a27f-199c1a6497e7 /home
├─rootvg-varlv xfs 24ad0b4e-1b6b-45e7-9605-8aca02d20d22 /var
└─rootvg-rootlv xfs 4f3e6f40-61bf-4866-a7ae-5c6a94675193 /
檢查 LVM 磁碟區群組 (VG) 中是否有包含根分割區的可用空間。 如果有可用空間,請跳至步驟 12。
vgdisplay rootvg
--- Volume group ---
VG Name rootvg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 6
Open LV 6
Max PV 0
Cur PV 1
Act PV 1
VG Size <63.02 GiB
PE Size 4.00 MiB
Total PE 16132
Alloc PE / Size 6400 / 25.00 GiB
Free PE / Size 9732 / <38.02 GiB
VG UUID lPUfnV-3aYT-zDJJ-JaPX-L2d7-n8sL-A9AgJb
在此範例中,Free PE / Size 一行會顯示磁碟群組中有 38.02 GB可用,因為磁碟已調整大小。
安裝 cloud-utils-growpart 套件以提供 growpart 命令,這是增加 OS 磁碟大小和 GPT 磁碟配置的 gdisk 處理常式所需的命令。此套件已預安裝在大多數市集映像上
dnf install cloud-utils-growpart gdisk
在 Red Hat 第 7 版和以下版本中,您可以使用 yum
命令,而不是 dnf
。
使用 pvscan 命令,判斷哪個磁碟和分割區會在名為 rootvg 的磁碟區群組中保存 LVM 實體磁碟區 (PV) 或磁碟區。 請注意,方括號 ([ 和 ] ) 之間所列的大小和可用空間。
pvscan
PV /dev/sda4 VG rootvg lvm2 [<63.02 GiB / <38.02 GiB free]
使用 lsblk
來確認分割區的大小。
lsblk /dev/sda4
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda4 8:4 0 63G 0 part
├─rootvg-tmplv 253:1 0 2G 0 lvm /tmp
├─rootvg-usrlv 253:2 0 10G 0 lvm /usr
├─rootvg-optlv 253:3 0 2G 0 lvm /opt
├─rootvg-homelv 253:4 0 1G 0 lvm /home
├─rootvg-varlv 253:5 0 8G 0 lvm /var
└─rootvg-rootlv 253:6 0 2G 0 lvm /
使用 growpart 、裝置名稱及分割區編號,展開包含此 PV 的分割區。 這麼做會展開指定的分割區,以使用裝置上所有可用的連續空間。
growpart /dev/sda 4
CHANGED: partition=4 start=2054144 old: size=132161536 end=134215680 new: size=199272414 end=201326558
再次使用 lsblk
命令,確認分割區已調整為預期的大小。 請注意,範例 sda4 已從 63G 變更為 95G。
lsblk /dev/sda4
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda4 8:4 0 95G 0 part
├─rootvg-tmplv 253:1 0 2G 0 lvm /tmp
├─rootvg-usrlv 253:2 0 10G 0 lvm /usr
├─rootvg-optlv 253:3 0 2G 0 lvm /opt
├─rootvg-homelv 253:4 0 1G 0 lvm /home
├─rootvg-varlv 253:5 0 8G 0 lvm /var
└─rootvg-rootlv 253:6 0 2G 0 lvm /
展開 PV 以使用新展開的分割區其餘部分
pvresize /dev/sda4
Physical volume "/dev/sda4" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
確認 PV 的新大小是預期的大小,並與原始 [size / free] 值進行比較。
pvscan
PV /dev/sda4 VG rootvg lvm2 [<95.02 GiB / <70.02 GiB free]
依所需的數量展開 LV,這不需要是磁碟區群組中的所有可用空間。 在下列範例中,會使用下列命令將 /dev/mapper/rootvg-rootlv 的大小從 2 GB 調整到 12 GB (增加 10 GB)。 此命令也會調整 LV 上的檔案系統大小。
lvresize -r -L +10G /dev/mapper/rootvg-rootlv
範例輸出︰
Size of logical volume rootvg/rootlv changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents).
Logical volume rootvg/rootlv successfully resized.
meta-data=/dev/mapper/rootvg-rootlv isize=512 agcount=4, agsize=131072 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 524288 to 3145728
lvresize
命令會自動呼叫 LV 中檔案系統的適當調整大小命令。 確認掛接在 / 上的 /dev/mapper/rootvg-rootlv 是否使用下列命令來增加檔案系統大小:df -Th
範例輸出︰
df -Th /
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootlv xfs 12G 71M 12G 1% /
注意
若要使用相同程序來調整任何其他邏輯磁碟區的大小,請變更步驟 12 中的 LV 名稱。
請遵循先前所述的程序,在 Azure 基礎結構中展開磁碟。
以其他使用者身分登入之後,使用 sudo
命令,以根 使用者身分存取您的 VM:
sudo -i
當 VM 完全重新啟動後,執行下列步驟:
安裝 cloud-utils-growpart 套件以提供 growpart 命令,這是增加 OS 磁碟大小和 GPT 磁碟配置的 gdisk 處理常式所需的命令。 此套件會預先安裝在大部分的 Marketplace 映像上
dnf install cloud-utils-growpart gdisk
在 Red Hat 第 7 版和以下版本中,您可以使用 yum
命令,而不是 dnf
。
使用 lsblk -f 命令來確認保存根 (/ ) 分割區的分割區和檔案系統類型
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 2a7bb59d-6a71-4841-a3c6-cba23413a5d2 /boot
├─sda2 xfs 148be922-e3ec-43b5-8705-69786b522b05 /
├─sda14
└─sda15 vfat 788D-DC65 /boot/efi
sdb
└─sdb1 ext4 923f51ff-acbd-4b91-b01b-c56140920098 /mnt/resource
若要進行驗證,請從使用 gdisk 列出 sda 磁碟的分割區資料表開始。 在此範例中,我們看到一個 48.0 GiB 磁碟,其中分割區 #2 大小為 29.0 GiB。 磁碟在 Azure 入口網站中已從 30 GB 擴充到 48 GB。
gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 100663296 sectors, 48.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 62914526
Partitions will be aligned on 2048-sector boundaries
Total free space is 6076 sectors (3.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 1026048 2050047 500.0 MiB 0700
2 2050048 62912511 29.0 GiB 0700
14 2048 10239 4.0 MiB EF02
15 10240 1024000 495.0 MiB EF00 EFI System Partition
使用 growpart 命令展開根目錄的分割區,在此案例中為 sda2。 使用此命令展開分割區,以使用磁碟上的所有連續空間。
growpart /dev/sda 2
CHANGED: partition=2 start=2050048 old: size=60862464 end=62912512 new: size=98613214 end=100663262
現在再次使用 gdisk 列印新的分割區資料表。 請注意,分割區 2 現在的大小為 47.0 GiB
gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 100663296 sectors, 48.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 100663262
Partitions will be aligned on 2048-sector boundaries
Total free space is 4062 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 1026048 2050047 500.0 MiB 0700
2 2050048 100663261 47.0 GiB 0700
14 2048 10239 4.0 MiB EF02
15 10240 1024000 495.0 MiB EF00 EFI System Partition
使用 xfs_growfs 展開分割區上的檔案系統,其適用於標準市集產生的 RedHat 系統:
xfs_growfs /
meta-data=/dev/sda2 isize=512 agcount=4, agsize=1901952 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=7607808, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3714, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 7607808 to 12326651
使用 df 命令確認已反映新大小
df -hl
Filesystem Size Used Avail Use% Mounted on
devtmpfs 452M 0 452M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 6.8M 457M 2% /run
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/sda2 48G 2.1G 46G 5% /
/dev/sda1 494M 65M 430M 13% /boot
/dev/sda15 495M 12M 484M 3% /boot/efi
/dev/sdb1 3.9G 16M 3.7G 1% /mnt/resource
tmpfs 93M 0 93M 0% /run/user/1000
在不停機的情況下擴充傳統 VM SKU 支援
如果您使用傳統 VM SKU,它可能不支援在不停機的情況下擴充磁碟。
使用下列 PowerShell 指令碼來判斷可用的 VM SKU:
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
}
}
}