Google Cloud Platform에서 영구 디스크 (HDD or SDD)를 추가하는 방법입니다.

GCP에서 하드 디스크 추가하는 방법은 아래 2단계를 거쳐야 합니다.

  1. Google Cloud Console에서 디스크를 생성하고, VM Instance에 연결
  2. VM instance 에서 디스크를 포맷하고 마운트 한다. (일반 리눅스에 HDD 연결과 동일한 작업)

 

Google Cloud Conole에서  VM Instance에 디스크 추가

1) Google Cloud Console에서 Compute Engine에서 VM 인스턴스를 선택 

2) 디스크를 추가하고자 하는 VM Instance 선택

3) 세부 정보에서 상단의 '수정' 클릭

3) "추가 디스크" 항목에서 '+새 디스크 추가' 클릭

4) 디스크 이름, 유형, 크기, 삭제규칙 등 설정

5) [저장] 버튼 클릭

 

VM instance 상에서 HDD를 포맷하고 마운트 하는 방법

디스크 포맷

Google Cloud console의 SSH를 이용해서 VM에 접속해서 아래 명령어로 디스크 포맷과 마운트를 수행합니다.

예제에서는 sdb가 새 디스크의 device 이름입니다.

$ sudo lsblk

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0   10G  0 disk
├─sda1    8:1    0  9.9G  0 part /
├─sda14   8:14   0    3M  0 part
└─sda15   8:15   0  124M  0 part /boot/efi
sdb       8:16   0   10G  0 disk

 

mkfs 도구를 사용하여 디스크를 포맷합니다. 이 명령은 지정된 디스크의 모든 데이터를 삭제하므로 디스크 장치를 올바르게 지정했는지 확인합니다.
필요한 모든 파일 형식을 사용할 수 있지만 파티션 테이블이 없는 단일 ext4 파일 시스템을 권장합니다. 디스크 파티션을 수정하지 않고도 나중에 디스크 크기를 늘릴 수 있습니다.

디스크 성능을 최대화하려면 -E 플래그에서 권장되는 포맷 옵션을 사용합니다. 이 보조 디스크의 루트 볼륨에 대한 공간을 예약할 필요가 없으므로 사용 가능한 모든 디스크 공간을 사용기 위해 -m 0을 지정합니다.

 

DEVICE_NAME을 포맷하려는 디스크의 장치 이름으로 바꿉니다. 이 예에서는 sdb를 지정하여 파티션 테이블 없이 전체 디스크를 포맷합니다.

 ## sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_NAME

$  sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
mke2fs 1.44.5 (15-Dec-2018)
Discarding device blocks: done
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 979d48ee-3209-4ffb-834d-35adb2b19c48
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

 

디스크 마운트

  1. VM에서 디스크의 mount point 역할을 하는 디렉터리를 만듭니다. 모든 디렉토리를 사용할 수 있습니다. 다음 예는 /mnt/disks/ 아래에 디렉토리를 생성합니다. <MOUNT_DIR>을 마운트할 디렉토리로 바꿉니다.
  2. 마운트 명령어로 디스크를 마운트하고 폐기 옵션을 활성화합니다.
    ## sudo mount -o discard,defaults /dev/<DEVICE_NAME> /mnt/disks/<MOUNT_DIR>
    
    $ sudo mount -o discard,defaults /dev/sdb /mnt/disks/data
     아래 내용을 변경합니다.
    • <DEVICE_NAME> : 마운트할 디스크의 디바이스명
    • <MOUNT_DIR> : 디스크를 마운트할 디렉토리
  3. 디스크에 대한 읽기 및 쓰기 권한을 구성합니다. 이 예에서는 모든 사용자에게 디스크에 대한 쓰기 액세스 권한을 부여합니다.
    ## sudo chmod a+w /mnt/disks/<MOUNT_DIR>
    
    $ sudo chmod a+w /mnt/disks/data
    <MOUNT_DIR> 디스크를 마운트한 디렉토리명으로 변경합니다.
  4. 마운트한 디스크 정보를 확인합니다.
    $ df -H | grep /mnt/disks/data
    /dev/sdb         11G   38M   11G   1% /mnt/disks/data

 

VM 다시 시작 시 자동 마운트 구성

VM이 다시 시작될 때 디스크가 자동으로 다시 마운트되도록 디스크를 /etc/fstab 파일에 추가합니다. Linux 운영 체제에서 장치 이름은 재부팅할 때마다 변경될 수 있지만 장치 UUID는 시스템 간에 디스크를 이동할 때에도 항상 동일한 볼륨을 가리킵니다. 이 때문에 장치 이름 대신 장치 UUID를 사용하여 VM 다시 시작 시 자동 탑재를 구성하는 것이 좋습니다.

 

  1. 현재 /etc/fstab 파일의 백업을 만듭니다.
    $ sudo cp /etc/fstab /etc/fstab.backup
  2. blkid 명령을 사용하여 디스크의 UUID를 나열합니다.
    ## sudo blkid /dev/<DEVICE_NAME>
    
    $ sudo blkid /dev/sdb
    DEVICE_NAME을 변경합니다.
    • DEVICE_NAME: 자동으로 마운트하려는 디스크의 장치 이름입니다. 디스크에 파티션 테이블을 생성한 경우 장치 이름에 접미사를 추가하여 마운트할 파티션을 지정합니다. 예를 들어, sdb가 디스크의 장치 이름이면 sdb1은 파티션 이름일 수 있습니다.
  3. /etc/fstab 파일을 열고 아래와 같이 UUID를 포함한 내용을 추가합니다.
    ## UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
    
    UUID=6e8c8db3-b63e-4603-9fc7-fb7ada8908cd /mnt/disks/data ext4 discard,defaults,nofail 0 2
    아래 내용에 따라 변경합니다.
    • UUID_VALUE:  디스크 UUID
    • MOUNT_DIR: 디스크를 마운트할 디렉토리
    • MOUNT_OPTION: 부팅 시 영역 영구 디스크를 마운트할 수 없는 경우 운영 체제가 수행하는 작업을 지정합니다. 유효한 값은 Linux fstab 설명서의 네 번째 필드를 참조하십시오. 디스크를 사용할 수 없는 경우에도 시스템이 부팅되도록 하려면 nofail 마운트 옵션을 사용합니다.
  4. cat 명령을 사용하여 /etc/fstab 항목이 올바른지 확인합니다. 
    $ cat /etc/fstab 
    LABEL=cloudimg-rootfs / ext4 defaults 0 0 
    UUID=6e8c8db3-b63e-4603-9fc7-fb7ada8908cd /mnt/disks/data ext4 discard,defaults,nofail 0 2​
     
  5. 이 디스크를 분리하거나 이 VM의 부팅 디스크에서 스냅샷을 만드는 경우 /etc/fstab 파일을 편집하고 이 디스크에 대한 항목을 제거합니다. MOUNT_OPTION이 nofail 또는 nobootwait로 설정된 경우에도 /etc/fstab 파일을 VM에 연결된 장치와 동기화 상태로 유지하고 부팅 디스크 스냅샷을 생성하거나 디스크를 분리하기 전에 이러한 항목을 제거합니다.

 

 

 

'GCP' 카테고리의 다른 글

GCP-interconnect  (0) 2022.03.22
GCP - vpc peering 설정  (0) 2022.03.18
GCP - gcloud 설치 on linux  (0) 2022.03.13
GCP VM ID/Password 접속  (0) 2022.03.11
GCP VM ssh keypair 접속  (0) 2022.03.11

+ Recent posts