EC2에서의 디스크 확장
Linux 디스트리뷰션 혹은 EC2의 가상화 형식에 따라 수행하는 내용이 다르다.
어떤 인스턴스 타입이 어느 가상화 형식에 대응하고 있는지는 → Amazon Linux AMI 인스턴스 타입 매트릭스
시작 중인 인스턴스가 어느 형식인지 알고 싶다면 Management 콘솔에서 인스턴스를 선택하고 Description 탭의 Virtualization 항목을 본다.
공통
볼륨 타입에 standard 이외를 사용하고 있는 경우는 재부팅하지 않고 디스크를 확장할 수 있게 되었습니다.
단, 변경 후 6시간이 지나지 않으면 같은 볼륨은 확장할 수 없다.
Standard 이외
AWS 매니지먼트 콘솔에서
1. 대상 볼륨을 선택하고
2. Modify Volume 변경하고 싶은 크기를 입력
3. in-use -optimizing (xx%) --> in-use - completed (100%)
Standard
AWS 매니지먼트 콘솔에서
1. 서버 셧다운
2. 스냅샷 생성
3. 볼륨을 작성 (정지한 서버와 같은 AZ로 작성할 것!)
4. 현재 볼륨을 디태치
5. 새로 작성한 볼륨을 어태치, 디바이스가 다르니 주의
- CentOS 6 (paravirtual) /dev/sda
- CentOS 6 (HVM) /dev/xvda
- CentOS 7 (HVM) /dev/sda1
6. 서버 부팅
CentOS 7 / AmazonLinux2
CentOS 7의 AMI는 거의 HVM이므로 (적어도 여기에서 기동하고 있는 CentOS 7의 인스턴스는 모두 HVM)
PV냐 HVM이냐의 차이점을 신경 쓸 필요는 없어요
새로운 볼륨을 어태치하여 부팅한 타이밍에 이미 용량이 확장되어 있는 경우가 있습니다.
그런 경우는 아무것도 안해서 문제 없어요. (어떤 조건으로 그렇게 되는지는 미확인입니다. 볼륨 타입 또는 인스턴스 타입이 무엇인가였을 때라고 생각합니다.)
볼륨 어태치까지 완료하고 인스턴스를 기동한 뒤 아래 명령을 실행해 주세요.
2TB 이상의 확장은 반드시 gpt로 변환 후 실행할 것.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-centos-convert-mbr-to-gpt/
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
GPT로 변환한 후에는 gdisk 설치 필요
yum install gdisk
export LANG="en_US.UTF-8" && growpart /dev/xvda 1
xfs_growfs /
※ 디스크 타입 스탠다드, gp2 모두 확장 가능합니다.
CentOS7계열(t3,m5 최신 인스턴스)
[root ~]# export LANG="en_US.UTF-8" && growpart /dev/nvme0n1 1
CHANGED: partition=1 start=2048 old: size=419428319 end=419430367 new: size=461371359,end=461373407
[root ~]# xfs_growfs /
CentOS6
CentOS 6의 인스턴스에는 PV와 HVM 두 종류가 있으며 그에 따라 작업이 다릅니다.
- PV
AWS 매니지먼트 콘솔에서 볼륨 확장을 실시하고, 이하의 순서를 서버에서 실시한다.
덧붙여 서비스 정지는 발생하지 않는다.
1. 디스크 용량이 확장되었는지 확인한다.
infra-misc-3 # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvde 202:64 0 150G 0 disk /
2. 인식용량 확인
infra-misc-3 # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvde 119G 90G 23G 81% /
tmpfs 7.4G 0 7.4G 0% /dev/shm
3. 확장 명령어를 실시한다.
infra-misc-3 # resize2fs /dev/xvde
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvde is mounted on /; on-line resizing required
old desc_blocks = 8, new_desc_blocks = 10
Performing an on-line resize of /dev/xvde to 39321600 (4k) blocks.
The filesystem on /dev/xvde is now 39321600 blocks long.
4. 인식용량 확인
infra-misc-3 # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvde 148G 90G 51G 65% /
tmpfs 7.4G 0 7.4G 0% /dev/shm
- HVM
HVM 형식의 가상화의 경우 GPT로 구성되어 있기 때문에 디스크 파티션부터 만지지 않으면 안 됩니다.
서버 재부팅이 필요합니다.
참고. Resize base XenServer 6.0 partition - Server Fault
1. 부팅하고 gdisk 명령어를 실행합니다.
# gdisk /dev/xvda
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.
Command (? for help): x
Expert command (? for help): e
Relocating backup data structures to the end of the disk
Expert command (? for help): m
Command (? for help): d
Using 1
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-125829086, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-125829086, default = 125829086) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/xvda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
2. 서버를 재부팅하여 파일 시스템 리사이즈를 실행한다.
resize2fs /dev/xvda1
Ubuntu 14.0.4
대수는 적지만, 현시점에서 몇개의 Ubuntu 14.04 인스턴스가 존재함
HVM 형식으로 파일 시스템은 EXT4 입니다. parted 명령으로 파티션을 확장한 후 resize2fs를 사용하여 리사이즈합니다.
parted /dev/xvda
GNU Parted 2.3
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 8225kB 16.1GB 16.1GB primary ext4 boot
(parted) resizepart 1
Warning: Partition /dev/xvda1 is being used. Are you sure you want to continue?
Yes/No? Yes
End? [16.1GB]? 42.9GB
(parted) p
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 8225kB 42.9GB 42.9GB primary ext4 boot
(parted) q
Information: You may need to update /etc/fstab.
resize2fs /dev/xvda1
Amazon Linux 1
- 증가된 디스크 크기 확인
# df -h
# lsblk
- 파티션의 확장
# growpart /dev/xvda 1
- 파일 시스템 확장
# resize2fs /dev/xvda1
# df -h
Alibaba CentOS 7
- 증가된 디스크 크기 확인
# df -h
# lsblk
-growpart 설치
# yum install cloud-utils-growpart
- 파티션의 확장
# growpart /dev/vda 1
- 파일 시스템 확장
# resize2fs /dev/vda1
# df -h
Windows
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/recognize-expanded-volume-windows.html
MBR의 2TB 제한을 우회하기 위해 MBR에서 GPT로 변환하는 방법
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-centos-convert-mbr-to-gpt/