Blok boyutu ile küme boyutu arasındaki fark


20

Blok boyutu ve küme boyutu ile ilgili bir sorum var. Hakkında okuduğum şeyle ilgili olarak aşağıdakileri varsayıyorum:

  • Blok boyutu bir bloğun fiziksel boyutudur, çoğunlukla 512 bayttır. Bunu değiştirmenin bir yolu yok.
  • Küme boyutu, işletim sistemi tarafından okunabilen ve yazılabilir bir bloğun minimum boyutudur. Ext3 gibi yeni bir dosya sistemi oluşturursam, -b anahtarıyla bu minimum blok boyutunu belirtebilirim. Dumpe2fs, mke2fs gibi hemen hemen tüm programlar küme boyutu için ad olarak blok boyutunu kullanır.

Aşağıdaki çıktıya sahipsem:

$ stat test
File: `test'
Size: 13            Blocks: 4          IO Block: 2048   regular file
Device: 700h/1792d  Inode: 15          Links: 1

Boyutun bayttaki gerçek alan, bloklar fiziksel olarak kullanılan bloklar (her biri için 512 bayt) ve IO bloğu FS oluşturulurken belirtilen blok boyutu ile ilgili mi?

Yanıtlar:


26

Sanırım kafanız karıştı, çünkü muhtemelen farklı terminoloji kullanan birkaç belgeyi okudunuz. “Blok boyutu” ve “küme boyutu” gibi terimlerin dosya sistemi literatürü bağlamında bile evrensel bir anlamı yoktur.

Dosya sistemleri

İçin ext2 veya ext3 durum nispeten basit: her dosya belirli sayıda kaplar blokları . Belirli bir dosya sistemindeki tüm bloklar aynı boyuta sahiptir, genellikle 1024, 2048 veya 4096 bayttan biri. Boyutu N blok artı bir bayt ve N + 1 blokları arasında olan bir dosya N N + 1 bloklarını kaplar. Bu blok boyutu ile belirttiğiniz boyuttur mke2fs -b. Ayrı küme kavramı yoktur.

FAT , MS-DOS ve Windows erken sürümleri tarafından özellikle kullanılan dosya sistemi benzer basit alan ayırma sahiptir. Ext2 ne blok çağırır, FAT kümeleri çağırır ; kavram aynı.

Bazı dosya sistemleri daha karmaşık bir ayırma düzenine sahiptir: sabit boyutlu blokları vardır, ancak aynı bloğu birden fazla dosyanın son birkaç baytını depolamak için kullanabilirler. Bu blok alt tahsisi olarak bilinir ; Reiserfs ve Btrfs bunu yapar, ancak ext3 veya ext4 yapmaz.

Araçlar

Unix yardımcı programları, genellikle 512 bayt veya 1kB olmak üzere, rastgele boyutlandırılmış bir birim anlamına gelen “blok” sözcüğünü kullanır. Bu kullanım herhangi bir dosya sistemi veya disk donanımı ile ilgisizdir. Tarihsel olarak, 512B bloğu, o zamanki diskler ve dosya sistemleri genellikle 512B yığınlarında çalıştığı için ortaya çıktı, ancak modern kullanım sadece keyfi. Geleneksel unix yardımcı programları ve arayüzleri hala bazen 512B blokları kullanıyor, ancak 1kB blokları artık sıklıkla tercih ediliyor . Hangi boyutta blok kullandığını öğrenmek için her bir yardımcı programın belgelerine bakmanız gerekir (bazılarının bir anahtarı vardır, örneğin du -Bveya df -BLinux'ta).

GNU / Linux statyardımcı programında blocksşekil, dosya tarafından kullanılan 512B bloklarının sayısıdır. IO BlockRakam olduğu dosya giriş-çıkış için tercih boyutu ilke ilişkisiz ancak genellikle altta yatan dosya sisteminin blok boyutu bir göstergesi (veya küme boyutu o Diyelim ki onu aramak istediğiniz ne olur). Burada, ext3 dosya sisteminde 2048 blok boyutunda bir blok işgal eden 13 baytlık bir dosyanız var; bu nedenle dosya 4 512 baytlık birime sahiptir ("bloklar" denir stat).

Diskler

Çoğu disk, diski bir grup sektör olarak gösteren bir arabirim sunar . Disk tek bir bit veya bayt değil, yalnızca tüm sektörü yazabilir veya okuyabilir. Çoğu sabit diskin 512 bayt sektörü var, ancak 4kB sektör diskleri birkaç yıl önce görünmeye başladı.

Disk sektörü boyutu doğrudan dosya sistemi blok boyutu ile ilgili değildir, ancak bir bloğun bir çok sektöre sahip olması performans için daha iyidir.

¹ İstisna: seyrek dosyalar yerden tasarruf sağlar.


2
Açıklaman için teşekkürler. Buraya windows için ext2fsd aracının neden olduğu karışıklık nedeniyle geldi. Komut satırı seçenekleri başlar: sageKullanım: mke2fs [-c | -l dosyaadı] [-b blok-boyutu] [-C küme boyutu] ... ´ Görüyorsunuz, hem blok hem de küme boyutu ...
Bernhard Hiller

Ayrıca mke2fs'in blok boyutu ile küme boyutu arasındaki farkın ne olduğunu bilmek istiyorum. Kimse biliyor mu ?
X.LINK

1
@ X.LINK Man sayfasında açıklanmıştır. Küme boyutu, doğru anlarsam büyük dosyalara daha fazla boşa depolama pahasına daha hızlı erişim sağlayan bigalloc özelliği tarafından kullanılır .
Gilles 'SO- kötü olmayı bırak
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.