Ana içeriğe geç

Kümeler arası yedekleme

Sorun ve amaç​

Bir diskin anlık görüntüsü (snapshot), sanal makinenin (VM) kendisiyle aynı havuzda bulunur. Bu kopya VM içindeki bir hataya karşı korur, ancak havuzun veya sahip düğümünün kaybına karşı korumaz: özgün veri ve kopya birlikte kaybolur. Bir kopyanın depolama katmanındaki bir arızadan sağ çıkması için başka bir kümeye taşınması gerekir.

Kümeler arası yedekleme alt sistemi bu işi üstlenir. Bir küme VM'nin veri akışını gönderir; diğeri onu alır ve geçmişini saklar. Her iki uç da normal vStack Center kümeleridir; kurulumda ayrılmış bir yedekleme sunucusu yoktur.

vStack Center bunun için eksiksiz bir yedekleme ürünü değil, bir dizi temel işlem sağlar. Küme bir zincir oluşturabilir, bir akış alıcısı açabilir, geçmişe ait bir geri yükleme noktası gönderebilir ve artık gerekmeyenleri kaldırabilir. Zamanlamayı, yedek kataloğunu ve saklama ilkesini çağıran — GI, yani küme federasyonu — yürütür. Kümenin kendisi hiçbir şey zamanlamaz ve yedekleme geçmişini izlemez.

Model ve varlıklar​

Yedek zinciri, yedek depolama kümesindeki bir servis veri kümesidir (dataset). Tam adı havuz, bir servis öneki ve bir yaprak addan oluşur: <pool>/.backup/<leaf>. Yaprak adı çağıran seçer, küme ise karakterlerini doğrular: Latin harfleri, rakamlar ve _, ., - simgelerinden oluşan 1 ila 128 karakter. Boşluklar, Kiril karakterleri, eğik çizgiler ve @ işareti -25430 koduyla reddedilir. Küme adın anlamını yorumlamaz. Zincir bir VM değildir: hiçbir VDC'ye (sanal veri merkezi) ait değildir ve VM listelerinde görünmez.

Geri yükleme noktası, bir zincir içindeki anlık görüntüdür. Ona tam yoluyla değil, kısa adıyla, yani @ işaretinden sonraki sonekle başvurulur. Bir zincir, kendisine eklenen kadar nokta barındırır: küme bunların sayısını sınırlamaz ve eskilerini otomatik olarak kaldırmaz.

Zincir için havuzu küme, çağıranı dahil etmeden kendisi seçer. Sahip düğümleri çalışır durumda olan tüketen havuzları değerlendirir ve en fazla boş alana sahip olanı seçer. Oluşturma sırasında bir yedek boyutu tahmini verilirse bu tahmin bir ön filtre görevi görür. Küme zincirin büyümesi için tahmine %20 pay ekler ve boş alanı bu toplamdan az olan havuzları hariç tutar. Filtre, tahmin sıfırdan büyük olduğunda etkinleşir.

VarlıkBaşvuru biçimiAdı kim belirler
Zincirtam yol <pool>/.backup/<leaf>yaprak adı çağıran belirler; havuzu küme seçer
Geri yükleme noktasıkısa anlık görüntü adı (@ işaretinden sonraki sonek)akışı yazan taraf

Zincir yolu, depolama katmanına istenmeyen erişime karşı tek korumadır: düğümlere yalnızca <pool>/.backup/<leaf> biçimindeki yollar iletilir. Küme diğer tüm yolları, istek düğüme ulaşmadan önce -25430 hatasıyla reddeder. Bu nedenle zincir işlemleri aracılığıyla bir VM dataset'ine başvurma girişimi tasarım gereği başarısız olur.

Küme rolleri​

Tek bir prosedüre en fazla üç küme katılır ve bir küme aynı anda birden fazla rolü üstlenebilir.

RolNe yapar
KaynakVM'sinin veri akışını yedek depolama kümesindeki alıcıya gönderir
Yedek depolama (hedef)zincirleri barındırır, akışları alır, geçmiş verileri gönderir, anlık görüntüleri döndürür ve zincirleri siler
Geri yüklemeakışı geri alır ve ondan bir VM dağıtır

Bu sayfanın odağı yedek depolama rolüdür. Zincirleri olan tek rol budur: kaynak, verileri VM dataset'inde tutar; geri yükleme kümesi ise karantinadaki bir alım dataset'inde tutar.

Nasıl çalışır​

Veriler, çağıran üzerinden değil, kümeler arasında doğrudan TCP üzerinden aktarılır. Sırayı bu belirler: önce alıcı, sonra gönderici. Yedek depolama kümesi zincir için bir alıcı açar: bir bağlantı noktası ayırır ve alıcının bağlantı ayrıntılarını — havuzun sahip düğümünün adresini ve bağlantı noktası numarasını — döndürür. Gönderici bu adrese ve bağlantı noktasına bağlanır ve akışı gönderir. Alım zaman aşımı, alıcının bağlantı noktasını kapatmadan önce bir bağlantıyı ne kadar bekleyeceğini belirtir.

Bu yanıt hemen gelir ve yalnızca isteğin düğüme gönderildiği anlamına gelir. Aktarım sonucunu bildirmez, isteğin iletildiğini onaylar.

İşlemler yürütme moduna göre iki gruba ayrılır. Eşzamanlı işlemler sonuçlarını hemen döndürür: bir zincir oluşturulur, bir bağlantı noktası ayrılır veya bir anlık görüntü silinir. Eşzamansız bir aktarım bir iletim onayı döndürür; aktarım sonucu ise düğümden gelen bir geri çağrıyla (callback) ulaşır.

İşlemModNe yaparYanıt
Zincir oluşturmaeşzamanlıbir havuz seçtikten sonra zincir oluştururzincir yolu, havuz, düğüm adresi
Alıcı açmaeşzamanlızincir için bir akış alıcısı açardüğüm adresi ve alım bağlantı noktası
Geri yükleme noktası göndermeeşzamansızbir geri yükleme noktasını harici bir alıcıya göndeririletim onayı; sonuç bir geri çağrıyla gelir
Geri yükleme noktası silmeeşzamanlıtek bir geri yükleme noktasını sileronay
Zincir silmeeşzamanlızincirin tamamını sileronay

Her iki silme biçimi de idempotenttir: önceden silinmiş bir nesne için isteği tekrarlamak durumu bozmaz ve çağıranın özel bir işlem yapmasını gerektirmez.

Erişim ve etkinleştirme​

Alt sistemin beş işleminin tümü aynı yetkiyi gerektirir — 14002, yedek zinciri yönetimi. Kapsamı kümedir: zincir bir VDC'ye bağlı değildir, bu nedenle VDC yöneticisi rolü bu istekleri yapamaz. Yetki modeli Roller ve yetkiler başvurusunda açıklanmıştır.

Yetkiye ek olarak küme düzeyinde bir anahtar vardır: cluster.options içindeki feature.backup parametresi. Varsayılan değeri 0'dır; bu durumda beş işlemden herhangi biri -25420 hatasını döndürür. Her kümenin kendi anahtarı vardır: alt sistem yedek depolama kümesinde etkinleştirilirken diğer kümelerde devre dışı kalabilir.

Kapsam​

Alt sistem veri aktarımını ve depolamayı üstlenir, ancak yedekleme yönetimini üstlenmez. Yapmadıkları:

  • Katalog tutmak. Alt sistemde bir kümenin zincirlerini veya bir zincirdeki anlık görüntüleri listeleyen işlemler yoktur. Kayıtları çağıran tutar: oluşturma sırasında döndürülen zincir yolunu kaydedin, aksi takdirde zincire yeniden erişemezsiniz. Aynı yanıttaki havuz ve düğüm adresi bilgi amaçlıdır — havuzun konumu değiştiğinde değişirler, bu nedenle bunlara güvenmeyin.
  • İşlemleri zamanlamak. Küme düzeyinde zamanlama veya saklama ilkesi yoktur. Döndürmeyi, eskimiş geri yükleme noktalarını tek tek silen harici bir zamanlayıcı yürütür.
  • Artımlı veri göndermek. Geçerli sürümde zincirden yapılan aktarımlar her zaman tam aktarımdır: artımlı aktarımlar ayrılmıştır ve çalışmaz.
  • Aktarım sırasında anlık görüntü oluşturmak. Aktarım, mevcut bir noktayı adıyla gönderir. Gerekli nokta zincirde yoksa oluşturulmaz — işlem bir hatayla başarısız olur.
  • Zincirleri arayüzde göstermek. Kümenin web arayüzünde zincirlere ait ekran yoktur: işlemleri çağıran yönetir.

Ayrıca bakınız​

API yöntemleri​

Bu sayfada ele alınan API işlemleri: backup-dataset-create, backup-dataset-receive, backup-dataset-send, backup-snapshot-remove, backup-dataset-remove, vm-backup-send, vm-backup-restore — API başvurusuna bakın.