현재 상황은 이렇습니다. 나는 내 컴퓨터에서 Debian 10을 실행하고 있고 내 컴퓨터의 포트에 연결된 4개의 USB 드라이브에 대한 RAID10 설정을 조합하고 싶습니다. 명령을 사용하여 구성을 설정했습니다.
sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 --verbose
이렇게 잘 설정되어 있습니다. 그런 다음 /etc/fstab 및 /etc/mdadm/mdadm.conf가 올바르게 작성되었는지 확인했습니다. initramfs도 업데이트했는지 확인했습니다. 그러나 재부팅 후 구성이 올바르게 설정되었는지 확인하고 다음 출력을 보고 충격을 받았습니다.
:/# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Jun 8 18:36:15 2020
Raid Level : raid10
Array Size : 120762368 (115.17 GiB 123.66 GB)
Used Dev Size : 60381184 (57.58 GiB 61.83 GB)
Raid Devices : 4
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Jun 10 16:38:00 2020
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : DietPi:0 (local to host DietPi)
UUID : 9d59030f:f7d48652:ffdd4067:ae45a372
Events : 95
Number Major Minor RaidDevice State
0 8 1 0 active sync set-A /dev/sda1
- 0 0 1 removed
2 8 33 2 active sync set-A /dev/sdc1
- 0 0 3 removed
출력은 다음과 같습니다 dmesg | grep md
.
root@DietPi:/home/dietpi# dmesg | grep md
[ 0.177100] unimac-mdio unimac-mdio.-19: DMA mask not set
[ 0.233442] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus at 0x(ptrval)
[ 0.787409] systemd[1]: System time before build time, advancing clock.
[ 0.878411] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[ 0.878665] systemd[1]: Detected architecture arm.
[ 0.881996] systemd[1]: Set hostname to <DietPi>.
[ 1.114070] random: systemd: uninitialized urandom read (16 bytes read)
[ 1.199454] random: systemd: uninitialized urandom read (16 bytes read)
[ 1.199616] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 1.199700] random: systemd: uninitialized urandom read (16 bytes read)
[ 1.199797] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 1.200074] systemd[1]: Listening on Journal Socket (/dev/log).
[ 1.200195] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 1.200238] systemd[1]: Reached target Paths.
[ 1.202088] systemd[1]: Created slice system-getty.slice.
[ 1.202474] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[ 1.697530] systemd-journald[118]: Received request to flush runtime journal from PID 1
[ 4.541769] md/raid10:md0: active with 2 out of 4 devices
[ 4.541809] md0: detected capacity change from 0 to 123660664832
[ 4.719675] EXT4-fs (md0): warning: mounting fs with errors, running e2fsck is recommended
[ 4.767908] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
[ 35.595357] md/raid10:md127: not clean -- starting background reconstruction
[ 35.595363] md/raid10:md127: active with 2 out of 4 devices
[ 35.595403] md127: detected capacity change from 0 to 123662761984
[ 305.123227] EXT4-fs (md0): error count since last fsck: 102
[ 305.123239] EXT4-fs (md0): initial error at time 1591721842: htree_dirblock_to_tree:995: inode 1311120
[ 305.123255] EXT4-fs (md0): last error at time 1591721842: ext4_empty_dir:2724: inode 1311118
[ 1539.368517] md127: detected capacity change from 123662761984 to 0
[ 1539.368531] md: md127 stopped.
방금 마운트 해제된 드라이브의 절반과 같습니다. 나는 이것이 슈퍼블록 문제일지도 모른다고 생각하지만 확실하지 않습니다. 여기서 뭔가 빠졌나요? 아니면 한 단계도 놓쳤나요? 아니면 재부팅할 때마다 문제가 지속되지 않도록 이 문제를 해결하는 명령을 입력할 수 있나요?
답변1
Raspbian을 사용하는 많은 사람들에게는 부팅 시 하드웨어 드라이버를 초기화하는 Linux 커널과 조립할 드라이브를 검색하는 mdadm-raid 사이에 경쟁 조건이 있는 것으로 보입니다. 이는 한 줄이 포함된 /boot/cmdline.txt 파일에 커널 지연 매개변수를 추가하여 위조할 수 있습니다. 같은 줄에 "rootdelay=3"을 추가하세요.