JFS (dosya sistemi) - JFS (file system) - Wikipedia

JFS
Geliştirici (ler)IBM et al.
Ad SoyadIBM Günlüklü Dosya Sistemi
Tanıtıldı1990 ve 1999'da JFS1 ile AIX 3.1 ve JFS girişi OS / 2 4.5
Bölüm tanımlayıcı0x35 (MBR )
Yapılar
Dizin içeriğiB + ağaç
Dosya tahsisiBit eşlem /kapsamlar
Limitler
Maks. Alan sayısı hacim boyutu32 PB  (32 × 10245 bayt)
Maks. Alan sayısı Dosya boyutu4 PB (4 × 10245 bayt)
Maks. Alan sayısı dosya sayısıSınır tanımlanmadı
Maks. Alan sayısı dosya adı uzunluğu255 bayt
Dosya adlarında izin verilen karakterlerHiç Unicode dışında NUL
Özellikleri
Kaydedilen tarihlerDeğişiklik (mtime), öznitelik değişikliği (ctime), erişim (atime)
Tarih çözümlemesi1 ns
ÇatallarEvet
Dosya sistemi izinleriPOSIX, EKL'ler
Şeffaf sıkıştırmaYalnızca AIX üzerindeki JFS1'de
Şeffaf şifrelemeHayır (blok cihaz düzeyinde sağlanır)
Veri tekilleştirmeHayır
Diğer
Destekleniyor işletim sistemleriAIX, OS / 2, Linux, eComStation, ArcaOS

Günlüklü Dosya Sistemi (JFS) bir 64 bit günlük kaydı dosya sistemi tarafından yaratıldı IBM. İçin sürümler var AIX, OS / 2, eComStation, ArcaOS ve Linux işletim sistemleri. İkincisi, aşağıdaki şartlar altında ücretsiz yazılım olarak mevcuttur: GNU Genel Kamu Lisansı (GPL). HP-UX aslında bir OEM sürümü olan JFS adlı başka bir dosya sistemine sahiptir. Veritas Yazılımı 's VxFS.

AIX işletim sisteminde, adı verilen iki nesil JFS dosya sistemi vardır. JFS (JFS1) ve JFS2 sırasıyla.[1][2] OS / 2 ve Linux gibi diğer işletim sistemlerinde, yalnızca ikinci nesil vardır ve basitçe adlandırılır JFS.[3] Bu, JFS ile karıştırılmamalıdır. AIX bu aslında JFS1'i ifade eder.

Tarih

IBM, JFS'yi Şubat 1990'da AIX sürüm 3.1'in ilk yayımıyla tanıttı. Bu dosya sistemi, şimdi AIX üzerinde JFS1, 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 AIX'in bellek yöneticisine çok yakından bağlıdır.[1] Bu, yalnızca bir işletim sistemini destekleyen bir dosya sistemi için tipik bir tasarımdır. JFS, desteklenen ilk dosya sistemlerinden biriydi Günlük kaydı

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 çok işletim sisteminde çalışabilen daha taşınabilir bir dosya sistemine sahip olmaktı. Birkaç yıl süren tasarım, kodlama ve testlerden sonra, yeni JFS ilk olarak eBusiness için OS / 2 Warp Server'da Nisan 1999'da ve ardından OS / 2 Warp Client'ta Ekim 2000'de gönderildi. Aralık 1999'da, orijinalin anlık görüntüsü OS / 2 JFS kaynağı, açık kaynak topluluk ve çalışmalar JFS'yi Linux. İlk kararlı sürümü Linux için JFS Haziran 2001'de ortaya çıktı.[3] Linux için JFS proje, küçük bir katılımcı grubu tarafından sürdürülmektedir. JFS Çekirdek Ekibi.[4] Kaynakların bu sürümü, açık kaynaklı JFS'nin OS / 2'sine bir yeniden bağlantı noktasının temelini oluşturmak için de çalıştı.

Bu çabaya paralel olarak, JFS geliştirme ekibinin bir kısmı 1997'de 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 ikinci bir günlüklü dosya sistemi, Gelişmiş Günlüklü Dosya Sistemi (JFS2), AIX 5L için kullanıma sunuldu.[1][3]

2008'in başlarında, IBM'in artık JFS'yi korumakla ilgilenmediği ve bu nedenle üretim ortamlarında kullanılmaması gerektiği yönünde spekülasyonlar vardı.[5] Ancak, bir üye olan Dave Kleikamp IBM Linux Teknoloji Merkezi ve JFS Çekirdek Ekibi,[4] hala değişiklikleri takip ettiklerini açıkladı Linux çekirdeği ve potansiyeli düzeltmeye çalışın yazılım hataları. Bazı dağıtımların onlardan daha büyük bir kaynak taahhüdü beklediğini ve dosya sistemini desteklememeyi tercih ettiğini ekledi.[6]

2012 yılında TRIM için komut desteği Yarıiletken sürücüler JFS'ye eklendi.[7]

Özellikleri

JFS aşağıdaki özellikleri desteklemektedir.[8][9]

Günlük

JFS bir günlük kaydı dosya sistemi. Günlük tutmayı şuradaki gibi bir eklenti özellik olarak eklemek yerine ext3 dosya sistemi, baştan uygulandı. Günlük, 128 MB'a kadar olabilir. JFS günlükleri yalnızca meta verileri tutar; bu, meta verilerin tutarlı kalacağı ancak kullanıcı dosyalarının bir çökme veya güç kaybından sonra bozulabileceği anlamına gelir. JFS'nin günlük kaydı şuna benzer: XFS sadece bazı kısımlarını günlükler dosya numarası.[10]

B + ağaç

JFS bir B + ağaç Dizinlerdeki aramaları hızlandırmak için. JFS, bir dizinin 8 girişini dizinin içinde saklayabilir dosya numarası girişleri bir B + ağacına taşımadan önce. JFS ayrıca bir B + ağacındaki kapsamları indeksler.

Dinamik inode tahsisi

JFS, disk için dinamik olarak alan ayırır düğümler gerektiği gibi. Her bir inode 512 bayttır. 16 kB Kapsamında 32 düğüm tahsis edilmiştir.

Kapsamlar

JFS, dosyaları bir kapsam. Kapsam, değişken uzunlukta bir Agrega blokları dizisidir. Bir kapsam birkaç yerde bulunabilir tahsis grupları. Bunu çözmek için, kapsam konumlarını belirlerken daha iyi performans için kapsamlar bir B + ağacında indekslenir.

Sıkıştırma

Sıkıştırma yalnızca AIX üzerindeki JFS1'de desteklenir ve LZ algoritması. Yüksek yüzünden CPU kullanımı ve artan boş alan parçalanma, sıkıştırma tek bir kullanıcı dışında kullanılması tavsiye edilmez iş istasyonu veya çevrimdışı destek olmak alanlar.[2][11]

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 seviyesinde yazma serileştirmesini gerektirir. CIO seçeneği bu kilitlemeyi devre dışı bırakır. Veri tutarlılığını kendileri koruyan ilişkisel veritabanları gibi uygulamalar, dosya sistemi ek yüklerini büyük ölçüde ortadan kaldırmak için bu seçeneği kullanabilir.[12]

Tahsis grupları

JFS, ayırma gruplarını kullanır. Tahsis grupları, toplam alanı parçalara böler. Bu, JFS'nin mükemmel bir G / Ç performansı elde etmek için kaynak ayırma ilkelerini kullanmasına izin verir. İlk ilke, disk için iyi bir konum elde etmek için disk bloklarını ve ilgili veriler için disk düğümlerini aynı AG'de kümelemeyi denemektir. İkinci ilke, boş alan parçalanmasını en aza indirmek amacıyla ilgisiz verileri dosya sistemi boyunca dağıtmaktır. Açık bir dosya olduğunda JFS, dosyanın bulunduğu AG'yi kilitler ve yalnızca açık dosyanın büyümesine izin verir. Yalnızca açık dosya AG'ye yazabildiğinden bu, parçalanmayı azaltır.

Süper kilitler

süper blok tüm dosya sistemi hakkında bilgi 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ünden beri 2.4.18pre9-ac4) ve tamamlayıcı Kullanıcı alanı adı altında paketlenmiş yardımcı programlar JFSutils. Çoğu Linux dağıtımları gibi alan kısıtlamaları nedeniyle özel olarak kaldırılmadığı sürece JFS'yi destekleyin. canlı CD'ler.[kaynak belirtilmeli ]

Linux için mevcut dosya sistemlerinin karşılaştırmalı değerlendirmelerine göre, JFS hızlı ve güvenilirdir ve farklı yük türleri altında sürekli olarak iyi performans gösterir.[13]

JFS'nin Linux'ta fiili kullanımı nadirdir, çünkü ext4 genellikle daha iyi performans sunar[kaynak belirtilmeli ]. JFS, Linux'ta niş bir role sahiptir: diğer Linux dosya sistemlerinin çoğunun aksine, büyük / küçük harfe duyarlı olmayan bir bağlama seçeneği sunar.[14]

JFS ile ilgili dergi yazılarının uygulanması gibi olası sorunlar da vardır. Başka bir tetikleyici olana kadar ertelenebilirler - potansiyel olarak süresiz, bu da teorik olarak sonsuz bir zaman diliminde veri kaybına neden olabilir.[15]

Ayrıca bakınız

Referanslar

  1. ^ a b c "JFS için Mini SSS". Linux için JFS projesi.
  2. ^ a b "AIX üzerinde JFS1 ve JFS2 karşılaştırması". IBM.
  3. ^ a b c "JFS, ReiserFS ve XFS Arkasındaki Kişilerle Röportaj".
  4. ^ a b "Linux için JFS". JFS.SourceForge.net. Alındı 26 Ağustos 2020.
  5. ^ "Re: hangisi kullanılır: ext3, JFS, XFS, ReiserFS?". Arşivlenen orijinal Mart 3, 2016. Alındı 31 Mart, 2008.
  6. ^ SourceForge.net: jfs-tartışma
  7. ^ "JFS Dosya Sistemi için TRIM desteği".
  8. ^ "JFS'ye genel bakış". Steve Best, IBM. Arşivlenen orijinal 29 Ocak 2008. Alındı 9 Ocak 2008.
  9. ^ "JFS Düzeni" (PDF). Steve Best, IBM. Alındı 1 Mayıs, 2008.
  10. ^ David Kleikamp. "JFS günlüğü". OSDIR. Arşivlenen orijinal Mart 3, 2016. Alındı 7 Temmuz 2008.
  11. ^ "AIX Wiki: JFS". IBM. Arşivlenen orijinal 28 Mayıs 2006.
  12. ^ "AIX Eşzamanlı G / Ç ile Veritabanı Performansını İyileştirme - Teknik Rapor" (PDF). IBM.com. IBM.
  13. ^ "Linux 3.17 Çekirdeğinde Bir SSD İle 9 Yollu Dosya Sistemi Karşılaştırması". Phoronix.com. Alındı 7 Temmuz 2020.
  14. ^ "jfs_mkfs: JFS biçimli bir bölüm oluşturun - Linux Man Pages (8)". SysTutorials.com. Alındı 7 Temmuz 2020.
  15. ^ Günlük Dosya Sistemlerinin Analizi ve Evrimi - V. Prabhakaran ve diğerleri 2013-06

Dış bağlantılar