mdadm raid1 ve 4k sürücülerde hangi boyut (veya blok boyutu)?


13

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 fdiskraporlar:

# 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.

mdadmAdam 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

mdadmO 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.xfsMD 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 /sysaslı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.

Yanıtlar:


16

Şerit boyutu olmadığından raid1 için yığın boyutu geçerli değildir; aslında tüm disk bir yığın. Kısacası, 4k fiziksel sektör boyutu hakkında endişelenmenize gerek yok. Mddadm'ın son sürümleri, verinin başlamasının 4kb sınırına hizalandığından emin olmak için çekirdekteki bilgileri kullanır. 1.x meta veri biçimini kullandığınızdan emin olun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.