요건
- 백업 용도로 사용할 서버를 초기 배포 이후 1TB의 Block Storage를 사용하게 되었습니다.
- 해당 스토리지는 각 백업 목적에 맞게 os backup - 200GB , Data Backup - 800GB로 파티셔닝 되어 있습니다.
- 백업을 진행하던 도중 디스크의 사용률이 높아져 증축을 해야하는 상황입니다.
증축 크기는 다음과 같습니다. Data Backup 800GB -> 1800GB
환경
- NCP Server(Ubuntu 20.04)
- Block Storage
Process
- NCP Server , Block Storage 생성
- Block Storage 파티셔닝 및 마운트
- Block Storage 용량 증축에 따른 디스크 파티션 용량 증설
주의 사항
- 스토리지의 크기를 확장한 후 파티션 및 파일 시스템 변경 작업 수행 시 스토리지의 데이터가 손실될 수 있으므로 데이터 손실을 방지하기 위해 스냅샷 생성 후 스토리지 크기를 변경하는 것을 권장
- 위와 같은 고객사 요건이 오기전에, os backup을 위한 Block Storage, data backup을 위한 Block Storage를 각각 사용하는 것을 권장드립니다.
=======================================================================================
1. NCP Server , Block Storage 생성
- NCP Server와 Block Storage(1TB)를 생성합니다.
생성 방법으로는 Naver Cloud Platform 콘솔에서 수동으로 생성해도 되지만, NCP Terraform provider를 이용하여 IaC 방식으로 생성하였습니다.
생성 코드의 경우 Terraform 카테고리에 작성하였습니다.
2022.08.05 - [Terraform] - Terraform을 이용하여 NCP 서버 배포
정상적으로 서버와 스토리지가 생성되었다면, 아래와 같이 NCP 콘솔에서 확인할 수 있습니다.
2. Block Storage 파티셔닝 및 마운트
서버의 공인 아이피로 접속합니다.
테라폼 코드를 활용했다면, 콘솔에서 pem키를 통해 관리자 비밀번호를 확인할 필요 없이 코드를 실행시킨 폴더에서 ~password.txt 파일을 통해 확인할 수 있습니다.
fdisk -l 명령어로 현재 서버에 부착된 디스크를 확인할 수 있습니다.
fdisk 명령어를 이용해 1TB 의 디스크를 200GB, 800GB로 파티셔닝을 진행합니다.
fdisk -l 명령어로 확인했을 때, 디스크 용량이 섹터로 나누어져 있으며 1 섹터는 512 bytes인 것을 확인할 수 있습니다.
fdisk 명령어로 파티셔닝을 진행할 때 섹터로 나누어야 하므로 각 용량을 계산하면 다음과 같습니다.
200GB = 214748364800B = 419430400 sectors
2048-419430400
800GB = 858993459200B = 1677721600 sectors
419432448-2097151999 (200GB 할당시 2048 sectors부터 시작하므로 419430400+2048 sectors부터 시작합니다.)
fdisk /dev/xvdb
n
p
1
2048
419430400
n
p
2
419432448
2097151999
파티션 할당 이후 'w'를 입력하여 저장합니다.
다시 fdisk -l 명령어로 파티셔닝 된 디스크 용량을 확인합니다.
용량이 잘 설정되었으면, 파일 시스템 설정 및 디스크 초기화를 진행합니다.
이후 마운트 할 폴더를 생성하고, 마운트를 진행합니다.
mkdir /os_backup
mkdir /data_backup
mount /dev/xvdb1 /os_backup
mount /dev/xvdb2 /data_backup
df -h
3. Block Storage 용량 증축에 따른 디스크 파티션 용량 증설
사용하던 디스크 파티션의 용량이 부족하여 /data_backup 폴더의 용량 증설이 필요합니다.
용량 증설 전 확인해야 할 사항은 다음과 같습니다.
현재 할당된 1TB의 디스크는 다음과 같이 섹터의 구분으로 할당되어 있습니다.
서버에 부착되어 있는 Block Storage의 사이즈를 1TB -> 2TB로 늘릴 경우 다음과 같습니다.
우리는 궁극적으로 /dev/xvdb2 파티션의 사이즈를 800GB -> 1800GB로 늘려야 합니다.
먼저 서버 스토리지 용량을 늘리기 위해 운영중인 서버를 정지합니다.
*운영중인 서버 정지가 어렵다면, 서버에 부착되어 있는 디스크를 할당 해제 후 사이즈를 조절할 수 있습니다.
이후 Naver Cloud Paltform 콘솔에서 Server > Storage로 이동하여 할당되어 있는 스토리지의 크기를 1TB -> 2TB로 늘립니다.
스토리지 크기 변경 이후 서버를 시작시키고 접속하여 lsblk 명령어 혹은 fdisk -l 명령어로 늘어난 스토리지 크기를 확인합니다.
파티션의 사이즈를 조절하기 위해 growpart 를 설치합니다.
apt-get update
apt-get install cloud-guest-utils
이후 /data_backup 폴더의 마운트를 해제합니다.
*서버 재시작 시 /etc/fstab에 마운트 정보가 없다면, 할당이 해제되어 있습니다.
unmount /os_backup
unmount /data_backup
growpart 명령어를 통해 파티션 확장을 진행합니다.
growpart /dev/xvdb 2
lsblk 명령어로 확장된 파티션을 확인합니다.
e2fsck 명령어로 해당 파티션의 파일시스템 크기를 확인할 수 있습니다.
e2fsck -f /dev/xvdb2
Ubuntu 20.04 의 경우 파일 시스템으로 ext4를 사용하므로 resize2fs 명령어로 파일시스템을 확장합니다.
resize2fs /dev/xvdb2
정상적으로 파일시스템까지 확장된 것을 확인하였으면, 다시금 마운트를 진행합니다.
mount /dev/xvdb2 /data_backup
df -h 명령어로 확장된 파티션 사이즈를 확인할 수 있습니다.
[여담]
크게 어려운 작업은 아니지만 클라우드 상에서 추가 스토리지를 사용할 때, 여러개의 파티션으로 사용경우는 많이 없었습니다.(경험상)
만약, 하나의 스토리지를 여러개의 파티션으로 나누어야 할 경우 fdisk으로 파티셔닝할 때 hex code를 8e(lvm)으로 지정하여 논리 볼륨으로 묶어서 사용하시는 것을 권장드립니다.
만약 os_backup의 파티션 사이즈도 조정하고 싶을 경우 os_backup의 엔드 섹터와 data_backup의 시작 섹터가 맞닿아 있으므로 데이터를 추가하여 마이그레이션하는등의 방법밖에 없을 것 같습니다.(fdisk로 설정한 파티션 종류가 일반 Linux일 경우)
'NCloud(NCP)' 카테고리의 다른 글
[Naver Cloud Platform] Ncloud API Service Pack Series - 1 CLOVA Recognition(Face, Speech) (0) | 2023.08.28 |
---|---|
[Naver Cloud Platform] Ncloud API Service Pack Series - 0 Begining(with. nShortURL) (2) | 2023.08.28 |
[NCP]Certbot를 이용한 웹 서버 도메인 인증서 발급 및 적용 (0) | 2022.12.27 |
NCP API를 사용하는 방법(with. SENS) (0) | 2022.08.26 |
NCP Global DNS를 이용하여 구입한 도메인 등록 (0) | 2022.08.25 |