반응형
안녕하세요 서후아빠입니다. ^_^
이번 세션은 EC2를 생성할 때 기본 연결되는 root(/)가 외 추가적으로 EBS를 생성하고, 이를 마운트하는 실습과 EBS 볼륨 확장에 대해서 실습을 해보겠습니다. 아시겠지만 EBS 볼륨 축소는 거의 불가능한 상황입니다.(논리적인 파티션 정도의 볼륨 축소는 가능한 것으로 판단됨) 그러므로 EC2 생성 시 초기 세팅하는 EBS 볼륨에 대해서 신중히 결정하시기 바랍니다.
EC2 생성 및 SSH 접속 (상세 설명은 SKIP)
EC2 생성 시 위 옵션처럼 여러 개의 EBS를 붙여서 생성할 수 있습니다. |
Case 1 (8G, 10G, 12G) : 기본 볼륨 연결
# 디바이스 정보 출력 (nvme1n1, nvme2n1는 마운트되지 않은 상태)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 8G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 10G 0 disk
nvme2n1 259:4 0 12G 0 disk
# 파티션 생성
gdisk /dev/nvme1n1
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-20971519, default = 2048) or {+-}size{KMGTP}:
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Command (? for help): w
Do you want to proceed? (Y/N): Y
gdisk /dev/nvme2n1
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-20971519, default = 2048) or {+-}size{KMGTP}:
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Command (? for help): w
Do you want to proceed? (Y/N): Y
# 디바이스 정보 출력
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 8G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 10G 0 disk
└─nvme1n1p1 259:4 0 10G 0 part
nvme2n1 259:5 0 12G 0 disk
└─nvme2n1p1 259:6 0 12G 0 part
# 파일시스템 포맷 확인 (xfs 확인)
df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs 8.0G 1.6G 6.5G 20% /
devtmpfs devtmpfs 462M 0 462M 0% /dev
tmpfs tmpfs 470M 0 470M 0% /dev/shm
tmpfs tmpfs 470M 0 470M 0% /sys/fs/cgroup
tmpfs tmpfs 470M 448K 470M 1% /run
tmpfs tmpfs 94M 0 94M 0% /run/user/0
# 파일시스템 설정 (xfs)
mkfs -t xfs /dev/nvme1n1p1
mkfs -t xfs /dev/nvme2n1p1
# 마운트 경로 생성
mkdir /mount1
mkdir /mount2
# 마운트
mount /dev/nvme1n1p1 /mount1
mount /dev/nvme2n1p1 /mount2
# 마운트 결과 확인
df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs 8.0G 1.6G 6.5G 20% /
devtmpfs devtmpfs 462M 0 462M 0% /dev
tmpfs tmpfs 470M 0 470M 0% /dev/shm
tmpfs tmpfs 470M 0 470M 0% /sys/fs/cgroup
tmpfs tmpfs 470M 448K 470M 1% /run
tmpfs tmpfs 94M 0 94M 0% /run/user/0
/dev/nvme1n1p1 xfs 10G 105M 9.9G 2% /mount1
/dev/nvme2n1p1 xfs 12G 119M 12G 1% /mount2
# 영구 마운트 설정 (root 볼륨은 그대로 두고, 2줄을 추가)
vi /etc/fstab
/dev/nvme1n1p1 /mount1 xfs defaults,nofail 0 0
/dev/nvme2n1p1 /mount2 xfs defaults,nofail 0 0
# reboot 통해 정상 부팅 및 마운트 상태 확인
reboot
Case 2 (8G, 10G) : LVM으로 볼륨 연결
# 디바이스 정보 출력 (nvme1n1는 마운트되지 않은 상태)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 8G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 10G 0 disk
# 파티션 생성
gdisk /dev/nvme1n1
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-20971519, default = 2048) or {+-}size{KMGTP}:
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Command (? for help): w
Do you want to proceed? (Y/N): Y
# 디바이스 정보 출력
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 8G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 10G 0 disk
└─nvme1n1p1 259:4 0 10G 0 part
# 물리 볼륨 생성
pvcreate /dev/nvme1n1p1
pvs
# 볼륨 그룹 생성 (볼륨 그룹명 : group1)
vgcreate group1 /dev/nvme1n1p1
vgs
# 논리파티션 생성 (2G, 3G, 5G 생성)
lvcreate -n volume1 -L 2G group1
lvcreate -n volume2 -L 3G group1
lvcreate -n volume3 -l 100%FREE group1
ls /dev/mapper/
control group1-volume1 group1-volume2 group1-volume3
ls /dev/group1/
volume1 volume2 volume3
# 파일시스템 설정
mkfs -t xfs /dev/group1/volume1
mkfs -t xfs /dev/group1/volume2
mkfs -t xfs /dev/group1/volume3
# 마운트 경로 생성
mkdir /mount1
mkdir /mount2
mkdir /mount3
# 마운트
mount /dev/group1/volume1 /mount1
mount /dev/group1/volume2 /mount2
mount /dev/group1/volume3 /mount3
# 영구 마운트 설정 (root 볼륨은 그대로 두고, 3줄을 추가)
vi /etc/fstab
/dev/group1/volume1 /mount1 xfs defaults,nofail 0 0
/dev/group1/volume2 /mount2 xfs defaults,nofail 0 0
/dev/group1/volume3 /mount3 xfs defaults,nofail 0 0
# reboot 통해 정상 부팅 및 마운트 상태 확인
reboot
AWS LVM 가이드 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/create-lv-on-ebs-partition/ |
Case 3 (8G > 10G, 10G > 12G) : 기본 볼륨 확장
EC2 > Volumes > 볼륨 선택(8G or 10G) > Actions > Modify volume > Size (10G or 12G) > Modify
# 볼륨 확장 상태 확인 (8G > 10G, 10G > 12G)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 10G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 12G 0 disk
└─nvme1n1p1 259:4 0 10G 0 part /mount1
# 파티션 확장
growpart /dev/nvme0n1 1
growpart /dev/nvme1n1 1
# 파티션 확장 상태 확인
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 10G 0 disk
├─nvme0n1p1 259:1 0 10G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 12G 0 disk
└─nvme1n1p1 259:4 0 12G 0 part /mount1
mkdir /mount4
mount /dev/group1/volume4 /mount4
# 파일시스템 확장
xfs_growfs -d /mount1
xfs_growfs -d /mount2
xfs_growfs -d /mount3
# 파일시스템 확장 상태 확인
df -h | grep /nvme0n1p1
/dev/nvme0n1p1 10G 1.6G 8.4G 16% /
df -h | grep /nvme1n1p1
/dev/nvme1n1p1 12G 119M 12G 1% /mount1
장애 대비하여 스냅샷을 생성하고 진행하시기 권고드립니다.(EC2 > Volumes > 선택 > Actions > Create snapshot) 볼룸 확장 중(In-use-optimizing)에도 EC2는 정상적으로 동작 중이었습니다. 동일한 EBS에 대해서 볼륨 확장한 후, 6시간 Cool Time이 필요합니다. (6시간 동안 연속 볼륨 확장 불가능) |
Case 4 (10G > 20G) : LVM으로된 볼륨 확장
EC2 > Volumes > 볼륨 선택(10G) > Actions > Modify volume > Size (20G) > Modify
# 볼륨 확장 상태 확인 (10G > 20G)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 8G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 20G 0 disk
└─nvme1n1p1 259:4 0 10G 0 part
├─group1-volume1 253:0 0 2G 0 lvm /mount1
├─group1-volume2 253:1 0 3G 0 lvm /mount3
└─group1-volume3 253:2 0 5G 0 lvm /mount3
# 파티션 확장
growpart /dev/nvme1n1 1
# 파티션 확장 상태 확인
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 8G 0 disk
├─nvme0n1p1 259:1 0 8G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 20G 0 disk
└─nvme1n1p1 259:4 0 20G 0 part
├─group1-volume1 253:0 0 2G 0 lvm /mount1
├─group1-volume2 253:1 0 3G 0 lvm /mount3
└─group1-volume3 253:2 0 5G 0 lvm /mount3
# 물리 볼륨 생성
pvresize /dev/nvme1n1p1
pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 group1 lvm2 a-- <20.00g 10.00g
vgs
VG #PV #LV #SN Attr VSize VFree
group1 1 3 0 wz--n- <20.00g 10.00g
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
volume1 group1 -wi-ao---- 2.00g
volume2 group1 -wi-ao---- 3.00g
volume3 group1 -wi-ao---- <5.00g
# 논리 볼륨 확장 및 신규 생성 (논리 볼륨 축소 시 : lvreduce)
lvextend -L 3G /dev/group1/volume1
lvextend -L 4G /dev/group1/volume2
lvextend -L 6G /dev/group1/volume3
lvcreate -n volume4 -l 100%FREE group1
vs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
volume1 group1 -wi-ao---- 3.00g
volume2 group1 -wi-ao---- 4.00g
volume3 group1 -wi-ao---- 6.00g
volume4 group1 -wi-a----- <7.00g
ls /dev/mapper/
control group1-volume1 group1-volume2 group1-volume3 group1-volume4
ls /dev/group1/
volume1 volume2 volume3 volume4
mkfs -t xfs /dev/group1/volume4
mkdir /mount4
mount /dev/group1/volume4 /mount4
# 파일시스템 확장
xfs_growfs -d /mount1
xfs_growfs -d /mount2
xfs_growfs -d /mount3
# 파일시스템 확장 상태 확인
df -h | grep mount
/dev/mapper/group1-volume1 3.0G 55M 3.0G 2% /mount1
/dev/mapper/group1-volume2 4.0G 62M 4.0G 2% /mount2
/dev/mapper/group1-volume3 5.0G 69M 5.0G 2% /mount3
/dev/mapper/group1-volume4 7.0G 83M 7.0G 2% /mount4
반응형
'Storage' 카테고리의 다른 글
[실습] EKS - Persistent Volume을 pod에 연결하기 (EBS, EFS, FSX for Lustre) (0) | 2023.06.13 |
---|---|
[실습] DataSync 이용한 서로 다른 AWS 계정간 S3 bucket 동기화(sync) 구성하기 (2) | 2023.02.27 |
[실습] EC2에 EFS 볼륨 연결(mount) 구성하기 (0) | 2023.02.27 |
[실습] FSx or PlugIn(goofys, s3fs) 이용하여 EC2에 S3 bucket 연결(mount) 구성하기 (0) | 2023.02.16 |
[실습] AWS CLI 이용한 서로 다른 AWS 계정간 S3 bucket 동기화(sync) 구성하기 (2) | 2023.02.16 |