데이터 디스크 연결

RAID 장치를 구성하는 데 두 개 이상의 빈 데이터 디스크가 필요합니다. RAID 장치를 만드는 주된 이유는 디스크 IO의 성능을 개선하기 위한 것입니다. IO 요구 사항에 따라 표준 저장소에 저장된 디스크(디스크당 최대 500IO/ps) 또는 프리미엄 저장소에 저장된 디스크(디스크당 최대 5000IO/ps)를 연결할 수 있습니다. Linux 가상 컴퓨터에 데이터 디스크를 프로비전 및 연결하는 방법은 이 문서에서 자세히 다루지 않습니다. Azure에서 빈 데이터 디스크를 Linux 가상 컴퓨터에 연결하는 방법에 대한 자세한 내용은 Microsoft Azure 문서 디스크 연결을 참조하세요.

mdadm 유틸리티 설치

  • Ubuntu

    Copy
    bash
    sudo apt-get update
    sudo apt-get install mdadm
    
  • CentOS 및 Oracle Linux

    Copy
    bash
    sudo yum install mdadm
    
  • SLES 및 openSUSE

    Copy
    bash
    zypper install mdadm
    

디스크 파티션 만들기

이 예에서는 /dev/sdc에 단일 디스크 파티션을 만듭니다. /dev/sdc1이라는 새 디스크 파티션을 호출합니다.

  1. fdisk를 시작하여 파티션 만들기를 시작합니다.

    Copy
    bash
     sudo fdisk /dev/sdc
     Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
     Building a new DOS disklabel with disk identifier 0xa34cb70c.
     Changes will remain in memory only, until you decide to write them.
     After that, of course, the previous content won't be recoverable.
    
     WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
                     switch off the mode (command 'c') and change display units to
                     sectors (command 'u').
    
  2. 프롬프트에서 'n'을 눌러 새로운( new) 파티션을 만듭니다.

    Copy
    bash
     Command (m for help): n
    
  3. 'p'를 눌러 주( primary) 파티션을 만듭니다.

    Copy
    bash
     Command action
             e   extended
             p   primary partition (1-4)
    
  4. '1'을 눌러 파티션 번호 1을 선택합니다.

    Copy
    bash
     Partition number (1-4): 1
    
  5. 새 파티션의 시작 지점을 선택하거나 <enter> 키를 눌러 드라이브의 가용 공간 시작 부분에 파티션을 배치하는 기본값을 적용할 수 있습니다.

    Copy
    bash
     First cylinder (1-1305, default 1):
     Using default value 1
    
  6. 파티션 크기를 선택합니다. 예를 들어 10기가바이트 파티션을 만들려면 '+10G'를 입력합니다. 또는 <enter> 키를 눌러 범위가 전체 드라이브인 단일 파티션을 만듭니다.

    Copy
    bash
     Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
     Using default value 1305
    
  7. 그런 다음, 파티션의 ID 및 유형( type)을 기본 ID '83'(Linux)에서 ID 'fd'(Linux raid auto)로 변경합니다.

    Copy
    bash
     Command (m for help): t
     Selected partition 1
     Hex code (type L to list codes): fd
    
  8. 마지막으로, 드라이브에 파티션 테이블을 쓰고 fdisk를 종료합니다.

    Copy
    bash
     Command (m for help): w
     The partition table has been altered!
    

RAID 배열 만들기

  1. 다음 예는 3개의 별도 데이터 디스크(sdc1, sdd1, sde1)에 위치한 3개의 파티션을 "스트라이프"합니다(RAID 수준 0). 이 명령을 실행하면 /dev/md127 이라는 새 RAID 장치가 만들어집니다. 이 데이터 디스크가 이전에 작동하지 않는 다른 RAID 배열의 일부였다면 --force 매개 변수를 mdadm 명령에 추가해야 합니다.

    Copy
    bash
     sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \
         /dev/sdc1 /dev/sdd1 /dev/sde1
    
  2. 새 RAID 장치에서 파일 시스템 만들기

    a. CentOS, Oracle Linux, SLES 12, openSUSE 및 Ubuntu

    Copy
    bash
     sudo mkfs -t ext4 /dev/md127
    

    b. SLES 11

    Copy
    bash
     sudo mkfs -t ext3 /dev/md127
    

    c. SLES 11 - boot.md 사용 및 mdadm.conf 만들기

    Copy
    bash
     sudo -i chkconfig --add boot.md
     sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
    
    참고

    SUSE 시스템에서 이렇게 변경한 후에는 다시 부팅해야 할 수 있습니다. SLES 12에서는 이 단계가 필요하지 않습니다 .

/etc/fstab에 새 파일 시스템 추가

중요

/etc/fstab 파일을 부적절하게 편집하면 부팅할 수 없는 시스템이 발생할 수 있습니다. 확실하지 않은 경우 배포 설명서에서 이 파일을 제대로 편집하는 방법에 대한 자세한 내용을 확인하세요. 또한 편집하기 전에 /etc/fstab 파일의 백업을 만드는 것이 좋습니다.

  1. 새 파일 시스템용으로 원하는 탑재 지점을 만듭니다. 예를 들어 다음과 같습니다.

    Copy
    bash
     sudo mkdir /data
    
  2. /etc/fstab를 편집할 때는 파일 시스템을 참조하는 데 장치 이름 대신 UUID 를 사용해야 합니다. blkid 유틸리티를 사용하여 새 파일 시스템의 UUID를 확인합니다.

    Copy
    bash
     sudo /sbin/blkid
     ...........
     /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
    
  3. 텍스트 편집기에서 /etc/fstab을 열고 예를 들어 다음과 같이 새 파일 시스템에 항목을 추가합니다.

    Copy
    bash
     UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults  0  2
    

    또는 SLES 11에 대해 다음을 수행합니다.

    Copy
    bash
     /dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext3  defaults  0  2
    

    그런 다음, /etc/fstab를 저장하고 닫습니다.

  4. /etc/fstab 항목이 올바른지 테스트합니다.

    Copy
    bash
     sudo mount -a
    

    이 명령 결과 오류 메시지가 발생하는 경우 /etc/fstab 파일에서 구문을 확인하세요.

    그런 다음, mount 명령을 실행하여 파일 시스템이 탑재되었는지 확인합니다.

    Copy
    bash
     mount
     .................
     /dev/md127 on /data type ext4 (rw)
    
  5. (선택 사항) Failsafe 부팅 매개 변수

    fstab 구성

    많은 배포에는 /etc/fstab 파일에 추가할 수 있는 nobootwait 또는 nofail 탑재 매개 변수가 포함되어 있습니다. 이 매개 변수는 특정 파일 시스템 탑재 시 오류를 허용하며 Linux 시스템이 제대로 RAID 파일 시스템을 탑재할 수 없는 경우에도 계속 부팅되도록 합니다. 이러한 매개 변수에 대한 자세한 내용은 배포 설명서를 참조하십시오.

    예제(Ubuntu):

    Copy
    bash
     UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,nobootwait  0  2
    

    Linux 부팅 매개 변수

    위의 매개 변수 외에, 커널 매개 변수 "bootdegraded=true"는 RAID가 손상 또는 저하된 것으로 인식되는 경우에도(예: 데이터 드라이브가 실수로 가상 컴퓨터에서 제거된 경우) 시스템이 부팅되도록 할 수 있습니다. 기본적으로 이 매개 변수는 시스템이 부팅할 수 없게 만들 수도 있습니다.

    커널 매개 변수를 올바르게 편집하는 방법에 대해서는 배포 설명서를 참조하십시오. 예를 들어 CentOS, Oracle Linux, SLES 11 등 많은 배포에서 이 매개 변수를 "/boot/grub/menu.lst" 파일에 수동으로 추가할 수 있습니다. Ubuntu에서는 "/etc/default/grub"의 GRUB_CMDLINE_LINUX_DEFAULT 변수에 이 매개 변수를 추가할 수 있습니다.

TRIM/UNMAP 지원

일부 Linux 커널은 디스크에서 사용되지 않은 블록을 버릴 수 있도록 TRIM/UNMAP 작업을 지원합니다. 이러한 작업은 Azure에 삭제된 페이지가 더 이상 유효하지 않으며 폐기될 수 있음을 알리는 데 표준 저장소에서 주로 유용합니다. 큰 파일을 만들고 삭제하는 경우 페이지를 삭제하여 비용을 절감할 수 있습니다.

참고

배열에 대한 청크 크기가 기본값(512KB)보다 작은 값으로 설정된 경우, RAID는 취소 명령을 실행하지 않을 수 있습니다. 호스트에서의 unmap 세분성도 512KB이기 때문입니다. mdadm의 --chunk= 매개 변수를 통해 배열의 청크 크기를 수정하는 경우, TRIM/매핑 해제 요청이 커널에서 무시될 수 있습니다.

Linux VM에서 TRIM 지원을 사용하는 두 가지 방법이 있습니다. 평소와 같이 권장되는 방법에 대해 배포에 확인하세요.

  • /etc/fstabdiscard 탑재 옵션을 사용합니다. 예:

    Copy
    bash
      UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,discard  0  2
    
  • 일부 경우 discard 옵션에는 성능이 저하 될 수 있습니다. 또는 fstrim 명령을 명령줄에서 수동으로 실행하거나, 또는 정기적으로 실행하기 위해 crontab에 추가할 수 있습니다.

    Ubuntu

    Copy
    bash
      # sudo apt-get install util-linux
      # sudo fstrim /data
    

    RHEL/CentOS

    Copy
    bash
      # sudo yum install util-linux
      # sudo fstrim /data
    

'IBM PowerLinux' 카테고리의 다른 글

Linux Network SPEED test iperf  (0) 2017.07.09
리눅스 Filesystem cache 정책 변경  (0) 2017.02.21
linux scan device   (0) 2016.10.22
Hot add, remove, rescan of SCSI devices on Linux  (0) 2016.07.27
Linux Monitoring  (0) 2016.05.26

+ Recent posts