이번 포스트에서는 아래 과정을 진행해보겠습니다. (MS Azure 공식 문서에 대부분 나와 있으니 참고하셔도 됩니다)

  • 가상머신 생성
  • 가상머신 접속
  • 디스크 마운트 (Optional)

가상머신 생성

  1. 가상머신을 추가합니다. 홈 > 가상머신 > 추가 선택
  2. 구독 및 리소스 그룹을 설정합니다. 그룹이 없는 경우 리소스 그룹을 새로 만들기 생성합니다.
  3. 인스턴스 정보를 입력합니다.
    • 이미지: 선호하는 운영체제를 선택합니다. 저는 CentOS-based 7.5로 진행해보겠습니다.
    • 지역, 가용성, 크기: 각각 대한민국, 사용 안 함, B1s로 선택합니다.
  4. 관리자 계정 정보를 입력합니다. SSH 키 방식을 선택하고 사용자 이름, SSH 키 정보를 넣어줍니다. (SSH 키 생성 방법 참고)
  5. 네트워크 인바운드를 설정합니다. 여기서 HTTP, HTTPS, SSH 세 개 포트를 허용해줍니다. 이를 해주지 않을 경우 SSH 접속 및 브라우저 접근이 불가능합니다.
  6. 다음: 디스크를 누르고 넘어갑니다. 디스크는 B1s 기준으로 30GB(프리미엄 SSD)의 OS 메모리가 제공되는데, 이를 그대로 사용해도 됩니다. 별도 설정 없이 다음 탭으로 넘어갑니다.
  7. 나머지 설정은 별다른 설정 없이 계속해서 넘어갑니다. 마지막으로 검토+만들기를 선택하면 가상머신 생성이 완료됩니다.

가상머신 접속

  1. 가상머신에 접속합니다. 대시보드 > 생성된 가상머신 클릭 > 개요 탭 좌상단의 연결 클릭
  2. 우측 탭에서 SSH 커맨드를 복사한 다음 터미널 혹은 SSH 클라이언트에서 접속해봅시다. 정상적으로 SSH 설정이 됐다면 별도의 과정 없이 바로 연결 가능합니다.
    ssh chancethecoder@52.141.36.128
    
    Last login: Sun Jan 20 03:31:49 2019 from 121.167.144.18

디스크 마운트 (Optional)

위의 가상머신 생성 6번에서 데이터 디스크를 추가 설정한 경우, 리눅스 머신에서 별도로 마운트 작업을 해줘야 사용이 가능합니다. 만약 디스크 추가 없이 위의 가상머신 생성 과정을 그대로 따라 하셨다면 과정을 생략합시다.

  1. 가상머신에 접속했다면, 디스크 설정을 진행합니다. 먼저 디스크 정보를 확인합니다.
     df -h
    
     Filesystem      Size  Used Avail Use% Mounted on
     /dev/sda2        30G  1.2G   29G   5% /
     devtmpfs        444M     0  444M   0% /dev
     tmpfs           456M     0  456M   0% /dev/shm
     tmpfs           456M  6.7M  449M   2% /run
     tmpfs           456M     0  456M   0% /sys/fs/cgroup
     /dev/sda1       497M   81M  417M  17% /boot
     /dev/sdb1       3.9G   16M  3.7G   1% /mnt/resource
     tmpfs            92M     0   92M   0% /run/user/1000
  2. Filesystem에 sda, sdb가 마운트되어 있습니다. 다음으로 추가한 디스크(sdc, sdd, ...)를 확인합니다.
     dmesg | grep SCSI
    
     [    0.353148] SCSI subsystem initialized
     [    2.411302] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
     [    9.567794] sd 2:0:0:0: [sda] Attached SCSI disk
     [    9.590129] sd 5:0:0:1: [sdd] Attached SCSI disk
     [    9.614972] sd 5:0:0:0: [sdc] Attached SCSI disk    <---- 추가된 디스크
     [    9.640439] sd 3:0:1:0: [sdb] Attached SCSI disk    <---- 추가된 디스크
     ...
  3. fdisk로 디스크를 초기화해줍시다.
     sudo fdisk /dev/sdc
    
     Welcome to fdisk (util-linux 2.23.2).
     Changes will remain in memory only, until you decide to write them.
     Be careful before using the write command.
     Device does not contain a recognized partition table
     Building a new DOS disklabel with disk identifier 0xd9841c1a.
     The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted.
     Command (m for help):
  4. 커맨드 입력이 나오면 n을 입력합니다. 파티션은 전부 default 값을 선택해줍시다.
     Command (m for help): n
     Partition type:
         p   primary (0 primary, 0 extended, 4 free)
         e   extended
     Select (default p): p
     Partition number (1-4, default 1): 1
     First sector (2048-134217727, default 2048): Using default value 2048
     Last sector, +sectors or +size{K,M,G} (2048-134217727, default 134217727): Using default value 134217727
     Partition 1 of type Linux and of size 64 GiB is set
  5. 다시 커맨드 입력이 나오면 p를 입력합니다.
     Command (m for help): p
     Disk /dev/sdc: 68.7 GB, 68719476736 bytes, 134217728 sectors
     Units = sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 4096 bytes
     I/O size (minimum/optimal): 4096 bytes / 4096 bytes
     Disk label type: dos
     Disk identifier: 0xd9841c1a
     Device Boot      Start         End      Blocks   Id  System
     /dev/sdc1            2048   134217727    67107840   83  Linux
  6. 다시 커맨드 입력이 나오면 w를 입력하여 쓰기 및 fdisk를 종료합니다.
     Command (m for help): w
     The partition table has been altered!
     Calling ioctl() to re-read partition table.
     Syncing disks.
  7. 이제 mkfs로 파티션에 파일시스템을 지정해줍니다.
     sudo mkfs -t ext4 /dev/sdc1
  8. 마지막으로 데이터 디렉토리를 생성해준 다음 디스크를 마운트합니다.
     sudo mkdir /data1
     sudo mount /dev/sdc1 /data1
  9. 1번~8번 과정을 반복해서 sdd, sde 등 추가한 디스크 중 사용할 디스크를 마운트해줍니다.
  10. 디스크가 잘 마운트 되었는지 확인해봅시다.
    df -h
    
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda2        30G  1.2G   29G   5% /
    devtmpfs        444M     0  444M   0% /dev
    tmpfs           456M     0  456M   0% /dev/shm
    tmpfs           456M  6.7M  449M   2% /run
    tmpfs           456M     0  456M   0% /sys/fs/cgroup
    /dev/sda1       497M   81M  417M  17% /boot
    /dev/sdb1       3.9G   16M  3.7G   1% /mnt/resource
    tmpfs            92M     0   92M   0% /run/user/1000
    /dev/sdc1        63G   53M   60G   1% /data1
    /dev/sdd1        63G   53M   60G   1% /data2
  11. 마지막으로, 서버 재부팅 시 디바이스가 자동으로 마운트 되려면 /etc/fstab을 업데이트해야 합니다. 먼저 blkid로 블록 디바이스의 UUID를 확인합니다.
    sudo -i blkid
    
    /dev/sda1: UUID="11111111-1a1a-1b1b-1c1c-1d1d1d1d1d1d" TYPE="xfs"
    /dev/sda2: UUID="22222222-2a2a-2b2b-2c2c-2d2d2d2d2d2d" TYPE="xfs"
    /dev/sdb1: UUID="33333333-3a3a-3b3b-3c3c-3d3d3d3d3d3d" TYPE="ext4"
    /dev/sdc1: UUID="44444444-4a4a-4b4b-4c4c-4d4d4d4d4d4d" TYPE="ext4"
    /dev/sdd1: UUID="55555555-5a5a-5b5b-5c5c-5d5d5d5d5d5d" TYPE="ext4"
  12. 택스트 편집기로 fstab을 아래와 같이 수정해줍니다.
    sudo vi /etc/fstab
    
    #
    # /etc/fstab
    # Created by anaconda on Wed Aug 15 19:30:54 2018
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=22222222-2a2a-2b2b-2c2c-2d2d2d2d2d2d /                       xfs     defaults        0 0
    UUID=11111111-1a1a-1b1b-1c1c-1d1d1d1d1d1d /boot                   xfs     defaults        0 0
    UUID=44444444-4a4a-4b4b-4c4c-4d4d4d4d4d4d /data1                  ext4    defaults,nofail 1 2 # <-- 추가
    UUID=55555555-5a5a-5b5b-5c5c-5d5d5d5d5d5d /data2                  ext4    defaults,nofail 1 2 # <-- 추가