IT/🌍Amazon Web Services(AWS)

AWS EBS 볼륨을 Linux에 마운트 하기

지식모아이령 2023. 2. 9. 20:10

아래 글은, AWS 공식 문서를 보기 쉽게 정리한 문서입니다.(링크는 아래 첨부)

본문

1. AWS 대시보드에서, EBS 볼륨을 EC2 인스턴스(Linux)에 연결시킨다.

2. Linux에 SSH로 연결한다.

3. lsblk 명령어로 사용 가능한 디스크디바이스 및 마운트 포인트를 확인한다.(아래 표 참조)
TYPE에 part가 아닌 disk로 연결된 파티션이 없는 볼륨을 확인합니다.

[ec2-user ~]$ lsblk

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0    8G  0 disk
-xvda1  202:1    0    8G  0 part /
xvdf    202:80   0   10G  0 disk

 

4. 볼륨에 파일 시스템이 있는지 확인합니다. 볼륨은 원시 블록 디바이스이므로 볼륨을 탑재하고 사용하기 전에 해당 볼륨에서 파일 시스템을 생성해야 합니다. 아래 방법 둘 중 하나로 확인할 수 있습니다.

    4a. sudo file -s 명령을 사용하여, 파일 시스템 유형 등의 특정 디바이스 정보를 확인합니다.

다음 예시 출력에서와 같이 출력에 data만 표시된다면, 디바이스에는 파일 시스템이 없습니다.

[ec2-user ~]$ sudo file -s /dev/xvda1
/dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

    4b. sudo lsblk -f 명령을 사용하여, EC2 인스턴스에 연결된 모든 디바이스 관련 정보를 가져옵니다.

예를 들어, 다음 출력은 인스턴스에 연결된 3개의 디바이스(nvme1n1, nvme0n1 및 nvme2n1)를 보여줍니다.

첫 번째 열에는 디바이스와 해당 파티션이 나열됩니다. FSTYPE 열에는 각 디바이스의 파일 시스템 유형이 표시됩니다. 특정 디바이스에 대한 열이 비어 있으면 디바이스에 파일 시스템이 없음을 의미합니다. 이 예에서 디바이스 nvme1n1과 nvme0n1 디바이스의 파티션 nvme0n1p1은 모두 XFS 파일 시스템을 사용하여 포맷되어 있지만,

디바이스 nvme2n1과 디바이스 nvme0n1의 파티션 nvme0n1p128에는 파일 시스템이 없습니다.

NAME		FSTYPE	LABEL	UUID						MOUNTPOINT
nvme1n1	        xfs		7f939f28-6dcc-4315-8c42-6806080b94dd
nvme0n1
├─nvme0n1p1	xfs	    /	90e29211-2de8-4967-b0fb-16f51a6e464c	        /
└─nvme0n1p128
nvme2n1

5. (선택 사항) 전 단계에서 디바이스에 파일 시스템이 있음을 발견했다면, 이 단계는 생략하세요.

    a. 빈 볼륨이 있다면 mkfs -t 명령을 이용해 볼륨에서 파일 시스템을 생성하세요.

[ec2-user ~]$ sudo mkfs -t xfs /dev/xvdf

#mkfs.xfs이 발견되지 않는 오류가 발생하는 경우 다음 명령을 사용해 XFS 도구를 설치하고 이전 명령을 반복합니다.
#sudo yum install xfsprogs

    b. mkdir 명령을 사용하여 볼륨에서 사용할 탑재 지점 디렉터리를 생성합니다. 마운트 포인트는 파일 시스템 트리에 볼륨이 위치하고 볼륨을 마운트한 후 파일을 읽고 쓰는 위치입니다. 다음은 /data라는 이름의 디렉터리를 생성하는 예제입니다.

[ec2-user ~]$ sudo mkdir /data

    c.다음 명령을 사용하여 이전 단계에서 생성한 디렉터리에 볼륨을 탑재합니다.

[ec2-user ~]$ sudo mount /dev/xvdf /data

6. 새 볼륨 마운트의 파일 권한을 검토하여 사용자 및 애플리케이션이 볼륨에 기록할 수 있는지 확인합니다. 파일 권한에 대한 자세한 내용은 Linux Documentation Project에서 File security 단원을 참조하십시오.

7. 새로운 볼륨이 부팅 시 자동으로 마운트되도록 /etc/fstab 파일을 수정합니다.

    a.(선택 사항) 수정 도중 실수로 이 파일이 손상되거나 삭제되는 경우에 대비하여 /etc/fstab 파일의 백업을 생성합니다.

[ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig

    b.blkid 명령을 사용하여 디바이스의 UUID를 찾습니다. 재부팅 후 탑재할 장치의 UUID를 기록해 둡니다. 다음 단계에    서 필요합니다. 예를 들어 다음 명령은 인스턴스에 2개의 디바이스가 탑재되어 있음을 보여주며 두 디바이스 모두의 UUID를 보여줍니다.

[ec2-user ~]$ sudo blkid
/dev/xvda1: LABEL="/" UUID="ca774df7-756d-4261-a3f1-76038323e572" TYPE="xfs" PARTLABEL="Linux" PARTUUID="02dcd367-e87c-4f2e-9a72-a3cf8f299c10"
/dev/xvdf: UUID="aebf131c-6957-451e-8d34-ec978d9581ae" TYPE="xfs"

*Ubuntu 18.04의 경우 lsblk 명령을 사용합니다. (sudo lsblk -o +UUID)

    c./etc/fstab 또는 nano과 같은 텍스트 편집기를 사용하여 vim 파일을 엽니다.

[ec2-user ~]$ sudo vim /etc/fstab

    d.다음 항목을 /etc/fstab에 추가해 디바이스를 지정된 탑재 지점에 탑재합니다. 필드는 blkid가 반환하는 UUID 값(또는 Ubuntu 18.04의 경우 lsblk), 탑재 지점, 파일 시스템, 권장하는 파일 시스템 탑재 옵션입니다. 필수 필드에 대한 자세한 내용을 보려면 man fstab를 실행하여 fstab 매뉴얼을 엽니다.

다음 예제에서는 UUID가 aebf131c-6957-451e-8d34-ec978d9581ae인 디바이스를 탑재 지점/data에 탑재하고 xfs 파일 시스템을 사용합니다. 또한 defaults  nofail 플래그를 사용합니다. 0을 지정하여 파일 시스템이 덤프되지 않도록 하고 2를 지정하여 루트 디바이스가 아님을 나타냅니다.

UUID=aebf131c-6957-451e-8d34-ec978d9581ae  /data  xfs  defaults,nofail  0  2

    e.항목이 제대로 작동하는지 확인하기 위해, 다음 명령을 실행해 디바이스 탑재를 해제하고 /etc/fstab에서 모든 파일 시스템을 탑재합니다. 오류가 없다면 /etc/fstab 파일에 문제가 없다는 뜻이며, 파일 시스템은 재부팅 후 자동으로 탑재됩니다.

[ec2-user ~]$ sudo umount /data
[ec2-user ~]$ sudo mount -a

*오류 메시지가 표시된다면, 파일의 오류를 처리하세요.

*주의: /etc/fstab 파일에서 오류가 발생하면 시스템이 부팅되지 않을 수 있습니다. /etc/fstab 파일에서 오류가 발생한 시스템을 종료하지 마십시오.

*/etc/fstab의 오류 수정 방법을 모르며 이 절차의 첫 번째 단계에서 백업 파일을 만들었다면, 다음 명령을 이용해 백업 파일에서 복원을 진행할 수 있습니다.

[ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab

참조문서

 

Amazon EBS 볼륨을 Linux에서 사용할 수 있도록 만들기 - Amazon Elastic Compute Cloud

(볼륨을 다른 인스턴스로 옮긴 후 등의 상황에서) 이 볼륨을 연결하지 않고 인스턴스를 부팅했다면, nofail 탑재 옵션을 이용해 볼륨 탑재 시 오류가 있더라도 인스턴스를 부팅할 수 있습니다. 16.0

docs.aws.amazon.com