NTFS, BTRFS'deki anlık görüntü davranışını nasıl alır?


0

Anlık görüntüleri LVM olmadan kullanabilmek için Sanal Kutu’daki VM’leri barındırmak için BTRFS kullanmak istiyorum. Teoride CoW, performans nedenlerinden ötürü her zaman davranışa ihtiyacım yok ve kullanmaya nodatacowihtiyacım yok gibi görünüyor. Bunun yerine sahip olmak istediğim bir yaklaşım, Windows ve NTFS'in kullandığı gibi görünüyor: Veriler her zaman olmadan değişiyor CoW, ancak biri bir dosya sistemi görüntüsü oluşturuyorsa, mevcut verileri bu verileri kopyalayarak uzak tutuyor eğer herhangi bir şekilde değiştirilecekse. Önemli olan, bunun anlık görüntü başına yalnızca bir kez ve gerçekten yalnızca değiştirilmiş bloklar için tam olarak bir kez meydana geldiği görünüyor. Bu nedenle, değiştirilecek bir bloğun ilk önce kopyalanmasından sonra, aynı bloğa müteakip tüm değişiklikler, yine bir CoWdavranış olmadan tekrar uygulanır .

Orijinal veri bloğunu güvenli bir yere kopyalamanın yanı sıra, performans perspektifinden bu bana çok mantıklı geliyor ve VM'leri barındırmak için tam da bu davranışa sahip olmak istiyorum. Bunlar her zaman bazı veriler yazıyor ve CoWtüm bu değişiklikler için nasıl bir davranışa ihtiyacım olduğunu anlamıyorum .

Sadece CoWbir dosya sistemi anlık görüntüsü oluşturduktan sonra istiyorum , örneğin yedekleme amacıyla. Daha sonra CoW, enstantanelerimi ihtiyacım olduğu sürece tutarlı tutabilmek için elbette ihtiyacım var. Fakat yine de, anlık görüntüleri oluşturduktan sonra bile CoW, tüm veriler için sonsuza dek ihtiyacım olmayacak , ancak daha sonra değişen bloklar için sadece bir kez. İlk değişiklikten sonraki tüm değişiklikler basitçe olduğu gibi uygulanabilir CoW.

BTRFS belgeleri hakkındaki düşüncelerime göre, CoWbir dosyaya bir kez gelirse, sonsuza dek devam eder. Ama elbette yanlış olabilirim ...

Peki, BTRFS ile mümkün olanı yapmak ister miyim?


Aslında CoW ile performans problemleri yaşadınız mı yoksa teorik konular hakkında mı endişelisiniz?
Daniel B,

@DanielB Sadece endişelerim ve bir şeyler hakkında düşünüyorum, çünkü biri CoW ile ilgili çok farklı ifadeler okuyabilir ve VM'leri veya veritabanlarıyla vakaları kullanabilir.
Thorsten Schöning,

FS veya VM anlık görüntülerinden mi bahsediyorsunuz?
Seth

@Seth dosya sistemi seviyesi anlık görüntüler.
Thorsten Schöning,

1
Sadece FYI, bu gerçekten NTFS'nin bir işlevi değil. Birim gölge kopyası, birim sürücüsünün üzerinde ve dosya sistemi sürücüsünün altında bulunur. Gibi dosya sistemi agnostic. Dosya sistemi meta verileri, dosya içerikleri veya bunlardan herhangi biriyle ilgilenmez. Her şey mantıksal bloklar (bir birim içindeki bloklar) cinsinden yapılır.
Jamie Hanrahan

Yanıtlar:


1

Bir CoWdosyaya bir kez gelirse, sonsuza dek devam eder. Ama elbette yanlış olabilirim.

Bence yanılıyorsun. Monte edilmiş bir BTRFS biriminin anlık görüntülerini almaklanodatacow ilgili bu soruyu buldum . Davanız için çok önemli görünen bir alıntı var ( BTRFS posta listesinden ):

Bir NOCOW dosyasında, bir anlık görüntünün hala bir COB olması gerekir, çünkü anlık görüntü eski sürümü yerine kilitler ve şimdi fileblock değişmiştir, bu yüzden NOCOW'un sipariş edilene rağmen başka bir yere yazılması gerekir. anlık görüntüyü olduğu gibi tutmak için. Ancak, dosya NOCOW özniteliğini korur ve aynı fileblock'a ek yazma işlemi bir sonraki anlık görüntüye kadar yerinde olur.

nodatacowMount seçeneği size istediğinizi tam olarak verir gibi görünüyor . Sadece sınırlamaların olduğunu unutmayın:

nodatacow
Yeni oluşturulan dosyalar için yazma üzerine veri kopyalamayın , mevcut dosyalar etkilenmez. Bu aynı zamanda sağlama toplamı kapatır! […] Sistem arızalarında potansiyel olarak kısmen güncellenen dosyalar elde ediliyor. […] Sıkıştırmayı kapatıyor!

Kaynak: BTRFS montaj seçenekleri .


Harika kaynak, teşekkürler! Sınırlamalar hiç sorun olmayabilir, örneğin ext4 veya NTFS kullanarak zaten aynı şeylere sahibim ve potansiyel olarak bunlarla yaşayabilirim. Sonunda, seçim yapabilmek sadece iyidir. :-)
Thorsten Schöning, 23.07
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.