Yedekleme Bölüm 7: Sonuçlar

Yedekleme Bölüm 7: Sonuçlar

Bu not yedeklemeyle ilgili döngüyü tamamlar. Yedekleme için uygun olan özel bir sunucunun (veya VPS) mantıksal organizasyonunu tartışacak ve ayrıca bir felaket durumunda çok fazla kesinti olmadan bir sunucuyu yedekten hızlı bir şekilde geri yükleme seçeneği sunacaktır.

Ham veriler

Özel bir sunucuda çoğunlukla birinci düzey bir RAID dizisini (ayna) düzenlemeye yarayan en az iki sabit sürücü bulunur. Bir disk arızalanırsa sunucuyu çalıştırmaya devam edebilmek için bu gereklidir. Bu normal bir özel sunucuysa, SSD'de aktif önbelleğe alma teknolojisine sahip ayrı bir donanım RAID denetleyicisi bulunabilir, böylece normal sabit sürücülere ek olarak bir veya daha fazla SSD bağlanabilir. Bazen, yalnızca yerel disklerin SATADOM (küçük diskler, yapısal olarak bir SATA bağlantı noktasına bağlı bir flash sürücü) veya hatta özel bir dahili bağlantı noktasına bağlı sıradan bir küçük (8-16 GB) flash sürücü olduğu özel sunucular sunulur ve veriler depolama sisteminden alınır, özel bir depolama ağı (Ethernet 10G, FC vb.) aracılığıyla bağlanır ve doğrudan depolama sisteminden yüklenen özel sunucular bulunur. Bu tür seçenekleri dikkate almayacağım, çünkü bu gibi durumlarda sunucuyu yedekleme görevi sorunsuz bir şekilde depolama sisteminin bakımını yapan uzmana geçer; genellikle anlık görüntüler oluşturmak, yerleşik veri tekilleştirme ve sistem yöneticisinin diğer eğlenceleri için çeşitli özel teknolojiler vardır. , bu serinin önceki bölümlerinde tartışılmıştır. Özel bir sunucunun disk dizisinin hacmi, sunucuya bağlı disklerin sayısına ve boyutuna bağlı olarak onlarca terabayta ulaşabilir. VPS söz konusu olduğunda, hacimler daha mütevazıdır: genellikle 100 GB'tan fazla değildir (ancak daha fazlası da vardır) ve bu tür VPS'nin tarifeleri, aynı barındırıcının en ucuz özel sunucularından kolaylıkla daha pahalı olabilir. Bir VPS'nin çoğunlukla bir diski vardır çünkü altında bir depolama sistemi (veya hiper birleşik bir şey) bulunur. Bazen bir VPS'de farklı amaçlara yönelik, farklı özelliklere sahip birkaç disk bulunur:

  • küçük sistem - işletim sistemini kurmak için;
  • büyük - kullanıcı verilerini depolamak.

Sistemi kontrol panelini kullanarak yeniden yüklediğinizde, kullanıcı verilerinin bulunduğu diskin üzerine yazılmaz, ancak sistem diski tamamen yeniden doldurulur. Ayrıca, VPS durumunda, barındırma sağlayıcısı VPS'nin (veya diskin) durumunun anlık görüntüsünü alan bir düğme sunabilir, ancak kendi işletim sisteminizi kurarsanız veya VPS içinde istediğiniz hizmeti etkinleştirmeyi unutursanız, bazı verilerin bir kısmı hala kaybolmuş olabilir. Düğmeye ek olarak, genellikle çok sınırlı olan bir veri depolama hizmeti de sunulur. Tipik olarak bu, FTP veya SFTP yoluyla, bazen SSH ile birlikte, basitleştirilmiş bir kabuğa (örneğin, rbash) veya yetkili_anahtarlar (ForcedCommand aracılığıyla) aracılığıyla komut çalıştırma konusunda kısıtlamaya sahip bir hesaptır.

Özel bir sunucu, 1 Gbps hızındaki iki bağlantı noktasıyla ağa bağlanır, bazen bunlar 10 Gbps hızındaki kartlar olabilir. VPS'nin çoğunlukla bir ağ arayüzü vardır. Çoğu zaman veri merkezleri, veri merkezi içindeki ağ hızını sınırlamaz ancak İnternet erişim hızını sınırlar.

Böyle bir özel sunucunun veya VPS'nin tipik yükü bir web sunucusu, bir veritabanı ve bir uygulama sunucusudur. Bazen bir web sunucusu veya veritabanı da dahil olmak üzere çeşitli ek yardımcı hizmetler kurulabilir: arama motoru, posta sistemi vb.

Özel olarak hazırlanmış bir sunucu, yedek kopyaların saklanması için bir alan görevi görür, bunun hakkında daha sonra daha ayrıntılı olarak yazacağız.

Disk sisteminin mantıksal organizasyonu

Bir RAID denetleyiciniz veya tek diskli bir VPS'niz varsa ve disk alt sisteminin çalışması için özel bir tercihiniz yoksa (örneğin, veritabanı için ayrı bir hızlı disk), tüm boş alan şu şekilde bölünür: bir bölüm oluşturulur ve bunun üzerine bir LVM birim grubu oluşturulur, içinde birkaç birim oluşturulur: aynı boyutta 2 küçük birim, kök dosya sistemi olarak kullanılır (hızlı geri alma olasılığı için güncellemeler sırasında tek tek değiştirilir, fikir Linux Hesapla dağıtımından alınmıştır), bir diğeri takas bölümü içindir, boş alanın geri kalanı küçük hacimlere bölünmüştür, tam teşekküllü kaplar için kök dosya sistemi, sanal makineler için diskler, dosya olarak kullanılır /home içindeki hesaplar için sistemler (her hesabın kendi dosya sistemi vardır), uygulama kapsayıcıları için dosya sistemleri.

Önemli not: ciltler tamamen bağımsız olmalıdır; birbirlerine veya kök dosya sistemine bağlı olmamalıdır. Sanal makineler veya konteynerler söz konusu olduğunda bu nokta otomatik olarak gözlemlenir. Bunlar uygulama kapsayıcıları veya ana dizinlerse, web sunucusunun ve diğer hizmetlerin yapılandırma dosyalarını, birimler arasındaki bağımlılıkları mümkün olduğunca ortadan kaldıracak şekilde ayırmayı düşünmelisiniz. Örneğin, her site kendi kullanıcısından çalışır, site yapılandırma dosyaları kullanıcının ana dizinindedir, web sunucusu ayarlarında, site yapılandırma dosyaları /etc/nginx/conf.d/ aracılığıyla dahil edilmez..conf ve örneğin /home//configs/nginx/*.conf

Birkaç disk varsa, yukarıda önerilen kurallara göre LVM oluşturabileceğiniz bir yazılım RAID dizisi oluşturabilir (ve bir ihtiyaç ve fırsat varsa, bunun bir SSD'de önbelleğe alınmasını yapılandırabilirsiniz). Ayrıca bu durumda ZFS veya BtrFS kullanabilirsiniz, ancak bunu iki kez düşünmelisiniz: her ikisi de kaynaklara çok daha ciddi bir yaklaşım gerektirir ve ayrıca ZFS, Linux çekirdeğine dahil değildir.

Kullanılan şemadan bağımsız olarak, disklere değişiklik yazmanın yaklaşık hızını önceden tahmin etmek ve ardından anlık görüntüler oluşturmak için ayrılacak boş alan miktarını hesaplamak her zaman faydalı olacaktır. Örneğin, sunucumuz saniyede 10 megabayt hızında veri yazıyorsa ve tüm veri dizisinin boyutu 10 terabayt ise, senkronizasyon süresi bir güne (22 saat) ulaşabilir - bu, böyle bir birimin aktarılacağı miktardır ağ üzerinden 1 Gbps) - yaklaşık 800 GB ayırmaya değer. Gerçekte rakam daha küçük olacaktır; onu mantıksal hacimlerin sayısına güvenle bölebilirsiniz.

Yedekleme depolama sunucusu cihazı

Yedek kopyaları depolamak için kullanılan sunucular arasındaki temel fark, büyük, ucuz ve nispeten yavaş diskleridir. Modern HDD'ler bir diskte 10TB çıtasını zaten aşmış olduğundan, dosya sistemlerini veya sağlama toplamlı RAID'i kullanmak gerekir, çünkü dizinin yeniden oluşturulması veya dosya sisteminin geri yüklenmesi sırasında (birkaç gün!) ikinci disk arızalanabilir. artan yüke. 1 TB'ye kadar kapasiteye sahip disklerde bu o kadar hassas değildi. Açıklamanın basitliği açısından, disk alanının yaklaşık olarak eşit boyutta iki parçaya bölündüğünü varsayıyorum (yine örneğin LVM kullanılarak):

  • kullanıcı verilerini depolamak için kullanılan sunuculara karşılık gelen birimler (yapılan son yedekleme, doğrulama için bunlara dağıtılacaktır);
  • BorgBackup depoları olarak kullanılan birimler (yedekleme verileri doğrudan buraya gidecektir).

Çalışma prensibi, savaş sunucularından gelen verilerin gideceği BorgBackup depoları için her sunucu için ayrı birimlerin oluşturulmasıdır. Depolar, kasıtlı olarak veri silme olasılığını ortadan kaldıran ve veri tekilleştirme ve depoların eski yedeklerden periyodik olarak temizlenmesi nedeniyle yalnızca ekleme modunda çalışır (yıllık kopyalar kalır, geçen yıl için aylık, son ay için haftalık, son ay için günlük). geçen hafta, muhtemelen özel durumlarda - son gün için saatlik: toplam 24 + 7 + 4 + 12 + yıllık - her sunucu için yaklaşık 50 kopya).
BorgBackup depoları salt ekleme modunu etkinleştirmez; bunun yerine .ssh/authorized_keys dosyasındaki ForcedCommand şunun gibi bir şekilde kullanılır:

from="адрес сервера",command="/usr/local/bin/borg serve --append-only --restrict-to-path /home/servername/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc AAAAA.......

Belirtilen yol, borg'un üstünde, ikili dosyayı parametrelerle başlatmanın yanı sıra, veriler kaldırıldıktan sonra yedek kopyayı geri yükleme işlemini de başlatan bir sarmalayıcı komut dosyası içerir. Bunu yapmak için sarmalayıcı komut dosyası, ilgili havuzun yanında bir etiket dosyası oluşturur. Yapılan son yedekleme, veri doldurma işlemi tamamlandıktan sonra otomatik olarak ilgili mantıksal birime geri yüklenir.

Bu tasarım, gereksiz yedeklemeleri periyodik olarak temizlemenize olanak tanır ve aynı zamanda savaş sunucularının, yedekleme depolama sunucusundaki herhangi bir şeyi silmesini de engeller.

Yedekleme Süreci

Yedeklemeyi başlatan, özel sunucu veya VPS'nin kendisidir, çünkü bu şema, bu sunucunun yedekleme işlemi üzerinde daha fazla kontrol sağlar. İlk olarak, BorgBackup kullanılarak yedek depolama sunucusuna bağlanan ve yüklenen aktif kök dosya sisteminin durumunun anlık görüntüsü alınır. Veri yakalama tamamlandıktan sonra anlık görüntünün bağlantısı kesilir ve silinir.

Küçük bir veritabanı varsa (her site için 1 GB'a kadar), aynı siteye ait verilerin geri kalanının bulunduğu uygun mantıksal birime kaydedilen bir veritabanı dökümü yapılır, ancak dökümün web sunucusu üzerinden erişilemez. Veritabanları büyükse, örneğin MySQL için xtrabackup kullanarak "sıcak" veri kaldırmayı yapılandırmalı veya PostgreSQL'de archive_command ile WAL ile çalışmalısınız. Bu durumda veritabanı site verilerinden ayrı olarak geri yüklenecektir.

Konteynerler veya sanal makineler kullanılıyorsa qemu-guest-agent, CRIU veya diğer gerekli teknolojileri yapılandırmanız gerekir. Diğer durumlarda, çoğu zaman ek ayarlara ihtiyaç duyulmaz; yalnızca mantıksal birimlerin anlık görüntülerini oluştururuz ve bunlar daha sonra kök dosya sisteminin durumunun anlık görüntüsüyle aynı şekilde işlenir. Veriler alındıktan sonra resimler silinir.

Yedek depolama sunucusu üzerinde daha fazla çalışma gerçekleştirilir:

  • her depoda yapılan son yedekleme kontrol edilir,
  • Veri toplama sürecinin tamamlandığını gösteren işaret dosyasının varlığı kontrol edilir,
  • veriler karşılık gelen yerel birime genişletilir,
  • etiket dosyası silindi

Sunucu kurtarma işlemi

Ana sunucu ölürse, standart bir görüntüden önyükleme yapan benzer bir özel sunucu başlatılır. İndirme işlemi büyük olasılıkla ağ üzerinden gerçekleşecektir ancak sunucuyu kuran veri merkezi teknisyeni bu standart görüntüyü hemen disklerden birine kopyalayabilir. İndirme RAM'e gerçekleşir ve ardından kurtarma işlemi başlar:

  • iscsinbd veya başka benzer bir protokol aracılığıyla, ölen sunucunun kök dosya sistemini içeren mantıksal birime bir blok cihazının eklenmesi için bir talepte bulunulduğunda; Kök dosya sisteminin küçük olması gerektiğinden bu adımın birkaç dakika içinde tamamlanması gerekir. Önyükleyici de geri yüklenir;
  • yerel mantıksal birimlerin yapısı yeniden oluşturulur, mantıksal birimler dm_clone çekirdek modülü kullanılarak yedekleme sunucusundan eklenir: veri kurtarma başlar ve değişiklikler hemen yerel disklere yazılır
  • mevcut tüm fiziksel disklerle birlikte bir kap başlatılır - sunucunun işlevselliği tamamen geri yüklenir, ancak performans düşer;
  • veri senkronizasyonu tamamlandıktan sonra yedekleme sunucusundaki mantıksal birimlerin bağlantısı kesilir, kapsayıcı kapatılır ve sunucu yeniden başlatılır;

Yeniden başlatmanın ardından sunucu, yedeklemenin oluşturulduğu sırada mevcut olan tüm verilere sahip olacak ve ayrıca geri yükleme işlemi sırasında yapılan tüm değişiklikleri de içerecektir.

Serideki diğer makaleler

Yedekleme, bölüm 1: Yedeklemeye neden ihtiyaç duyulur, yöntemlere ve teknolojilere genel bakış
Yedekleme Bölüm 2: rsync tabanlı yedekleme araçlarını inceleme ve test etme
Yedekleme Bölüm 3: Tekrarlama ve kopyaların gözden geçirilmesi ve test edilmesi
Yedekleme Bölüm 4: zbackup, restic, borgbackup'ı gözden geçirme ve test etme
Yedekleme Bölüm 5: Linux için Bacula ve Veeam Backup'ı Test Etme
Yedekleme: okuyucuların isteği üzerine bölüm: AMANDA, UrBackup, BackupPC'nin incelemesi
Yedekleme Bölüm 6: Yedekleme Araçlarını Karşılaştırma
Yedekleme Bölüm 7: Sonuçlar

Sizi yorumlarda önerilen seçeneği tartışmaya davet ediyorum, ilginiz için teşekkür ederiz!

Kaynak: habr.com

Yorum ekle