JFS (dosya sistemi) - JFS (file system)

JFS
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

Referanslar

Dış bağlantılar