웹사이트 검색

Ubuntu 16.04에서 mdadm으로 RAID 어레이를 만드는 방법


소개

mdadm 유틸리티는 Linux의 소프트웨어 RAID 기능을 사용하여 스토리지 어레이를 만들고 관리하는 데 사용할 수 있습니다. 관리자는 개별 저장 장치를 조정하고 성능 또는 중복 특성이 뛰어난 논리적 저장 장치를 생성하는 데 큰 유연성을 가지고 있습니다.

이 가이드에서는 Ubuntu 16.04 서버를 사용하여 설정할 수 있는 다양한 RAID 구성에 대해 살펴보겠습니다.

전제 조건

이 가이드의 단계를 완료하려면 다음이 있어야 합니다.

  • Ubuntu 16.04 서버에서 sudo 권한이 있는 루트가 아닌 사용자: 이 가이드의 단계는 sudo 사용자로 완료됩니다. 이러한 권한으로 계정을 설정하는 방법을 알아보려면 Ubuntu 16.04 초기 서버 설정 가이드를 따르세요.
  • RAID 용어 및 개념에 대한 기본적인 이해: 이 가이드에서는 지나가는 동안 일부 RAID 용어를 다루겠지만 보다 완벽하게 이해하는 것이 매우 유용합니다. RAID에 대해 자세히 알아보고 자신에게 적합한 RAID 수준을 더 잘 이해하려면 RAID 소개 문서를 읽어보세요.
  • 서버에서 여러 원시 저장 장치 사용 가능: 서버에서 다양한 유형의 배열을 구성하는 방법을 시연할 것입니다. 따라서 구성할 일부 드라이브가 필요합니다.

정보: 가상 사설 서버에서 RAID 설정의 비효율성으로 인해 DigitalOcean 드롭릿에 RAID 설정을 배포하는 것을 권장하지 않습니다. 데이터 센터 디스크 복제의 효율성은 베어메탈 하드웨어의 설정에 비해 RAID의 이점을 무시할 수 있게 만듭니다. 이 자습서는 기존 RAID 설정에 대한 참조를 목표로 합니다.

기존 RAID 장치 재설정

이 안내서 전체에서 다양한 RAID 레벨을 생성하는 단계를 소개합니다. 따라하고 싶다면 각 섹션 이후에 저장 장치를 재사용하고 싶을 것입니다. 이 섹션을 참조하여 새 RAID 수준을 테스트하기 전에 구성 요소 저장 장치를 빠르게 재설정하는 방법을 배울 수 있습니다. 아직 어레이를 설정하지 않은 경우 지금은 이 섹션을 건너뛰십시오.

이 프로세스는 어레이와 어레이에 기록된 모든 데이터를 완전히 파괴합니다. 올바른 어레이에서 작동 중이고 어레이를 파괴하기 전에 유지해야 하는 모든 데이터를 복사했는지 확인하십시오.

다음을 입력하여 /proc/mdstat 파일에서 활성 배열을 찾습니다.

  1. cat /proc/mdstat
Output
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

파일 시스템에서 어레이를 마운트 해제합니다.

  1. sudo umount /dev/md0

그런 다음 다음을 입력하여 어레이를 중지하고 제거합니다.

  1. sudo mdadm --stop /dev/md0
  2. sudo mdadm --remove /dev/md0

다음 명령을 사용하여 어레이를 구축하는 데 사용된 장치를 찾습니다.

/dev/sd* 이름은 재부팅할 때마다 변경될 수 있습니다! 올바른 장치에서 작동하고 있는지 매번 확인하십시오.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G linux_raid_member disk sdd 100G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

배열을 만드는 데 사용된 장치를 찾은 후 슈퍼 블록을 0으로 설정하여 정상으로 재설정합니다.

  1. sudo mdadm --zero-superblock /dev/sdc
  2. sudo mdadm --zero-superblock /dev/sdd

어레이에 대한 영구 참조를 제거해야 합니다. /etc/fstab 파일을 편집하고 어레이에 대한 참조를 주석 처리하거나 제거합니다.

  1. sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

또한 /etc/mdadm/mdadm.conf 파일에서 배열 정의를 주석 처리하거나 제거합니다.

  1. sudo nano /etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

마지막으로 initramfs를 다시 업데이트합니다.

  1. sudo update-initramfs -u

이 시점에서 저장 장치를 개별적으로 또는 다른 어레이의 구성 요소로 재사용할 준비가 되어 있어야 합니다.

RAID 0 어레이 생성

RAID 0 어레이는 데이터를 청크로 나누고 사용 가능한 디스크에 걸쳐 스트라이프하는 방식으로 작동합니다. 즉, 각 디스크에는 데이터의 일부가 포함되어 있으며 정보를 검색할 때 여러 디스크가 참조됩니다.

  • 요구 사항: 최소 2개의 저장 장치
  • 주요 이점: 성능
  • 유의 사항: 제대로 작동하는 백업이 있는지 확인하십시오. 단일 장치 오류는 어레이의 모든 데이터를 파괴합니다.

구성 요소 장치 식별

시작하려면 사용할 원시 디스크의 식별자를 찾으십시오.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

위에서 볼 수 있듯이 파일 시스템이 없는 두 개의 디스크가 있으며 각각 크기는 100G입니다. 이 예에서 이러한 장치에는 이 세션에 대한 /dev/sda/dev/sdb 식별자가 지정되었습니다. 이들은 배열을 구축하는 데 사용할 원시 구성 요소입니다.

어레이 만들기

이러한 구성 요소로 RAID 0 어레이를 만들려면 mdadm --create 명령에 전달하십시오. 만들려는 장치 이름(이 경우 /dev/md0), RAID 수준 및 장치 수를 지정해야 합니다.

  1. sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

/proc/mdstat 파일을 확인하여 RAID가 성공적으로 생성되었는지 확인할 수 있습니다.

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

강조 표시된 줄에서 볼 수 있듯이 /dev/md0 장치는 /dev/sda/dev/를 사용하여 RAID 0 구성에서 생성되었습니다. sdb 장치.

파일 시스템 생성 및 마운트

다음으로 어레이에 파일 시스템을 만듭니다.

  1. sudo mkfs.ext4 -F /dev/md0

새 파일 시스템을 연결할 마운트 지점을 만듭니다.

  1. sudo mkdir -p /mnt/md0

다음을 입력하여 파일 시스템을 마운트할 수 있습니다.

  1. sudo mount /dev/md0 /mnt/md0

다음을 입력하여 새 공간을 사용할 수 있는지 확인합니다.

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

새 파일 시스템이 마운트되고 액세스 가능합니다.

어레이 레이아웃 저장

어레이가 부팅 시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf 파일을 조정해야 합니다. 다음을 입력하여 활성 어레이를 자동으로 스캔하고 파일을 추가할 수 있습니다.

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

그런 다음 초기 부팅 프로세스 중에 어레이를 사용할 수 있도록 initramfs 또는 초기 RAM 파일 시스템을 업데이트할 수 있습니다.

  1. sudo update-initramfs -u

부팅 시 자동 마운트를 위해 새 파일 시스템 마운트 옵션을 /etc/fstab 파일에 추가합니다.

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

이제 RAID 0 어레이가 부팅할 때마다 자동으로 조립되고 마운트됩니다.

RAID 1 어레이 생성

RAID 1 어레이 유형은 사용 가능한 모든 디스크에 데이터를 미러링하여 구현됩니다. RAID 1 어레이의 각 디스크는 데이터의 전체 복사본을 가져오므로 장치 오류 발생 시 중복성을 제공합니다.

  • 요구 사항: 최소 2개의 저장 장치
  • 주요 이점: 중복성
  • 유의 사항: 두 개의 데이터 복사본이 유지되므로 디스크 공간의 절반만 사용할 수 있습니다.

구성 요소 장치 식별

시작하려면 사용할 원시 디스크의 식별자를 찾으십시오.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

위에서 볼 수 있듯이 파일 시스템이 없는 두 개의 디스크가 있으며 각각 크기는 100G입니다. 이 예에서 이러한 장치에는 이 세션에 대한 /dev/sda/dev/sdb 식별자가 지정되었습니다. 이들은 배열을 구축하는 데 사용할 원시 구성 요소입니다.

어레이 만들기

이러한 구성 요소로 RAID 1 어레이를 만들려면 mdadm --create 명령에 전달하십시오. 만들려는 장치 이름(이 경우 /dev/md0), RAID 수준 및 장치 수를 지정해야 합니다.

  1. sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

사용 중인 구성 요소 장치가 boot 플래그가 활성화된 파티션이 아닌 경우 다음 경고가 표시될 수 있습니다. 계속하려면 y를 입력하는 것이 안전합니다.

Output
mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: size set to 104792064K Continue creating array? y

mdadm 도구가 드라이브 미러링을 시작합니다. 완료하는 데 약간의 시간이 걸릴 수 있지만 이 시간 동안 어레이를 사용할 수 있습니다. /proc/mdstat 파일을 확인하여 미러링 진행 상황을 모니터링할 수 있습니다.

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 104792064 blocks super 1.2 [2/2] [UU] [====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec unused devices: <none>

강조 표시된 첫 번째 줄에서 볼 수 있듯이 /dev/md0 장치는 /dev/sda/dev를 사용하여 RAID 1 구성에서 생성되었습니다. /sdb 장치. 강조 표시된 두 번째 줄은 미러링 진행률을 보여줍니다. 이 프로세스가 완료되는 동안 가이드를 계속할 수 있습니다.

파일 시스템 생성 및 마운트

다음으로 어레이에 파일 시스템을 만듭니다.

  1. sudo mkfs.ext4 -F /dev/md0

새 파일 시스템을 연결할 마운트 지점을 만듭니다.

  1. sudo mkdir -p /mnt/md0

다음을 입력하여 파일 시스템을 마운트할 수 있습니다.

  1. sudo mount /dev/md0 /mnt/md0

다음을 입력하여 새 공간을 사용할 수 있는지 확인합니다.

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 99G 60M 94G 1% /mnt/md0

새 파일 시스템이 마운트되고 액세스 가능합니다.

어레이 레이아웃 저장

어레이가 부팅 시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf 파일을 조정해야 합니다. 다음을 입력하여 활성 어레이를 자동으로 스캔하고 파일을 추가할 수 있습니다.

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

그런 다음 초기 부팅 프로세스 중에 어레이를 사용할 수 있도록 initramfs 또는 초기 RAM 파일 시스템을 업데이트할 수 있습니다.

  1. sudo update-initramfs -u

부팅 시 자동 마운트를 위해 새 파일 시스템 마운트 옵션을 /etc/fstab 파일에 추가합니다.

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

이제 RAID 1 어레이가 부팅할 때마다 자동으로 조립되고 마운트됩니다.

RAID 5 어레이 생성

RAID 5 어레이 유형은 사용 가능한 장치에 데이터를 스트라이핑하여 구현됩니다. 각 스트라이프의 구성 요소 중 하나는 계산된 패리티 블록입니다. 장치에 오류가 발생하면 패리티 블록과 나머지 블록을 사용하여 누락된 데이터를 계산할 수 있습니다. 패리티 블록을 수신하는 장치는 각 장치가 균형 잡힌 양의 패리티 정보를 갖도록 회전됩니다.

  • 요구 사항: 최소 3개의 저장 장치
  • 주요 이점: 가용 용량이 더 많은 이중화.
  • 유의 사항: 패리티 정보가 배포되는 동안 디스크 1개 분량의 용량이 패리티에 사용됩니다. RAID 5는 성능이 저하된 상태에서 성능이 매우 저하될 수 있습니다.

구성 요소 장치 식별

시작하려면 사용할 원시 디스크의 식별자를 찾으십시오.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

위에서 볼 수 있듯이 파일 시스템이 없고 각각 크기가 100G인 세 개의 디스크가 있습니다. 이 예에서 이러한 장치에는 이 세션에 대한 /dev/sda, /dev/sdb/dev/sdc 식별자가 지정되었습니다. . 이들은 배열을 구축하는 데 사용할 원시 구성 요소입니다.

어레이 만들기

이러한 구성 요소로 RAID 5 어레이를 만들려면 mdadm --create 명령에 전달하십시오. 만들려는 장치 이름(이 경우 /dev/md0), RAID 수준 및 장치 수를 지정해야 합니다.

  1. sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

mdadm 도구가 어레이 구성을 시작합니다(실제로 성능상의 이유로 어레이를 구축하기 위해 복구 프로세스를 사용함). 완료하는 데 약간의 시간이 걸릴 수 있지만 이 시간 동안 어레이를 사용할 수 있습니다. /proc/mdstat 파일을 확인하여 미러링 진행 상황을 모니터링할 수 있습니다.

  1. cat /proc/mdstat
Output
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [===>.................] recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/sec unused devices: <none>

강조 표시된 첫 번째 줄에서 볼 수 있듯이 /dev/md0 장치는 /dev/sda, /dev를 사용하여 RAID 5 구성에서 생성되었습니다. /sdb/dev/sdc 장치. 강조 표시된 두 번째 줄은 빌드 진행률을 보여줍니다. 이 프로세스가 완료되는 동안 가이드를 계속할 수 있습니다.

파일 시스템 생성 및 마운트

다음으로 어레이에 파일 시스템을 만듭니다.

  1. sudo mkfs.ext4 -F /dev/md0

새 파일 시스템을 연결할 마운트 지점을 만듭니다.

  1. sudo mkdir -p /mnt/md0

다음을 입력하여 파일 시스템을 마운트할 수 있습니다.

  1. sudo mount /dev/md0 /mnt/md0

다음을 입력하여 새 공간을 사용할 수 있는지 확인합니다.

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

새 파일 시스템이 마운트되고 액세스 가능합니다.

어레이 레이아웃 저장

어레이가 부팅 시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf 파일을 조정해야 합니다.

구성을 조정하기 전에 어레이 조립이 완료되었는지 다시 확인하십시오. mdadm이 RAID 5 어레이를 구축하는 방식으로 인해 어레이가 아직 구축 중인 경우 어레이의 스페어 수가 부정확하게 보고됩니다.

  1. cat /proc/mdstat
Output
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>

위의 출력은 재구축이 완료되었음을 보여줍니다. 이제 활성 어레이를 자동으로 스캔하고 다음을 입력하여 파일을 추가할 수 있습니다.

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

그런 다음 초기 부팅 프로세스 중에 어레이를 사용할 수 있도록 initramfs 또는 초기 RAM 파일 시스템을 업데이트할 수 있습니다.

  1. sudo update-initramfs -u

부팅 시 자동 마운트를 위해 새 파일 시스템 마운트 옵션을 /etc/fstab 파일에 추가합니다.

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

이제 RAID 5 어레이가 부팅할 때마다 자동으로 조립되고 마운트됩니다.

RAID 6 어레이 생성

RAID 6 어레이 유형은 사용 가능한 장치에 데이터를 스트라이핑하여 구현됩니다. 각 스트라이프의 두 구성 요소는 계산된 패리티 블록입니다. 하나 또는 두 개의 장치에 오류가 발생하면 패리티 블록과 나머지 블록을 사용하여 누락된 데이터를 계산할 수 있습니다. 패리티 블록을 수신하는 장치는 각 장치가 균형 잡힌 양의 패리티 정보를 갖도록 회전됩니다. 이는 RAID 5 어레이와 유사하지만 두 드라이브의 장애를 허용합니다.

  • 요구 사항: 최소 4개의 저장 장치
  • 주요 이점: 가용 용량이 더 많은 이중 중복.
  • 유의 사항: 패리티 정보가 배포되는 동안 패리티에는 디스크 2개 분량의 용량이 사용됩니다. RAID 6은 성능이 저하된 상태에서 성능이 매우 저하될 수 있습니다.

구성 요소 장치 식별

시작하려면 사용할 원시 디스크의 식별자를 찾으십시오.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

위에서 볼 수 있듯이 각각 100G 크기의 파일 시스템이 없는 4개의 디스크가 있습니다. 이 예에서 이러한 장치에는 /dev/sda, /dev/sdb, /dev/sdc가 지정되었습니다. 이 세션의 /dev/sdd 식별자입니다. 이들은 배열을 구축하는 데 사용할 원시 구성 요소입니다.

어레이 만들기

이러한 구성 요소로 RAID 6 어레이를 만들려면 mdadm --create 명령에 전달하십시오. 만들려는 장치 이름(이 경우 /dev/md0), RAID 수준 및 장치 수를 지정해야 합니다.

  1. sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

mdadm 도구가 어레이 구성을 시작합니다(실제로 성능상의 이유로 어레이를 구축하기 위해 복구 프로세스를 사용함). 완료하는 데 약간의 시간이 걸릴 수 있지만 이 시간 동안 어레이를 사용할 수 있습니다. /proc/mdstat 파일을 확인하여 미러링 진행 상황을 모니터링할 수 있습니다.

  1. cat /proc/mdstat
Output
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] [>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec unused devices: <none>

강조 표시된 첫 번째 줄에서 볼 수 있듯이 /dev/md0 장치는 /dev/sda, /dev를 사용하여 RAID 6 구성에서 생성되었습니다. /sdb, /dev/sdc/dev/sdd 장치. 강조 표시된 두 번째 줄은 빌드 진행 상황을 보여줍니다. 이 프로세스가 완료되는 동안 가이드를 계속 진행할 수 있습니다.

파일 시스템 생성 및 마운트

다음으로 어레이에 파일 시스템을 만듭니다.

  1. sudo mkfs.ext4 -F /dev/md0

새 파일 시스템을 연결할 마운트 지점을 만듭니다.

  1. sudo mkdir -p /mnt/md0

다음을 입력하여 파일 시스템을 마운트할 수 있습니다.

  1. sudo mount /dev/md0 /mnt/md0

다음을 입력하여 새 공간을 사용할 수 있는지 확인합니다.

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

새 파일 시스템이 마운트되고 액세스 가능합니다.

어레이 레이아웃 저장

어레이가 부팅 시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf 파일을 조정해야 합니다. 다음을 입력하여 활성 어레이를 자동으로 스캔하고 파일을 추가할 수 있습니다.

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

그런 다음 초기 부팅 프로세스 중에 어레이를 사용할 수 있도록 initramfs 또는 초기 RAM 파일 시스템을 업데이트할 수 있습니다.

  1. sudo update-initramfs -u

부팅 시 자동 마운트를 위해 새 파일 시스템 마운트 옵션을 /etc/fstab 파일에 추가합니다.

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

이제 RAID 6 어레이가 부팅할 때마다 자동으로 조립되고 마운트됩니다.

복잡한 RAID 10 어레이 만들기

RAID 10 어레이 유형은 전통적으로 RAID 1 어레이 세트로 구성된 스트라이프 RAID 0 어레이를 생성하여 구현됩니다. 이 중첩 배열 유형은 많은 양의 디스크 공간을 희생시키면서 중복성과 고성능을 모두 제공합니다. mdadm 유틸리티에는 향상된 유연성과 함께 동일한 유형의 이점을 제공하는 자체 RAID 10 유형이 있습니다. 배열을 중첩하여 생성되지는 않지만 동일한 특성과 보장이 많이 있습니다. 여기서는 mdadm RAID 10을 사용할 것입니다.

  • 요구 사항: 최소 3개의 저장 장치
  • 주요 이점: 성능 및 중복성
  • 유의 사항: 어레이의 용량 감소량은 유지하기로 선택한 데이터 복사본의 수에 의해 정의됩니다. mdadm 스타일 RAID 10으로 저장되는 복사본 수는 구성 가능합니다.

기본적으로 각 데이터 블록의 복사본 두 개는 "가까운\ 레이아웃에 저장됩니다. 각 데이터 블록이 저장되는 방식을 지정하는 가능한 레이아웃은 다음과 같습니다.

  • 근처: 기본 배열입니다. 각 청크의 복사본은 스트라이핑 시 연속적으로 기록됩니다. 즉, 데이터 블록의 복사본이 여러 디스크의 동일한 부분 주위에 기록됩니다.
  • far: 첫 번째 및 후속 복사본은 어레이의 스토리지 장치의 다른 부분에 기록됩니다. 예를 들어, 첫 번째 청크는 디스크의 시작 부분 근처에 기록되고 두 번째 청크는 다른 디스크의 절반쯤 아래에 기록됩니다. 이렇게 하면 쓰기 성능이 저하되는 대신 기존 회전 디스크의 읽기 성능이 향상될 수 있습니다.
  • 오프셋: 각 스트라이프가 하나의 드라이브로 오프셋되어 복사됩니다. 이는 사본이 서로 오프셋되지만 디스크에서 여전히 서로 가깝다는 것을 의미합니다. 이는 일부 워크로드 중에 과도한 탐색을 최소화하는 데 도움이 됩니다.

man 페이지의 "RAID10\ 섹션을 확인하여 이러한 레이아웃에 대해 자세히 알아볼 수 있습니다.

  1. man 4 md

여기에서 온라인으로 이 man 페이지를 찾을 수도 있습니다.

구성 요소 장치 식별

시작하려면 사용할 원시 디스크의 식별자를 찾으십시오.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

위에서 볼 수 있듯이 각각 100G 크기의 파일 시스템이 없는 4개의 디스크가 있습니다. 이 예에서 이러한 장치에는 /dev/sda, /dev/sdb, /dev/sdc가 지정되었습니다. 이 세션의 /dev/sdd 식별자입니다. 이들은 배열을 구축하는 데 사용할 원시 구성 요소입니다.

어레이 만들기

이러한 구성 요소로 RAID 10 어레이를 만들려면 mdadm --create 명령에 전달하십시오. 만들려는 장치 이름(이 경우 /dev/md0), RAID 수준 및 장치 수를 지정해야 합니다.

레이아웃과 사본 번호를 지정하지 않고 니어 레이아웃을 사용하여 두 개의 사본을 설정할 수 있습니다.

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

다른 레이아웃을 사용하거나 사본 수를 변경하려면 레이아웃 및 사본 식별자를 사용하는 --layout= 옵션을 사용해야 합니다. 레이아웃은 근거리의 경우 n, 원거리의 경우 f, 오프셋의 경우 o입니다. 저장할 사본의 수는 나중에 추가됩니다.

예를 들어 오프셋 레이아웃에 3개의 사본이 있는 배열을 만들려면 명령은 다음과 같습니다.

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

mdadm 도구가 어레이 구성을 시작합니다(실제로 성능상의 이유로 어레이를 구축하기 위해 복구 프로세스를 사용함). 완료하는 데 약간의 시간이 걸릴 수 있지만 이 시간 동안 어레이를 사용할 수 있습니다. /proc/mdstat 파일을 확인하여 미러링 진행 상황을 모니터링할 수 있습니다.

  1. cat /proc/mdstat
Output
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: <none>

강조 표시된 첫 번째 줄에서 볼 수 있듯이 /dev/md0 장치는 /dev/sda, /dev를 사용하여 RAID 10 구성에서 생성되었습니다. /sdb, /dev/sdc/dev/sdd 장치. 두 번째로 강조 표시된 영역은 이 예제에 사용된 레이아웃을 보여줍니다(가까운 구성에서 2개의 복사본). 세 번째로 강조 표시된 영역은 빌드 진행률을 보여줍니다. 이 프로세스가 완료되는 동안 가이드를 계속 진행할 수 있습니다.

파일 시스템 생성 및 마운트

다음으로 어레이에 파일 시스템을 만듭니다.

  1. sudo mkfs.ext4 -F /dev/md0

새 파일 시스템을 연결할 마운트 지점을 만듭니다.

  1. sudo mkdir -p /mnt/md0

다음을 입력하여 파일 시스템을 마운트할 수 있습니다.

  1. sudo mount /dev/md0 /mnt/md0

다음을 입력하여 새 공간을 사용할 수 있는지 확인합니다.

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

새 파일 시스템이 마운트되고 액세스 가능합니다.

어레이 레이아웃 저장

어레이가 부팅 시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf 파일을 조정해야 합니다. 다음을 입력하여 활성 어레이를 자동으로 스캔하고 파일을 추가할 수 있습니다.

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

그런 다음 초기 부팅 프로세스 중에 어레이를 사용할 수 있도록 initramfs 또는 초기 RAM 파일 시스템을 업데이트할 수 있습니다.

  1. sudo update-initramfs -u

부팅 시 자동 마운트를 위해 새 파일 시스템 마운트 옵션을 /etc/fstab 파일에 추가합니다.

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

이제 RAID 10 어레이가 부팅할 때마다 자동으로 조립되고 마운트됩니다.

결론

이 가이드에서는 Linux의 mdadm 소프트웨어 RAID 유틸리티를 사용하여 다양한 유형의 어레이를 생성하는 방법을 시연했습니다. RAID 어레이는 여러 디스크를 개별적으로 사용하는 것보다 강력한 중복성과 성능 향상을 제공합니다.

환경에 필요한 어레이 유형을 결정하고 장치를 만든 후에는 mdadm을 사용하여 일상적인 관리를 수행하는 방법을 배워야 합니다. Ubuntu 16.04에서 mdadm을 사용하여 RAID 어레이를 관리하는 방법에 대한 가이드가 시작하는 데 도움이 될 수 있습니다.