다음 명령을 사용하여 새 md 배열을 만들었습니다.
mdadm --create /dev/md1 -l 1 -n 2 /dev/sd[ed]1
그러나 이제 /proc/mdstat
resync=PENDING을 사용하여 배열을 "자동 읽기 전용"으로 표시합니다.
~ # cat /proc/mdstat
Personalities : [raid1]
md1 : active (auto-read-only) raid1 sde1[1] sdd1[0]
976630336 blocks super 1.2 [2/2] [UU]
resync=PENDING
md0 : active raid1 sdb1[0] sdc1[1]
1953511936 blocks [2/2] [UU]
unused devices: <none>
~에 따르면이 웹사이트다음을 사용하여 이 문제를 해결할 수 있습니다.
mdadm --readwrite /dev/md1
이것은 작동합니다:
~ # mdadm --readwrite /dev/md1
~ # cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sde1[1] sdd1[0]
976630336 blocks super 1.2 [2/2] [UU]
[>....................] resync = 0.0% (54400/976630336) finish=598.2min speed=27200K/sec
md0 : active raid1 sdb1[0] sdc1[1]
1953511936 blocks [2/2] [UU]
unused devices: <none>
하지만 여기서 무슨 일이 일어나고 있는지 여전히 알고 싶지만 이에 대한 실제 정보를 찾을 수 없습니다. 어레이의 기본값이 이 상태인 이유를 아는 사람이 있습니까?
편집: dmesg 출력을 추가했습니다:
~ # grep kernel /var/log/syslog.1
Nov 13 10:03:44 iserv kernel: [160446.860113] e1000: eth1 NIC Link is Down
Nov 13 10:04:48 iserv kernel: [160511.017666] e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Nov 13 20:12:40 iserv kernel: [196982.775186] sda: sda1
Nov 13 20:12:59 iserv kernel: [197001.598187] sdd: sdd1
Nov 13 20:13:13 iserv kernel: [197016.344939] sde: sde1
Nov 13 20:14:05 iserv kernel: [197067.520825] md: bind<sdd1>
Nov 13 20:14:05 iserv kernel: [197067.521263] md: bind<sde1>
Nov 13 20:14:05 iserv kernel: [197067.670215] md/raid1:md1: not clean -- starting background reconstruction
Nov 13 20:14:05 iserv kernel: [197067.670219] md/raid1:md1: active with 2 out of 2 mirrors
Nov 13 20:14:05 iserv kernel: [197067.670246] md1: detected capacity change from 0 to 1000069464064
Nov 13 20:14:05 iserv kernel: [197067.675101] md1: unknown partition table
Nov 13 20:24:10 iserv kernel: [197672.572128] md: md1 switched to read-write mode.
Nov 13 20:24:10 iserv kernel: [197672.572269] md: resync of RAID array md1
Nov 13 20:24:10 iserv kernel: [197672.572273] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
Nov 13 20:24:10 iserv kernel: [197672.572275] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync.
Nov 13 20:24:10 iserv kernel: [197672.572280] md: using 128k window, over a total of 976630336k.
답변1
배열이 처음 어셈블되면 "자동 읽기 전용" 모드로 설정됩니다. 커널(3.10.x)과 mdadm(3.3)을 사용하여 빠른 테스트를 수행했는데 생성할 때는 이런 일이 발생하지 않지만 다른 버전을 실행해야 합니다.
그러나 자동 읽기 전용은 버그가 아니므로 걱정할 필요가 없습니다. 그 뒤에 있는 기본 아이디어는 --assemble
(분명히 지금도 ) 더 안전하게 만드는 것입니다 --create
. 즉, 어레이가 읽거나 쓸 때까지 디스크에 아무것도 기록되지 않습니다. (만들때 메타데이터가 계속 기록되는지는 잘 모르겠습니다.)
어레이가 첫 번째 쓰기를 수신하면 자동 읽기 전용에서 읽기-쓰기로 자동 전환됩니다. 따라서 파일 시스템, LVM 물리 볼륨 또는 장치의 다른 항목을 계속 생성하면 읽기-쓰기 상태로 전환되고 동기화가 시작됩니다.
이를 실행 해야 하는 유일한 이유 mdadm --readwrite
는 쓰기를 수행하기 전에 동기화를 원하기 때문입니다.