
현재 내 생각은 mdadm
.
특히 드라이브는 소규모 서버 Dell T20의 SATA에 있는 1TB HDD입니다.
운영 체제는GNU/리눅스 데비안8.6(나중에 업그레이드됨:제시⟶뻗기⟶버스터)
내 경우에는 2TB의 패리티로 2TB의 디스크 공간이 만들어집니다.
또한 GPT 파티션 테이블을 사용하고 싶습니다. 작동하려면 순전히 터미널을 통해 이 작업을 수행하는 것을 선호한다고 구체적으로 어떻게 진행해야 할지 잘 모르겠습니다.
저는 RAID 어레이를 생성한 적이 없으므로 어떻게 진행해야 하는지 안내해 주시겠습니까?
노트:
이 배열은 유일한 데이터용으로만 사용됩니다. 부팅이나 OS가 없습니다.
저는 이 어레이의 목적 때문에 RAID-6을 선택했습니다. 두 번의 드라이브 오류로 인해 어레이가 살아남을 수 있어야 합니다. 하드웨어에 따라 드라이브가 4개로 제한되어 있으므로 제가 아는 한 RAID-6에 대한 대안은 없습니다. (RAID-6의 속도 저하가 보기 흉해 보일 수도 있지만 이 어레이에서는 문제가 되지 않습니다.)
답변1
이 답변에서는 모든 어레이 구성원(드라이브)의 모든 데이터가 삭제된다는 점을 분명히 하므로 먼저 백업하세요!
터미널을 열고root
(su
); 당신이 가지고 있다면sudo
활성화된 경우 예를 들어 다음과 같이 할 수도 있습니다 sudo -i
. 보다man sudo
모든 옵션에 대해):
sudo -i
먼저, 이전에 데이터와 파일 시스템이 있었다면 드라이브를 지워야 합니다. sdi
, sdj
, sdk
, 4명의 멤버가 있다고 가정합니다 sdl
. 이 과정을 시각적으로 피드백할 목적으로pv
(파이프 뷰어)여기에 사용되었습니다 :
pv < /dev/zero > /dev/sdi
pv < /dev/zero > /dev/sdj
pv < /dev/zero > /dev/sdk
pv < /dev/zero > /dev/sdl
또는 남은 것이 없는지 확인하기 위해 모든 드라이브에서 GParted를 엿볼 수 있습니다. 파일 시스템이 있거나 없는 파티션이 있으면 지우는 것만으로도 충분할 수 있습니다. 그러나 저는 위의 모든 드라이브를 제로화하는 것을 선호합니다. 관련 드라이브를 사용하려면 먼저 모든 파티션을 마운트 해제해야 합니다. 다음과 같은 한 줄로 수행할 수 있습니다.
umount /dev/sdi?; wipefs --all --force /dev/sdi?; wipefs --all --force /dev/sdi
umount /dev/sdj?; wipefs --all --force /dev/sdj?; wipefs --all --force /dev/sdj
umount /dev/sdk?; wipefs --all --force /dev/sdk?; wipefs --all --force /dev/sdk
umount /dev/sdl?; wipefs --all --force /dev/sdl?; wipefs --all --force /dev/sdl
그런 다음 GPT(GUID 파티션 테이블)를 사용하여 모든 드라이브를 초기화하고 모든 드라이브를 파티셔닝해야 하지만 GParted를 사용하면 프로세스에서 원하지 않는 파일 시스템이 생성되므로 이 작업을 수행하지 마세요. 대신에 사용하세요 gdisk
:
gdisk /dev/sdi
gdisk /dev/sdj
gdisk /dev/sdk
gdisk /dev/sdl
모든 경우에 다음을 사용하십시오.
o
Enter
y
Enter결정을 확인하기 위한 새로운 빈 GUID 파티션 테이블(GPT)용
n
Enter새 파티션용
Enter첫 번째 파티션의 기본값
Enter용 첫 번째 섹터의 기본값
Enter용 마지막 섹터의 기본값
fd00
Enter용 Linux RAID 유형용
w
Enter변경 사항을 기록하여
y
Enter결정 확인용
이제 드라이브를 검사할 수 있습니다.
mdadm --examine /dev/sdi /dev/sdj /dev/sdk /dev/sdl
다음과 같이 말해야 합니다.
(type ee)
그렇다면 이제 파티션을 검사합니다.
mdadm --examine /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1
다음과 같이 말해야 합니다.
No md superblock detected
그렇다면 RAID6 어레이를 생성할 수 있습니다.
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1
배열이 완전히 생성될 때까지 기다려야 합니다. 이 프로세스는 다음과 같이 쉽게 수행할 수 있습니다 watch
.
watch cat /proc/mdstat
배열을 생성한 후에는 세부 사항을 살펴봐야 합니다.
mdadm --detail /dev/md0
다음과 같이 말해야 합니다.
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
이제 어레이에 파일 시스템을 생성합니다. 를 사용하면 ext4
아래와 같습니다.숨겨진ext4lazyinit
큰 배열의 경우 눈에 띄는 시간이 걸리기 때문에 명령을 피하는 것이 좋습니다. 따라서 이름은 "게으른 초기화"이므로 다음 항목은 피하는 것이 좋습니다.
mkfs.ext4 /dev/md0
대신, 전체 즉시 초기화를 강제해야 합니다( root
데이터 배열이므로 0%가 예약되어 있음).
mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0
이러한 옵션을 지정하면 생성 중에 inode와 저널이 즉시 초기화되므로 대규모 배열에 유용합니다.
지름길을 선택하고 ext4
"더 나은 회피 명령"을 사용하여 파일 시스템을 생성한 경우 ext4lazyinit
모든 inode를 초기화하는 데 상당한 시간이 소요되므로 완료될 때까지 지켜볼 수 있습니다(예: iotop
또는 ) nmon
.
어느 쪽이든 파일 시스템 초기화를 선택하면 초기화가 완료된 후 마운트해야 합니다.
이제 이 RAID6 배열에 대한 일부 디렉터리를 만듭니다.
mkdir -p /mnt/raid6
그리고 간단히 마운트하세요:
mount /dev/md0 /mnt/raid6
기본적으로 완료되었으므로 GParted를 다시 사용하여 모든 드라이브의 플래그 linux-raid
와 함께 파일 시스템이 표시되는지 빠르게 확인할 수 있습니다.raid
그렇다면 GPT 파티션을 사용하여 RAID6 어레이를 올바르게 생성했으며 이제 여기에 파일을 복사할 수 있습니다.
파일 시스템 에 어떤 UUID md
가 있는지 확인하십시오.
blkid /dev/md0
UUID를 클립보드에 복사합니다.
이제 편집해야 합니다 fstab
. 즐겨 사용하는 텍스트 편집기를 사용하여nano
, 그렇지만sudoedit
다음을 사용하는 것이 더 좋습니다:
nano /etc/fstab
그리고 항목을 추가하세요.
UUID=<the UUID you have in the clipboard> /mnt/raid6 ext4 defaults 0 0
나 자신은 플래그 세트를 사용하는 것을 권장하지 않습니다 defaults
. 단지 라인이 지나치게 복잡하지 않기를 바랐을 뿐입니다.
다음은 UPS 백업 데이터 RAID에서 (대신 defaults
) 사용하는 마운트 플래그입니다: nofail,nosuid,nodev,noexec,nouser,noatime,auto,async,rw,data=journal,errors=remount-ro
변경 사항을 저장한 후 올바른지 확인할 수 있습니다.
mount -av | grep raid6
다음과 같이 말해야 합니다.
already mounted
그렇다면 어레이 구성을 저장합니다. 아직 생성된 장치 가 없는 경우 md
간단히 다음을 수행할 수 있습니다.
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
배열이 이미 존재하는 경우 구성 파일로 리디렉션하지 않고 이전 명령을 실행하면 됩니다.
mdadm --detail --scan
새 어레이를 구성 파일에 수동으로 추가하십시오.
결국에는 을 업데이트하는 것을 잊지 마십시오 initramfs
. 그렇지 않으면 새 배열이 다음과 같이 자동 읽기 전용 어셈블만 수행하기 때문입니다 /dev/md127
.
update-initramfs -u -k all
계획대로 모든 작업을 수행했는지 확인하고 그렇다면 다시 시작하세요.
reboot
답변2
2 x 4 파티션 대신 4개의 원시 블록 장치에 RAID 어레이를 생성하는 경우 모든 RAID 복구 작업이 반드시 전체 장치에서 작동할 수 있으며 그 반대의 경우도 마찬가지입니다.
예를 들어 디스크의 후반부에서 결국 I/O 오류가 발생하기 시작할 것으로 예상되는 경우, 파티션 위에 어레이가 있으면 어레이 중 하나만 인식하고 다른 어레이는 최소한 다음이 될 때까지 그대로 유지됩니다. 피해는 절반으로 퍼집니다. 이는 일시적인 유연성을 제공하거나 I/O 속도 저하를 방지할 수 있습니다.
반면, 개입을 시작하자마자 교체를 위해 물리 디스크 전체를 꺼내야 하기 때문에 어느 시점에서는 반드시 두 어레이 모두 성능을 저하시켜야 합니다. 또한 SSD의 경우 전체 디스크에 오류가 발생하는 경우가 점점 더 흔해지고 있으므로 어쨌든 이러한 이벤트로 인해 두 어레이 모두 영향을 받을 수 있습니다.
일반적인 파티셔닝 및 mdadm 문서에서 찾을 수 없는 프로세스의 세부 사항에 대해서는 말할 것이 없습니다.