1년 전 저는 CentOS 6.3과 함께 제공되는 mdadm v3.2.x를 사용하여 소프트웨어 RAID 5 어레이를 만들었고 몇 달 후에 어레이를 Fedora 19(현재 Fedora 20)로 이동/어셈블했습니다.
3TB 디스크 3개가 있습니다(SeagateST3000DM001), 거의 꽉 차서 디스크 2개를 추가하고 디스크 4개 + 핫 스페어 1개로 어레이를 늘렸습니다. 이제 그 크기는8383.55GiB.
# mdadm -D /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Fri Jan 11 17:56:18 2013
Raid Level : raid5
Array Size : 8790792192 (8383.55 GiB 9001.77 GB)
Used Dev Size : 2930264064 (2794.52 GiB 3000.59 GB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Tue Mar 25 11:04:15 2014
State : clean
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : RecordBackup01:127 (local to host RecordBackup01)
UUID : dfd3bbe7:4b0231fe:9007bc4a:e106acac
Events : 7264
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
5 8 81 3 active sync /dev/sdf1
4 8 65 - spare /dev/sde1
그런 다음 mdadm v3.3(Fedora 20에서 제공)과 5개의 3TB 디스크(Toshiba)를 사용하여 또 다른 어레이(RAID 6)를 만들었습니다.DT01ACA300), 그러나 그 크기는8383.18 깁스, 8383.55GiB보다 약간 작습니다.
# mdadm -D /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Fri Mar 21 18:12:00 2014
Raid Level : raid6
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Used Dev Size : 2930134016 (2794.39 GiB 3000.46 GB)
Raid Devices : 5
Total Devices : 5
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Tue Mar 25 11:18:51 2014
State : active
Active Devices : 5
Working Devices : 5
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Name : RecordBackup02:127 (local to host RecordBackup02)
UUID : 923c9658:12739258:506fc8b0:f8c5edf3
Events : 8172
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 65 3 active sync /dev/sde1
4 8 81 4 active sync /dev/sdf1
두 어레이의 각 디스크에 대한 파티션 크기는 동일합니다(모든 파티션에는 5860531087 논리 섹터가 있습니다. 아래 파티션 정보 참조). 그렇다면 어레이 크기가 다른 이유는 무엇입니까? 다른 mdadm 버전이나 다른 배열 수준 또는 다른 이유로 인해 발생합니까?
어레이 1(RAID 5) 디스크/파티션 정보
# LANG=en parted /dev/sdb "unit s print all"
Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sdb: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s pri
Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sdc: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s ext4 primary
Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sdd: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s ext4 primary
Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sde: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s primary
Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sdf: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s primary
Model: Linux Software RAID Array (md)
Disk /dev/md127: 17581584384s
Sector size (logical/physical): 512B/4096B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0s 17581584383s 17581584384s xfs
어레이 2(RAID 6) 디스크/파티션 정보
# LANG=en parted /dev/sdb "unit s print all"
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdb: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s primary
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdc: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s primary
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdd: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s primary
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sde: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s primary
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdf: 5860533168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 5860533134s 5860531087s primary
Model: Linux Software RAID Array (md)
Disk /dev/md127: 17580804096s
Sector size (logical/physical): 512B/4096B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0s 17580804095s 17580804096s xfs
답변1
명백한 차이점은 다음과 같습니다.
Intent Bitmap : Internal
mdadm 버전에는 인텐트 비트맵 활성화 여부에 대한 기본값이 다른가요?
내가 이해한 바에 따르면 내부 의도 비트맵은 디스크의 일부를 사용하여 기록할 내용을 저장하므로 실패한 디스크를 교체할 때 재구축할 때 모든 블록을 확인할 필요가 없습니다.
mdadm --bitmap=none ...
RAID를 사용하거나 명시적으로 생성해 보십시오.mdadm --bitmap=internal ...
답변2
크기에 대해 물으셨는데요...그래서 크기 오버헤드가 맞습니다. 내 추측으로는 추가 패리티에는 일종의 추가 인덱스 등이 필요하다는 것입니다(RAID6의 내부는 모릅니다). 우리는 370MB 이상인 8.3TB를 이야기하고 있습니다. 이는 전체 공간의 0.005% 미만입니다!