

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon EBS 및 RAID 구성
<a name="raid-config"></a>

Amazon EBS를 사용하면 기존 운영 체제 미설치 서버에서 사용 가능한 스탠다드 RAID 구성을 사용할 수 있습니다. 단, 해당 RAID 구성이 인스턴스에 대한 운영 체제에서 지원되어야 합니다. 이는 모든 RAID가 소프트웨어 수준에서 실행되기 때문입니다.

Amazon EBS 볼륨 데이터는 단일 구성 요소의 고장으로 인한 데이터 손실을 방지하기 위해 가용 영역의 여러 서버에 복제됩니다. 이 복제 기능으로 인해 Amazon EBS 볼륨이 일반 상용 디스크 드라이브보다 10배 더 안정적입니다. 자세한 내용은 [Amazon EBS 기능](https://aws.amazon.com/ebs/features/)을 참조하세요.

**Topics**
+ [RAID 구성 옵션](#raid-config-options)
+ [RAID 0 어레이 생성](#create-raid-array)
+ [RAID 어레이에 볼륨 스냅샷 생성](#ebs-snapshots-raid-array)

## RAID 구성 옵션
<a name="raid-config-options"></a>

RAID 0 어레이를 생성하면 단일 Amazon EBS 볼륨에서 프로비저닝할 때보다 파일 시스템의 성능이 더 향상됩니다. I/O 성능이 무엇보다 중요할 경우 RAID 0를 사용하세요. RAID 0를 사용할 경우 I/O가 스트라이프의 볼륨에 분산됩니다. 볼륨을 추가하면 처리량 및 IOPS도 그에 따라 바로 추가됩니다. 그러나 스트라이프의 성능은 세트에서 성능이 가장 낮은 볼륨의 성능으로 제한되며 세트에서 단일 볼륨이 손실되면 어레이의 데이터가 완전히 손실됩니다.

RAID 0 어레이의 결과 크기는 어레이 내 볼륨의 크기 합계이고, 대역폭은 어레이 내 볼륨의 가용 대역폭 합계입니다. 예를 들어, 4,000의 프로비저닝된 IOPS가 있는 두 500GiB `io1` 볼륨은 각각 가용 대역폭이 8,000 IOPS이고 처리량이 1,000MB/s인 1,000GiB RAID 0 어레이를 생성합니다.

**중요**  
RAID 5 및 RAID 6는 이 RAID 모드의 패리티 쓰기 작업에서 볼륨에 사용 가능한 IOPS의 일부를 사용하기 때문에 Amazon EBS에 권장되지 않습니다. RAID 어레이의 구성에 따라 이러한 RAID 모드에서는 RAID 0 구성보다 20-30% 더 적은 가용 IOPS를 제공합니다. 이러한 RAID 모드는 비용 증가의 한 요인이기도 합니다. 볼륨 크기와 속도가 동일할 경우 2 볼륨 RAID 0 어레이가 두 배 더 비싼 4 볼륨 RAID 6 어레이보다 더 우수한 성능을 제공합니다.  
또한 RAID 1은 Amazon EBS와 함께 사용하지 않는 것이 좋습니다. RAID 1의 경우 데이터를 동시에 여러 볼륨에 쓰기 때문에 비RAID 구성에 비해 Amazon EC2와 Amazon EBS 사이에 더 큰 대역폭이 필요합니다. 또한 RAID 1은 쓰기 성능 향상 효과를 제공하지 않습니다.

## RAID 0 어레이 생성
<a name="create-raid-array"></a>

다음 절차에 따라 RAID 0 어레이를 생성합니다.

**고려 사항**
+ 이 절차를 수행하기 전에 RAID 0 어레이의 크기와 프로비저닝할 IOPS 수를 결정해야 합니다.
+ 어레이에 대해 크기 및 IOPS 성능 값이 동일한 볼륨을 생성합니다. EC2 인스턴스의 가용 대역폭을 초과하는 어레이를 생성하지 마세요.
+ RAID 볼륨에서는 부팅하지 않아야 합니다. 디바이스 중 하나에 장애가 발생하면 운영 체제를 부팅하지 못할 수 있습니다.

### Linux 인스턴스
<a name="create-raid-array-linux"></a>

**Linux에서 RAID 0 어레이를 생성하려면**

1. 어레이에 대한 Amazon EBS 볼륨을 생성합니다. 자세한 내용은 [Amazon EBS 볼륨 생성](ebs-creating-volume.md) 섹션을 참조하세요.

1. 어레이를 호스팅할 인스턴스에 Amazon EBS 볼륨을 연결합니다. 자세한 내용은 [Amazon EC2 인스턴스에 Amazon EBS 볼륨 연결](ebs-attaching-volume.md) 섹션을 참조하세요.

1. **mdadm** 명령을 사용하여 새로 연결된 Amazon EBS 볼륨에서 로직 RAID 디바이스를 생성합니다. *number\$1of\$1volumes*에 대한 어레이의 볼륨 수와 *device\$1name*에 대한 어레이에 있는 각 볼륨의 디바이스 이름(예: `/dev/xvdf`)을 대체합니다. 어레이의 고유 이름으로 *MY\$1RAID*를 대체할 수도 있습니다.
**참고**  
**lsblk** 명령으로 인스턴스에 디바이스를 나열하여 디바이스 이름을 찾을 수 있습니다.

   RAID 0 어레이를 생성하려면 다음 명령을 실행합니다(어레이를 스트라이프하려면 `--level=0` 옵션 사용).

   ```
   [ec2-user ~]$ sudo mdadm --create --verbose /dev/md0 --level=0 --name=MY_RAID --raid-devices=number_of_volumes device_name1 device_name2
   ```
**작은 정보**  
`mdadm: command not found` 오류가 발생하면 `sudo yum install mdadm` 명령을 사용하여 mdadm을 설치합니다.

1.  RAID 어레이가 초기화되고 동기화될 때까지 기다립니다. 다음 명령을 사용하여 이 작업의 진행을 추적할 수 있습니다.

   ```
   [ec2-user ~]$ sudo cat /proc/mdstat
   ```

   다음은 예제 출력입니다.

   ```
   Personalities : [raid0]
   md0 : active raid0 xvdc[1] xvdb[0]
         41910272 blocks super 1.2 512k chunks
   
   unused devices: <none>
   ```

   일반적으로 다음 명령을 사용하여 RAID 어레이에 대한 자세한 정보를 표시할 수 있습니다.

   ```
   [ec2-user ~]$ sudo mdadm --detail /dev/md0
   ```

   다음은 예제 출력입니다.

   ```
   /dev/md0:
              Version : 1.2
        Creation Time : Wed May 19 11:12:56 2021
           Raid Level : raid0
           Array Size : 41910272 (39.97 GiB 42.92 GB)
         Raid Devices : 2
        Total Devices : 2
          Persistence : Superblock is persistent
   
          Update Time : Wed May 19 11:12:56 2021
                State : clean
       Active Devices : 2
      Working Devices : 2
       Failed Devices : 0
        Spare Devices : 0
   
           Chunk Size : 512K
   
   Consistency Policy : none
   
                 Name : MY_RAID
                 UUID : 646aa723:db31bbc7:13c43daf:d5c51e0c
               Events : 0
   
       Number   Major   Minor   RaidDevice State
          0     202       16        0      active sync   /dev/sdb
          1     202       32        1      active sync   /dev/sdc
   ```

1. RAID 어레이에서 파일 시스템을 생성하고 이후 해당 파일 시스템에 마운트할 때 사용할 레이블을 지정합니다. 예를 들어, 레이블 *MY\$1RAID*로 ext4 파일 시스템을 생성하려면 다음 명령을 사용합니다.

   ```
   [ec2-user ~]$ sudo mkfs.ext4 -L MY_RAID /dev/md0
   ```

   애플리케이션의 요구 사항 또는 운영 체제의 제한에 따라 다른 파일 시스템 유형(예: ext3 또는 XFS)을 사용할 수 있습니다. 해당 파일 시스템 생성 명령은 파일 시스템 설명서를 참조하세요.

1. 부팅할 때 RAID 배열이 자동으로 다시 수집되도록 하려면 RAID 정보가 포함된 구성 파일을 만듭니다.

   ```
   [ec2-user ~]$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf
   ```
**참고**  
Amazon Linux 이외의 Linux 배포판을 사용하는 경우 이 명령을 수정해야 할 수도 있습니다. 예를 들어 파일을 다른 위치에 배치하거나 `--examine` 파라미터를 추가해야 할 수 있습니다. 자세한 내용을 보려면 Linux 인스턴스에서 **man mdadm.conf**를 실행하세요.

1. 새 RAID 구성을 위해 블록 디바이스 모듈을 올바르게 미리 로드하려면 새 ramdisk 이미지를 만듭니다.

   ```
   [ec2-user ~]$ sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
   ```

1. RAID 어레이에 대한 마운트 지점을 생성합니다.

   ```
   [ec2-user ~]$ sudo mkdir -p /mnt/raid
   ```

1. 마지막으로 생성한 탑재 지점에 RAID 디바이스를 탑재합니다.

   ```
   [ec2-user ~]$ sudo mount LABEL=MY_RAID /mnt/raid
   ```

   이제 RAID 디바이스를 사용할 준비가 되었습니다.

1. (선택 사항) 시스템을 재부팅할 때마다 이 Amazon EBS 볼륨을 탑재하려면 디바이스에 대한 항목을 `/etc/fstab` 파일에 추가합니다.

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

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

   1. 자주 사용하는 텍스트 편집기를 사용하여 `/etc/fstab` 파일(예: **nano** 또는 **vim**)을 엽니다.

   1. "`UUID=`"로 시작하는 줄을 주석으로 처리하고, 파일 끝에 다음 형식으로 RAID 볼륨 파일의 새 줄을 추가합니다.

      ```
      device_label mount_point file_system_type fs_mntops fs_freq fs_passno
      ```

      이 줄의 마지막 세 필드는 파일 시스템 마운트 옵션, 파일 시스템의 덤프 빈도 및 부팅 시 파일 시스템 확인 순서입니다. 이러한 값이 무엇인지 모르는 경우 아래 예제의 값을 사용합니다(`defaults,nofail 0 2)`). `/etc/fstab` 항목에 대한 자세한 내용은 **fstab** 매뉴얼 페이지를 참조하세요(명령줄에서 **man fstab** 입력). 예를 들어, MY\$1RAID 레이블이 있는 디바이스에 `/mnt/raid` 탑재 지점에서 ext4 파일 시스템을 탑재하려면 `/etc/fstab`에 다음 항목을 추가합니다.
**참고**  
이 볼륨을 연결하지 않고 인스턴스를 부팅하려면(예: 이 볼륨이 서로 다른 인스턴스 사이를 이동할 수 있도록) 볼륨 마운트 시 오류가 있어도 인스턴스가 부팅되도록 하는 `nofail` 마운트 옵션을 추가해야 합니다. Ubuntu와 같은 Debian 계열 시스템에서는 `nobootwait` 마운트 옵션도 추가해야 합니다.

      ```
      LABEL=MY_RAID       /mnt/raid   ext4    defaults,nofail        0       2
      ```

   1. `/etc/fstab`에 새 항목을 추가한 다음에는 해당 항목이 작동하는지 확인해야 합니다. 그런 다음 **sudo mount -a** 명령을 실행하여 `/etc/fstab`에 있는 모든 파일 시스템을 탑재합니다.

      ```
      [ec2-user ~]$ sudo mount -a
      ```

      이전 명령에서 오류가 발생하지 않으면 `/etc/fstab` 파일이 정상이고 다음 부팅 시 파일 시스템이 자동으로 탑재됩니다. 명령에서 오류가 발생하면 오류를 검토한 다음 `/etc/fstab`를 수정합니다.
**주의**  
`/etc/fstab` 파일에서 오류가 발생하면 시스템이 부팅되지 않을 수 있습니다. `/etc/fstab` 파일에서 오류가 발생한 시스템을 종료하지 마세요.

   1. (선택 사항) `/etc/fstab` 오류 수정 방법을 모르는 경우 다음 명령으로 항상 백업 `/etc/fstab` 파일을 복원할 수 있습니다.

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

### Windows 인스턴스
<a name="create-raid-array-windows"></a>

**Windows에서 RAID 0 어레이를 생성하려면**

1. 어레이에 대한 Amazon EBS 볼륨을 생성합니다. 자세한 내용은 [Amazon EBS 볼륨 생성](ebs-creating-volume.md) 섹션을 참조하세요.

1. 어레이를 호스팅할 인스턴스에 Amazon EBS 볼륨을 연결합니다. 자세한 내용은 [Amazon EC2 인스턴스에 Amazon EBS 볼륨 연결](ebs-attaching-volume.md) 섹션을 참조하세요.

1. Windows 인스턴스에 연결합니다. 자세한 내용은 [Windows 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)을 참조하세요.

1. 명령 프롬프트를 열고 **diskpart** 명령을 입력합니다.

   ```
   diskpart
   
   Microsoft DiskPart version 6.1.7601
   Copyright (C) 1999-2008 Microsoft Corporation.
   On computer: WIN-BM6QPPL51CO
   ```

1. `DISKPART` 프롬프트에서 다음 명령을 사용하여 사용 가능한 디스크를 나열합니다.

   ```
   DISKPART> list disk
   
     Disk ###  Status         Size     Free     Dyn  Gpt
     --------  -------------  -------  -------  ---  ---
     Disk 0    Online           30 GB      0 B
     Disk 1    Online            8 GB      0 B
     Disk 2    Online            8 GB      0 B
   ```

   어레이에서 사용할 디스크를 식별하고 해당 디스크 번호를 기록해 둡니다.

1. <a name="windows_raid_disk_step"></a>어레이에서 사용할 각 디스크는 기존 볼륨을 포함하지 않는 온라인 동적 디스크여야 합니다. 다음 단계에 따라 기본 디스크를 동적 디스크로 변환하고 기존 볼륨을 삭제합니다.

   1. 다음 명령을 사용하여 어레이에서 사용할 디스크를 선택합니다. 여기에서 *n*을 디스크 번호로 대체합니다.

      ```
      DISKPART> select disk n
      
      Disk n is now the selected disk.
      ```

   1. 선택한 디스크가 `Offline`으로 나열되는 경우 **online disk** 명령을 실행하여 온라인으로 전환합니다.

   1. 선택한 디스크에서 이전 `Dyn` 명령 출력의 **list disk** 열에 별표가 없는 경우 디스크를 동적 디스크로 전환해야 합니다.

      ```
      DISKPART> convert dynamic
      ```
**참고**  
디스크가 쓰기 금지되었다는 오류가 표시되는 경우 **ATTRIBUTE DISK CLEAR READONLY** 명령을 사용하여 읽기 전용 플래그를 지운 다음 동적 디스크 전환을 다시 시도할 수 있습니다.

   1. **detail disk** 명령을 사용하여 선택한 디스크의 기존 볼륨을 확인합니다.

      ```
      DISKPART> detail disk
      
      XENSRC PVDISK SCSI Disk Device
      Disk ID: 2D8BF659
      Type   : SCSI
      Status : Online
      Path   : 0
      Target : 1
      LUN ID : 0
      Location Path : PCIROOT(0)#PCI(0300)#SCSI(P00T01L00)
      Current Read-only State : No
      Read-only  : No
      Boot Disk  : No
      Pagefile Disk  : No
      Hibernation File Disk  : No
      Crashdump Disk  : No
      Clustered Disk  : No
      
        Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
        ----------  ---  -----------  -----  ----------  -------  ---------  --------
        Volume 2     D   NEW VOLUME   FAT32  Simple      8189 MB  Healthy
      ```

      디스크의 볼륨 번호를 기록해 둡니다. 이 예제에서 볼륨 번호는 2입니다. 볼륨이 없는 경우 다음 단계를 건너뛸 수 있습니다.

   1. (이전 단계에서 볼륨이 식별된 경우에만 필요함) 이전 단계에서 식별된 디스크의 기존 볼륨을 선택하여 삭제합니다.
**주의**  
그러면 볼륨의 기존 데이터가 소멸됩니다.

      1. 볼륨을 선택합니다. 여기에서 *n*을 볼륨 번호로 대체합니다.

         ```
         DISKPART> select volume n
         Volume n is the selected volume.
         ```

      1. 볼륨을 삭제합니다.

         ```
         DISKPART> delete volume
         
         DiskPart successfully deleted the volume.
         ```

      1. 선택한 디스크에서 삭제할 각 볼륨에 대해 이 하위 단계를 반복합니다.

   1. 어레이에서 사용할 각 디스크에 대해 [Step 6](#windows_raid_disk_step)을 반복합니다.

1. 사용할 디스크가 새 동적 디스크인지 확인합니다. 이 예에서는 RAID 볼륨에 디스크 1과 2를 사용합니다.

   ```
   DISKPART> list disk
   
     Disk ###  Status         Size     Free     Dyn  Gpt
     --------  -------------  -------  -------  ---  ---
     Disk 0    Online           30 GB      0 B
     Disk 1    Online            8 GB      0 B   *
     Disk 2    Online            8 GB      0 B   *
   ```

1. RAID 어레이를 생성합니다. Windows에서는 RAID 0 볼륨을 스트라이프 볼륨이라고 합니다.

   디스크 1과 2에서 스트라이프 볼륨 어레이를 생성하려면 다음 명령을 사용합니다(어레이를 스트라이프하려면 `stripe` 옵션 사용).

   ```
   DISKPART> create volume stripe disk=1,2
   DiskPart successfully created the volume.
   ```

1. 새 볼륨을 확인합니다.

   ```
   DISKPART> list volume
   
     DISKPART> list volume
   
     Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
     ----------  ---  -----------  -----  ----------  -------  ---------  --------
     Volume 0     C                NTFS   Partition     29 GB  Healthy    System
     Volume 1                      RAW    Stripe        15 GB  Healthy
   ```

   이제 `Type` 열에 볼륨 1이 `stripe` 볼륨으로 표시됩니다.

1. 볼륨을 사용할 수 있도록 볼륨을 선택하여 포맷합니다.

   1. 포맷할 볼륨을 선택합니다. 여기에서 *n*을 볼륨 번호로 대체합니다.

      ```
      DISKPART> select volume n
      
      Volume n is the selected volume.
      ```

   1. 볼륨을 포맷합니다.
**참고**  
전체 포맷을 수행하려면 `quick` 옵션을 생략합니다.

      ```
      DISKPART> format quick recommended label="My new volume"
      
        100 percent completed
      
      DiskPart successfully formatted the volume.
      ```

   1. 사용 가능한 드라이브 문자를 볼륨에 배정합니다.

      ```
      DISKPART> assign letter f
      
      DiskPart successfully assigned the drive letter or mount point.
      ```

   이제 새 볼륨을 사용할 준비가 되었습니다.

## RAID 어레이에 볼륨 스냅샷 생성
<a name="ebs-snapshots-raid-array"></a>

스냅샷을 사용하여 RAID 배열의 EBS 볼륨에 데이터를 백업하려는 경우 스냅샷이 일관되어야 합니다. 이러한 볼륨의 스냅샷은 독립적으로 생성되기 때문입니다. 동기화되지 않은 스냅샷을 사용하여 RAID 배열의 EBS 볼륨을 복원할 경우 배열의 무결성이 손상됩니다.

RAID 배열에 일관된 스냅샷 집합을 생성하려면 [EBS 다중 볼륨 스냅샷](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html)을 사용합니다. 다중 볼륨 스냅샷을 통해 EC2 인스턴스에 연결된 여러 EBS 볼륨에서 특정 시점, 데이터 조정 및 충돌 일치 스냅샷을 생성할 수 있습니다. 스냅샷은 여러 EBS 볼륨에서 자동으로 생성되기 때문에 일관성을 유지하기 위해 인스턴스를 중지하여 볼륨 간을 조정할 필요가 없습니다. 자세한 내용은 [Amazon EBS 스냅샷 생성](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-snapshot.html) 아래에서 다중 볼륨 스냅샷 생성 단계를 참조하세요.