Amazon EBS 및 RAID 구성 - Amazon EBS

Amazon EBS 및 RAID 구성

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

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

RAID 구성 옵션

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 어레이 생성

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

고려 사항
  • 이 절차를 수행하기 전에 RAID 0 어레이의 크기와 프로비저닝할 IOPS 수를 결정해야 합니다.

  • 어레이에 대해 크기 및 IOPS 성능 값이 동일한 볼륨을 생성합니다. EC2 인스턴스의 가용 대역폭을 초과하는 어레이를 생성하지 마세요.

  • RAID 볼륨에서는 부팅하지 않아야 합니다. 디바이스 중 하나에 장애가 발생하면 운영 체제를 부팅하지 못할 수 있습니다.

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

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

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

    참고

    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을 설치합니다.

  4. 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
  5. RAID 어레이에서 파일 시스템을 생성하고 이후 해당 파일 시스템에 마운트할 때 사용할 레이블을 지정합니다. 예를 들어, 레이블 MY_RAID로 ext4 파일 시스템을 생성하려면 다음 명령을 사용합니다.

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

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

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

    [ec2-user ~]$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf
    참고

    Amazon Linux 이외의 Linux 배포판을 사용하는 경우 이 명령을 수정해야 할 수도 있습니다. 예를 들어 파일을 다른 위치에 배치하거나 --examine 파라미터를 추가해야 할 수 있습니다. 자세한 내용을 보려면 Linux 인스턴스에서 man mdadm.conf를 실행하세요.

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

    [ec2-user ~]$ sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
  8. RAID 어레이에 대한 마운트 지점을 생성합니다.

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

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

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

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

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

      [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 마운트 옵션도 추가해야 합니다.

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

      [ec2-user ~]$ sudo mount -a

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

      주의

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

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

      [ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab
Windows에서 RAID 0 어레이를 생성하려면
  1. 어레이에 대한 Amazon EBS 볼륨을 생성합니다. 자세한 내용은 Amazon EBS 볼륨 생성 단원을 참조하십시오.

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

  3. Windows 인스턴스에 연결합니다. 자세한 내용은 Windows 인스턴스에 연결을 참조하세요.

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

    diskpart Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. On computer: WIN-BM6QPPL51CO
  5. 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

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

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

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

      DISKPART> select disk n Disk n is now the selected disk.
    2. 선택한 디스크가 Offline으로 나열되는 경우 online disk 명령을 실행하여 온라인으로 전환합니다.

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

      DISKPART> convert dynamic
      참고

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

    4. 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입니다. 볼륨이 없는 경우 다음 단계를 건너뛸 수 있습니다.

    5. (이전 단계에서 볼륨이 식별된 경우에만 필요함) 이전 단계에서 식별된 디스크의 기존 볼륨을 선택하여 삭제합니다.

      주의

      그러면 볼륨의 기존 데이터가 소멸됩니다.

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

        DISKPART> select volume n Volume n is the selected volume.
      2. 볼륨을 삭제합니다.

        DISKPART> delete volume DiskPart successfully deleted the volume.
      3. 선택한 디스크에서 삭제할 각 볼륨에 대해 이 하위 단계를 반복합니다.

    6. 어레이에서 사용할 각 디스크에 대해 단계 6을 반복합니다.

  7. 사용할 디스크가 새 동적 디스크인지 확인합니다. 이 예에서는 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 *
  8. RAID 어레이를 생성합니다. Windows에서는 RAID 0 볼륨을 스트라이프 볼륨이라고 합니다.

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

    DISKPART> create volume stripe disk=1,2 DiskPart successfully created the volume.
  9. 새 볼륨을 확인합니다.

    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 볼륨으로 표시됩니다.

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

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

      DISKPART> select volume n Volume n is the selected volume.
    2. 볼륨을 포맷합니다.

      참고

      전체 포맷을 수행하려면 quick 옵션을 생략합니다.

      DISKPART> format quick recommended label="My new volume" 100 percent completed DiskPart successfully formatted the volume.
    3. 사용 가능한 드라이브 문자를 볼륨에 배정합니다.

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

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

RAID 어레이에 볼륨 스냅샷 생성

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

RAID 배열에 일관된 스냅샷 집합을 생성하려면 EBS 다중 볼륨 스냅샷을 사용합니다. 다중 볼륨 스냅샷을 통해 EC2 인스턴스에 연결된 여러 EBS 볼륨에서 특정 시점, 데이터 조정 및 충돌 일치 스냅샷을 생성할 수 있습니다. 스냅샷은 여러 EBS 볼륨에서 자동으로 생성되기 때문에 일관성을 유지하기 위해 인스턴스를 중지하여 볼륨 간을 조정할 필요가 없습니다. 자세한 내용은 Amazon EBS 스냅샷 생성 아래에서 다중 볼륨 스냅샷 생성 단계를 참조하세요.