Usb flash sürücü ve aşınma tesviye dikkate alınarak hangi dosya sistemi seçmek için doğru bölüm?


13

İki problem. Birincisi: Flash sürücüyü nasıl bölümleyebilirim?

Bunu yapmam gerekmiyor, ancak sürücüyü FAT'den ext4'e biçimlendirmeye çalıştığımda şikayet edildikten sonra yeni bir bölüm tablosu silmeye ve oluşturmaya zorlandığım için bölümümün düzgün şekilde hizalanıp hizalanmadığından emin değilim.

Saf cevap "sadece varsayılanı kullan ve her şey yoluna girecek" demek olacaktır. Ancak, aşağıdaki bağlantıları okursanız, işlerin o kadar basit olmadığını bileceksiniz: https://lwn.net/Articles/428584/ ve http://linux-howto-guide.blogspot.com/2009/10/increase- usb flash disk yazma-speed.html

Sonra silindirler, kafalar ve sektörler de var. Şu anda bu olsun:

$sfdisk -l -uM  /dev/sdd
Disk /dev/sdd: 30147 cylinders, 64 heads, 32 sectors/track
Warning: The partition table looks like it was made
   for C/H/S=*/255/63 (instead of 30147/64/32).
For this listing I'll assume that geometry.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start   End    MiB    #blocks   Id  System
/dev/sdd1         1  30146  30146   30869504   83  Linux

$fdisk -l /dev/sdd
Disk /dev/sdd: 31.6 GB, 31611420672 bytes
255 heads, 63 sectors/track, 3843 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00010c28

Şu anki anlayışımdan bölümleri 4 MiB'de hizalamalıyım (şu anda 1 MiB'de). Ancak yine de cihazım için kafaları ve sektörleri nasıl doğru bir şekilde ayarlayacağımı bilmiyorum.

İkinci sorun: dosya sistemi.

Testlerden ext4'ün en iyi performansı sağladığını gördüm, ancak aşınma seviyelendirme sorunu var. Transcend JetFlash 700 mikrodenetleyicimin aşınma dengelemesi sağladığını nasıl bilebilirim? Yoksa sadece sürücümü daha hızlı mı öldüreceğim?

Daha yeni sürücüler zaten bununla ilgilenmek endişelenmeyin diyerek web üzerinde bir sürü mesaj gördüm. Ama bunun tek bir kanıtı olduğunu hiç görmedim ve bir noktada insanlar SSD'yi USB flash sürücüler teknolojisiyle karıştırmaya başladılar. Güvenli seçenek ext2 için gitmek olacaktır, ancak yaptığım testlerin ciddi korkunç performans gösterdi !!!

Bu değerler, bazı sentetik testlerden değil gerçek bir senaryodan alınmıştır:

42 files: 3,429,415,284 bytes copied to flash drive
original fat32: 15.1 MiB/s
ext4 after new partition table: 10.2 MiB/s
ext2 after new partition table:  1.9 MiB/s

Lütfen yanıtlamadan önce yukarıda gönderdiğim bağlantıları okuyun. Ayrıca bazı referanslarla desteklenen cevaplarla da ilgilenirim çünkü çok şey söylenir ve yeniden söylenir, ancak daha sonra gerçeklerden yoksundur.

Yardım için teşekkürler.


"Ancak aşınma tesviye sorunu var" - Bu konuda gerçekten bir seçeneğiniz yok. Satın aldığınız USB Flash sürücü veya SD kart, aşınma seviyelendirme işleminin tatmin edici bir işini yapar ya da yapmaz. Aşınma dengelemesi yapan bir dosya sistemini kullanamazsınız / kullanmamalısınız (örn. JFFS2). Ve UBI birim yönetimini yükleyemezsiniz (önce MTD'yi yüklemeniz gerekir, ancak bu ham Flash aygıtları içindir). Böylece, yerleşik denetleyiciye güvenmek zorunda kalırsınız.
talaş

Yanıtlar:


8

Silindirler, kafalar ve sektörler hakkında endişelenmeyin ve sadece sektörlerle çalışın. Dosya sistemini hizalamanın en kolay yolu, bir bölüm tablosuna sahip olmamaktır (yani dosya sistemini /dev/sdXdoğrudan oluşturmak ). Çoğu Linux sistemi bu işi halledecektir, ancak Windows çıldırır ve ayrıca önyüklenebilir hale getiremezsiniz. Bir bölüm tablosuna ihtiyacınız varsa, kaç adet 512 bayt sektörünün bir silme bloğu oluşturduğunu öğrenin. Silme blokları 128-512 KB civarındadır, bu nedenle flash sürücünüzün ne kullandığını bulamazsanız 1024 sektörle devam edin. Bölümlerin bu sayının katında başladığından emin olun.

Ayrıca gereksiz blokları değiştirmekten kaçınmak için ext2 / 3 / 4'e silme blok boyutu hakkında bilgi vermek istersiniz. Set hem strideve stripe-widthböylece bir 512KiB silme blok kullanımı şu üzerinde çalışan bir silme bloğunu oluşturan blokların sayıya:

mkfs.ext4 -b 4096 -E stride=128,stripe-width=128

Performans açısından, bir derginin olmaması performansı arttırmalıdır (ancak işlem kesilirse veri bozulması olasılığını arttırmalıdır). Bununla birlikte, ext4'ün uzantıları performansı iyileştirmelidir, çünkü büyük dosyalar için daha az meta verinin değiştirilmesi gerekir. Muhtemelen dergi devre dışı bırakılmış ext4'ü kullanırım:

tune2fs -O ^has_journal

cat /proc/mtdTakılı flaş aygıtlar için silme blok boyutlarını bulmak için kullanabilirsiniz .
Tomalak

Bölümleme tablosu olmayan Flash sürücüler, dosya sistemi desteklendiği sürece Windows'ta düzgün çalışmalıdır. Pendriveslerde genellikle kutunun dışında bölme tablosu yoktur ve iyi çalışırlar.
gronostaj

Dreamplug'da Linux / Fedora için SD kartta FS optimizasyonu, ext4'ün silme blokları boyutunu "bilmesini" ve blok boyutunu ve "adım" değerini buna göre nasıl ayarlayacağını gösterir . Ayrıca, / proc / mtd, SD / çubuk flash bellek aygıtları için değil, talaşın söylediği gibi sadece ham flaş aygıtları için mevcut olduğundan, ilgili olmadığına inanıyorum.
tuk0z

Bunu denedim, çok kötü bir tavsiye oldu. Bu parametreleri USB flash sürücü ile kullanmayın. blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card - bu adam daha iyi parametrelere sahip, ancak hala varsayılan olarak gparted'in kullandığıdan biraz daha iyi.
Zdenek

Bu, Eylül ayında verdiğim bağlantı ile aynı ^^ Parpar / Gparted AFAIK hakkında doğru bilgiler.
tuk0z

4

Günümüzde çoğu Linux bölümleme ve dosya sistemi oluşturma aracı varsayılan olarak 4K sınırlarındaki verileri hizalayan değerlere ayarlıdır ve disk ortaya koyarsa temel blok boyutunu bile kullanır, böylece işler LWN makalesindeki kadar kötü değildir:

TLDR; Bölümlerinizi ve dosya sistemlerinizi daha iyi (ancak mükemmel değil) oluşturmak için araçların son sürümleriyle modern bir Linux dağıtımı (2013 veya üstü diyelim) kullanıldığında, hizalama otomatik olarak gerçekleşir. Ayrıca dikkat edin - bir SD kart için en iyi değerler bir USB çubuğundan farklı olabilir (Transcend JetFlash'ınızın bir SD Kart değil bir USB çubuğu olduğuna inanıyorum). Ucuz flaşta gerçek alttaki silme bloğu boyutunu çıkarmak için kıyaslama yapmanız gerekir ...


1

Ayrıca, fstab'ınızda, bir dosyaya her erişildiğinde gereksiz yazımlardan kaçınmak için "noatime" bağlama seçeneğini kullandığınızdan emin olun.


Hala bu gün doğrudur ve bu bana bu seçeneğin eksik olduğunu hatırlattı
Xx
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.