Advanced Format (Türkçe)
Bir sabit disk sürücüsünün (HDD) en küçük fiziksel depolama birimi sektör'dür. Bunun katı hal sürücüleri (SSD) için karşılığı ise page'dir.[1] Depolama aygıtı bellenimi, bu fiziksel sektörleri soyutlayarak üzerinde çalışabildiğimiz mantıksal sektörlere çevirirler. Bu sektörün boyutu, diskteki en küçük adreslenebilir birimin boyutunu ifade eder.
- Fiziksel sektör boyutu
- Bu bir fiziksel depolama aygıtının yazabileceği en küçük birimdir. HDD'lerde, bir tabla üzerinde bulunan sektörlerin asıl boyutudur. Geleneksel olarak, HDD'ler için fiziksel sektör boyutu 512 byte'dı, yani her bir sektör 512 byte'lık veri taşıyabilirdi. Ancak, Advanced Format Drive'ların tanıtılmasıyla, daha yüksek depolama yoğunluğu ve geliştirilmiş hata düzeltme kabiliyeti için fiziksel sektör boyutu 4096 byte (4 KiB)'e çıkarıldı. SSD'ler, genelde 4 ile 16 KiB arasında olan, NAND flash belleğinin page boyutunu göstermez. Onun yerine fiziksel sektör boyutu olarak mantıksal mantıksal sektör boyutunu rapor eder. NVMe SSD'ler için ise, eğer mevcutsa, Atomic Write Unit Power Fail (AWUPF) parametresi kullanılır.
- Mantıksal sektör boyutu
- İşletim sistemi sektör boyutu olarak da bilinen mantıksal sektör boyutu, işletim sistemi ve uygulamalara bildirilen sektör boyutunu ifade eder. Yazılım seviyesinde okuma ve yazma için kullanılan sektör boyutudur. Mantıksal sektör boyutu fiziksel sektör boyutuna göre farklılık gösterebilir. Örneğin, 4096 byte'lık fiziksel sektör boyutuna sahip bir Advanced Format HDD, eski sistem ve uygulamalarla uyumluluk sağlamak için mantıksal sektör boyutunu 512 byte gösterebilir.
Farklı "katman"lar, yani aygıtın kendisi, yığılı blok aygıtı ve dosya sistemleri, hepsi aynı sektör boyutundan faydalanmalı. Eğer yapmazlarsa bellenimdeki haritalama işlemi, genelde farkedilmeyecek kadar da olsa, önlenebilir bir ek yüke sebep olur.
lsblk ile mevcut fiziksel ve mantıksal sektör boyutları listelenebilir:
$ lsblk -td
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME sda 0 4096 0 4096 4096 1 mq-deadline 64 128 0B nvme1n1 0 4096 0 4096 4096 0 none 1023 128 0B nvme0n1 0 4096 0 4096 4096 0 none 1023 128 0B
PHY-SEC
fiziksel sektör boyutunu gösterirken LOG-SEC
mantıksal sektör boyutunu gösterir.
Alternatif olarak, özel olarak bir sürücünün değerleri aşağıdaki sysfs girişlerinden okunabilir:
$ cat /sys/class/block/sürücü/queue/physical_block_size $ cat /sys/class/block/sürücü/queue/logical_block_size
Sektör boyutları ayrıca fdisk, smartctl ve hdparm çıktısında da görülebilir.
Sektör boyutunun değiştirilmesi
Bazı NVMe sürücüler ve "enterprise" SATA sabit disk sürücüleri bildirilen sektör boyutunu, standart NVMe veya ATA komutları kullanarak değiştirmeye izin verir. (NVM Command Set Specification 1.0 ve daha sonraki sürümlerinde Format NVM
, ATA Command Set - 4 ve daha sonraki sürümlerinde (SET SECTOR CONFIGURATION EXT
, sırasıyla). Sabit diskler için bu mantıksal sektör boyutunu fiziksel sektör boyutuyla eşitleyerek optimum performansı sağlar. NVMe katı hal sürüclerinde ise hem mantıksal hem fiziksel sektör boyutları değiştirilir.
SATA katı hal sürücüleri genel olarak sektör boyutunun değiştirilmesini destekler. Buna istisna ise bildirilen fiziksel sektör boyutunu değiştirmeye izin veren, ancak mantıksal sektör boyutunu değiştirmeyi izin vermeyen bazı Intel SATA SSD'leridir.[2] Bildirilen fiziksel sektör boyutunu değiştirmek için Advanced Format#Intel'i takip edin.
Bir diskin sektör boyutunu değiştirmek alt düzey biçimlendirme gerektiren kompleks bir işlemdir. Buna altenatif olarak optimum performans almak için dosya sistemi oluştururken istenilen sektör boyutunu belirtebilirsiniz. #dm-crypt ve #Dosya sistemleri'e bakınız.
Advanced Format sabit disk sürücüleri
Bir Advanced Format sabit disk sürücüsünün sektör boyutunun değiştirilip değiştirilmediğini belirlemek için hdparm aracını kullanın:
# hdparm -I /dev/sdX | grep 'Sector size:'
Sektör Yapılandırma Günlüğü birden fazla mantıksal sektör boyutu sıralayan Advanced Format sürücüleri bunun bir listesini gösterir:
Logical Sector size: 512 bytes [ Supported: 512 4096 ] Physical Sector size: 4096 bytes
Mantıksal sektör boyutunu değiştirmeyi desteklemeyen sabit disk sürücüleri ise sadece mevcut sektör boyutunu bildirir. Örneğin bir Advanced Format 512e sürücüsü:
Logical Sector size: 512 bytes Physical Sector size: 4096 bytes
Bu tür sürücülerde optimum performans için #dm-crypt sektör boyutunun veya #Dosya sistemleri blok boyutunun en az 4096 byte olup sürücüyle hizalandığından emin olun.
Bir Advanced Format 4Kn sürücüsü:
Logical Sector size: 4096 bytes Physical Sector size: 4096 bytes
4Kn sürücüleri zaten optimum yapılandırmaya sahiptir ve bölümlendirme ve biçimlendirmede özel bir müdaheleye ihtiyaçları yoktur. Oldukları gibi kullanılabilirler.
SATA HDD'niz birden fazla mantıksal sektör boyutunu destekliyorsa ve de ATA komutu SET SECTOR CONFIGURATION EXT
'ı destekliyorsa (örneğin FastFormat destekleyen Seagate sürücüleri), hdparm kullanarak mantıksal sektör boyutları arasında geçiş yapabilirsiniz. Örneğin 4096 byte'a, yani 4Kn ayarlamak için şunu çalıştırın:
# hdparm --set-sector-size 4096 --please-destroy-my-drive /dev/sdX
Bundan sonra, hdparm mantıksal sektör boyutunu 4096 byte olarak bildirmeli:
# hdparm -I /dev/sdX | grep 'Sector size:'
Logical Sector size: 4096 bytes [ Supported: 512 4096 ] Physical Sector size: 4096 bytes
NVMe katı hal sürücüleri
Çoğu katı hal sürücüsü (SSD) fiziksel blokların genelde daha büyük (4, 8 KiB ve daha büyük) olmasına rağmen mantıksal sektör boyutu olarak 512 byte bildirir.
NVMe sürücünün biçimlendirilmiş mantıksal blok adres boyutuna (FLBAS) bakmak için Identify Namespace komutunu kullanın:
# nvme id-ns -H /dev/nvme0n1 | grep "Relative Performance"
LBA Format 0 : Metadata Size: 0 bytes - Data Size: 512 bytes - Relative Performance: 0x2 Good (in use) LBA Format 1 : Metadata Size: 0 bytes - Data Size: 4096 bytes - Relative Performance: 0x1 Better
-
Metadata Size
mantıksal blok adresi (LBA) başına düşen ek önveri byte sayısıdır. Bu Linux'da iyi desteklenmediğinden dolayı, 0 değerinde bir biçimin seçilmesi tavsiye edilir. -
Relative Performance
hangi biçimin nasıl performans sunacağını gösterir.
smartctl de desteklenen mantıksal blok adresi boyutlarını gösterir, ancak kullanıcı dostu açıklamalar sağlamaz. Örneğin:
# smartctl -c /dev/nvme0n1
... Supported LBA Sizes (NSID 0x1) Id Fmt Data Metadt Rel_Perf 0 + 512 0 2 1 - 4096 0 1
Mantıksal blok adres boyutunu değiştirmek için nvme format
kullanın ve --lbaf
parametresi ile istenilen değeri belirtin:
# nvme format --lbaf=1 /dev/nvme0n1
You are about to format nvme0n1, namespace 0x1. WARNING: Format may irrevocably delete this device's data. You have 10 seconds to press Ctrl-C to cancel this operation. Use the force [--force] option to suppress this warning. Sending format operation ... Success formatting namespace:1
Bu devam etmeden önce sadece birkaç saniye sürmeli.
Üreticiye spesifik programlar kullanarak
Eğer yukardaki genel araçlar sektör boyutunu değiştirmeye izin vermezse, yine de sürücünün üreticisinden olan bir programla değiştirmek mümkün olabilir.
Seagate
Seagate için openseachestAUR kullanın.
Doğru olanı bulmak için bütün cihazları tarayın ve bulduğunuzla ilgili bilgi alın:
# openSeaChest_Basics --scan # openSeaChest_Basics -d /dev/sdX -i
Sürücü hakkında bilgi vermeli. Seri numarasını kontrol ettiğinizden emin olun.
Sürücü tarafından desteklenen mantıksal blok boyutlarını kontrol edin:
# openSeaChest_Format -d /dev/sdX --showSupportedFormats
Eğer listede 4096 varsa, mantıksal sektör boyutunu şu şekilde değiştirebilirsiniz:
# openSeaChest_Format -d /dev/sdX --setSectorSize=4096 --confirm this-will-erase-data
Bu işlem birkaç dakika sürecektir ve işlem sonunda sürücünüz 4K sektör boyutu kullanacaktır.
Bölüm hizası
Bölümlerin doğru şekilde hizalanması gereksiz okuma-düzenleme-yazma döngülerini önler. Kişisel bilgisayarlarda yaygın bir uygulama her bölümü 1 MiB (1 048 576 bytes)'lik parçalara hizalamaktır. Bu yaygın olan bütün page ve blok boyutu senaryolarını kapsar ve kullanılan bütün boyutlara bölünebilir—1 MiB, 512 KiB, 128 KiB, 4 KiB ve 512 B.
- fdisk, cfdisk ve sfdisk hizalamayı otomatik olarak yapar.
-
gdisk ve cgdisk hizalamayı otomatik olarak yapar.
-
sgdisk varsayılan olarak yalnızca bölümlerin başlangıcını hizalar.
-I
/--align-end
seçeneğini kullanarak bölüm boyutunun/sonunun da hizalanmasını sağlayın.
-
sgdisk varsayılan olarak yalnızca bölümlerin başlangıcını hizalar.
- Parted yalnızca bölümlerin başını hizalayabilir, boyutunu yani sonunu hizalamaz. Bölüm oluştururken, bölüm sonunun mebibyte ile ya da daha büyük bir IEC binary birimi halinde belirttiğinzden emin olun.
dm-crypt
Cryptsetup 2.4.0 itibariyle, luksFormat
LUKS2 biçimi için otomatik olarak optimum şifreleme sektör boyutunu tespit eder.[4].
Ancak, bunun çalışması için cihazın varsayılan sektör boyutunu doğru bildirmesi gerekmektedir, bakınız: #Sektör boyutunun değiştirilmesi.
cryptsetup luksFormat
kullanıldıktan sonra, LUKS2 birimi tarafından kullanılan sektör boyutunu şu şekilde kontrol edebilirsiniz:
# cryptsetup luksDump device | grep sector
Eğer varsayılan sektör boyutu yanlışsa, LUKS2 birimini 4K sektör boyutuyla oluşturulmasını zorlayabilirsiniz:
# cryptsetup luksFormat --sector-size=4096 device
Bu komut istenilen boyut cihazınkiyle uyuşmazsa hata verir:
# cryptsetup luksFormat --sector-size 4096 device (...) Verify passphrase: Device size is not aligned to requested sector size.
Aygıtı yanlış sektör boyutuyla şifrelediyseniz aygıt şu komutla yeniden şifrelenebilir:
# cryptsetup reencrypt --sector-size=4096 device
Dosya sistemleri
mkfs.bcachefs, mkfs.btrfs(8), mkfs.jfs(8), mkfs.nilfs2(8), mkfs.reiserfs(8) ve mkswap(8) varsayılan olarak 4096 byte sektörler kullanır.
mkfs.ext4(8) varsayılan olarak 512 MiB'den küçük dosya sistemlerinde 1024 byte, 512 MiB ve daha büyük dosya sistemlerinde 4096 byte sektörler kullanır.
mkfs.xfs(8) varsayılan olarak 512 byte sektörler kullanır ancak 512e ve 4Kn diskleri için 4096 kullanır.
mkfs.f2fs(8), mkfs.fat(8), mkfs.ntfs(8) ve mkfs.udf(8) cihazın mantıksal sektör boyutunu kullanır. Yani 512e cihazlarda 512 byte, 4Kn disklerde 4096 byte sektör kullanır.
zpool-create(8) (from ZFS) varsayılan olarak 512 (2⁹) byte sektör kullanır, sektör boyutu advanced format disklerde -o ashift=12
(2¹², 4096 bytes) seçeneği ile pool oluşturulurken belirtilmelidir.
Eğer depolama aygıtı doğru sektör boyutunu bildirmiyorsa fiziksel sektör boyutunu kendiniz belirterek uygun şekilde biçimlendirebilirsiniz.
Özellikle bellenim tarafından yönetilen shingled magnetic recording (SMR) sürücüleri, fiziksel sektör boyutu 4096 byte iken 512 byte'lık mantıksal sektör boyutu kullanıldığında bundan ciddi ve negatif şekilde etkilenir. Bu sürücüler boştayken farklı performans yazma bölgelerine sahiptir ve yeniden-haritalandırma nadiren gerçekleşir. Ancak yük altında (örneğin RAID resilver'lama, yedekleme, çok fazla küçük boyutta dosya yazma, rsync vb.) farklı bir dosya sistemi sektör boyutu yazma hızını tek haneli megabyte/saniye'ye kadar indirebilir, yüksek performanslı yazma alanları bittiğinden ve çeviri katmanı bu küçük parçalarda fazla çalıştığından dolayı.
4096 byte sektör boyutunu kendiniz belirtmenin birkaç örneği:
-
ext4:
# mkfs.ext4 -b 4096 /dev/device
-
XFS:
# mkfs.xfs -s size=4096 /dev/device
-
FAT:
# mkfs.fat -S 4096 /dev/device
-
NTFS-3G:
# mkfs.ntfs -Q -s 4096 /dev/device
- UDF:
# mkfs.udf -b 4096 /dev/device
-
ZFS:
# zpool create -o ashift=12 poolname raidz device0 … deviceN
Ayrıca bakınız
- Western Digital’s Advanced Format: The 4K Sector Transition Begins
- White paper entitled "Advanced Format Technology."
- Bir HDD'nin hizalamasındaki hata düşük okuma yazma performansına yol açar. Spesifik örnekleri için: [5]