LVM anlık görüntüleri bu şekilde mi çalışıyor?


19

LVM anlık görüntülerinin nasıl çalıştığını anlamaya çalışıyorum, böylece dosya sunucumda uygulayabilirim ama google'da bir temel yedekleme sistemi için nasıl kullanılacağı yerine nasıl çalıştığını açıklayan bir şey bulmakta zorluk çekiyorum.

Okuduğum kadarıyla böyle bir şey işe yaradığını düşünüyorum:

  • Birincil bölüm içeren bir LVM'niz var ve bölüm içinde olmayan çok sayıda ayrılmamış serbest alan var
  • Sonra bir anlık görüntü alıp yeni bir Mantıksal Birim üzerine monte edersiniz. Anlık görüntülerde değişiklik olması gerekiyordu, bu yüzden bu ilk anlık görüntü tam bir kopya olacaktı, değil mi?
  • Ardından, ertesi gün başka bir anlık görüntü alırsınız (bu bölümün boyutunun çok büyük olması gerekmez) ve monte edin.
  • Bir şekilde LVM anlık görüntüleri izler ve birincil birimde değişmemiş bitler depolamaz.
  • Sonra yeterli anlık görüntünüzün olduğuna ve ilkinden kurtulmaya karar verirsiniz. Bunun nasıl çalıştığı veya bir sonraki fotoğrafı nasıl etkileyeceği hakkında hiçbir fikrim yok.

Birisi beni yanıldığım yerde düzeltebilir mi? En iyi ihtimalle tahmin ediyorum, Google'da hiçbir şey bulamıyorum.


vgdiplay

obu1: / home / jail / home / qps / backup / D # vgdisplay
  - Hacim grubu ---
  VG Adı dosya sunucusu
  Sistem Kimliği
  Biçim lvm2
  Meta Veri Alanları 1
  Meta Veri Sıra No 3
  VG Access okuma / yazma
  VG Durumu yeniden boyutlandırılabilir
  MAKS. LV 0
  Cur LV 2
  Açık LV 2
  Maks PV 0
  Cur PV 1
  Eylem PV 1
  VG Boyutu 931,51 GB
  PE Boyutu 4.00 MB
  Toplam PE 238467
  Alloc PE / Boyut 238336 / 931.00 GB
  Ücretsiz PE / Boyut 131 / 524.00 MB
  VG UUID qSGaG1-SQYO-D2bm-ohDf-d4eG-oGCY-4jOegU

Yanıtlar:


30

LVM-NASIL belgesinin enstantane bölümüne bakmayacak mısınız?

LVM anlık görüntüleri temel "yazma üzerine kopya" anlık görüntü çözümünüzdür. Anlık görüntü gerçekten LVM'den dosya sisteminin geçerli durumuna bir "işaretçi" vermesini ve anlık görüntüden sonra yapılan değişiklikleri belirli bir alana yazmasını istemekten başka bir şey değildir.

LVM anlık görüntüleri, anlık görüntüye konu olan birimi barındıran birim grubunun içinde "canlı" olur; başka bir birim değil. İfadeniz "... bölme değil, çok sayıda ayrılmamış serbest alan" ifadesi, düşünceleriniz gibi ses çıkarır, anlık görüntülerin, anlık görüntüye tabi ses grubunun dışında "canlı" olması ve bu doğru değildir. Birim grubunuz bir sabit disk bölümünde yaşar ve birim anlık görüntüye ve bu birim grubunda canlı olarak aldığınız tüm görüntülere tabidir.

LVM anlık görüntülerinin kullanılmasının normal yolu uzun süreli depolama için değil, bir yedek alınabilecek şekilde dosya sisteminin tutarlı bir "resmini" elde etmektir. Yedekleme tamamlandığında, anlık görüntü atılır.

Bir LVM anlık görüntüsü oluşturduğunuzda, anlık görüntü etkin durumdayken yapılan değişiklikleri tutmak için bir miktar alan belirlersiniz. Anlık görüntü için alan belirlediğinizden daha fazla değişiklik yapılırsa kullanılamaz hale gelir ve atılması gerekir. Anlık görüntüleri etrafta bırakmak istemezsiniz, çünkü (a) doldurup kullanılamaz hale gelirler ve (b) anlık görüntü etkinken sistemin performansı etkilenir - işler yavaşlar.

Düzenle:

Microsoft Birim Gölge Kopyası Hizmetleri ve LVM anlık görüntüleri çok farklı değildir. Microsoft'un çözümü biraz daha kapsamlıdır (genellikle Microsoft'ta olduğu gibi - daha iyi veya daha kötü için, araçları ve ürünleri genellikle bir şeye odaklanmak yerine oldukça büyük sorunları çözmeye çalışır).

VSS, anlık görüntüleri ve yazılım tabanlı anlık görüntüleri destekleyen donanım aygıtları desteğini tek bir API'da birleştiren daha kapsamlı bir çözümdür. Ayrıca VSS, uygulamaların anlık görüntü API'ları aracılığıyla sessiz hale getirilmesine izin veren API'lere sahipken, LVM anlık görüntüleri sadece anlık görüntülerle ilgilidir - herhangi bir sessiz uygulama sizin probleminizdir (veritabanlarını "yedekleme" durumlarına koymak vb.).


1
Birim Gölge Kopyası'ndan (VSS) sonra tam olarak modellenmemiştir, çünkü VSS böyle çalışmaz mı?
Malfist

Bu çok daha mantıklı.
Malfist

1
Sanırım LVM anlık görüntülerini biraz yanlış anlıyorsunuz. LVM anlık görüntüleri, bağımsız birimler gibi monte edilen "sanal" aygıtlar oluşturur, ancak aslında "bölümler" değildir. LVM anlık görüntüleri, tıpkı VSS anlık görüntüleri gibi anlık görüntüye tabi olan birimin "içinde yaşar".
Evan Anderson

1
Anlık görüntü etkin durumdayken güncellenen verilerin nereye gittiğini açıklığa kavuşturabilir misiniz? ana LV ve anlık görüntü eski blok bir kopyasını saklar? veya ana LV dokunulmadan anlık LV görüntüsüne?
Benoît

1
@ yanıtlayıcının ilk satırındaki bağlantıyı kapsar. LVM1 salt okunur anlık görüntü davranışıyla ilgili notu okuduğunuzda, yanıtınızı alacağınızı düşünüyorum. (Bu tarif ettiğiniz ilk yaklaşım, ikincisi değil.)
Peter Hansen

28

LVM anlık görüntüleri, Evan'ın dediği gibi, üzerine yazıldığında kopyala anlık görüntü çözümünün bir örneğidir. Nasıl çalıştığı Evan'ın ima ettiğinden biraz farklıdır, ancak bir sürü tarafından değil.

Anlık görüntü içermeyen bir LVM biriminiz olduğunda, birime yazdığınız gibi beklediğiniz gibi olur. Bir blok değiştirildi ve hepsi bu.

Anlık görüntü oluşturduğunuz anda LVM bir blok havuzu oluşturur. Bu havuz, birimin LVM meta verilerinin tam bir kopyasını da içerir. Bir inode güncelleme gibi ana birime yazma işlemi gerçekleştiğinde, üzerine yazılan blok bu yeni havuza kopyalanır ve yeni blok ana birime yazılır. Bu 'yazma üzerine kopyalama'. Bu nedenle, bir anlık görüntü alındığında ve ana birimin geçerli durumu arasında ne kadar fazla veri değiştirilirse, o anlık görüntü havuzu tarafından o kadar fazla alan tüketilir.

Anlık görüntüyü bağladığınızda, anlık görüntü alınırken yazılan meta veriler, anlık görüntü havuzu bloklarının birimdeki (veya daha yüksek düzeyli anlık görüntü) değişen bloklar üzerinden eşlenmesine olanak tanır. Bu şekilde belirli bir blok için erişim sağlandığında, LVM hangi blok erişimini bilir. Bu birimdeki dosya sistemi söz konusu olduğunda, anlık görüntü yoktur.

James bu sistemin hatalarından birine dikkat çekti. Aynı birimde birden çok anlık görüntünüz olduğunda, ana birimdeki bir bloğa her yazışınızda, tetiklediğiniz her anlık görüntüye yazabilirsiniz. Bunun nedeni, her anlık görüntünün kendi değiştirilen blok havuzunu tutmasıdır. Ayrıca, uzun anlık görüntü ağaçları için, anlık görüntüye erişmek, sunucuda erişim için hangi tam bloğun sunulması gerektiğini biraz hesaplamaya neden olabilir.

Bir anlık görüntüyü attığınızda, LVM anlık görüntü havuzunu bırakır ve anlık görüntü ağacını gerektiği gibi güncelleştirir. Bırakılan anlık görüntü bir anlık görüntü ağacının parçasıysa, bazı bloklar daha düşük düzeydeki anlık görüntüye kopyalanır. En düşük enstantane (veya tek) ise, havuz düşüyor ve işlem çok hızlı.


Bazı dosya sistemleri dosya içi anlık görüntüler sunar, ZFS ve BTRFS daha iyi bilinen iki sistemdir. Dosya sisteminin kendisi değişmiş / değişmemiş eşleştirmeyi yönetse de benzer şekilde çalışırlar. Muhtemelen bunu yapmanın daha iyi bir yolu çünkü tutarlılık için tüm bir anlık görüntü ailesini fsck edebilirsiniz, bu da düz LVM ile yapamayacağınız bir şeydir.


Bu ayrıntılı açıklama için teşekkür ederiz. "Bu birimdeki dosya sistemi söz konusu olduğunda anlık görüntü yok." Konusunda kafam karıştı . Bunun anlamı hakkında daha fazla bilgi verebilir misiniz? Herhangi bir yanıt için çok teşekkür ederiz ~
Carr

2
@Carr Anlık görüntülerin dosya sisteminin tamamen dışında işlendiği anlamına gelir. BTRFS ve XFS gibi yerleşik anlık görüntü özelliğine sahip diğer dosya sistemlerinde anlık görüntü kavramı vardır ve bu sistemlerle LVM anlık görüntülerini kullanmamalısınız.
sysadmin1138

@ sysadmin1138 FS'nin tutarlılık kontrolü / onarımı amacıyla bahsettiğiniz XFS ile yerleşik anlık görüntüleri merak ediyorum. Kirli bir şekilde inen çoklu TB XFS FS'im var ve çevrimdışı olmadan (yüzlerce kullanıcı, saatlerce çevrimdışı olamaz) kontrol etmek / düzeltmek istiyorum. Ben bir XFS anlık görüntü oluşturma düşünüyorum ve daha sonra canlı dosya sistemi çevrimiçi tutulurken hataları bulmak / düzeltmek için fsck çalışan ve sonra düzeltme yapılırsa, canlı dosya sistemi ile takas düşünüyorum. Bir XFS anlık görüntüsü bu amaç için bir LVM anlık görüntüsünden daha iyi olur mu?
Ján Lalinský

2

Linux veya HP-UX kullanıp kullanmadığınızı belirtmezsiniz. HP-UX'te mantıksal bir birim oluşturur ve bunu başka bir mantıksal birimin anlık görüntüsü olarak bağlarsınız. Linux'ta, anlık görüntü birimi olarak mantıksal bir birim oluşturursunuz.

HP-UX içindeki bir anlık görüntünün kaldırılması, birimin ayarlanmasıyla yapılır; Linux'ta mantıksal hacmi kaldırmak için lvremove kullanılarak yapılır.

Her durumda, değişiklikler anlık görüntünüzde depolanan tek şeydir. Anlık görüntü ne kadar uzun süre kullanılabilir kalırsa, stokta o kadar fazla değişiklik olur ve düzgün boyutlandırılmazsa veya serbest bırakılmazsa dondurulabilir.

Anlık görüntü birimindeki disk erişim hızı, normal birime göre daha yavaştır; bunu dikkate almalısınız.


1

LVM anlık görüntüleri verimsizdir, anlık görüntü sayısı arttıkça sistem yavaşlar.

Ben sadece ne kullandığımız gibi xfs destek ve xfs_freeze dosya sistemine yeni erişimi durdurmak için kullanılabilir ve disk üzerinde kararlı bir görüntü oluşturur.

Yazarken Kopyala, böylece disk alanı verimli bir şekilde kullanılır.

Anlık görüntüler için içinde boş alanı olan bir mantıksal birimde bir dosya sistemi oluşturdunuz.

Bu SSS'den bir örnek

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.