मैं एक mdadm raid1 सेटअप में दो 3 टीबी ड्राइव का उपयोग करना चाहता हूं (डेबियन सीक्वेज़ का उपयोग करके)।
ड्राइव पारंपरिक 512 बाइट वाले के बजाय 4k हार्डवेयर क्षेत्रों का उपयोग करते हैं।
मैं थोड़ा उलझन में हूँ क्योंकि एक ओर कर्नेल रिपोर्ट:
$ cat /sys/block/sdb/queue/hw_sector_size
512
लेकिन दूसरी ओर fdisk
रिपोर्ट:
# fdisk -l /dev/sdb
Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
इस प्रकार, ऐसा लगता है कि कर्नेल को कुछ विचार है कि ड्राइव 4k सेक्टर का उपयोग करता है।
mdadm
आदमी पेज हिस्सा आकार और raid1 के बारे में थोड़ा गुप्त है:
-c, --chunk= Specify chunk size of kibibytes. The default when creating an array is 512KB. To ensure compatibility with earlier versions, the default when Building and array with no persistent metadata is 64KB. This is only meaningful for RAID0, RAID4, RAID5, RAID6, and RAID10.
यह छापे 1 के लिए सार्थक क्यों नहीं है?
देखते हुए /proc/mdstat
, raid1 डिवाइस md8 में 2930265424 ब्लॉक हैं, यानी
3000591794176/2930265424/2 = 512
क्या mdadm
फिर 512 बाइट्स का एक ब्लॉकसेक उपयोग करता है ? (/ 2 क्योंकि यह एक दो तरफा दर्पण है)
और chunk-size एक अलग अवधारणा है जिसे blockize किया जाता है?
किसी उपकरण को mdadm
समझाने की कोशिश करना :
# mdadm -E /dev/sdb -v -v
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 5860530848 (2794.52 GiB 3000.59 GB)
कहाँ पे
3000591794176/5860530848 = 512
mkfs.xfs
Md डिवाइस पर डिफ़ॉल्ट के साथ , यह रिपोर्ट करता है:
sectsz=512
bsize=4096
मैंने एक कॉल के साथ इसे ठीक किया mkfs.xfs -s size=4096 /dev/md8
संपादित करें: कुछ चीजों का परीक्षण करने के बाद मैंने निम्नलिखित चीजों पर ध्यान दिया:
ऐसा लगता है कि प्रारंभिक रेसकंक 128k के ब्लॉक आकार (और 512 बाइट्स नहीं) के साथ किया जाता है:
md: resync of RAID array md8
md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync.
md: using 128k window, over a total of 2930265424 blocks.
के माध्यम से प्रदर्शित गति /proc/mdstat
उस रुकावट के लिए संगत है (512bytes के लिए एक प्रदर्शन हिट की उम्मीद करेगा):
[>....................] resync = 3.0% (90510912/2930265424) finish=381.1min speed=124166K/sec
(उदाहरण के लिए जब लेखन कैश को अक्षम करें तो प्रदर्शित गति तुरंत 18m / sec पर गिर जाती है)
के तहत /sys
वहाँ वास्तव में कुछ और संबंधित फाइलों के अलावा हैं hw_sector_size
:
# cat /sys/block/sdb/queue/physical_block_size
4096
# cat /sys/block/sdb/queue/logical_block_size
512
इसका मतलब है कि ड्राइव कर्नेल पर अपने 4k सेक्टर के आकार के बारे में नहीं बताता है और कर्नेल को कुछ 4k सेक्टर का समर्थन है (जैसा कि fstab -l
सुझाए गए आउटपुट के रूप में )।
थोड़ा सा घूमने से डब्ल्यूडी डिस्क के बारे में कुछ रिपोर्ट मिलीं, जो 4k आकार की रिपोर्ट नहीं करती हैं - सौभाग्य से यह 3 टीबी डब्ल्यूडी डिस्क ऐसा नहीं करता है - शायद डब्ल्यूडी ने वर्तमान फर्मवेयर के साथ अपने फर्मवेयर को ठीक किया।