SD kartta GNU / Linux için dosya sistemi seçimi


31

SD kart üzerinde çalışan gömülü ARM tabanlı bir sistemim var. Halen dosya sistemi olarak ext3 kullanan Debian GNU / Linux. Sistemi yeniden kurmak üzereyken, daha flash dostu bir dosya sistemine geçmeyi merak etmeye başladım. JFFS2, YAFFS2 ve LogFS'yi duydum ve hepsi işe uygun görünüyor. Hangisini önerirsiniz? Ayrıca, SSD disklerine daha uygun olması için birçok ext4 geliştirmesi olduğunu duydum; ext4'ü çalıştırmanın iyi olması gerektiği şeklinde mi yorumlayacağım? Özellikle bu durumda ne düşünmem gerekiyor?

Sistemin kullanımı önemli sanırım. Ancak, genel olarak, standart masaüstü işlerini (küçük bir ARM tabanlı sistemde olsa bile) yapacağını hayal edin.

Cevaplarınız için teşekkürler.

Düzenleme: Wikipedia bana ("alıntı gerekli" ifadesinde) Çıkarılabilir flash bellek kartlarının ve USB flash sürücülerin aşınma dengeleme ve hata düzeltme işlemleri için yerleşik denetleyicilere sahip olduğunu ve böylece belirli bir flash dosya sisteminin kullanımının bir fayda sağlamayacağını söyledi . Böylece, bir ext dosya sistemi ile yapıştırma doğru eğilerek.

Yanıtlar:


18

Flash dosya sistemleri hakkında mükemmel bir yazı .

Flash dosya sistemleri hakkında konuşurken önemli soru şu şekildedir: Aşınma seviyesi nedir? Wikipedia makalesi . Temel olarak, flaş disklerde blok bozuluncaya kadar sınırlı sayıda yazabilirsiniz. Bundan sonra, dosya sistemi (SSD'lerde olduğu gibi, donanımda yerleşik aşınma dengeleme yönetimi yoksa) bu bloğu geçersiz olarak işaretlemeli ve daha fazla kullanmaktan kaçınmalıdır.

Tipik dosya sistemleri (örneğin ReiserFS, NTFS, ext3 ve benzeri), bu tür sınırlamaları olmayan sabit diskler için tasarlanmıştır.

Jffs2

Sıkıştırma ve zarif aşınma dengeleme koruması içerir.

YAFFS2

  • Fark yaratan tek şey: başarılı montajdan sonra kısa montaj süreleri.
  • Once once özelliğini uygular: veri bir bloğa yazıldığında, tekrar yazmaya gerek yoktur. Aşınmayı azalttığı için bu önemlidir.

LogFS

  • Çok olgun değil, ama zaten Linux çekirdek ağacına dahil edildi.
  • Sorunsuz JFFS2 / YAFFS2'den daha büyük dosya sistemlerini destekler.

UBIFS

  • LogFS'den daha olgun
  • Önbellek desteği yazma
  • Ölçeklenebilirlik hakkında: makale . Büyük disklerde, JFFS2'den daha iyi performans

ext4'ün

Sürücü veya kart (örneğin SSD sürücülerinde dahili aşınma dengeleme seviyesi yoksa, en azından genellikle) kol aşınma dengelemesi varsa, ext4 en iyi fikir değildir, çünkü ham flaş kullanımı için tasarlanmamıştır.

Hangisi en iyisi?

Tabii ki, kullanım ve desteğe bağlıdır. İnternette okuduklarımdan UBIFS'i tavsiye ederim. Büyük dosya sistemleri için iyi destek, olgun geliştirme aşaması, yeterli performans ve büyük dezavantajları yok.


6
Teşekkürler, bu çok bilgilendirici! Ancak, UBIFS web sitesindeki "büyük kırmızı not" diyor ki: "İnsanların UBIFS ile uğraşırken anlamaları gereken bir şey UBIFS'in geleneksel dosya sistemlerinden çok farklı olduğu - blok cihazların (sabit diskler gibi) üzerinde çalışmadığıdır. , MMC / SD kartlar, USB flash sürücüler, SSD'ler, vb.) UBIFS, blok flaş aygıtlarıyla ilgisi olmayan ham flaş üzerinde çalışmak üzere tasarlandı.Bu yüzden UBIFS, MMC kartlarında ve benzerlerinde çalışmaz. Donanımda FTL (Flash Translation Layer) desteği uyguladıkları için dış dünyaya yönelik blok cihazlara benziyorlar. "
gspr

3
Güzel cevap, artı Samsung'dan F2FS var, aynı zamanda oldukça umut verici bir sistem, oldukça yeni tho.
lzap

16
@gspr doğru: SD'nin bir flaş çeviri katmanı var ve JFFS2, YAFFS2, LOGFS ve UBIFS'nin tümü yönetilmeyen flaş için tasarlanmıştır . SD seçenekleri, ext2 / ext3 / ext4 gibi geleneksel blok aygıt dosya sistemleridir.
Robert Calhoun,

@Olli NILFS2 bir SSD sürücüsü için iyi bir seçim mi?
SebMa

12

Aynı sorunla karşı karşıyaydım ve aynı zamanda biraz da araştırma yaptım. Sonunda ext2 ile gitmeye karar verdim.

Bazı SDHC kartların donanım katmanında kendi aşınma seviyelerini uyguladıkları görülüyor. Aşınma seviyesine yerleştirme özelliğine sahip SDHC kartlarını elinize alabilirsiniz.

Aşınma seviyelendirme sağlayan dosya sistemleri Flash seviyesindeki aşınma seviyelemeyi engelleyebilir, bu nedenle flaşın bunları kullanması kötü olabilir (yukarıda belirtilen IBM makalesi JFFS'nin nasıl çalıştığı hakkında konuşur, bu yüzden işe yaramayacakları açıktır) flaş seviyesi WL ile). Ext3'ün günlüğüne ihtiyacım olmadığına karar verdim çünkü üzerine kritik verileri saklamadığımdan ve genellikle de düzenli olarak yedekleme yaptığımdan (cron).

Ayrıca işleri hızlandırmak için / tmp ve / var tmpfs olarak bağladım. Yeterli RAM’iniz varsa, bunu yapmanız gerekir (günlüklerinizi düzenli olarak döndürdüğünüzden veya sildiğinizden emin olun).

İPUCU: Dahili SD kartlarınızı "noatime" seçeneğiyle monte edin


Eski SD kartlar ve X2'ye geçerken kaybolan ext2 (veri bozulması) ile ilgili sorunlar yaşadım.
Alexander

1

Bunun sisteminizin profiline uyup uymadığını bilmiyorum, ancak salt okunur bir dosya sistemi ve bir okuma-yazma bölümü (ya da kolayca değiştirilebilen bir usb bellek) kullanmaya ne dersiniz? Bu şekilde işletim sisteminiz için hızlı bir diske sahip olursunuz ve rw depolamanızı yıprandığında kolayca değiştirebilirsiniz.

Ve sonra da sendikalar var. Anladığım kadarıyla farklı dosya sistemlerini "istifler" (yani bir rw fs'nin üstüne bir ro fs). Bir okuma erişimi varsa unionfs, aradığımız dosyayı içeren FS'ye isabet edinceye kadar th yığınında arama yapar. Unionfs yazarken yığındaki ilk yazılabilir FS'yi arar ve kullanır.

Ayrıca ilginç olabilecek bu makaleleri de buldum: http://www.linux-mag.com/id/7357/ http://www.linux-mag.com/id/7345/

Ve SSD'leri kullanmak için ipuçları içeren iki makale: http://danweinreb.org/blog/using-solid-state-disks-on-linux http://www.zdnet.com/blog/perlow/geek-sheet-a- tweakers-kılavuz için katı-hal sürücüler-SSD-ve-linux / 9190


1
Unutmayın, bu cevabı düşüren ben değilim. Genel olarak faydalı bilgiler içerir, ancak ihtiyacım olanlarla ilgili değil. Yine de teşekkürler :)
gspr

0

Doğru dosya sisteminin seçilmesi (ve boyutlandırılması), yalnızca güvenlik için değil, insanların genellikle tanımadığı birçok sebepten dolayı, her şeyden daha önemlidir. Bir dosya sistemi olmadan tüm işlemler null olur.

Olli'nin yanıtı çok iyi verildi ve OP çok eskiydi, ancak dosya sistemleri uzak durduramadığım evcil hayvanlarım. superuser.com daha önce ziyaret ettiğim bir şey değil, yönetici değilim, ancak kaydoldum ve daha fazla ziyaret edeceğim.

2011'den bu yana işler çok değişti, ama o zaman bile USB kartlarını FAT olarak formatladım ve 4Gb + dosyalarını etrafta taşımak için USB sürücüleri kullandım. Tabi ki uyumluluk güvenlik değildi (SD'deki S için çok fazla, fakat 7z'imde şifreler kullandım) ve hiçbir zaman bir CD ISO'sundan daha büyük bir şey taşımamıştım, bunlar çoğunlukla SQL betikleri içindi ve günlük saat başı farkları vardı. şifreli veritabanı anlık görüntüleri 7-Zip tarafından ölüme yakın sıkılmış.

Bu günlerde tanıdığım herkesten daha hızlı SD giyiyorum. İşverenimdeki bazı üretim makinelerinde saat başı otomatikleştirilmiş FAT formatına sahip bir USB bellek kullanıyorum. Her gün onlara göz kulak oluyorum ve - tahmin etmiştim - onları elle dini bir şekilde destekliyorlar (ITAR işleri için çevrimdışı güvenlikli). SSD, oyun alanının bir kısmını seviyelendirdi ancak ben hala normal HD kadar onlara güvenmiyorum ve SD de optikten daha kötü. Bir anda kötüye giderler ve kayıp tamdır.

Ana bilgisayar işletim sistemini rasgele yazmaya (NTFS, Geri Dönüşüm Kutusu) davet eden herhangi bir dosya sistemi bir SD için kötü bir haberdir. Ayrıca, bağlantıyı kesmek çok yardımcı olur, hiçbir işletim sistemi takılmamış depolamaya erişmeyi denemez, bu nedenle herhangi bir dosya sistemi, SD'nin kendisini açmak için bir komut dosyası içerdiği sürece yapacaktır (benimki her SD'deki standart dosyalardan biri).

Günümüzde hala bir SD okuma yavaş olduğundan, dosya-dosya yerine yansıtma yaparken tüm görüntüyü almak için disk dökümü (gg) gibi bir şey öneriyorum. DD yanlış bir şey olduğunda size haber verir, böylece dosya yöneticiniz kaboom gitmez.

Tabii ki, asıl amacınız bir kuruş stokunun ömrünü uzatmaksa, işinizle ilgili yanlış yoldan gidiyorsunuz demektir. Bir SD'nin ömrünü uzatmak için değil, izlemiyorken kötüleşmemesi için yaptığım şeyi yapıyorum ve fark var.

Ext4'ten veya SD'deki herhangi bir günlükten FS'den kaçınıyorum, çünkü onlara kötü yazmaları umrumda değil, ancak bir gün veya daha sonra bunları okuyamıyorum, çok acıtıyor!


2
Üzgünüm ama bu soruya gerçekten cevap vermiyor. Çıkarılabilir medya kullanımı ile ilgili ilginç bir deneme ama dosya sistemi seçimi ile ilgili değil.
şüpheli

Yorum yapmak istedim ama yapamadım. Gönderi biraz ayrıntılı, önerdiğim şey OP'nin ne düşündüğü değildi, bunun yerine FAT'i tavsiye ettim. Kesinlikle daha fazla odak ve açıklıkla beslenmeliydim.
arch-abit

Neden Any file system which invites the host OS to write randomly to it (NTFS, Recycle Bin) is bad news for an SD.? Dönen disklerden oluşmuyor, bu yüzden okuduğunuz / yazdığınız her şeyin önemi olmamalı, sanırım. Ve btw, NTFS bitişik olarak yazar - parçalanmaya yol açar. «Dosyaların rastgele depolanması» örn., EXTα hakkında.
Hi-Angel,

0

Yağ kullanma tavsiyesine cevap olarak (32?): Bazı performans testleri yaptım ve fat32'nin bir dosya yazmak için çok öngörülebilir bir zamanı olduğunu öğrendim (2 GB'nin iki kez 1 GB + ofset yapması gerekiyor, 3 GB'ın ağaç zamanları gerekiyor) 1GB + ofset). Ext4'ün performansı ext3'ten biraz daha iyidir. Hem ext3 hem de ext4 bazen hızlıdır, ancak günlük dosyalarını diske yazmak için bazen fazladan zamana ihtiyaç duyar (doğrusal yazma zamanı davranışı olmaz). Tüm sınama fsync () ile yapıldı ve bu dosyanın diske gerçekten yazıldığından emin olundu. Sync () ile bazı testler yaptım. Çok kötü yazma performansına neden olurlar. Bu yüzden fsync'e () geri döndüm. Fsync () 'nin yeterli olup olmadığını kontrol ettim. Bu nedenle sistem kapatılmadan cihazdan güç aldım veya SD Kartı çıkarmadan çıkardım. Hiçbir durumda yazılı dosyalar veya dizin yapısı zarar görmedi.

Saygılar, Thomas


1
Karşılaştırma haksızlık. Günlük tutma FAT'ını EXT3 / 4 günlükleriyle karşılaştırdınız. FAT ile EXT2'yi karşılaştırmanız gerekir. Ve sadece FYI, üretici tarafından önceden biçimlendirilmiş dosya sistemi genellikle en uygun blok boyutlarına / ofsetlerine sahiptir. Başka bir deyişle, dosya sistemini yeniden biçimlendirdikten sonra, IO'nun orijinal sistemden daha uzun sürmesi olasılığı vardır.
Hi-Angel

0

Kayıpsız sd kartı istiyorsanız, kullanmanızı öneririz BTRFSçünkü:

BTRFS Orijinal olarak 2007 yılında Oracle tarafından oluşturulan EXT ile karşılaştırıldığında yeni bir dosya sistemidir.

Geleneksel dosya sistemlerine yeni özellikler getiriyor:

  • Klonlama / anlık
  • Diffler (gönder / al)
  • quotat
  • Birlik
  • Kendi kendini iyileştirme (30'lara varan süreler içerisinde)

Daha fazla açıklama ve karşılaştırma için bu pdf'e bakınız.

Yeni karşılaştırmalar için bu siteye bakın

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.