sdd
현재 데이터를 하나의 디스크( )에 저장하고 있습니다. 이제 두 개의 새로운 3TB 디스크( sdb&sdc
)가 있고 세 디스크 모두에 RAID5 어레이를 생성하려고 합니다.
sdb
: gpt 테이블, 빈 파티션 sdb1sdc
: gpt 테이블, 빈 파티션 sdc1sdd
:gpt 테이블, 내 데이터가 포함된 btrfs-partition sdd1
내 계획은 이렇습니다.
- RAID5 어레이를 생성
md0
하고sdb1
sdc1
- 여기에 btrfs 파일 시스템을 만듭니다.
sdd1
데이터 복사md0
- 재파티션(=삭제)
sdd
- 배열을 다음으로 확장
sdd1
현재 2개의 디스크 RAID5 어레이를 만드는 중입니다. 나는 배열을 구성했다.
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sdc1 /dev/sdb1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2900832256K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
그리고 초기 동기화를 수행하고 있음을 보여줍니다. 현재 데이터가 저장되어 있는 /proc/mdstat
디스크( )가 있습니다 . sdd
이제 두 개의 새로운 3TB 디스크( sdb&sdc
)가 있고 세 디스크 모두에 RAID5 어레이를 생성하려고 합니다.
sdb
: gpt 테이블, 빈 파티션 sdb1sdc
: gpt 테이블, 빈 파티션 sdc1sdd
:gpt 테이블, 내 데이터가 포함된 btrfs-partition sdd1
내 계획은 이렇습니다.
- RAID5 어레이를 생성
md0
하고sdb1
sdc1
- 여기에 btrfs 파일 시스템을 만듭니다.
sdd1
데이터 복사md0
- 재파티션(=삭제)
sdd
- 배열을 다음으로 확장
sdd1
현재 2개의 디스크 RAID5 어레이를 만드는 중입니다. 나는 배열을 구성했다.
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sdc1 /dev/sdb1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2900832256K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
/proc/mdstat
초기 동기화를 수행하는 모습을 보여줍니다 .
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid5 sdb1[2] sdc1[0]
2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
[>....................] recovery = 0.6% (19693440/2900832256) finish=308.8min speed=155487K/sec
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
상단에는 이 기간 동안 md(adm)가 CPU의 약 35%를 사용했음을 보여줍니다.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
989 root 20 0 0 0 0 S 29.1 0.0 0:17.69 md0_raid5
994 root 20 0 0 0 0 D 6.6 0.0 0:03.54 md0_resync
여태까지는 그런대로 잘됐다. 이 작업은 약 6시간 정도 소요됩니다. 첫 번째 시도에서는 서버를 재부팅해야 했기 때문에 약 5시간 후에 어레이가 중지되었고, 두 번째 시도에서는 드라이브 sdb
가 이상하게 사라져서 시스템도 재부팅해야 했습니다.
배열이 자동으로 시작되지만 진행률 표시줄이 사라집니다.
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md127 : active (auto-read-only) raid5 sdb1[2] sdc1[0]
2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
CPU 사용량이 없다고 보고 합니다 top
.
그래서 수동으로 중지하고 조립해 보았습니다.
~# mdadm --stop /dev/md127
mdadm: stopped /dev/md127
~# mdadm --assemble --verbose /dev/md0 /dev/sdc1 /dev/sdb1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 1 drive (out of 2) and 1 rebuilding.
재구축 중이라고 나와 있지만 mdstat에는 아무 표시도 표시되지 않습니다.
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active (auto-read-only) raid5 sdc1[0] sdb1[2]
2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
상단에는 CPU 사용량이 다시 표시되지 않습니다.
그래서 수동으로 동기화를 강제하는 방법을 온라인에서 검색하여 이것을 찾았 --update=resync
지만 성공하지 못했습니다.
~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
~# mdadm --assemble --verbose --force --run --update=resync /dev/md0 /dev/sdc1 /dev/sdb1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: Marking array /dev/md0 as 'clean'
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 1 drive (out of 2) and 1 rebuilding.
root@server:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active (auto-read-only) raid5 sdc1[0] sdb1[2]
2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
(아직 CPU 사용량은 없습니다)
이틀 동안 직접 문제를 해결하려고 노력한 후에 도움이나 조언을 주시면 정말 감사하겠습니다.
답변1
RAID 배열에는 아무것도 없기 때문에 간단한 옵션은 모든 것을 지우고 다시 시작하는 것입니다.
mdadm /dev/md127 --fail /dev/sdb1; mdadm /dev/md127 --fail /dev/sdc1; mdadm /dev/md127 --remove failed
wipefs -a /dev/sdb1; wipefs -a /dev/sdc1
그런데 성능이 저하된 RAID 5 어레이를 생성한 다음 여기에 세 번째 디스크를 추가하는 것이 좋습니다. 재구축은 일반적으로 재구축보다 빠르지만, 재구축 중에 디스크에 오류가 발생하면 데이터 손실 가능성이 높아집니다(백업이 있지 않습니까?).
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdb1 missing
- 새 파일 시스템 생성
- 데이터 복사
wipefs -a /dev/sdd1
mdadm /dev/md0 --add /dev/sdd1