요건
- 백업 용도로 사용할 서버를 초기 배포 이후 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 서버 배포
Terraform을 이용하여 NCP 서버 배포
엔지니어라면 특정 CSP의 서버를 통해 여러가지 테스트를 진행하는 경우가 있습니다. 오늘은 NCP에서 공인아이피가 부착된 Ubuntu 20.04 서버를 빠르게 생성하는 테라폼 코드에 대해 다뤄보도록 하
enginnersnack.tistory.com
정상적으로 서버와 스토리지가 생성되었다면, 아래와 같이 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 |