메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

Linux의 RAID 구성

Amazon EBS를 사용하면 기존 운영 체제 미설치 서버에서 사용 가능한 스탠다드 RAID 구성을 사용할 수 있습니다. 단, 해당 RAID 구성이 인스턴스에 대한 운영 체제에서 지원되어야 합니다. 이는 모든 RAID가 소프트웨어 수준에서 실행되기 때문입니다. 단일 볼륨을 사용할 때보다 더 나은 I/O 성능을 얻기 위해 RAID 0은 여러 볼륨을 함께 스트라이프할 수 있고, 온인스턴스 중복을 위해 RAID 1은 두 개의 볼륨을 함께 미러링할 수 있습니다.

Amazon EBS 볼륨 데이터는 단일 구성 요소의 고장으로 인한 데이터 손실을 방지하기 위해 가용 영역의 여러 서버에 복제됩니다. 이 복제 기능으로 인해 Amazon EBS 볼륨이 일반 상용 디스크 드라이브보다 10배 더 안정적입니다. 자세한 내용은 Amazon EBS 제품 정보 페이지의 Amazon EBS Availability and Durability 단원을 참조하십시오.

참고

RAID 볼륨에서는 부팅하지 않아야 합니다. Grub은 일반적으로 RAID 어레이의 디바이스 하나에만 설치되며, 미러링된 디바이스 중 하나에 장애가 발생할 경우 운영 체제를 부팅하지 못할 수 있습니다.

Windows 인스턴스에서 RAID 어레이를 생성해야 하는 경우 Windows 인스턴스용 Amazon EC2 사용 설명서RAID Configuration on Windows 단원을 참조하십시오.

RAID 구성 옵션

다음 표에서는 일반 RAID 0 옵션과 RAID 1 옵션을 비교합니다.

구성 --set-visible-to-all-users 장점 단점

RAID 0

I/O 성능이 내결함성보다 더 중요한 경우(예: 데이터 복제가 이미 별도로 설정되어 있는 사용량이 많은 데이터베이스)

I/O가 스트라이프의 볼륨에 분산됩니다. 볼륨을 추가하면 처리량도 그에 따라 바로 추가됩니다.

스트라이프의 성능이 세트에서 가장 성능이 떨어지는 볼륨으로 제한됩니다. 단일 볼륨이 손실되면 어레이의 데이터가 완전히 손실됩니다.

RAID 1

내결함성이 I/O 성능보다 더 중요한 경우(예: 중요 애플리케이션)

데이터 내구성 면에서 더 안전합니다.

쓰기 성능이 향상되지 않습니다. 또한 데이터를 동시에 여러 볼륨에 쓰기 때문에 비 RAID 구성에 비해 Amazon EC2와 Amazon EBS 사이에 더 큰 대역폭이 필요합니다.

중요

RAID 5 및 RAID 6는 이 RAID 모드의 패리티 쓰기 작업에서 볼륨에 사용 가능한 IOPS의 일부를 사용하기 때문에 Amazon EBS에 권장되지 않습니다. RAID 어레이의 구성에 따라 이러한 RAID 모드에서는 RAID 0 구성보다 20-30% 더 적은 가용 IOPS를 제공합니다. 이러한 RAID 모드는 비용 증가의 한 요인이기도 합니다. 볼륨 크기와 속도가 동일할 경우 2 볼륨 RAID 0 어레이가 두 배 더 비싼 4 볼륨 RAID 6 어레이보다 더 우수한 성능을 제공합니다.

RAID 0 어레이를 생성하면 단일 Amazon EBS 볼륨에서 프로비저닝할 때보다 파일 시스템의 성능이 더 향상됩니다. RAID 1 어레이는 중복성 강화를 위해 데이터를 "미러링"합니다. 이 절차를 수행하기 전에 RAID 어레이의 크기와 프로비저닝할 IOPS 수를 결정해야 합니다.

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

이 문서는 기본 RAID 설정의 예를 제공합니다. RAID 구성, 성능 및 복구에 대한 자세한 내용은 https://raid.wiki.kernel.org/index.php/Linux_Raid에서 Linux RAID Wiki 단원을 참조하십시오.

Linux에서 RAID 어레이 생성

다음 절차에 따라 RAID 어레이를 생성합니다. Windows 인스턴스에 대한 지침은 Windows 인스턴스용 Amazon EC2 사용 설명서Windows에서 RAID 어레이 생성을 참조하십시오.

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

  1. 어레이에 대한 Amazon EBS 볼륨을 생성합니다. 자세한 내용은 Amazon EBS 볼륨 생성 단원을 참조하십시오.

    중요

    어레이에 대해 크기 및 IOPS 성능 값이 동일한 볼륨을 생성합니다. EC2 인스턴스의 가용 대역폭을 초과하는 어레이를 생성하지 마십시오. 자세한 내용은 Amazon EC2 인스턴스 구성 단원을 참조하십시오.

  2. 어레이를 호스팅할 인스턴스에 Amazon EBS 볼륨을 연결합니다. 자세한 내용은 Amazon EBS 볼륨을 인스턴스에 연결 단원을 참조하십시오.

  3. mdadm 명령을 사용하여 새로 연결된 Amazon EBS 볼륨에서 로직 RAID 디바이스를 생성합니다. number_of_volumes에 대한 어레이의 볼륨 수와 device_name에 대한 어레이에 있는 각 볼륨의 디바이스 이름(예: /dev/xvdf)을 대체합니다. 어레이의 고유 이름으로 MY_RAID를 대체할 수도 있습니다.

    참고

    lsblk 명령으로 인스턴스에 디바이스를 나열하여 디바이스 이름을 찾을 수 있습니다.

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

    Copy
    [ec2-user ~]$ sudo mdadm --create --verbose /dev/md0 --level=0 --name=MY_RAID --raid-devices=number_of_volumes device_name1 device_name2

    (RAID 1에만 해당) RAID 1 어레이를 생성하려면 다음 명령을 실행합니다(어레이를 미러링하려면 --level=1 옵션 사용).

    Copy
    [ec2-user ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --name=MY_RAID --raid-devices=number_of_volumes device_name1 device_name2
  4. RAID 어레이가 초기화되고 동기화될 때까지 기다립니다. 다음 명령을 사용하여 이 작업의 진행을 추적할 수 있습니다.

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

    다음은 예제 출력입니다.

    Personalities : [raid1] 
    md0 : active raid1 xvdg[1] xvdf[0]
          20955008 blocks super 1.2 [2/2] [UU]
          [=========>...........]  resync = 46.8% (9826112/20955008) finish=2.9min speed=63016K/sec

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

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

    다음은 예제 출력입니다.

    /dev/md0:
            Version : 1.2
      Creation Time : Mon Jun 27 11:31:28 2016
         Raid Level : raid1
         Array Size : 20955008 (19.98 GiB 21.46 GB)
      Used Dev Size : 20955008 (19.98 GiB 21.46 GB)
       Raid Devices : 2
      Total Devices : 2
        Persistence : Superblock is persistent
    
        Update Time : Mon Jun 27 11:37:02 2016
              State : clean 
    ...
    ...
    ...
    
        Number   Major   Minor   RaidDevice State
           0     202       80        0      active sync   /dev/sdf
           1     202       96        1      active sync   /dev/sdg
  5. RAID 어레이에서 파일 시스템을 생성하고 이후 해당 파일 시스템에 마운트할 때 사용할 레이블을 지정합니다. 예를 들어, 레이블 MY_RAID로 ext4 파일 시스템을 생성하려면 다음 명령을 사용합니다.

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

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

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

    Copy
    [ec2-user ~]$ sudo mkdir -p /mnt/raid
  7. 마지막으로 생성한 탑재 지점에 RAID 디바이스를 탑재합니다.

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

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

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

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

      Copy
      [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
    2. 즐겨 사용하는 텍스트 편집기로 /etc/fstab 파일을 엽니다. 이를테면 nano 또는 vim으로 엽니다.

    3. "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_RAID 레이블이 있는 디바이스에 /mnt/raid 탑재 지점에서 ext4 파일 시스템을 탑재하려면 /etc/fstab에 다음 항목을 추가합니다.

      참고

      이 볼륨을 연결하지 않고 인스턴스를 부팅하려면(예: 이 볼륨이 서로 다른 인스턴스 사이를 이동할 수 있도록) 볼륨 마운트 시 오류가 있어도 인스턴스가 부팅되도록 하는 nofail 마운트 옵션을 추가해야 합니다. Ubuntu와 같은 Debian 계열 시스템에서는 nobootwait 마운트 옵션도 추가해야 합니다.

      Copy
      LABEL=MY_RAID /mnt/raid ext4 defaults,nofail 0 2
    4. /etc/fstab에 새 항목을 추가한 다음에는 해당 항목이 작동하는지 확인해야 합니다. sudo mount -a 명령을 실행하여 /etc/fstab에서 모든 파일 시스템을 탑재합니다.

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

      이전 명령에서 오류가 발생하지 않으면 /etc/fstab 파일이 정상이고 다음 부팅 시 파일 시스템이 자동으로 탑재됩니다. 명령에서 오류가 발생하면 오류를 검토한 다음 /etc/fstab를 수정합니다.

      주의

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

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

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