擴充 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 磁碟有下列額外限制:
重要
最多允許十分鐘的時間,讓正確的大小反映在 Windows VM 和 Linux VM 中。 針對 Linux VM,您必須針對沒有工作負載的 Windows VM 執行 Linux 重新掃描函 式,您必須執行 Windows 重新掃描函式 。 您可以立即重新掃描,但如果它在十分鐘內,您可能需要重新掃描,才能顯示正確的大小。
區域可用性
調整 Ultra 磁碟和進階 SSD v2 磁碟的大小目前適用於所有進階 SSD v2 和 Ultra 支援的區域,但下列除外:
展開 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
}
}
}