JFS (dosya sistemi) - JFS (file system)
Geliştirici(ler) | IBM ve ark. |
---|---|
Ad Soyad | IBM Günlüklü Dosya Sistemi |
tanıtıldı | 1990 ve JFS1 ile 1999 AIX 3.1 ve JFS OS / 2 4.5 |
bölüm tanımlayıcısı | 0x35 ( MBR ) |
Yapılar | |
Dizin içeriği | B+ ağacı |
Dosya tahsisi | Bit eşlem/ kapsamlar |
limitler | |
Maks. hacim boyutu | 32 PB ( 32 × 1024 5 bayt ) |
Maks. Dosya boyutu | 4 PB ( 4 × 1024 5 bayt ) |
Maks. dosya sayısı | Sınır tanımlanmadı |
Maks. dosya adı uzunluğu | 255 bayt |
Dosya adlarında izin verilen karakterler | NUL dışında herhangi bir Unicode |
Özellikleri | |
Kaydedilen tarihler | Değişiklik (mtime), öznitelik değişikliği (ctime), erişim (atime) |
Tarih çözünürlüğü | 1 ns |
çatallar | Evet |
Dosya sistemi izinleri | POSIX , ACL'ler |
Şeffaf sıkıştırma | Yalnızca AIX üzerindeki JFS1'de |
Şeffaf şifreleme | Hayır (blok cihaz düzeyinde sağlanır) |
Veri tekilleştirme | Hayır |
Diğer | |
Desteklenen işletim sistemleri | AIX, OS/2, Linux , eComStation , ArcaOS |
Günlüklü Dosya Sistemi ( JFS ), IBM tarafından oluşturulan 64 bitlik bir günlük kaydı dosya sistemidir . AIX , OS/2 , eComStation , ArcaOS ve Linux işletim sistemleri için sürümleri vardır . İkincisi, GNU Genel Kamu Lisansı (GPL) koşulları altında ücretsiz yazılım olarak mevcuttur . HP-UX aslında bir OEM versiyonu başka, farklı dosya sistemi adında JFS vardır Veritas Yazılım 'ın VxFS .
AIX işletim sisteminde, sırasıyla JFS ( JFS1 ) ve JFS2 olarak adlandırılan iki nesil JFS dosya sistemi vardır . OS/2 ve Linux gibi diğer işletim sistemlerinde, yalnızca ikinci nesil mevcuttur ve kısaca JFS olarak adlandırılır . Bu içinde JFS ile karıştırılmamalıdır AIX aslında JFS1 ifade eder.
Tarih
IBM, Şubat 1990'da AIX sürüm 3.1'in ilk yayınıyla birlikte JFS'yi tanıttı. Şimdi AIX üzerinde JFS1 olarak adlandırılan bu dosya sistemi, sonraki on yılda AIX için önde gelen dosya sistemiydi ve binlerce veya milyonlarca müşterinin AIX sistemine kuruldu. Tarihsel olarak, JFS1 dosya sistemi, yalnızca bir işletim sistemini destekleyen bir dosya sistemi için tipik bir tasarım olan AIX'in bellek yöneticisine çok yakından bağlıdır. JFS, Journaling'i destekleyen ilk dosya sistemlerinden biriydi
1995 yılında, dosya sistemini daha ölçeklenebilir hale getirmek ve birden fazla işlemciye sahip makineleri desteklemek için çalışmalar başladı. Diğer bir amaç, birden fazla işletim sisteminde çalışabilen daha taşınabilir bir dosya sistemine sahip olmaktı. Birkaç yıllık tasarım, kodlama ve testten sonra, yeni JFS ilk olarak Nisan 1999'da eBusiness için OS/2 Warp Server'da ve ardından Ekim 2000'de OS/2 Warp Client'ta sevk edildi. Aralık 1999'da orijinalin bir anlık görüntüsü OS/2 JFS kaynağı açık kaynak topluluğuna verildi ve JFS'yi Linux'a taşımak için çalışmalara başlandı . JFS for Linux'un ilk kararlı sürümü Haziran 2001'de çıktı. Linux için JFS projesi, JFS Core Team olarak bilinen küçük bir katkıda bulunanlar grubu tarafından yürütülüyor . Kaynakların bu sürümü aynı zamanda açık kaynaklı JFS'nin OS/2'ye geri bildiriminin temelini oluşturmaya da çalıştı.
Bu çabaya paralel olarak, JFS geliştirme ekibinin bir kısmı 1997 yılında AIX İşletim Sistemi Geliştirme Grubuna geri döndü ve bu yeni JFS kaynak tabanını AIX işletim sistemine taşımaya başladı. Mayıs 2001'de, AIX 5L için ikinci bir günlüklü dosya sistemi, Enhanced Journaled File System (JFS2) kullanıma sunuldu.
2008'in başlarında, IBM'in artık JFS'yi sürdürmekle ilgilenmediği ve bu nedenle üretim ortamlarında kullanılmaması gerektiği yönünde bir spekülasyon vardı. Ancak IBM Linux Teknoloji Merkezi ve JFS Çekirdek Ekibi üyesi Dave Kleikamp, Linux çekirdeğindeki değişiklikleri hala takip ettiklerini ve olası yazılım hatalarını düzeltmeye çalıştıklarını açıkladı . Bazı dağıtımların onlardan daha büyük bir kaynak taahhüdü beklediğini ve dosya sistemini desteklememeyi tercih ettiğini eklemeye devam etti.
2012 yılında, JFS'ye katı hal sürücüleri için TRIM komut desteği eklendi.
Özellikleri
JFS aşağıdaki özellikleri destekler.
günlük
JFS, bir günlük kaydı dosya sistemidir . Ext3 dosya sistemindeki gibi bir eklenti özelliği olarak günlük kaydı eklemek yerine , baştan uygulandı. Günlük 128 MB'a kadar olabilir. JFS yalnızca meta verileri günlükler; bu, meta verilerin tutarlı kalacağı, ancak bir kilitlenme veya güç kaybından sonra kullanıcı dosyalarının bozulabileceği anlamına gelir. JFS günlüklü benzer XFS sadece parçalarını dergileri ki inode'un .
B+ ağacı
JFS, dizinlerdeki aramaları hızlandırmak için bir B+ ağacı kullanır . JFS , girdileri bir B+ ağacına taşımadan önce dizinin inode'unda bir dizinin 8 girdisini saklayabilir . JFS ayrıca bir B+ ağacındaki uzantıları indeksler.
Dinamik düğüm tahsisi
JFS , gerektiğinde disk düğümleri için dinamik olarak alan ayırır . Her inode 512 bayttır. 16 kB Kapsamında 32 düğüm tahsis edilmiştir.
Kapsamlar
JFS, dosyaları bir kapsam olarak ayırır . Kapsam, Agrega bloklarının değişken uzunlukta bir dizisidir. Bir kapsam, birkaç tahsisat grubunda yer alabilir . Bunu çözmek için, kapsam konumlarını bulurken daha iyi performans için kapsamlar bir B+ ağacında dizinlenir.
Sıkıştırma
Sıkıştırma yalnızca AIX üzerindeki JFS1'de desteklenir ve LZ algoritmasının bir varyasyonunu kullanır . Yüksek CPU kullanımı ve artan boş alan parçalanması nedeniyle , sıkıştırmanın tek kullanıcılı bir iş istasyonu veya çevrimdışı yedekleme alanları dışında kullanılması önerilmez .
Eşzamanlı giriş/çıkış (CIO)
JFS normalde dosyalara okuma-paylaşımlı, yazmaya özel kilitleme uygular, bu da veri tutarsızlıklarını önler, ancak dosya düzeyinde yazma serileştirme uygular. CIO seçeneği bu kilitlemeyi devre dışı bırakır. Veri tutarlılığını koruyan ilişkisel veritabanları gibi uygulamalar, dosya sistemi genel giderlerini büyük ölçüde ortadan kaldırmak için bu seçeneği kullanabilir.
Tahsis grupları
JFS, ayırma gruplarını kullanır. Tahsis grupları, toplam alanı parçalara böler. Bu, JFS'nin mükemmel G/Ç performansı elde etmek için kaynak ayırma ilkelerini kullanmasına olanak tanır. İlk politika, disk için iyi bir yerellik elde etmek için aynı AG'de ilgili veriler için disk bloklarını ve disk düğümlerini kümelemeye çalışmaktır. İkinci politika, boş alan parçalanmasını en aza indirgemek amacıyla dosya sistemi genelinde ilgisiz verileri dağıtmaktır. Açık bir dosya olduğunda JFS, dosyanın içinde bulunduğu AG'yi kilitler ve yalnızca açık dosyanın büyümesine izin verir. Bu, yalnızca açık dosya AG'ye yazabileceğinden parçalanmayı azaltır.
süper bloklar
Süper blok , tüm dosya sistemi hakkındaki bilgileri tutar ve aşağıdaki alanları içerir:
- Dosya sisteminin boyutu
- Dosya sistemindeki veri bloklarının sayısı
- Dosya sisteminin durumunu gösteren bir bayrak
- Tahsis grubu boyutları
- Dosya sistemi blok boyutu
Linux'ta
Linux işletim sisteminde, JFS, çekirdek modülü (çekirdek sürümü 2.4.18pre9-ac4'ten beri ) ve JFSutils adı altında paketlenmiş tamamlayıcı kullanıcı alanı yardımcı programları ile desteklenir . Çoğu Linux dağıtımı , canlı CD'ler gibi alan kısıtlamaları nedeniyle özel olarak kaldırılmadığı sürece JFS'yi destekler .
Linux için mevcut dosya sistemlerinin kıyaslamalarına göre, JFS, farklı yük türleri altında sürekli olarak iyi performans ile hızlı ve güvenilirdir.
ext4 tipik olarak daha iyi performans sunduğundan , Linux'ta JFS'nin gerçek kullanımı nadirdir . JFS'nin Linux'ta niş bir rolü vardır: diğer Linux dosya sistemlerinin çoğundan farklı olarak büyük/küçük harfe duyarlı olmayan bir bağlama seçeneği sunar.
JFS ile ilgili günlük yazma uygulaması gibi potansiyel sorunlar da vardır. Teorik olarak sonsuz bir zaman diliminde veri kaybına neden olabilecek, potansiyel olarak süresiz olarak başka bir tetikleyici olana kadar ertelenebilirler.
Ayrıca bakınız
- dosya sistemlerinin listesi
- Dosya sistemlerinin karşılaştırılması
- fsck – Dosya Sistemi Kontrolü yardımcı programı
Referanslar
Dış bağlantılar
- Linux proje web sitesi için JFS
- JFS1 Dosya Sistemi Düzeni , IBM
- JFS2 Dosya Sistemi Düzeni , IBM
- JFSRec , hasarlı bir JFS dosya sisteminden dosyaların ve dizinlerin salt okunur şekilde çıkarılmasını gerçekleştiren bir konsol programı