소개
mdadm
유틸리티는 Linux의 소프트웨어 RAID 기능을 사용하여 저장소 배열을 생성하고 관리하는 데 사용할 수 있습니다. 관리자는 개별 저장 장치를 조정하고 성능이나 장애 허용 특성이 더 좋은 논리적 저장 장치를 생성하는 데 매우 유연성을 갖습니다.
이 가이드에서는 Ubuntu 22.04 서버에서 설정할 수 있는 다양한 RAID 구성을 수행합니다.
전제 조건
이 가이드의 단계를 따르려면 다음이 필요합니다:
- A non-root user with
sudo
privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide. - A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
- 서버에 여러 개의 원시 저장 장치가 있어야 합니다. 이 자습서의 예제에서는 서버에서 다양한 유형의 배열을 구성하는 방법을 보여줍니다. 따라서 구성할 드라이브가 필요합니다.
- 배열 유형에 따라 2개에서 4개의 저장 장치가 필요합니다. 이 드라이브는 이 가이드를 따르기 전에 포맷할 필요가 없습니다.
정보: 가상 개인 서버에서 RAID 설정의 비효율성으로 인해 DigitalOcean 도포(Droplet)에 RAID 설정을 배포하는 것을 권장하지 않습니다. 데이터 센터 디스크 복제의 효율성으로 인해 RAID의 이점은 베어메탈 하드웨어에서의 설정과 비교하여 무시할 만큼 작습니다. 이 자습서는 전통적인 RAID 설정을 위한 참고 자료를 제공하는 것을 목표로 합니다.
기존 RAID 장치 초기화 (선택 사항)
아직 어떤 배열도 설정하지 않았다면 이 부분을 건너뛸 수 있습니다. 이 안내서에서는 여러 가지 다른 RAID 레벨을 소개합니다. 각 장치에 대해 각 RAID 레벨을 따라가고 완료하려면 각 섹션마다 저장 장치를 재사용하고 싶을 수 있습니다. 이 특정 섹션 기존 RAID 장치 초기화는 새로운 RAID 레벨을 테스트하기 전에 구성 요소 저장 장치를 재설정하기 위해 참조할 수 있습니다.
경고: 이 과정은 배열과 그 안에 기록된 모든 데이터를 완전히 삭제합니다. 올바른 배열에서 작업하고 배열을 파괴하기 전에 보존해야 할 데이터를 복사했는지 확인하세요.
먼저 /proc/mdstat
파일에서 활성 배열을 찾으세요:
- cat /proc/mdstat
OutputPersonalities : [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>
그런 다음 파일 시스템에서 배열을 마운트 해제하세요:
- sudo umount /dev/md0
이제 배열을 중지하고 제거하세요:
- sudo mdadm --stop /dev/md0
다음 명령을 사용하여 배열을 구성하는 데 사용된 장치를 찾으세요:
경고: /dev/sd*
이름은 재부팅할 때마다 변경될 수 있습니다. 올바른 장치에서 작업하는지 확인하려면 매번 확인하세요.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G linux_raid_member disk
sdb 100G linux_raid_member disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
배열을 만드는 데 사용된 장치를 발견한 후, RAID 설정에 대한 메타데이터를 저장하는 슈퍼블록을 제로로 설정하세요. 이렇게 하면 RAID 메타데이터가 제거되고 장치가 초기화됩니다.
- sudo mdadm --zero-superblock /dev/sda
- sudo mdadm --zero-superblock /dev/sdb
추천되는 대로 배열에 대한 모든 지속적인 참조를 제거하는 것이 좋습니다. /etc/fstab
파일을 편집하여 배열에 대한 참조를 주석 처리하거나 제거하십시오. 라인의 시작 부분에 해시태그 기호 #
를 삽입하여 주석 처리할 수 있으며, nano
또는 선호하는 텍스트 편집기를 사용할 수 있습니다:
- sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
또한, /etc/mdadm/mdadm.conf
파일에서 배열 정의를 주석 처리하거나 제거하십시오:
- sudo nano /etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
마지막으로, 이용 불가능한 배열을 온라인으로 가져오려고하지 않도록 초기 부팅 프로세스에서 initramfs
를 다시 업데이트하십시오:
- sudo update-initramfs -u
이제 여기서는 저장 장치를 개별적으로 또는 다른 배열의 구성 요소로 재사용할 준비가되었습니다.
RAID 0 배열 생성
RAID 0 배열은 데이터를 청크로 분할하고 사용 가능한 디스크에 스트라이핑하는 방식으로 작동합니다. 이는 각 디스크가 데이터의 일부를 포함하고 정보를 검색 할 때 여러 디스크를 참조한다는 것을 의미합니다.
- 요구 사항: 최소 2개의 저장 장치.
- 주요 이점: 읽기/쓰기 및 용량 측면의 성능.
- 기억해야 할 사항: 기능적인 백업이 있는지 확인하십시오. 단일 장치 오류는 배열의 모든 데이터를 파괴할 수 있습니다.
구성 요소 장치 식별하기
시작하기 위해 사용할 원시 디스크의 식별자를 찾으세요:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
이 예시에서는 파일 시스템이 없는 100G 크기의 두 개의 디스크가 있습니다. 이 세션에서는 이러한 장치에 /dev/sda
와 /dev/sdb
식별자가 지정되어 있으며, 이들은 배열을 구성하는 데 사용되는 원시 구성 요소입니다.
배열 생성하기
이러한 구성 요소를 사용하여 RAID 0 배열을 생성하려면 mdadm --create
명령에 전달하세요. 생성할 장치 이름, RAID 레벨 및 장치 수를 지정해야 합니다. 이 명령 예시에서는 배열을 구성하는 두 디스크를 포함하여 장치 이름을 /dev/md0
로 지정합니다:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
/proc/mdstat
파일을 확인하여 RAID가 성공적으로 생성되었는지 확인하세요:
- cat /proc/mdstat
OutputPersonalities : [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/sdb
장치를 사용하여 RAID 0 구성으로 생성된 것을 확인할 수 있습니다.
파일 시스템 생성 및 마운트
다음으로, 배열에 파일 시스템을 생성합니다:
- sudo mkfs.ext4 -F /dev/md0
그런 다음, 새로운 파일 시스템을 연결할 마운트 포인트를 생성합니다:
- sudo mkdir -p /mnt/md0
다음 명령을 사용하여 파일 시스템을 마운트할 수 있습니다:
- sudo mount /dev/md0 /mnt/md0
그 후, 새로운 공간이 사용 가능한지 확인합니다:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 196G 61M 186G 1% /mnt/md0
새로운 파일 시스템이 마운트되어 접근 가능합니다.
배열 레이아웃 저장
배열이 부팅 시 자동으로 재조립되도록 하기 위해 /etc/mdadm/mdadm.conf
파일을 조정해야 합니다. 다음과 같이 활성 배열을 자동으로 스캔하고 파일에 추가할 수 있습니다:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
그런 다음, 초기 RAM 파일 시스템(initramfs
)을 업데이트하여 배열이 초기 부팅 프로세스 중에 사용 가능하도록 할 수 있습니다:
- sudo update-initramfs -u
자동으로 마운트되도록 새로운 파일 시스템 마운트 옵션을 /etc/fstab
파일에 추가하세요:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
이제 RAID 0 배열은 부팅할 때마다 자동으로 조립되고 마운트됩니다.
이제 RAID 설정이 완료되었습니다. 다른 RAID를 시도하려면 이 튜토리얼의 처음에 있는 초기화 지침을 따라 새로운 RAID 배열 유형을 생성하세요.
RAID 1 배열 생성
RAID 1 배열 유형은 모든 사용 가능한 디스크에 데이터를 미러링하여 구현됩니다. RAID 1 배열의 각 디스크는 데이터의 완전한 사본을 받아 장치 장애 시에 대비한 여분의 공간을 제공합니다.
- 요구 사항: 최소 2개의 저장 장치가 필요합니다.
- 주요 이점: 두 개의 저장 장치 간의 중복성을 제공합니다.
- 고려해야 할 사항: 데이터의 두 개의 사본이 유지되므로 디스크 공간의 절반만 사용 가능합니다.
구성 요소 장치 식별
먼저 사용할 원시 디스크의 식별자를 찾으세요:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
이 예시에서는 파일 시스템이 없는 크기가 100G인 두 개의 디스크를 사용합니다. 이 세션에서는 이러한 장치에 /dev/sda
및 /dev/sdb
식별자가 할당되며 배열을 구축하는 데 사용됩니다.
배열 생성
이 구성 요소로 RAID 1 배열을 만들려면 mdadm --create
명령에 전달하십시오. 생성할 장치 이름, RAID 레벨 및 장치 수를 지정해야합니다. 이 명령 예제에서는 장치 이름을 /dev/md0
로 지정하고 배열을 구성하는 디스크를 포함해야합니다:
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
사용 중인 구성 요소 장치가 부팅 플래그가 활성화되지 않은 파티션은 다음 경고가 표시됩니다. y
로 응답하고 계속 진행해도 안전합니다:
Outputmdadm: 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
파일을 확인하여 모니터링할 수 있습니다:
- cat /proc/mdstat
OutputPersonalities : [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/sdb
장치를 사용하여 RAID 1 구성으로 생성되었습니다. 두 번째 강조 표시된 줄에서 미러링 진행 상황을 확인할 수 있습니다. 이 프로세스가 완료될 때까지 다음 단계로 진행할 수 있습니다.
파일 시스템 생성 및 마운트
다음으로, 배열에 파일 시스템을 생성하십시오:
- sudo mkfs.ext4 -F /dev/md0
그런 다음 새 파일 시스템을 연결할 마운트 포인트를 생성하십시오:
- sudo mkdir -p /mnt/md0
다음을 실행하여 파일 시스템을 마운트 할 수 있습니다:
- sudo mount /dev/md0 /mnt/md0
새 공간을 사용할 수 있는지 확인하십시오:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 99G 60M 94G 1% /mnt/md0
새 파일 시스템이 마운트되어 접근 가능합니다.
배열 레이아웃 저장하기
배열이 부팅 시 자동으로 다시 조립되도록 하려면 /etc/mdadm/mdadm.conf
파일을 조정해야 합니다. 다음과 같이 활성 배열을 자동으로 스캔하고 파일에 추가할 수 있습니다:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
그 후에 initramfs
또는 초기 RAM 파일 시스템을 업데이트하여 초기 부팅 프로세스 중에 배열을 사용할 수 있도록 할 수 있습니다:
- sudo update-initramfs -u
부팅 시 자동으로 마운트되도록 새 파일 시스템 마운트 옵션을 /etc/fstab
파일에 추가하세요:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
이제 RAID 1 배열은 각 부팅 시 자동으로 조립되고 마운트됩니다.
이제 RAID 설정이 완료되었습니다. 다른 RAID를 시도하려면 이 튜토리얼의 처음에 나와 있는 재설정 지침을 따라 새로운 RAID 배열 유형을 생성하도록 진행하세요.
RAID 5 배열 생성하기
RAID 5 배열 유형은 사용 가능한 장치에 데이터를 스트라이핑하여 구현됩니다. 각 스트라이프의 하나의 구성 요소는 계산된 패리티 블록입니다. 장치가 실패하면 패리티 블록과 나머지 블록을 사용하여 누락된 데이터를 계산할 수 있습니다. 패리티 블록을 수신하는 장치는 각 장치가 균형 잡힌 양의 패리티 정보를 가지도록 회전됩니다.
- 요구 사항: 최소한 3개의 저장 장치.
- 주요 이점: 더 많은 사용 가능 용량을 가진 중복성.
- 고려해야 할 사항: 패리티 정보가 분산되지만, 하나의 디스크 용량이 패리티에 사용됩니다. RAID 5는 저하된 상태에서 매우 낮은 성능을 보일 수 있습니다.
구성 요소 장치 식별
먼저 사용할 원시 디스크의 식별자를 찾으십시오:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
이 세 개의 파일 시스템이 없는 100G 크기의 디스크가 있습니다. 이 세 장치에는 이 세션을 위해 /dev/sda
, /dev/sdb
, /dev/sdc
식별자가 지정되었으며 배열을 구축하는 데 사용할 원시 구성 요소입니다.
배열 생성
이 구성 요소로 RAID 5 배열을 만들려면 mdadm --create
명령에 전달하십시오. 생성할 장치 이름, RAID 레벨 및 장치 수를 지정해야합니다. 이 명령 예제에서는 장치 이름을 /dev/md0
으로 지정하고 배열을 구축 할 디스크를 포함해야합니다:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
mdadm
도구는 배열을 구성하기 시작합니다. 성능상의 이유로 복구 과정을 사용하여 배열을 구축합니다. 이 작업은 완료하는 데 시간이 걸릴 수 있지만 배열은 이 동안 사용할 수 있습니다. 미러링의 진행 상황은 /proc/mdstat
파일을 확인하여 모니터링 할 수 있습니다:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec
unused devices: <none>
첫 번째 강조 표시된 줄에서는 /dev/md0
장치가 /dev/sda
, /dev/sdb
및 /dev/sdc
장치를 사용하여 RAID 5 구성으로 생성되었습니다. 두 번째 강조 표시된 줄은 구축 진행 상황을 보여줍니다.
경고: mdadm
이 RAID 5 배열을 구축하는 방식으로 인해 배열이 아직 구축 중인 동안 배열에 대한 여분의 개수가 부정확하게 보고됩니다. 이는 배열이 완성 될 때까지 /etc/mdadm/mdadm.conf
파일을 업데이트하지 않아야 함을 의미합니다. 배열이 아직 구축 중인 동안 구성 파일을 업데이트하면 시스템이 배열 상태에 대한 정확한 정보가 없으므로 올바른 이름으로 부팅시 자동으로 조립하지 못할 수 있습니다.
이 프로세스가 완료 될 때까지 가이드를 계속할 수 있습니다.
파일 시스템 생성 및 마운트
다음으로, 배열에 파일 시스템을 생성하세요:
- sudo mkfs.ext4 -F /dev/md0
새로운 파일 시스템을 연결할 마운트 포인트를 생성하세요:
- sudo mkdir -p /mnt/md0
다음 명령으로 파일 시스템을 마운트하세요:
- sudo mount /dev/md0 /mnt/md0
새로운 공간이 사용 가능한지 확인하세요:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
새로운 파일 시스템이 마운트되어 접근 가능합니다.
배열 레이아웃 저장
배열이 부팅 시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf
파일을 수정해야 합니다.
경고: 이전에 언급한 대로, 설정을 조정하기 전에 배열이 완전히 조립되었는지 다시 확인하세요. 배열이 올바르게 재조립되지 않도록 하려면 아래 단계를 완료하세요.
진행 상황을 확인하기 위해 /proc/mdstat
파일을 확인할 수 있습니다:
- cat /proc/mdstat
OutputPersonalities : [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>
이 출력은 재구축이 완료되었음을 보여줍니다. 이제 활성 배열을 자동으로 스캔하고 파일을 추가할 수 있습니다:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
그 후, 초기 RAM 파일 시스템인 initramfs
를 업데이트하여 배열이 초기 부팅 과정에서 사용 가능하도록 할 수 있습니다.
- sudo update-initramfs -u
부팅 시 자동으로 마운트되도록 /etc/fstab
파일에 새로운 파일 시스템 마운트 옵션을 추가하세요:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
이제 RAID 5 배열은 부팅할 때마다 자동으로 조립되고 마운트됩니다.
이제 RAID 설정을 마쳤습니다. 다른 RAID를 시도하려면 이 튜토리얼의 처음에 있는 초기화 지침을 따라 새로운 RAID 배열을 생성하세요.
RAID 6 배열 생성
RAID 6 배열 유형은 사용 가능한 장치에 데이터를 스트라이핑합니다. 각 스트라이프의 두 구성 요소는 패리티 블록을 계산합니다. 하나 또는 두 장치가 실패하더라도 패리티 블록과 나머지 블록을 사용하여 누락된 데이터를 계산할 수 있습니다. 패리티 블록을 받는 장치는 각 장치가 균형 잡힌 양의 패리티 정보를 갖도록 회전합니다. 이는 RAID 5 배열과 유사하지만 두 개 드라이브의 고장을 허용합니다.
- 요구 사항: 최소 4개의 저장 장치.
- 주요 이점: 더 많은 사용 가능한 용량으로 이중 장애 허용.
- 고려 사항: 패리티 정보가 분산되지만, 두 디스크 용량이 패리티로 사용됩니다. RAID 6는 저하된 상태에서 매우 느린 성능을 보일 수 있습니다.
구성 요소 장치 식별
시작하기 전에 사용할 원시 디스크의 식별자를 찾으세요:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
이 예제에서는 파일 시스템이 없는 크기가 100G인 네 개의 디스크가 있습니다. 이 세션에서는 이러한 장치에 /dev/sda
, /dev/sdb
, /dev/sdc
, /dev/sdd
식별자를 지정하고 이를 사용하여 배열을 만들 것입니다.
배열 생성
이러한 구성 요소로 RAID 6 배열을 만들려면 mdadm --create
명령에 전달해야 합니다. 생성할 디바이스 이름, RAID 레벨 및 디바이스 수를 지정해야 합니다. 다음 예제 명령에서는 디바이스 이름을 /dev/md0
으로 지정하고 배열을 구성하는 디스크를 포함합니다:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
mdadm
도구는 배열을 구성하기 위해 복구 프로세스를 사용합니다. 이 작업은 완료까지 시간이 걸릴 수 있지만, 배열은 이 동안에도 사용할 수 있습니다. 미러링의 진행 상황은 /proc/mdstat
파일을 확인하여 모니터링할 수 있습니다.
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [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/sdb
, /dev/sdc
및 /dev/sdd
디바이스를 사용하여 RAID 6 구성으로 생성되었습니다. 두 번째 강조된 줄은 빌드 진행 상황을 보여줍니다. 이 프로세스가 완료될 때까지 가이드를 계속할 수 있습니다.
파일 시스템 생성 및 마운트
다음으로, 배열에 파일 시스템을 생성하세요:
- sudo mkfs.ext4 -F /dev/md0
새 파일 시스템을 연결할 마운트 포인트를 생성하세요:
- sudo mkdir -p /mnt/md0
다음 명령으로 파일 시스템을 마운트할 수 있습니다:
- sudo mount /dev/md0 /mnt/md0
새로운 공간이 사용 가능한지 확인하세요:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
새 파일 시스템이 마운트되어 접근 가능합니다.
배열 레이아웃 저장
배열이 부팅 시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf
파일을 조정해야 합니다. 다음 명령으로 활성 배열을 자동으로 스캔하고 파일에 추가할 수 있습니다:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
그런 다음 초기 RAM 파일 시스템(initramfs
)을 업데이트하여 초기 부팅 프로세스 중에 배열을 사용할 수 있게 할 수 있습니다.
- sudo update-initramfs -u
부팅시 자동으로 마운트되도록 /etc/fstab
파일에 새로운 파일 시스템 마운트 옵션을 추가하십시오:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
이제 RAID 6 배열은 부팅시 자동으로 조립되고 마운트됩니다.
이제 RAID 설정이 완료되었습니다. 다른 RAID를 시도하려면이 튜토리얼의 처음에있는 초기화 지침을 따라 새로운 RAID 배열 유형을 만들기 위해 진행하십시오.
복잡한 RAID 10 배열 만들기
RAID 10 배열 유형은 일반적으로 RAID 1 배열의 집합으로 구성된 스트라이프된 RAID 0 배열을 만들어 구현됩니다. 이 중첩된 배열 유형은 용량을 많이 차지하지만 견고성과 높은 성능을 제공합니다. mdadm
유틸리티에는 중첩된 배열을 만들지 않고 유사한 특성과 보장을 제공하는 고유한 RAID 10 유형이 있습니다. 여기에서는 mdadm
RAID 10을 사용하게 됩니다.
- 요구 사항: 최소 3개의 저장 장치.
- 주요 이점: 성능과 견고성.
- 기억해야 할 사항: 배열의 용량 감소는 유지할 데이터 사본의 수에 의해 정의됩니다.
mdadm
스타일의 RAID 10에 저장되는 사본 수는 구성 가능합니다.
기본적으로, 각 데이터 블록의 두 개 복사본이 근접 레이아웃이라는 것에 저장됩니다. 각 데이터 블록이 저장되는 방식을 지시하는 가능한 레이아웃은 다음과 같습니다:
- 근접: 기본 배열입니다. 스트라이프 중에 각 청크의 복사본이 연속적으로 작성되므로 데이터 블록의 복사본은 여러 디스크의 동일한 부분 주변에 작성됩니다.
- 먼: 첫 번째 및 이후 복사본은 배열의 저장 장치의 다른 부분에 작성됩니다. 예를 들어, 첫 번째 청크는 디스크의 시작 부근에 작성되고, 두 번째 청크는 다른 디스크의 중간 부분에 작성될 수 있습니다. 이는 기존 회전 디스크에서 읽기 성능을 희생하면서 읽기 성능 이득을 얻을 수 있습니다.
- 오프셋: 각 스트라이프는 복사되고 한 드라이브로 오프셋됩니다. 이는 복사본이 서로 오프셋되어 있지만 디스크 상에서 여전히 서로 가깝게 위치하도록 합니다. 이는 일부 워크로드에서 과도한 시크를 최소화하는 데 도움이 됩니다.
이 레이아웃에 대해 더 자세한 내용은 이 man
페이지의 RAID10
섹션을 확인하여 알 수 있습니다:
- man 4 md
또한 이 man
페이지를 온라인에서 찾을 수도 있습니다.
구성 요소 장치 식별
먼저 사용할 원시 디스크의 식별자를 찾으세요:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
이 예제에서는 파일 시스템이 없는 크기가 100G인 네 개의 디스크가 있습니다. 이 장치들은 이 세션에서 /dev/sda
, /dev/sdb
, /dev/sdc
, /dev/sdd
식별자를 받았으며, 이들은 배열을 구성하는 원시 구성 요소로 사용될 것입니다.
배열 생성하기
이러한 구성 요소를 사용하여 RAID 10 배열을 생성하려면 mdadm --create
명령에 전달해야 합니다. 생성할 장치 이름, RAID 레벨 및 장치 수를 지정해야 합니다. 다음 명령 예제에서는 배열을 구성하는 디스크를 포함하여 장치 이름을 /dev/md0
으로 지정합니다:
복사본 수를 지정하지 않고 가까운 레이아웃을 사용하여 두 개의 복사본을 설정할 수 있습니다:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
다른 레이아웃을 사용하거나 복사본 수를 변경하려면 --layout=
옵션을 사용해야 합니다. 이 옵션은 레이아웃과 복사본 식별자를 받습니다. 레이아웃은 가까운 경우에는 n
, 먼 경우에는 f
, 오프셋 경우에는 o
입니다. 저장할 복사본 수는 그 뒤에 추가됩니다.
예를 들어, 오프셋 레이아웃에서 세 개의 복사본을 가진 배열을 생성하려면 다음과 같이 명령을 포함해야 합니다:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
mdadm
도구는 배열을 구성하기 시작합니다. 성능상의 이유로 배열을 구축하기 위해 복구 프로세스를 사용합니다. 이 작업은 완료까지 시간이 걸릴 수 있지만, 이 시간 동안 배열을 사용할 수 있습니다. 복제의 진행 상황은 /proc/mdstat
파일을 확인하여 모니터링할 수 있습니다:
- cat /proc/mdstat
OutputPersonalities : [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/sdb
, /dev/sdc
및 /dev/sdd
장치를 사용하여 RAID 10 구성으로 생성되었습니다. 두 번째 강조된 영역은 이 예제에서 사용된 레이아웃을 보여줍니다 (근접 구성의 두 개 복사본). 세 번째 강조된 영역은 구축 진행 상황을 보여줍니다. 이 프로세스가 완료될 때까지 가이드를 계속할 수 있습니다.
파일 시스템 생성 및 마운트
다음으로, 배열에 파일 시스템을 생성합니다:
- sudo mkfs.ext4 -F /dev/md0
새 파일 시스템을 연결할 마운트 포인트를 생성합니다:
- sudo mkdir -p /mnt/md0
다음 명령을 사용하여 파일 시스템을 마운트할 수 있습니다:
- sudo mount /dev/md0 /mnt/md0
새로운 공간이 사용 가능한지 확인합니다:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
새 파일 시스템이 마운트되어 액세스할 수 있습니다.
배열 레이아웃 저장
배열이 부팅시 자동으로 재조립되도록 하려면 /etc/mdadm/mdadm.conf
파일을 조정해야합니다. 다음을 실행하여 활성 배열을 자동으로 스캔하고 파일에 추가 할 수 있습니다:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
그런 다음 초기 부팅 프로세스 중에 배열을 사용할 수 있도록 initramfs
또는 초기 RAM 파일 시스템을 업데이트 할 수 있습니다:
- sudo update-initramfs -u
자동으로 부팅시 마운트되도록 새 파일 시스템 마운트 옵션을 /etc/fstab
파일에 추가하세요:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
RAID 10 배열은 이제 자동으로 조립되고 각 부팅시 마운트됩니다.
결론
이 가이드에서는 Linux의 mdadm
소프트웨어 RAID 유틸리티를 사용하여 다양한 유형의 배열을 생성하는 방법을 배웠습니다. RAID 배열은 개별 디스크를 사용하는 것보다 견고성과 성능 향상을 제공합니다.
환경에 필요한 배열 유형을 결정하고 장치를 생성 한 후 mdadm
을 사용하여 일상적인 관리를 수행하는 방법을 알아볼 수 있습니다. “Ubuntu에서 mdadm
을 사용하여 RAID 배열 관리하는 방법”에 대한 가이드는 시작하는 데 도움이 될 수 있습니다.