適用於:✔️ Linux VM ✔️ 彈性擴展集
本文涵蓋擴充 Linux 虛擬機的作系統(OS)磁碟和數據磁碟。 您可以 新增數據磁碟 來提供更多儲存空間,也可以擴充現有的數據磁碟。 OS 的預設虛擬硬碟大小在 Azure 中的 Linux VM 上通常是 30 GB。 本文說明如何擴充 OS 磁碟或資料磁碟。 您無法擴充等量磁碟區的大小。
OS 磁碟的最大容量為 4,095 GiB。 不過,根據預設,許多作業系統會分割 主開機記錄 (MBR)。 MBR 會將可用大小限制為 2 TiB。 如果您需要超過 2 TiB,請考慮將資料磁碟連結至資料儲存體。 如果您需要將資料儲存在 OS 磁碟上,而且需要額外的空間,請將它轉換成 GUID 磁碟分區數據表 (GPT)。
警告
請務必確定文件系統處於狀況良好的狀態,而且磁碟分區數據表類型 (GPT 或 MBR) 可以支援新的大小。 在執行磁碟擴充作業之前,請先備份您的數據。 如需詳細資訊,請參閱 Azure 備份快速入門。
識別作業系統中的 Azure 資料磁碟物件
當您擴充 VM 上有數個數據磁碟的數據磁碟時,可能很難將 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 掛接。 請注意 Type 資料行,指出文件系統格式。 此格式在稍後很重要。
現在,藉由檢查 /dev/sdd
的內容,找出與 /dev/disk/azure/scsi1
相互關聯的 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。
這項功能具有下列限制。
重要
這項限制不適用於進階 SSD v2 或 Ultra 磁碟。
如果標準 HDD、標準 SSD 或進階 SSD 磁碟為 4 TiB 或更少,請先釋放您的 VM 並卸載磁碟,再將其擴充至 4 TiB 以上。 如果這些其中一個磁碟類型已經大於 4 TiB,您可以對其進行擴充,而無需解除配置 VM 並中斷連結磁碟。
- 僅支援數據磁碟。
- 不支援共用磁碟。
- 必須安裝並使用下列其中一個選項:
- 在某些傳統 VM 上無法使用。 使用此 腳本 來取得支援在不停機的情況下擴充的傳統 VM 產品清單。
使用 Ultra 磁碟和進階 SSD v2 擴充
在無需停機的情況下擴充 Ultra 磁碟與 Premium SSD v2 磁碟時,會有以下額外限制:
- 當磁碟上也同時發生資料的背景複製時,您即無法擴充該磁碟。 例如,正在從快照回填磁碟時。
- 您可以在不需要停機的情況下,使用此公開預覽版中的 NVMe 控制器搭配 Ultra 磁碟或高級 SSD v2 磁碟來擴充 VM。 因為此版本是公開預覽版,所以您應該只使用它來測試擴充的功能,而不需要停機。 請勿在生產環境中擴充 VM。
在下列區域中,您可以擴充使用 NVMe 控制器 搭配 Ultra 磁碟或進階 SSD v2 磁碟的 VM,而不需要停機。 使用 Azure 入口網站、Azure CLI 或 Azure PowerShell 模組:
- 東南亞
- 巴西南部
- 加拿大中部
- 德國中西部
- 印度中部(V6 VM 目前不支援)
在下列區域中,您可以擴充使用 NVMe 控制器 搭配 Ultra 磁碟或進階 SSD v2 磁碟的 VM,而不需要停機。 只使用 Azure CLI 或 Azure PowerShell 模組。 您目前無法使用 Azure 入口網站:
允許最多 10 分鐘,讓正確的大小反映在 Windows VM 和 Linux VM 中。 針對 Linux VM,您必須執行 Linux 重新掃描函式。 對於沒有工作負載的 Windows VM,您必須執行 Windows 重新掃描函式。 您可以立即重新掃描,但如果時間在10分鐘內,您可能需要重新掃描,才能顯示正確的大小。
擴充 Azure 受控磁碟
確定您已安裝最新的 Azure CLI,並且已使用 az login 登入 Azure 帳戶。
本文需要 Azure 中存有一個虛擬機器,且該虛擬機器至少掛載一個已備妥使用的資料磁碟。 如果您還沒有可使用的虛擬機器,請參閱建立並準備掛載有資料磁碟的虛擬機器。
在下列範例中,將 myResourceGroup 和 myVM 等佔位元參數名稱取代為您自己的值。
不支援壓縮現有的磁碟,而且可能會導致數據遺失。
擴展磁碟空間後,請在作業系統中擴展磁碟區,以利用較大的磁碟空間。
當 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。 如這裡所述, growpart
套件的工具 gdisk
提供與 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磁碟作為示範,說明如何在作業系統層級增加磁碟區大小。 如果展開的磁碟是數據磁碟,請使用 先前的指引來識別數據磁碟裝置。 請遵循這些指示作為指導方針。 視需要取代數據磁碟裝置(例如 /dev/sda
)、磁碟分區編號、磁碟區名稱、裝入點和文件系統格式。
將所有 Linux OS 指引視為一般性建議,它可能適用於任何發行版,但通常會符合指定市集發行者的慣例。 查看 Red Hat 文件,以了解任何依據 Red Hat 或宣告 Red Hat 相容性的散發套件需求。
增加 OS 磁碟的大小
下列指示適用於背書的 Linux 發行版。
繼續進行之前,請先建立 VM 的完整備份複本,或至少擷取 OS 磁碟的快照集。
在 Ubuntu 16.x 及較新版本中,作業系統磁碟的根分割區和檔案系統會由 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
命令,這是增加作業系統磁碟大小和 gdisk
GPT 磁碟配置處理程式所需的命令。 此套件會預先安裝在大部分的 Marketplace 映像上。
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
確認相較於原始 [size / free]
值,PV 的新大小是預期的大小。
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 中檔案系統的適當調整大小命令。 使用 df -Th
命令驗證掛接在 /
上的 /dev/mapper/rootvg-rootlv
的檔案系統大小是否增加:
df -Th /
範例輸出︰
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootlv xfs 12G 71M 12G 1% /
若要使用相同的程序來調整任何其他邏輯磁碟區的大小,請變更 lv
步驟 12 中的名稱。
請遵循先前所述的程序,在 Azure 基礎結構中展開磁碟。
以其他使用者身分登入之後,請使用 sudo
命令,以根使用者身分存取您的 VM:
sudo -i
安裝cloud-utils-growpart
套件以提供 growpart
命令,這是增加作業系統磁碟大小和 gdisk
GPT 磁碟配置處理程式所需的命令。 此套件會預先安裝在大部分的 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
若要進行驗證,請先列出sda
磁碟的分區表,然後使用gdisk
。 在此範例中,您會看到磁碟分區 2 大小為 29.0 GiB 的 48.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
擴展分區上的文件系統,這適合於由市集產生的標準 Red Hat 系統:
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
}
}
}