Yumuşak güncellemeler - Soft updates

Yazılım güncellemeleri , bir çökme veya elektrik kesintisi durumunda dosya sistemi meta-veri bütünlüğünü korumaya yönelik bir yaklaşımdır . Yazılım güncellemeleri, dosya sistemi meta verilerindeki güncellemeler arasındaki bağımlılıkları izleyerek ve uygulayarak çalışır. Yazılım güncellemeleri, daha yaygın olarak kullanılan dosya sistemleri günlük kaydı yaklaşımına bir alternatiftir .

çalışma yöntemi

Yazılım güncellemeleri yalnızca , disk üzerindeki dosya sistemini tutarsız hale getirmeyen veya meydana gelen tek tutarsızlığın bir depolama alanı sızıntısı (herhangi bir dosya tarafından kullanılmadığında ayrılmış olarak işaretlenmiş alan) olduğu zaman uyumsuz meta veri yazmalarına izin verir . Bir meta veri bloğunun, yazarken potansiyel olarak temizlenmemiş veya kısmen geri alınmış başka bir bloğa bağlı olan herhangi bir bölümünü geçici olarak "geri alarak" sıralı eşzamanlı meta veri yazmaları yapmaktan kaçınır.

Gerçekte, bloklar herhangi bir zamanda temizlenebilir ve yazılım güncelleme kodu her zaman diske tutarlı bir sürümünü sağlar (hangi blokların fiziksel olarak temizlendiğini bildiği sürece). Kurtarma, daha sonra, çöp kutusuna bir sonraki takıldığında, artık kalan herhangi bir ayrılmış alanı toplamak için dosya sisteminin bir arka plan yürüyüşünü çalıştırma meselesi haline gelir . Bu aynı zamanda dosya sisteminin tüm meta veri bloklarını veya tüm kayıtları temizlemek zorunda kalmadan belirli dosyaları seçici olarak temizlemesine izin verir.

Diske yazılmadan önce metadata bağımlılık grafiğinden bağlantısı kaldırılan verilerin diske yazılmasına gerek yoktur. Örneğin, bir dosya oluşturmak, onu kısa bir süre kullanmak ve ardından silmek, hiçbir disk etkinliğinin olmamasına neden olabilir.

Yazılım güncellemeleri, meta verilerin geçici olmayan depolamaya periyodik olarak temizlenmesini gerektirir.

Uygulamalar

FreeBSD , UFS dosya sistemi için yazılım güncellemelerini destekler ve uzun yıllardır kurulum sırasında varsayılan olarak etkinleştirilmiştir. Yazılım güncellemeleri, newfskomut seçeneğiyle dosya sistemi oluşturma sırasında manuel olarak etkinleştirilir veya devre dışı bırakılır . Daha sonra tunefskomut seçeneğiyle devre dışı bırakılabilir veya etkinleştirilebilirler . FreeBSD 9.0, fsckbir çökmeden sonra çöp toplama için bir arka planı ortadan kaldırmak amacıyla yazılım güncellemelerine bir günlük kaydı eki sundu . Ancak, yazılım güncellemelerine sahip bir dosya sisteminde günlük kaydının etkinleştirilmesi, dosya sistemi anlık görüntüleri oluşturma özelliğini devre dışı bırakır. Bu, döküm sırasında dosya sistemi tutarlılığını garanti etmek için anlık görüntüler kullanıldığından, dosya sistemleri -L seçeneğiyle döküldüğünde sorunlara neden olabilir.

OpenBSD , FFS dosya sistemi için yazılım güncellemelerini destekler. Yazılım güncellemeleri, mount komutuna bir seçenek uygulanarak dosya sistemi monte edildiğinde etkinleştirilir.

NetBSD , WAPBL günlük kaydı lehine kullanımdan kaldırıldığı 6.0 sürümüne (2012) kadar yazılım güncellemelerini destekledi .

Günlük kaydı dosya sistemleriyle karşılaştırma

Ne günlük kaydı ne de yazılım güncellemeleri hiçbir verinin kaybolmayacağını garanti etmez, ancak dosya sisteminin tutarlı kalmasını sağlar.

Yazılım güncellemelerine sahip bir dosya sisteminin bir avantajı, günlük tekrarı olmadığı için bir çökmeden hemen sonra monte edilebilmesidir.

Notlar

  • Ganger, Gregory R.; Patt, Yale N. (Kasım 1994). "Dosya Sistemlerinde Meta Veri Güncelleme Performansı" (PDF) . USENIX İşletim Sistemleri Tasarımı ve Uygulaması Sempozyumu Bildiriler Kitabı (OSDI) : 49–60.

Dış bağlantılar

Referanslar