disk reinvented

Herhangi bir bellek islemi yapiyorsak, bir formata ihtiyacimiz olur; yani sabit boyutlu bellek birimlerine. Bellek kullanimindaki bellek sayfalarimiz bu sekilde çalistigi kadar dosya sistemindeki erisimde bu sekilde olur. Her Raid in bir boyutu vardir ve islemciler de bellek birim genisligine göre ayrilirlar.

Diski formatlarken dosya sistemi için bu birimi seçmis oluruz. Ancak fiziki diskin de bir sektör boyutu vardir. Sektör boyutu hep 512Byte di, ancak bu artik küçük kalmaya basladi. Ayrica örnegin sektörün boyutunu artirarak kendi tuttugu bilgisinin mirror veya parite tarzi bilgileri beraberinde ayni sektörde tutarak, sektöre, yani diskte fiziki hasar olustugunda veriyi koruma imkanimiz oluyor. Bu yeni teknolojilere genel olarak Advanced Format Disks deniliyor. Burada sektör artik sadece 512Byte degil (512 Native/Legacy), 4KByte olabiliyor. Bu 4KB sektör teknolojisi inde iki tipi var. Biri 512e, emule edilmis, yani aslinda fiziki 4096Byte in OS e 512 ye sürekli çevrilip islem yapilmasi. Digeri de native 4KB.

Legacy 512 yi bütün Windows isletim sistemleri destekliyor. Windows Server 2008 R2/7 KB 982018 yüklü ise 512e yi de destekliyor. Native 4KB su an desteklenmiyor.

Örnegin C: diskin fiziki sektör boyutunu <<fsutil fsinfo ntfsinfo c:>> komutu ile görebiliriz. Bytes per physical sector arkasinda bu deger listelenecektir.
Bytes per sector hep 512 olur, Bytes per cluster da ntfs cluster size ini gösterir.
Yani bu formatlarken seçilmis olan boyuttur. Bu örnegin bir dosya ile de görebilirsiniz. Diskte yeni bir .txt yaratin ve içine sadece bir karakter yazip ANSI olarak kaydedin. Özelliklerine baktiginizda ‘size’ olarak ANSI karakterin boyutunu göreceksiniz. ‘Size on disk’ olarak da o diskin ntfs cluster boyutunu. Yani dosya sisteminin o dosyayi diske yazarken ne kadar ‘en küçük alan’ kullanabildigi. Bu alan büyüdükçe performans artar, ama diskin reel kapasitesi de düser. Küçüldükçe de performans azalir, ama reel yazabileceginiz veri hacmini yükseltmis olursunuz.

Alignment fiziki sektörlerin ve ntfs in sektörlerin uyusmasidir. Söyle ki bunlar gerçekten üst üste gelmek zorunda degillerdir. Alignment i teyit etmek için bu komutu kullanabiliriz: <<wmic partition get BlockSize, StartingOffset, Name, Index>> bir volümün starting offset degeri block size degerine bölünebiliyorsa o volüm aligned dir. Aligned olmamalari arti IO overhead i getirir. Bir ntfs sektördeki veriyi bir fiziki sektör ile alabilirsek ideal bir islem yapmis oluruz. Ama eger aralarinda kayma varsa ve bir ntfs sektörü verisi ile çalisabilmek için iki fiziki sektör ile çalismak zorunda kalirsak IO muz da uzun sürecektir. En nihayetinde bu kötü performansa neden olabilir. Yalniz yanlis anlasilmasin, sektörler elbette ayni boyutta olmak zorunda degillerdir. Sadece sinir çizgilerinin üst üste gelmeleri önemlidir. Ufak kaymalar sorunlara neden olabilir.
Windows Server 2008 R2/Windows 7 den itibaren herhangi bir disk formatlandiginda align edilmektedir.
Ancak alignment in bir boyutu daha olabilir. Örnegin volümünüz bir Raid 0 üzerinde çalisiyorsa onun da strip/stripe size i vardir ve en nihayetinde bu üçü ne kadar align olurlarsa performans o kadar iyi olur.

Basar Güner
Sr. Support Engineer, Microsoft