GFS2 - GFS2

GFS2
Geliştirici (ler)Kırmızı şapka
Ad SoyadGlobal Dosya Sistemi 2
Tanıtıldı2005 ile Linux 2.6.19
Yapılar
Dizin içeriğiHashed (inode'a doldurulmuş küçük dizinler)
Dosya tahsisibitmap (kaynak grupları)
Kötü bloklarHayır
Limitler
Maks. Alan sayısı dosya sayısıDeğişken
Maks. Alan sayısı dosya adı uzunluğu255 bayt
Dosya adlarında izin verilen karakterlerHariç tümü NUL
Özellikleri
Kaydedilen tarihleröznitelik değişikliği (ctime), değişiklik (mtime), erişim (atime)
Tarih çözümlemesiNanosaniye
ÖznitelliklerZaman yok, günlüklü veriler (yalnızca normal dosyalar), günlüklü verileri devralır (yalnızca dizinler), eşzamanlı yazma, yalnızca ekleme, değişmez, exhash (yalnızca dizinler, salt okunur)
Dosya sistemi izinleriUnix izinleri, EKL'ler ve keyfi güvenlik öznitelikleri
Şeffaf sıkıştırmaHayır
Şeffaf şifrelemeHayır
Veri tekilleştirmesadece düğümler arasında
Diğer
Destekleniyor işletim sistemleriLinux
GFS
Geliştirici (ler)Kırmızı şapka (vakti zamanında, Sistina Yazılımı )
Ad SoyadGlobal Dosya Sistemi
Tanıtıldı1996 ile IRIX (1996), Linux (1997)
Yapılar
Dizin içeriğiHashed (inode'a doldurulmuş küçük dizinler)
Dosya tahsisibitmap (kaynak grupları)
Kötü bloklarHayır
Limitler
Maks. Alan sayısı dosya sayısıDeğişken
Maks. Alan sayısı dosya adı uzunluğu255 bayt
Dosya adlarında izin verilen karakterlerNUL hariç tümü
Özellikleri
Kaydedilen tarihleröznitelik değişikliği (ctime), değişiklik (mtime), erişim (atime)
Tarih çözümlemesi1 sn
ÖznitelliklerZaman yok, günlüklü veriler (yalnızca normal dosyalar), günlüklü verileri devralır (yalnızca dizinler), eşzamanlı yazma, yalnızca ekleme, değişmez, exhash (yalnızca dizinler, salt okunur)
Dosya sistemi izinleriUnix izinleri, EKL'ler
Şeffaf sıkıştırmaHayır
Şeffaf şifrelemeHayır
Veri tekilleştirmesadece düğümler arasında
Diğer
Destekleniyor işletim sistemleriIRIX (artık kullanılmıyor), FreeBSD (artık kullanılmıyor), Linux

İçinde bilgi işlem, Global Dosya Sistemi 2 veya GFS2 bir paylaşılan disk dosya sistemi için Linux bilgisayar kümeleri. GFS2, bir kümenin tüm üyelerinin aynı paylaşıma doğrudan eşzamanlı erişime sahip olmasını sağlar blok depolama, kıyasla dağıtılmış dosya sistemleri küme boyunca veri dağıtan. GFS2, tek bir bilgisayarda yerel dosya sistemi olarak da kullanılabilir.

GFS2'nin bağlantısı kesilmiş işletim modu ve istemci veya sunucu rolü yoktur. Bir GFS2 kümesindeki tüm düğümler, eş olarak işlev görür. GFS2'yi bir kümede kullanmak için donanım Paylaşılan depolamaya erişime izin vermek için ve depolamaya erişimi kontrol etmek için bir kilit yöneticisi. Kilit yöneticisi ayrı bir modül olarak çalışır: böylece GFS2, Dağıtılmış Kilit Yöneticisi (DLM) için küme yapılandırmaları ve yerel dosya sistemleri için "nolock" kilit yöneticisi. GFS'nin eski sürümleri, yük devretme yoluyla artıklık uygulayan sunucu tabanlı bir kilit yöneticisi olan GULM'yi de destekler.

GFS ve GFS2 ücretsiz yazılım şartlarına göre dağıtılır GNU Genel Kamu Lisansı.[1][2]

Tarih

GFS'nin geliştirilmesi 1995'te başladı ve başlangıçta Minnesota Universitesi profesör Matthew O'Keefe ve bir grup öğrenci.[3] Başlangıçta için yazılmıştır SGI 's IRIX işletim sistemi, ancak 1998'de Linux Beri açık kaynak kod daha uygun bir geliştirme platformu sağladı. 1999'un sonlarında / 2000'in başlarında Sistina Yazılımı bir süre yaşadığı yer açık kaynak proje. 2001 yılında Sistina, GFS'yi tescilli bir ürün yapma seçimini yaptı.

Geliştiriciler, GFS'nin son genel sürümünden OpenGFS'yi çatalladılar ve daha sonra, OpenDLM ile çalışmasına izin veren güncellemeleri içerecek şekilde daha da geliştirdiler. Ancak OpenGFS ve OpenDLM, Kırmızı şapka Aralık 2003'te Sistina'yı satın aldı ve GFS'yi ve birçok küme altyapısı parçasını GPL Haziran 2004 sonlarında.

Kırmızı şapka daha sonra hata düzeltme ve stabilizasyona yönelik daha fazla geliştirmeyi finanse etti. Daha ileri bir gelişme, GFS2[4][5] GFS'den türetilmiştir ve bununla birlikte dahil edilmiştir dağıtılmış kilit yöneticisi Linux 2.6.19'da (GFS ile paylaşılır). Red Hat Enterprise Linux 5.2, değerlendirme amacıyla çekirdek modülü olarak GFS2'yi içeriyordu. 5.3 güncellemesiyle GFS2, çekirdek paketinin bir parçası oldu.

2009 itibariyleGFS, Fedora, Red Hat Enterprise Linux 5.3 ve üstü ve ilişkili CentOS Linux dağıtımları. Kullanıcılar satın alabilir ticari destek GFS'yi tamamen desteklenen çalıştırmak için Red Hat Enterprise Linux. Dan beri Red Hat Enterprise Linux sürüm 5.3, Red Hat Enterprise Linux Gelişmiş Platformu hiçbir ek ücret ödemeden GFS desteği içerir.

Aşağıdaki liste, bazı sürüm numaralarını ve tanıtılan başlıca özellikleri özetlemektedir:

Donanım

GFS ve GFS2 hedeflerinin tasarımı SAN benzeri ortamlar. Bunları tek düğümlü bir dosya sistemi olarak kullanmak mümkün olsa da, tam özellik seti bir SAN gerektirir. Bu şu şekilde olabilir iSCSI, Fiber Kanal, Etki alanı veya altında sunulabilecek herhangi bir başka cihaz Linux bir dizi düğüm tarafından paylaşılan bir blok cihazı olarak, örneğin bir DRBD cihaz.

DLM gerektirir IP iletişim kurulacak tabanlı ağ. Bu normalde sadece Ethernet ama yine de birçok olası çözüm var. SAN seçimine bağlı olarak, bunu birleştirmek mümkün olabilir, ancak normal uygulama[kaynak belirtilmeli ] için ayrı ağlar içerir DLM ve depolama.

GFS gerektirir eskrim bir çeşit donanım. Bu, GFS / GFS2'nin kendisinden ziyade küme altyapısının bir gereksinimidir, ancak tüm çok düğümlü kümeler için gereklidir. Genel seçenekler arasında güç anahtarları ve uzaktan erişim denetleyicileri (ör. DRAC, IPMI veya ILO ). Eskrim başka bir düğüm başarısız düğüm için günlüğü kurtarırken, kümenin başarısız olduğuna inandığı bir düğümün aniden tekrar çalışmaya başlayamayacağından emin olmak için kullanılır. Ayrıca isteğe bağlı olarak, kurtarma işlemi tamamlandığında başarısız olan düğümü otomatik olarak yeniden başlatabilir.

Yerel bir dosya sisteminden farklılıklar

GFS / GFS2 tasarımcıları yerel bir dosya sistemini yakından taklit etmeyi amaçlasalar da, farkında olunması gereken bazı farklılıklar vardır. Bunlardan bazıları, kümeyle ilgili bilgilerin geçişine izin vermeyen mevcut dosya sistemi arayüzlerinden kaynaklanmaktadır. Bazıları, bu özelliklerin kümelenmiş bir şekilde verimli bir şekilde uygulanmasının zorluğundan kaynaklanmaktadır. Örneğin:

  • sürü () GFS / GFS2'deki sistem çağrısı, sinyaller.
  • fcntl () F_GETLK sistem çağrısı, herhangi bir engelleme kilidinin PID'sini döndürür. Bu bir küme dosya sistemi olduğundan, bu PID, dosya sisteminin bağlı olduğu herhangi bir düğümdeki bir işlemi ifade edebilir. Bu arayüzün amacı engelleme sürecine bir sinyal gönderilmesine izin vermek olduğundan, bu artık mümkün değildir.
  • Kiralamalar lock_dlm (cluster) lock modülüyle desteklenmez, ancak yerel dosya sistemi olarak kullanıldığında desteklenir
  • bildirmek "aynı düğüm" temelinde çalışacaktır, ancak GFS / GFS2 ile kullanılması önerilmez
  • bildirmek "aynı düğüm" temelinde de çalışacaktır ve ayrıca önerilmez (ancak gelecekte desteklenecektir)
  • ekleme yalnızca GFS2'de desteklenir

Tüm benzer küme dosya sistemleri tarafından paylaşılan diğer temel fark, GFS / GFS2 için glocks (Gee-kilitleri olarak telaffuz edilir) olarak bilinen önbellek kontrol mekanizmasının tüm küme üzerinde bir etkiye sahip olmasıdır. Her biri dosya numarası dosya sisteminde kendisiyle ilişkili iki glock vardır. Biri (iopen glock olarak adlandırılır) hangi işlemlerin inode'un açık olduğunu izler. Diğeri (inode glock) o inode ile ilgili önbelleği kontrol eder. Bir glock'un dört durumu vardır: UN (kilidi açılmış), SH (paylaşılan - bir okuma kilidi), DF (ertelenmiş - SH ile uyumlu olmayan bir okuma kilidi) ve EX (özel). Dört modun her biri doğrudan bir DLM kilit modu.

EX modundayken, bir inode'un verileri önbelleğe almasına ve meta veriler ("kirli" olabilir, yani dosya sistemine geri yazmayı bekliyor olabilir). SH modunda, inode verileri ve meta verileri önbelleğe alabilir, ancak kirli olmamalıdır. DF modunda, inode'un yalnızca meta verileri önbelleğe almasına izin verilir ve yine kirli olmamalıdır. DF modu yalnızca doğrudan G / Ç için kullanılır. UN modunda, inode herhangi bir meta veriyi önbelleğe almamalıdır.

Bir inode'un verilerini veya meta verilerini değiştiren işlemlerin birbirini etkilememesi için bir EX kilidi kullanılır. Bu, dosyalardan dosya oluşturma / bağlantılarını kaldırma gibi belirli işlemlerin aynı dizine yazar ve aynı dosya, genel olarak, kümedeki bir düğümle sınırlı olmalıdır. Elbette, bu işlemleri birden çok düğümden yapmak beklendiği gibi çalışacaktır, ancak önbellekleri sık sık temizleme gereksinimi nedeniyle çok verimli olmayacaktır.

GFS / GFS2 performansı hakkında en sık sorulan tek soru, e-posta sunucularında performansın neden düşük olabileceğidir. Çözüm, posta kuyruğunu ayrı dizinlere ayırmak ve her düğümün özel bir dizin kümesine okumasını ve yazmasını (mümkün olduğunca) tutmaya çalışmaktır.

Günlük kaydı

GFS ve GFS2'nin ikisi de günlüklü dosya sistemleri; ve GFS2, benzer bir günlük kaydı modu setini destekler. ext3. İçinde data = geri yazma modunda, yalnızca meta veriler günlüğe kaydedilir. Bu, GFS tarafından desteklenen tek moddur, ancak tek tek veri dosyalarında günlük kaydını açmak mümkündür, ancak bunlar yalnızca sıfır boyutlu olduklarında mümkündür. GFS'de günlüğe kaydedilen dosyalar, üzerlerine uygulanan bir dizi kısıtlamaya sahiptir; örneğin, mmap dosya gönderme sistem çağrıları, ayrıca normal dosyalardan farklı bir disk üstü format kullanırlar. Ayrıca, bir dizinde ayarlandığında, bu dizin içinde oluşturulan tüm dosyaların (ve alt dizinlerin) günlük (veya sırasıyla miras-günlük) bayrağının ayarlanmasına neden olan bir "günlük devralma" özelliği de vardır. Bu, yerine kullanılabilir data = günlük montaj seçeneği olan ext3 destekler (ve GFS / GFS2 desteklemez).

GFS2 ayrıca şunları da destekler: veri = sıralı benzer mod data = geri yazma her günlük temizliği tamamlanmadan önce kirli verilerin eşitlenmesi dışında. Bu, bir inode'a eklenen blokların, yeni boyutu kaydetmek için meta veriler güncellenmeden önce içeriklerinin diske geri senkronize edilmesini sağlar ve böylece, düğüm hatası koşulları altında bir dosyada başlatılmamış blokların görünmesini önler. Varsayılan günlük kaydı modu veri = sıralı, eşleştirmek ext3 varsayılan.

2010 itibariyle, GFS2 henüz desteklemiyor data = günlük modu, ancak (GFS'den farklı olarak) hem normal hem de günlüklü dosyalar için aynı disk üzerindeki biçimi kullanır ve aynı günlüğe kaydedilen ve günlük devralma özelliklerini destekler. GFS2 ayrıca, bir dosyanın günlüğe kaydedilmiş özniteliğinin dosyanın açık olmadığı herhangi bir zamanda değiştirilebileceği durumlarla ilgili kısıtlamaları da gevşetir (aynı zamanda ext3 ).

Performans nedenleriyle, GFS ve GFS2'deki her düğümün kendi günlüğü vardır. GFS'de dergiler disk uzantılarıdır, GFS2'de dergiler sadece normal dosyalardır. Dosya sistemini herhangi bir zamanda bağlayabilen düğümlerin sayısı, mevcut dergi sayısıyla sınırlıdır.

GFS2 ile karşılaştırıldığında GFS2'nin özellikleri

GFS2, GFS'de olmayan bir dizi yeni özellik ekler. Bu sayfanın sağındaki kutularda daha önce bahsedilmeyen özelliklerin bir özeti aşağıda verilmiştir:

  • Meta veri dosya sistemi (gerçekten farklı bir kök) - bkz. Uyumluluk ve GFS2 meta dosya sistemi altında
  • GFS2'ye özgü izleme noktaları, çekirdek 2.6.32'den beri mevcuttur
  • XFS tarzı kota arabirimi, çekirdek 2.6.33'ten beri GFS2'de mevcuttur.
  • Önbelleğe alma ACL'leri 2.6.33'ten beri GFS2'de mevcuttur.
  • GFS2, kısmi provizyon / SCSI TRIM istekleri için "iptal" isteklerinin oluşturulmasını destekler
  • GFS2, G / Ç engellerini destekler (temeldeki cihazın desteklediği varsayılarak varsayılan olarak etkindir. Çekirdek 2.6.33 ve üstü ile yapılandırılabilir)
  • FIEMAP ioctl (diskteki düğümlerin eşlemelerini sorgulamak için)
  • Ekleme (sistem çağrısı) destek
  • Günlük dosyalar için mmap / splice desteği (normal dosyalar ile aynı disk formatında kullanılarak etkinleştirilir)
  • Daha az ayarlanabilir (kurulumu daha az karmaşık hale getirir)
  • Sıralı yazma modu (ext3'e göre, GFS yalnızca geri yazma moduna sahiptir)

Uyumluluk ve GFS2 meta dosya sistemi

GFS2, GFS'den yükseltme yapmanın basit bir prosedür olacağı şekilde tasarlanmıştır. Bu amaçla, disk üzerindeki yapının çoğu GFS ile aynı kalmıştır. büyük adam bayt sıralaması. Yine de birkaç fark var:

  • GFS2, işlemlerin sistem dosyalarına eriştiği bir "meta dosya sistemine" sahiptir
  • GFS2, günlük dosyalar için normal dosyalarla aynı disk üzerindeki formatı kullanır
  • GFS2, dergiler için normal (sistem) dosyaları kullanırken, GFS özel uzantılar kullanır
  • GFS2'de başka "per_node"sistem dosyaları
  • Düzeni dosya numarası (çok az) farklı
  • Dolaylı blokların düzeni biraz farklıdır

GFS ve GFS2'nin günlük kaydı sistemleri birbiriyle uyumlu değildir. Bir araç aracılığıyla yükseltme mümkündür (gfs2_convert), meta verileri güncellemek için dosya sistemi çevrimdışı olarak çalıştırılır. GFS günlüklerindeki bazı yedek bloklar (çok küçük) oluşturmak için kullanılır. per_node güncelleme işlemi sırasında GFS2'nin gerektirdiği dosyalar. Verilerin çoğu yerinde kalır.

GFS2 "meta dosya sistemi" kendi başına bir dosya sistemi değil, bir alternatif kök ana dosya sisteminin. "Normal" bir dosya sistemi gibi davranmasına rağmen, içeriği GFS2 tarafından kullanılan çeşitli sistem dosyalarıdır ve normalde kullanıcıların ona bakmasına gerek yoktur. GFS2 yardımcı programları binmek ve meta dosya sistemini perde arkasında gerektiği gibi ayırın.

Ayrıca bakınız

Referanslar

  1. ^ Teigland, David (29 Haziran 2004). "Simetrik Küme Mimarisi ve Bileşen Teknik Özellikleri" (PDF). Red Hat Inc. Alındı 2007-08-03. Alıntı dergisi gerektirir | günlük = (Yardım)
  2. ^ Soltis, Steven R .; Erickson, Grant M .; Preslan Kenneth W. (1997). "Global Dosya Sistemi: Paylaşılan Disk Depolaması İçin Bir Dosya Sistemi" (PDF). Paralel ve Dağıtık Sistemlerde IEEE İşlemleri. Arşivlenen orijinal (PDF) 2004-04-15 tarihinde.
  3. ^ GFS depolama kümesiyle OpenGFS Veri paylaşımı
  4. ^ Whitehouse, Steven (27-30 Haziran 2007). "GFS2 Dosya Sistemi" (PDF). Linux Sempozyumu 2007 Bildirileri. Ottawa, Ontario, Kanada. s. 253–259.
  5. ^ Whitehouse, Steven (13-17 Temmuz 2009). "Küme dosya sistemlerinin test edilmesi ve doğrulanması" (PDF). Linux Sempozyumu 2009 Bildirileri. Montreal, Quebec, Kanada. sayfa 311–317.

Dış bağlantılar