Bir mdadm raid1 kurulumunda (Debian Sequeeze kullanarak) iki adet 3 TB sürücü kullanmak istiyorum.
Sürücüler, geleneksel 512 baytlık alanlar yerine 4k donanım sektörleri kullanıyor.
Biraz kafam karıştı çünkü bir yandan çekirdek rapor ediyor:
$ cat /sys/block/sdb/queue/hw_sector_size
512
Ancak diğer yandan fdisk
raporlar:
# 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
Böylece, çekirdeğin sürücünün 4k sektör kullandığına dair bir fikri var gibi görünüyor.
mdadm
Adam sayfa yığın boyutu ve RAID1 hakkında biraz şifreli:
-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.
Raid1 için neden anlamlı değil?
Baktığımızda /proc/mdstat
, RAID1 cihaz MD8'in 2930265424 blokları, yani vardır
3000591794176/2930265424/2 = 512
mdadm
O zaman 512 baytlık bir blok boyutu kullanıyor mu ? (/ 2 çünkü iki yönlü bir ayna)
Ve yığın boyutu blok boyutundan farklı bir kavram mıdır?
Bir cihazı mdadm
açıklamaya izin vermeye çalışıyorum :
# 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)
Nerede
3000591794176/5860530848 = 512
mkfs.xfs
MD aygıtında varsayılan olarak şunları bildirir:
sectsz=512
bsize=4096
Bunu bir çağrı ile düzelttim mkfs.xfs -s size=4096 /dev/md8
Düzenleme: Biraz etrafında test Aşağıdaki şeyleri fark ettim:
İlk yeniden senkronizasyonun 128k'lık (512 bayt değil) blok boyutu ile yapıldığı anlaşılıyor:
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.
Görüntülenen hız /proc/mdstat
, o blok boyutu için tutarlıdır (512 bayt için bir performans artışı beklenir):
[>....................] resync = 3.0% (90510912/2930265424) finish=381.1min speed=124166K/sec
(Örneğin, yazma önbelleğini devre dışı bıraktığınızda görüntülenen hız hemen 18m / sn'ye düşer)
Altında /sys
aslında daha alakalı bazı dosyalar vardır hw_sector_size
:
# cat /sys/block/sdb/queue/physical_block_size
4096
# cat /sys/block/sdb/queue/logical_block_size
512
Bu, sürücünün 4k sektör büyüklüğü hakkında çekirdeğe yatmadığı ve çekirdeğin bazı 4k sektör desteğine sahip olduğu anlamına gelir ( fstab -l
önerilen çıktı olarak ).
Biraz dolaşmak, WD diskleri hakkında, 4k boyutunu bildirmeyen birkaç raporla sonuçlandı - neyse ki bu 3 TB WD disk bunu yapmıyor - belki de WD ürün yazılımlarını mevcut disklerle sabitledi.