mdadm을 사용하여 두 개의 드라이브(둘 다 2TB, 둘 다 exFAT 포맷, 둘 다 독립 전원 공급 장치 포함)가 있는 RaspberryPi에 RAID 1을 설정하고 있는데 오류가 발생합니다.
불행히도 저는 Linux 및 명령 전문가가 아닙니다.
내가 한 일은 다음과 같습니다.
- mdadm을 설치하려면 apt-get install mdadm을 사용하세요.
- 두 개의 장치 찾기
sudo fdisk -l
(예: /dev/sda 및 /dev/sdb) - RAID 1을 /dev/md0으로 설정
sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1
- /dev/md0 형식
sudo mkfs /dev/md0 -t ext4
- /dev/md0을 /media/nas에 마운트합니다.
sudo mount /dev/md0 /media/nas
- /etc/fstab 편집
/dev/md0 /media/nas ext4 4 0 0
- /etc/default/mdadm에 AUTOSTART=true를 추가하세요.
- /etc/samba/smb.conf에서 삼바를 활성화합니다.
모든 것이 잘 진행되고 WinSCP를 사용하여 /media/nas에 파일을 업로드할 수 있습니다.
이제 내 문제는 다음 날 오류 코드 4(추가 오류 텍스트 없음)로 인해 업로드에 실패했습니다. 실행해 보면 sudo fdisk -l
sda와 sdb라는 두 개의 장치를 발견합니다. 2000.3GB 크기의 /dev/md0도 있지만 2000.3GB 크기의 /dev/md127도 있습니다.
내가 실행하면 sudo mdadm --detail /dev/md0
다음을 얻습니다.
/dev/md0: 버전: 1.2 생성됨: 2018년 1월 5일 금요일 12:23:50 Raid 수준: raid1 어레이 크기: 1953371712(1862.88 GiB 2000.25 GB) 사용된 개발 크기: 1953371712(1862.88 GiB 2000.25 GB) Raid 장치: 총 장치 2개 : 1 내구성: 슈퍼블록은 지속성입니다.
Update Time : Sun Jan 7 14:37:23 2018
State : clean, degraded
활성장비: 1 작업장비: 1 불량장비: 0 대기장비: 0
Name : raspberrypi:0 (local to host raspberrypi)
UUID : 926bc124:2945e335:1e79ab6c:06b12095
Events : 21
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 1 1 active sync /dev/sda1
출력은 sudo mdadm --detail /dev/md127
다음과 같습니다
/dev/md127: 버전: 1.2 생성: 2018년 1월 5일 금요일 12:23:50 Raid 수준: raid1 어레이 크기: 1953371712(1862.88 GiB 2000.25 GB) 사용된 개발 크기: 1953371712(1862.88 GiB 2000.25 GB) Raid 장치: 총 2개 장치 : 1 지속성 : 슈퍼 블록은 지속성입니다.
Update Time : Sun Jan 7 14:38:47 2018
State : clean, degraded
활성장비: 1 작업장비: 1 불량장비: 0 대기장비: 0
Name : raspberrypi:0 (local to host raspberrypi)
UUID : 926bc124:2945e335:1e79ab6c:06b12095
Events : 27
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 0 0 1 removed
sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1
다음 을 사용하여 RAID를 다시 설정하려고 하면
mdadm: super1.x cannot open /dev/sda1: Device or resource busy mdadm: failed container membership check mdadm: cannot open /dev/sda1: Device or resource busy
RAID를 재설정하는 방법, md127은 어디에서 왔으며 이 오류의 원인은 무엇입니까?
(다시 시작해도 효과가 없습니다)
미리 감사드립니다!
답변1
RAID 어레이가 충돌하는 경우가 발생합니다. 귀하가 제공한 단편적인 출력에 따르면 /dev/sdb1
일시적인 결함(Pi의 USB 시스템의 결함일 가능성이 높음)이 발생하여 실패로 표시된 것으로 의심됩니다. 다시 온라인 상태가 되면 Linux md
하위 시스템은 이를 알려진 어레이에 속하지 않는 새 RAID 볼륨으로 처리하고 로 설정합니다 /dev/md127
.
을 실행하면 sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1
운이 좋게도 실패합니다. mdadm --create
그냥 달리고 있어안 돼요RAID 문제에 대한 솔루션. 데이터를 파괴할 가능성은 데이터를 복구할 가능성보다 훨씬 높습니다.
이 시점에서 최선의 선택은 아마도 /dev/md127
어레이를 파괴 /dev/sdb1
하고 /dev/md0
.
/dev/md0
이것이 실제로 데이터의 라이브 복사본인지 확인하세요 . 출력을mount
확인하여 설치되었는지 확인/media/nas
하고 실행하여ls /media/nas
데이터가 있는지 확인하세요./dev/sdb1
/dev/md127
: 에서 제거한mdadm /dev/md127 --fail /dev/sdb1
다음mdadm /dev/md127 --remove /dev/sdb1
./dev/sdb1
RAID 멤버처럼 보이지 마세요 :wipefs -a /dev/sdb1
.- 다시 넣어
/dev/md0
:mdadm /dev/md0 --add /dev/sdb1
. - 컴퓨터가 배열을 다시 작성하여 모든 내용을 복사하도록 합니다
/dev/sda1
.
앞으로 이런 일이 발생하지 않도록 하려면 에서 배열을 설명하는 항목을 설정하십시오 /etc/mdadm/mdadm.conf
. 드라이브가 일시적으로 어레이에서 제외되면 mdadm
구성 파일에서 해당 드라이브를 확인하고 (4)단계를 수행할 때까지 기다리게 됩니다.
설정에서 일시적인 결함이 발생하는 습관이 있는 경우 배열에 쓰기 전용 비트맵을 추가하는 것을 고려해 보십시오 mdadm --grow /dev/md0 --bitmap=internal
. 비트맵을 업데이트해야 하기 때문에 쓰기 속도가 다소 느려지지만 변경 내용을 한 디스크에서 다른 디스크로 복사하기만 하면 되므로 복구 속도가 크게 빨라집니다. 쓰기 의도 비트맵을 추가하면 --re-add
일시적으로 실패한 디스크를 어레이에 다시 넣는 대신 이를 사용할 수 있습니다 --add
.