적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합
이 문서에서는 Linux VM(가상 머신)에 대한 OS(운영 체제) 디스크 및 데이터 디스크 확장에 대해 설명합니다. 데이터 디스크를 추가하여 더 많은 스토리지 공간을 제공할 수 있으며 기존 데이터 디스크를 확장할 수도 있습니다. OS의 기본 가상 하드 디스크 크기는 일반적으로 Azure의 Linux VM에서 30GB입니다. 이 문서에서는 OS 디스크 또는 데이터 디스크 확장을 다룹니다. 스트라이프 볼륨의 크기는 확장할 수 없습니다.
OS 디스크의 최대 용량은 4,095GiB입니다. 그러나 많은 운영 체제가 기본적으로 MBR(마스터 부트 레코드)로 분할되어 있습니다. MBR은 사용 가능한 크기를 2TiB로 제한합니다. 2TiB 이상이 필요한 경우 데이터 스토리지를 위해 데이터 디스크를 연결하는 것이 좋습니다. OS 디스크에 데이터를 저장하고 추가 공간이 필요한 경우 GPT(GUID 파티션 테이블)로 변환합니다.
경고
항상 파일 시스템이 정상 상태이고 디스크 파티션 테이블 형식(GPT 또는 MBR)이 새 크기를 지원할 수 있는지 확인합니다. 디스크 확장 작업을 수행하기 전에 데이터를 백업합니다. 자세한 내용은 Azure Backup 빠른 시작을 참조하세요.
운영 체제 내에서 Azure 데이터 디스크 개체 식별
VM에 여러 데이터 디스크가 있는 데이터 디스크를 확장하면 Azure LUN(논리 단위 번호)을 Linux 디바이스와 연결하기 어려울 수 있습니다. OS 디스크에 확장이 필요한 경우 Azure Portal에서 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 Disks에는 적용되지 않습니다.
표준 HDD, 표준 SSD 또는 프리미엄 SSD 디스크가 4TiB 이하인 경우 VM의 할당을 취소하고 디스크를 분리한 후 4TiB 이상으로 확장합니다. 이러한 디스크 유형 중 하나가 이미 4TiB보다 큰 경우에는 VM의 할당을 취소하거나 디스크를 분리하지 않고도 디스크를 확장할 수 있습니다.
- 데이터 디스크에 대해서만 지원됩니다.
- 공유 디스크에는 지원되지 않습니다.
- 설치하고 다음 옵션 중 하나를 사용해야 합니다.
- 일부 클래식 VM에서는 사용할 수 없습니다. 이 스크립트를 사용하여 가동 중지 시간 없이 확장을 지원하는 클래식 VM 제품 목록을 가져옵니다.
Ultra Disks 및 Premium SSD v2를 사용하여 확장
가동 중지 시간 없이 Ultra Disks 및 Premium SSD v2 디스크를 확장하면 다음과 같은 추가 제한 사항이 있습니다.
- 데이터가 백그라운드로 복사되는 동안에는 해당 디스크를 확장할 수 없습니다. 예를 들어 디스크가 스냅샷에서 백필되는 경우입니다.
- 이 공개 미리 보기에서 가동 중지 시간 없이 Ultra Disks 또는 Premium SSD v2 디스크가 있는 NVMe 컨트롤러를 사용하여 VM을 확장할 수 있습니다. 이 릴리스는 공개 미리 보기이므로 가동 중지 시간 없이 확장 기능을 테스트하는 데만 사용해야 합니다. 프로덕션 환경에서 VM을 확장하지 마세요.
다음 지역에서는 가동 중지 시간 없이 Ultra Disks 또는 Premium SSD v2 디스크에서 NVMe 컨트롤러 를 사용하는 VM을 확장할 수 있습니다. Azure Portal, Azure CLI 또는 Azure PowerShell 모듈을 사용합니다.
- 동남아시아
- 브라질 남부
- 캐나다 중부
- 독일 중서부
- 인도 중부(현재 V6 VM에서 지원되지 않음)
다음 지역에서는 가동 중지 시간 없이 Ultra Disks 또는 Premium SSD v2 디스크에서 NVMe 컨트롤러 를 사용하는 VM을 확장할 수 있습니다. Azure CLI 또는 Azure PowerShell 모듈만 사용합니다. 현재 Azure Portal은 사용할 수 없습니다.
- 동아시아
- 미국 중서부(현재 V6 VM에서 지원되지 않음)
Windows VM 및 Linux VM에 올바른 크기를 반영하려면 최대 10분이 걸립니다. Linux VM의 경우 Linux 다시 검사 기능을 수행해야 합니다. 워크로드가 없는 Windows VM의 경우 Windows 다시 검사 함수를 수행해야 합니다. 즉시 다시 검사할 수 있지만 시간이 10분 이내인 경우 올바른 크기를 표시하려면 다시 검사해야 할 수 있습니다.
Azure 관리 디스크 확장
최신 Azure CLI를 설치하고 az login을 사용하여 Azure 계정에 로그인했는지 확인합니다.
이 문서는 Azure에 데이터 디스크가 하나 이상 연결되고 준비된 기존 VM이 필요합니다. 사용할 수 있는 VM이 아직 없는 경우 데이터 디스크로 VM 만들기 및 준비를 참조하세요.
다음 샘플에서는 myResourceGroup 및 myVM 과 같은 자리 표시자 매개 변수 이름을 사용자 고유의 값으로 바꿉니다.
기존 디스크 축소는 지원되지 않으며 데이터 손실이 발생할 수 있습니다.
디스크를 확장한 후 OS의 볼륨을 확장하여 더 큰 디스크를 활용합니다.
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를 사용하여 리소스 그룹에서 Managed Disks 목록을 봅니다. 다음 예제에서는 myResourceGroup이라는 리소스 그룹의 관리 디스크 목록을 보여 줍니다.
az disk list \
--resource-group myResourceGroup \
--query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \
--output table
az disk update를 사용하여 필요한 디스크를 확장합니다. 다음 예제에서는 myDataDisk라는 관리 디스크를 200GB로 확장합니다.
az disk update \
--resource-group myResourceGroup \
--name myDataDisk \
--size-gb 200
관리 디스크를 확장하면 업데이트된 크기가 가장 가까운 관리 디스크의 크기로 반올림됩니다.
az vm start를 사용하여 VM을 시작합니다. 다음 예제에서는 리소스 그룹 myResourceGroup에서 myVM이라는 VM을 시작합니다.
az vm start --resource-group myResourceGroup --name myVM
디스크 파티션 및 파일 시스템 확장
여러 도구를 사용하여 파티션 크기 조정을 수행할 수 있습니다. 이 문서의 나머지 부분에 자세히 설명된 도구는 cloud-init와 같은 특정 자동화된 프로세스에서 사용하는 도구와 동일합니다. growpart
에 설명된 대로, gdisk
패키지가 포함된 도구는 fdisk
와 같은 일부 도구의 이전 버전이 GPT를 지원하지 않았기 때문에 GPT 디스크와 범용적으로 호환됩니다.
변경된 디스크 크기 검색
앞에서 언급한 절차를 사용하여 가동 중지 시간 없이 데이터 디스크를 확장한 경우 디바이스를 다시 검사할 때까지 보고된 디스크 크기가 변경되지 않습니다. 재검사는 일반적으로 부팅 프로세스에서만 발생합니다. 원할 때 이 재검색을 호출하려면 다음 절차를 따르십시오. 이 문서의 메서드를 사용하는 경우 이 예제에서 데이터 디스크는 현재 /dev/sda
256GiB에서 512GiB로 크기가 조정되었습니다.
다음에서 출력의 첫 번째 줄 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 지침을 제네릭으로 간주하고 모든 배포에 적용할 수 있지만 일반적으로 명명된 Marketplace 게시자의 규칙과 일치합니다. Red Hat을 기반으로 하거나 Red Hat 호환성을 주장하는 배포에 대한 패키지 요구 사항에 대한 Red Hat 설명서를 참조하세요.
OS 디스크의 크기 늘리기
다음 지침은 보증된 Linux 보증 배포판에 적용됩니다.
계속하기 전에 VM의 전체 백업 복사본을 만들거나 최소한 OS 디스크의 스냅샷을 만듭니다.
Ubuntu 16.x 이상에서는 OS 디스크 및 파일 시스템의 루트 파티션이 자동으로 확장되어 cloud-init를 통해 루트 디스크의 모든 여유 연속 공간을 사용합니다. 크기 조정 작업에는 적은 양의 여유 공간을 사용할 수 있어야 합니다. 이 경우 시퀀스는 다음을 수행합니다.
- 앞에서 설명한 대로 OS 디스크의 크기를 늘입니다.
- VM을 다시 시작한 다음 루트 사용자 계정을 사용하여 VM에 액세스합니다.
- 이제 OS 디스크에 파일 시스템 크기가 증가했는지 확인합니다.
다음 예제와 같이 OS 디스크의 크기는 포털에서 100GB로 조정되었습니다. /
에 탑재된 /dev/sda1
파일 시스템은 이제 97GB를 표시합니다.
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, SAP용 SUSE SLES 12, SUSE SLES 15 및 SAP용 SUSE SLES 15에서 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.5GB로 조정되었음을 보여 줍니다.
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 /
루트 파티션을 포함하는 VG(LVM 볼륨 그룹)에 여유 공간이 있는지 확인합니다. 사용 가능한 공간이 있으면 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.02GB의 여유 공간이 있음을 보여줍니다.
cloud-utils-growpart
패키지를 설치하여 OS 디스크의 크기를 늘리고 GPT 디스크 레이아웃에 대한 gdisk
처리기를 위해 필요한 growpart
명령을 제공합니다. 이 패키지는 대부분의 마켓플레이스 이미지에 미리 설치됩니다.
dnf install cloud-utils-growpart gdisk
Red Hat 버전 7 이하에서는 dnf
대신 yum
명령을 사용할 수 있습니다.
명령어 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
에서는 다음 명령을 통해 2GB에서 12GB(10GB 증가)로 크기가 조정됩니다. 이 명령은 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
cloud-utils-growpart
패키지를 설치하여 OS 디스크 크기를 증가시키는 데 필요한 growpart
명령과 GPT 디스크 레이아웃을 위한 gdisk
처리기를 제공합니다. 이 패키지는 대부분의 마켓플레이스 이미지에 미리 설치됩니다.
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.0GiB인 48.0GiB 디스크를 볼 수 있습니다. Azure Portal에서 디스크가 30GB에서 48GB로 확장되었습니다.
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
이 경우 sda2
명령을 사용하여 루트에 대한 파티션을 확장합니다 growpart
. 이 명령을 사용하면 디스크의 모든 연속 공간을 사용하도록 파티션이 확장됩니다.
growpart /dev/sda 2
CHANGED: partition=2 start=2050048 old: size=60862464 end=62912512 new: size=98613214 end=100663262
이제 새 파티션 테이블을 gdisk
로 다시 출력합니다. 이제 파티션 2의 크기는 47.0GiB입니다.
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
}
}
}