본문 바로가기
공부/AWS

[AWS] NVMe 형식 EBS 자동 마운트 스크립트

by haejang 2021. 4. 27.
728x90
728x90

 

출처

 

출처는 내 동기의 블로그다

난 동기한테 직접 설명을 들었다

위의 글은 User Data에 스크립트를 넣어서 처음부터 자동으로 마운트시키는거지만, 난 그냥 .sh 파일로 만들어서 실행시키려고 한다

 

문제 상황

EC2를 생성할 때, 아래와 같이 EBS들을 붙여서 생성해보겠다

볼륨의 구분을 위해 크기를 각각 1~5로 설정했다

 

 

AWS 내에선 /dev/sdb부터 /dev/sdf까지 차례대로 이쁘게 생성된다

근데 막상 서버에 접속해서 보면,,,?

 

 

순서가 뒤죽박죽이다. 심지어 이 nvme 형식은 재부팅될때마다 순서가 바뀐다고 한다

 

위와 같은 경우는 사실 그냥 볼륨의 사이즈를 보고 원하는 폴더에다 마운트 시키면 된다곤 하지만, 사이즈가 같은 볼륨이 2개 이상이 되는 경우 따로 nvme 패키지를 설치해서 AWS 볼륨 id를 확인해야 하는데다가 현재 원하는건 "자동화" 이기 때문에 아주 골치 아파진다

 

EBS 자동 마운트 스크립트

설명은 출처 블로그로 가서 보는걸로 하고, 스크립트만 적어두겠다

vi ebs.sh 로 아래 내용을 작성해주자

# python과 nvme 식별 코드(깃헙) 다운
zypper install -y python
wget https://github.com/wwdcr2/LinuxFile/raw/master/ebsnvme-id -P /usr/sbin
chmod 755 /usr/sbin/ebsnvme-id 
wget https://github.com/wwdcr2/LinuxFile/raw/master/nvme-to-block-mapping -P /usr/sbin/
chmod 755 /usr/sbin/nvme-to-block-mapping
# 스크립트 실행
/usr/sbin/nvme-to-block-mapping

# 파일 시스템 생성
mkfs -t xfs /dev/nvme1n1
mkfs -t xfs /dev/nvme2n1
mkfs -t xfs /dev/nvme3n1
mkfs -t xfs /dev/nvme4n1
mkfs -t xfs /dev/nvme5n1

# 생성된 /dev/sd* 링크에 라벨링
xfs_admin -L ebs1 /dev/sdb
xfs_admin -L ebs2 /dev/sdc
xfs_admin -L ebs3 /dev/sdd
xfs_admin -L ebs4 /dev/sde
xfs_admin -L ebs5 /dev/sdf

# 마운트 될 디렉토리 생성
mkdir -p /test/bbb
mkdir -p /test/ccc
mkdir -p /test/ddd
mkdir -p /test/eee
mkdir -p /test/fff

# fstab에 등록
echo "LABEL=ebs1 /test/bbb xfs defaults,nofail 1 0" >> /etc/fstab
echo "LABEL=ebs2 /test/ccc xfs defaults,nofail 1 0" >> /etc/fstab
echo "LABEL=ebs3 /test/ddd xfs defaults,nofail 1 0" >> /etc/fstab
echo "LABEL=ebs4 /test/eee xfs defaults,nofail 1 0" >> /etc/fstab
echo "LABEL=ebs5 /test/fff xfs defaults,nofail 1 0" >> /etc/fstab

mount -a

Redhat 계열은 zypper를 알아서 yum으로 바꿔 쓰자

세 번째 단락의 라벨링에서 /dev/sd*는 AWS EBS에 명시되어 있는 디바이스 위치이다

이제 아래 명령으로 권한 설정 후 실행해주자

chmod +x ebs.sh
./ebs.sh

이후 df -h 를 실행해보면

 

 

사이즈가 1~5G인 애들이 각각 bbb~fff 폴더에 마운트된걸 확인할 수 있다

 

 

당연히 User Data로 넣어서 처음부터 넣는게 편하겠지만, 중간에 볼륨을 추가한다던지 만든 후에 EIP를 붙여야 하는 인스턴스라든지 등등의 이유로 필요할 것 같아 따로 스크립트로 만들어보았다

 

 

728x90
728x90

댓글