Ext4 ve xfs'de hangi dosya sistemi meta veri işlemleri günlüğe kaydedilir?


9

Hangi dosya sistemi meta veri işlemlerinin ext4 ve xfs dosya sistemi dergileri için gerçekten kalıcı olduğu konusunda basit ve düz bir cevap bulamıyorum. Ben am unutmayın değil POSIX "atom" olarak beyan neyin soran. Atomik dosya sistemi işlemlerinin alt kümesinin, geriye ve her zaman eğilmek zorunda kalmadan etkinleştirilmiş bir dergi ile çalışarak etkili bir şekilde dayanıklı olduğu konusunda daha fazla endişeliyim fsync(2).

İşlemler oldukça eminim:

  • creat(2)
  • link(2)
  • unlink(2)
  • rename(2)
  • mkdir(2)
  • rmdir(2)

Operasyonlardan tam olarak emin değilim:

  • symlink(2)

symlink(2)Olduğu için herhangi bir basit yol olarak görünmüyor yana en, rahatsız fsync(2)ya fdatasync(2)da sembolik bağın içeriği depolamak yatan datablocks. Derginin benim için bununla ilgilendiğini bilmek bir rahatlama olurdu.

Yanıtlar:


1

Performans nedenleriyle, ext4 varsayılan olarak yalnızca günlük dosyası üzerinden dosya sistemi meta verilerini yazar.

Dosya sistemini değiştirmedikçe XFS'nin tüm meta veri işlemlerini de günlüğe kaydettiğine inanıyorum.


Evet ama özellikle "meta veriler" nedir? Bir yönetmenin blokları: tabii. İnotların kendileri: evet. Hedef inode içine sığacak kadar küçük bir hedefe sahip semboller: muhtemelen? Hedefin yardımcı bloklara döküldüğü semboller: ??????

bağlantı yardımcı olur
asdmin

1

Atomik dosya sistemi işlemlerinin alt kümesinin, her zaman geriye ve fsync'e (2) eğilmek zorunda kalmadan etkinleştirilmiş bir dergi ile çalışarak etkili bir şekilde dayanıklı olduğu konusunda daha fazla endişeleniyorum.

Yok. Bir çökmeden sonra değişikliklerin devam ettiğinden emin olmak istiyorsanız, fsync, period gerekir. Günlük kaydı yalnızca bir kilitlenme durumunda, listelediğiniz işlemlerin hiçbirinin yarıya indirilmeyeceğini garanti eder .


Eğer umursam eğer fsync dosyaları ve dizinleri bloklar iplik pas vurur isabetli olup olmadığını kesin olarak bilmek gerekir biliyorum, ama ben bir symlink geri dökülüyorsa blokları fsync sağlar bana bulabildiğim hiçbir yöntem yoktur inode. Bu noktada tek röportajım dergiye güvenmek ya da bir daha asla sembolik bağlantıları kullanmaktır.
rboyer

@naelyn, bir fsync (), hızlı olmayan bir sembolik bağlantı da dahil olmak üzere bir dosyayla ilgili tüm blokları temizler.
psusi

1
hızlı olmayan bir symlink bloklarını temizleyecek bir fsync içinde kullanmak için uygun bir dosya tanımlayıcı nasıl açabilirim?
rboyer

@naelyn, oh evet ... iyi bir nokta ... linux-fsdevel e-posta listesinde bu konuda sormak gerekebilir ... sabit bağlantılar ile ben onu içeren dizini açmak ve senkronize inanıyorum, belki semboller aynı çalışır?
psusi

0

Ext4 günlüğünün işlemle değil, blok numarasıyla çalıştığını biliyorsunuz, değil mi? "Meta veriler", söz konusu bloğu değiştirmek için hangi işlemi kullandığınıza bakılmaksızın, verilen inode için gerçek veri bloklarından başka bir şey olabilir.


0

xfstests , bir dizindeki fsync () öğesinin içerdiği sembolik bağlantıları devam ettirmesi gerektiğini iddia ediyor gibi görünüyor .

Bunu doğrulamadım. Bir şey kaçırmış olabilirim.

xfstests birçok Linux dosya sistemi geliştiricisi tarafından kullanılır. Bu test "jenerik" dizinindedir. Tüm Linux dosya sistemlerine uygulanması gerektiği anlamına gelir. (Ya da en azından tüm blok cihazı dosya sistemleri. Test, özel bir sanal blok cihazı kullanarak çalışır).

https://github.com/kdave/xfstests/blob/master/tests/generic/348

# Test creating a symlink, fsync its parent directory, power fail and mount
# again the filesystem. After these steps the symlink should exist and its
# content must match what we specified when we created it (must not be empty
# or point to something else).
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.