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ık | Başvuru biçimi | Adı kim belirler |
|---|---|---|
| Zincir | tam 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.
| Rol | Ne yapar |
|---|---|
| Kaynak | VM'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ükleme | akışı 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.
| İşlem | Mod | Ne yapar | Yanıt |
|---|---|---|---|
| Zincir oluşturma | eşzamanlı | bir havuz seçtikten sonra zincir oluşturur | zincir yolu, havuz, düğüm adresi |
| Alıcı açma | eşzamanlı | zincir için bir akış alıcısı açar | düğüm adresi ve alım bağlantı noktası |
| Geri yükleme noktası gönderme | eşzamansız | bir geri yükleme noktasını harici bir alıcıya gönderir | iletim onayı; sonuç bir geri çağrıyla gelir |
| Geri yükleme noktası silme | eşzamanlı | tek bir geri yükleme noktasını siler | onay |
| Zincir silme | eşzamanlı | zincirin tamamını siler | onay |
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
- Yedek zincirlerini yönetme — oluşturma, akış alma, döndürme ve silme.
- Zincirden geri yükleme noktası gönderme — geçmişe ait bir anlık görüntüyü geri yükleme kümesine aktarma.
- Roller ve yetkiler — yetkiler ve kapsamlar.
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.