Tüm sistemler çalışır durumda 8 kabul edilen kripto paralar · Monero hoş karşılanır KYC'siz politika
KernelVPS

Yedekleme ve Kurtarma

VPS Nasıl Yedeklenir: Şifreli, Uzak ve Geri Yüklenebilir

Çoğu sunucu, kendisini yok eden durumun tam olarak aynısında başarısız olacak şekilde yedeklenir. İşte ölü bir sunucuya, hatalı bir komuta ve çalınmış bir root parolasına dayanacak bir yedek nasıl kurulur — üstelik bunu saklayan kim olursa olsun, ona makinenin okunabilir bir kopyasını vermeden.

Güvenlik16 dakikalık okuma okumaKernelVPS ekibi

VPS Nasıl Yedeklenir: Şifreli, Uzak ve Geri Yüklenebilir

Her yedek, tam da ihtiyaç duyulduğu güne kadar çalışır. Anlık görüntü, az önce çöken platformun üzerinde durmaktadır. Gecelik tarball, Mart ayında bir disk dolduğundan beri sessizce başarısız olmaktadır. Veritabanı dökümü, yazma işlemi sürerken alınmış bir dosya kopyasıdır ve hiçbir şeye geri yüklenmez. Yedekler, bir sunucunun yalnızca bakarak değil, yalnızca geri yükleyerek yargılayabileceğiniz tek parçasıdır. İşte donanım arızasına, kendi ellerinize ve kimlik bilgilerinizi elinde tutan başka birine dayanacak bir yedek nasıl kurulur — üstelik bunu saklayan kim olursa olsun, ona makinenin okunabilir bir kopyasını vermeden.

Bir sunucuyu yok eden dört şey vardır ve her biri farklı bir şey gerektirir

Yedeği araca göre değil, arızaya göre tasarlayın. Neredeyse her gerçek veri kaybı dört senaryodan birine dayanır ve her biri, elinizde tuttuğunuz kopyadan farklı bir şey talep eder. Bunlardan yalnızca birini karşılayan bir kurulum, bir diğeriyle karşılaşana kadar tamamen yeterli hissettirir.

Donanım veya sunucu arızası

Disk, düğüm ya da veri merkezi çöker. Başka herhangi bir yerde tutulan bir kopya sizi kurtarır. Bu, aynı platformdaki bir anlık görüntünün güvenilir şekilde karşılayabildiği tek arızadır — pek çok kişinin anlık görüntülerin yeterli olduğuna inanmasının tam da nedeni budur.

Kendi elleriniz

Yanlış bir bayrak, üretime yöneltilmiş bir geçiş betiği, amaçlanandan fazlasını silen bir temizlik. Hasar, aynalayan (mirror) her şeye anında yansır; bu yüzden sizi kurtaracak olan tarihçedir — hatadan sonraki mevcut bir kopya değil, hatadan önceki bir sürüm.

Ele geçirilme ve fidye yazılımı

Root yetkisine sahip bir saldırgan, tam olarak yedekleme işiniz kadar erişime sahiptir: aynı kimlik bilgileri, aynı hedef, aynı zamanlama. Sunucu kendi yedeklerini silebiliyorsa, silinecektir. Hayatta kalmak, kopyanın yalnızca ekleme yapılabilen (append-only) ya da tamamen erişilemez olmasına bağlıdır.

Sunucuyu değil, hesabı kaybetmek

Bir ödeme aksaklığı, askıya alınmış bir hesap, yanlış bir yargı alanında bir kaldırma talebi. Donanım gayet iyidir, siz yalnızca ona ulaşamazsınız. Burada yalnızca farklı bir sağlayıcı altında, farklı bir ödeme yoluyla tutulan bir kopya işe yarar.

Herhangi bir şey seçmeden önce, bu dördünden gerçekte hangisine karşı savunma yaptığınızı yazıya dökün. Aynı diskteki ikinci bir dizine alınan gecelik bir kopya, tam olarak bunlardan yalnızca birini — en düşük ihtimalli olanını — karşılar, ama tamamen bir yedekmiş gibi hissettirir. Üretimde başarısız olan kurulumların çoğu, kimse senaryoyu hiç adlandırmadığı için başarısız olur.

Anlık görüntüler yedek değildir

Bu sözcükler birbirinin yerine kullanılır, oysa farklı hata alanlarına sahip farklı nesneleri tanımlarlar. Hangisine sahip olduğunuzu bilmek, elinizde hiçbir şey olup olmadığını belirler.

Anlık görüntüPlatform tarafından tutulan, orijinalinin yanında duran, bir birimin belirli bir andaki kopyası. Almak anında, geri almak anındadır ve üzerinde yaşadığı platformla birlikte kaybolur. Riskli bir yükseltmeden önce mükemmeldir; tek kopyanız olarak değersizdir.
Disk imajıBirimin tam blok düzeyinde bir kopyası — taşınabilir, büyük ve yavaş. Bir makineyi, önceden zaten bozuk olan her şey dahil, tam olarak eskisi gibi geri yükler. Yeniden kurmak için iyidir, üç hafta önceki hâliyle tek bir dosyayı geri almak için zayıftır.
Dosya düzeyinde yedekSeçilmiş yollar, yinelenenlerden arındırılmış (deduplicated) ve sürümlenmiş biçimde, sorgulayabileceğiniz bir depo olarak saklanır. İnsanların "yedek" dediğinde kastettiği şey budur ve "bu yapılandırma ayın 4'ünde nasıl görünüyordu?" sorusuna cevap veren tek şey de budur.
Uzak kopyaAynı deponun, farklı bir sağlayıcı altındaki ikinci bir konuma kopyalanmış hâli. Farklı bir yedek değil — aynısı, yalnızca birincisiyle aynı anda başarısız olamayacağı başka bir yerde.

Anlık görüntüleri gerçekten iyi oldukları şey için kullanın: çekirdeğe, önyükleyiciye (bootloader) ya da bir veritabanı şemasına dokunmadan önceki beş saniyelik bir geri alma işlemi için. Bir tane alın, riskli şeyi yapın, işe yarayınca silin. Asla yapmamanız gereken şey, "bir anlık görüntü var" düşüncesinin, yedek olmamasının gerekçesi hâline gelmesine izin vermektir — bir anlık görüntü, kaderini onu barındıran platformla paylaşır ve askıya alınan bir hesap ikisini birden alır götürür.

3-2-1 kuralı ve herkesin atladığı iki sayı

Bu eski kural hâlâ geçerliliğini koruyor, çünkü bir dosyalama sisteminden çok bağımsızlığı tarif ediyor: verinin üç kopyası, iki farklı türde depolama üzerinde, bunlardan biri de başka bir yerde. İki ek madde, kural yazıldığında nadir olan ama artık sıradanlaşmış arızaları da kapsar.

  • Üç kopya. Canlı veri artı iki yedek. İki kopya, kötü bir geri yüklemenin sizi sıfır kopyaya düşürebileceği anlamına gelir.
  • İki ortam (media), ya da iki sağlayıcı. Kiralık bir altyapıda "ortam" gerçekte idari bağımsızlık anlamına gelir — aynı hesap altında, aynı platformda, aynı bakiyeden ödenen ikinci bir kopya, fazladan adımları olan tek bir kopyadan ibarettir.
  • Bir tanesi uzakta (offsite). Farklı bir bina, farklı bir ağ, sizin için önemliyse farklı bir yargı alanı. /locations bunun pratiğe dökülmüş hâlidir: korumaya çalıştığınız bölgeden bağımsız olarak başarısız olacak bir bölge seçin.
  • Bir tanesi değiştirilemez (immutable) ya da çevrimdışı. Sunucunun kendisinin silemeyeceği bir kopya — çünkü sunucuya kim sahipse, onun kimlik bilgilerine de o sahiptir.
  • Sıfır doğrulanmamış geri yükleme. Hiç geri yüklemediğiniz bir yedek, yalnızca bir varsayımdır. Önemli olan sayı, kaç işin başarı bildirdiği değil, kaç geri yüklemeyi gerçekten tamamladığınızdır.

Veriyi yedekleyin, geri kalanını yeniden kurun

İçgüdü, her şeyin imajını almaktır. Bu hem pahalıdır, hem geri yüklemesi yavaştır, hem de ele geçirilmiş ikili dosyayı, bozuk paket durumunu ve artık nasıl oluştuğunu hatırlamadığınız yapılandırma sapmasını sadakatle korur. Bir sunucu üç tür içerik barındırır ve bunlardan yalnızca biri yedeğe ait olmalıdır.

Yeniden üretilebilirİşletim sistemi, paketler, konteyner imajları, derlenmiş çıktılar (artefact). Bir betikle dakikalar içinde yeniden kurulur. Bunu yedeklemek yalnızca depolama alanına mal olur ve sizi geçmişe geri yükler.
Yeri doldurulamazVeritabanları, yüklenmiş dosyalar, posta kuyrukları (mail spool), cüzdanlar, anahtarlar, konteyner birimleri — bir kişinin ya da bir sürecin oluşturduğu ve başka hiçbir yerde bulunmayan her şey. Bunu kaybetmek, hiçbir bedelle telafi edilemez. Asıl yedek budur.
Yeniden inşa edilebilir, ama pahalıya/etc, systemd birimleri, nginx ve güvenlik duvarı kuralları, cron ve zamanlayıcı (timer) tanımları, TLS sertifikaları ve ACME hesap anahtarları. Küçüktür, saklaması ucuzdur ve iki saatlik bir yeniden kurulumla iki günlük bir yeniden kurulum arasındaki farkı oluşturur.
  • /etc, /home, /root, /srv dizinlerini, web kök dizininizi, uygulamanızın durum dizinini, adlandırılmış konteyner birimlerini ve güncel veritabanı dökümlerinin bulunduğu bir dizini dahil edin.
  • Dağıtım tarifinin kendisini de dahil edin — compose dosyaları, Ansible ya da kabuk (shell) betikleri, sabahın ikisinde yazdığınız notlar. Bunu sürüm kontrolünde de tutun, ama kurtarmanın ikinci bir hizmete erişilebilir olmasına asla bağlı kalmaması için yedeğe de bir kopyasını koyun.
  • /proc, /sys, /dev, /run dizinlerini ve geçici dizinleri hariç tutun. Bunlar çekirdek arayüzleri ve taslak alanlarıdır; onları kopyalamak zaman kaybettirir ya da işi doğrudan kilitler.
  • Paket önbelleklerini, derleme (build) dizinlerini, bağımlılık ağaçlarını ve sanal ortamları (virtualenv) hariç tutun — bir derleme adımının yeniden oluşturduğu her şeyi. Tipik bir uygulama sunucusunda bu, diskin büyük kısmıdır.
  • Veritabanının dökümünü düzgün şekilde alıyorsanız, canlı veritabanı dosyalarını hariç tutun. İkisini birden yedeklemek, sabahın üçünde birinin geri yükleyeceği kopyanın, daha büyük ve işe yaramaz olan kopya olması demektir.
  • Gizli dosyaları hariç tutmayın. Bir Linux makinesinde önemli olan şeylerin yarısı bir nokta ile başlar.

Veritabanları bir dosya kopyasına dayanamaz

Bir geri yüklemenin başarısız olmasının en yaygın tek nedeni budur. Çalışan bir veritabanı, durumunu bellekte tutar ve sıra dışı yazar; çalışırken dosyalarını kopyalamak, parçalanmış ve yarım yazılmış bir durumu yakalar — bu durum geri yüklenebilir, sessizce bozulmuş şekilde geri yüklenebilir ya da hiç geri yüklenemeyebilir. Düzgün bir döküm alın, ardından o dökümü yedekleyin.

  • PostgreSQL: veritabanı başına pg_dump, ya da roller dahil tüm küme için pg_dumpall. Bir günlük veri kaybının kabul edilemez olduğu durumlarda, dünkü geceye değil belirli bir ana kurtarabilmek için WAL arşivleme ekleyin.
  • MySQL veya MariaDB: --single-transaction ile mysqldump, InnoDB üzerinde yazmaları engellemeden tutarlı bir anlık görüntü sağlar. MyISAM üzerinde bunu sağlamaz — MyISAM çalıştırmamak için bir sebep daha. Büyük veri kümelerinde, mariabackup gibi fiziksel bir araç, bir dökümü yeniden oynatmaktan çok daha hızlı geri yükler.
  • SQLite: dosyayı asla kopyalamayın. Kilidi doğru şekilde alan .backup komutunu ya da VACUUM INTO'yu kullanın. Aktif bir write-ahead log'a sahip bir veritabanını kopyalamak, er ya da geç kaybedeceğiniz bir yazı turadır.
  • Redis: arka planda bir kayıt (save) tetikleyip ortaya çıkan anlık görüntü dosyasını yedekleyin, ya da append-only modda çalıştırıp günlüğü yedekleyin. Yazma sürerken canlı bir anlık görüntüyü kopyalamak, boş bir veri kümesi olarak yüklenen kesik bir dosya elde etmenize yol açar.
  • Konteynerler: birim, veridir. Yığını (stack) bir kopyanın alacağı birkaç saniyeliğine durdurun, ya da döküm aracını konteynerin içinde çalıştırın — ama çalışan bir veritabanının birimini tar'layıp buna yedek demeyin.
  • Kalıcı bir sürece sahip başka her şeyin — arama dizinleri, mesaj kuyrukları, defter (ledger) servisleri — kendi tutarlı dışa aktarma komutu vardır. Onu şimdi bulun, kesinti sırasında değil.

Dosya sistemi anlık görüntüleri bunu ters yönden çözer: LVM, ZFS ve btrfs, birimin tutarlı bir görünümünü milisaniyeler içinde dondurur ve siz veritabanı hizmet vermeye devam ederken bu dondurulmuş görünümü yedeklersiniz. Bir dökümün saatler sürdüğü veri kümeleri için doğru cevap budur. Ancak bu, 200 MB'lık bir veritabanı için dökümü atlamanın gerekçesi değildir — böyle küçük bir veritabanında döküm daha basittir, motor sürümleri arasında taşınabilirdir ve bir şeyler tuhaflaştığında bir insan tarafından okunabilir.

Bir araç seçmek

Dört araç neredeyse her durumu kapsar. En çok önem taşıyan özellik, şifrelemenin nerede gerçekleştiğidir. Veri yalnızca aktarım sırasında, ardından da bekleme durumunda depolama sağlayıcısı tarafından şifreleniyorsa, depolama sağlayıcısı onu okuyabilir demektir — ve yedek, her yerini sıkılaştırdığınız bir sistemde sessizce en zayıf nokta hâline gelmiştir.

resticTek bir statik ikili dosya. Herhangi bir şey makineden çıkmadan önce istemci tarafında yinelenenlerden arındırır, sürümler, şifreler ve doğrular. SFTP, S3 uyumlu nesne depolamayı ve rclone'un erişebildiği her şeyi konuşur. Bir VPS için varsayılan öneri: karşı uçta bir SSH hesabından başka hiçbir şeye gerek yoktur.
BorgBackupMükemmel sıkıştırma ve gerçekten kullanışlı bir yalnızca ekleme yapılabilen (append-only) sunucu moduna sahip aynı model. Her iki uçta da Borg gerektirir ve depoyu nesne depolama yerine bir dosya sisteminde saklar — hedef, kontrol ettiğiniz ikinci bir sunucu olduğunda uygundur, bir bucket olduğunda ise elverişsizdir.
rsyncBir yedekleme aracı değil, mükemmel bir taşıma aracıdır. Sabit bağlantılı (hardlink), tarihli dizin ağaçlarıyla, neredeyse hiç ekstra alan harcamadan gezilebilir sürümler üretir. Bekleme durumunda şifreleme yoktur, bütünlük denetimi yoktur, yinelenenlerden arındırma yoktur. Hedef zaten şifreliyken ve ls ile okuyabileceğiniz kopyalar istediğinizde kullanın.
rcloneYükleme öncesinde adları ve içerikleri şifreleyen bir crypt katmanına sahip, nesne depolamaya açılan köprü. Onu restic ile birlikte kullanın, ya da zaten şifrelenmiş bir depoyu ikinci bir sağlayıcıya itmek için kullanın. Sürümleme değil, senkronizasyon mantığı işler — aksini yapılandırmadığınız sürece bir silme işlemi de yayılır.

Hangisini seçerseniz seçin, parola cümlesi ya da anahtar, yedeklenen sunucudan başka bir yerde de bulunmalıdır. Dikkatli insanları bile yakalayan tuzak şudur: /root içinde saklanan depo anahtarı, kilidini açtığı deponun içine sadakatle yedeklenir. Onu yazdırın, ya da hâlâ ayakta olan bir makineden açabileceğiniz bir parola yöneticisinde saklayın. Şifresini çözemediğiniz bir depo, hiç yedek olmamasından ayırt edilemez.

İkinci kopya nerede yaşamalı

Hedef, disk alanı kadar bir yargı alanı ve bir fatura ilişkisidir de. Koruduğunuz sunucudan ne kadar bağımsız olduklarına göre kabaca sıralanmış dört seçenek.

Başka bir bölgede ikinci bir sunucu

Doğrudan cevap: farklı bir ülkede, SSH üzerinden erişilebilen, sshd ve bir depodan başka hiçbir şey çalıştırmayan ucuz bir makine. 1 GB'lık bir /vps planı, küçük bir filonun yedeklerini rahatlıkla tutar ve hesap tek bir zorunlu komutla kilitlenebilir, böylece çalınan bir anahtar hiçbir kabuk (shell) açamaz.

Depolama sınıfı disk

Veri kümesi yüzlerce gigabayta ulaştığında, ölçümsüz (unmetered) bir bağlantı üzerindeki HDD kapasitesi, terabayt başına NVMe'den çok daha az maliyetlidir ve yedekleme yazmalarının NVMe gecikmesine ihtiyacı yoktur. /storage tam olarak bunun için tasarlanmıştır: terabayt sınıfında RAID korumalı disk, tam root erişimi, içerik incelemesi yok.

S3 uyumlu nesne depolama

Kullanışlıdır, gigabayt başına fiyatlandırılır ve genellikle gerçek değiştirilemezlik sağlayan bir nesne kilidi (object lock) desteğine sahiptir. Buna güvenmeden önce çıkış (egress) fiyatlandırmasını okuyun — bir acil durumda bir terabaytı geri çekmek, geri alma maliyetinin ne olduğunu öğrenmek için kötü bir andır.

Sahip olduğunuz donanım

İtilen değil, çekilen harici bir disk ya da evdeki bir makine. Daha yavaştır ve eldendir, ama bu listedeki hiçbir sağlayıcının, mahkeme kararının ya da fatura anlaşmazlığının dokunamayacağı tek kopyadır. Bir hafta geride kalsa bile, gerçekten yeniden oluşturamayacağınız veriler için saklamaya değer.

Yedeğin gizlilik özelliklerini sunucununkiyle eşleştirin. Bir diski LUKS ile şifreleyip ardından gecelik düz metin yedekleri kartınıza kayıtlı bir bucket'a göndermek, bütün çabayı boşa çıkarır: veri artık okunabilir durumdadır ve sizin adınıza kayıtlıdır. Sunucuyu anonim olarak ödemeye değecek kadar önemsediyseniz, kopya için de aynısı geçerlidir — istemci tarafında şifreleyin ve hedefi de kaynağı satın aldığınız şekilde satın alın.

Adım adım kurmak

  1. 1

    Önce iki sayıya karar verin

    Ne kadar veri kaybetmeyi göze alabileceğiniz — çalıştırmalar arasındaki boşluk — ve ne kadar süre kapalı kalmayı göze alabileceğiniz. Geri kalan her şey bu iki cevaptan çıkar. Statik bir sitenin saatlik yedekleri gösteriden ibarettir; bir sipariş veritabanının gecelik yedekleri ise bir eğitim yazısından devralınacak değil, bilinçli olarak verilecek bir karardır.

  2. 2

    Hedefi oluşturun

    Başka bir bölgede, kendi SSH anahtarına sahip ve ev dizini depo olan, ayrılmış ve ayrıcalıksız bir kullanıcısı bulunan ikinci bir sunucu. Orada başka hiçbir şey çalışmaz. Çalınan bir kimlik bilgisinin yalnızca yedek ekleyebilmesi, asla bir kabuk açamaması için anahtarı zorunlu bir komutla sınırlayın.

  3. 3

    Anahtarı oluşturun ve başka bir yerde saklayın

    Sunucunun kaybını atlatacak bir yerde kayıtlı, uzun ve rastgele bir parola cümlesi. Depoyu başlatın, ardından yalnızca yazıya döktüğünüz bilgileri kullanarak içeriğini üçüncü bir makineden listeleyebildiğinizi kanıtlayın. Eğer yapamıyorsanız, tek bir yedek bile yazmadan önce bunu düzeltin.

  4. 4

    Önce veritabanlarının dökümünü alın

    Tutarlı dökümleri bir hazırlama (staging) dizinine yazan ve bunlardan biri başarısız olursa sıfır olmayan bir çıkış koduyla sonlanan kısa bir betik — dosya yedeğiyle birlikte değil, ondan önce çalıştırılmalıdır. Başarısız bir dökümden sonra devam eden bir iş, insanların otuz gün boyunca sıfır baytlık dosyalarla kalmasının tam olarak nedenidir.

  5. 5

    Önemli olan yolları yedekleyin

    Aracı dahil edilecekler listesine yönlendirin, hariç tutmaları uygulayın ve ilk çalıştırmayı sağduyuyla kontrol edin. 40 GB'lık bir sunucunun taze bir deposu 300 MB'a geliyorsa, bir şey sessizce atlanıyor demektir; 38 GB'a geliyorsa hariç tutmalarınız işe yaramıyor demektir.

  6. 6

    Zamanlayın ve başarısızlığı gürültülü hale getirin

    Rastgele bir gecikmeye sahip bir systemd zamanlayıcısı (timer), ya da alışkanlığınız buysa cron. Ardından işin rapor vermesini sağlayın: başarı durumunda bir izleyiciye kalp atışı (heartbeat) gönderilsin, kalp atışı gelmeyi kestiğinde ise bir uyarı gitsin. Sessiz başarısızlık, yedeklerin olağan başarısızlık biçimidir, çünkü durduklarında görünür hiçbir şey bozulmaz — ta ki her şey bozulana kadar.

  7. 7

    Saklama süresini belirleyin ve gerçekten budayın

    Bir gün boyunca saatlik, iki hafta boyunca günlük, birkaç ay boyunca haftalık, bir yıl boyunca aylık. Ardından budama işlemini çalıştırın ve deponun büyümeyi durdurduğunu doğrulayın. Yapılandırılmış ama hiç çalıştırılmamış bir saklama politikası hedefi doldurur ve yedekleri de beraberinde batırır.

  8. 8

    Bugün bir şeyi geri yükleyin

    Bir test işi değil — gerçek bir dosyayı, geçici bir dizine, açıp kontrol ederek. Ardından tüm makine için takvime bir tarih koyun. İlk tam geri yükleme her zaman bir şeyi ortaya çıkarır: eksik bir yol, bir izin, bir sertifika, yalnızca eski makinede var olmuş bir veritabanı kullanıcısı.

Yedeği sunucudan dışarı iterseniz (push), üzerinde root yetkisi olan herkesin her kopyayı yok edebileceğini kabul etmiş olursunuz. Bunu tam tersi yönde çalıştırın — yedekleme sunucusu içeri bağlanır, veriyi çeker ve bağlantıyı keser — böylece ele geçirilmiş bir sunucu depoya hiç ulaşamaz, çünkü onun için hiçbir kimlik bilgisine sahip değildir. Çekme (pull) yöntemini kurmak daha zahmetlidir, ama çoğu kurulumun yapabileceği tek en büyük iyileştirme budur.

Saklama süresi: daha uzunu, göründüğünden daha ucuzdur

Saklama süresi genellikle diske sığan neyse ona göre belirlenir, sonra da unutulur. Bilinçli bir düşünceyi hak eder, çünkü hangi hataların kurtarılabilir olduğuna o karar verir. Yedi günlük bir pencere, salı günü silinen bir dosyayı yakalar. Ancak altı hafta önce başlayıp bir rapor yanlış çıktığında ortaya çıkan bir bozulmayı, ya da harekete geçmeden önce makinede sessizce bir ay oturan bir saldırganı yakalamaz.

Saatlik, bir gün saklanırİşlemsel (transactional) her şey için. Yinelenenlerden arındırma işini yapmaya başladığında ucuzdur ve bir saatlik siparişi kaybetmekle bir günlük siparişi kaybetmek arasındaki farktır.
Günlük, iki hafta saklanırÇalışma kümesi. Bugüne kadar gerçekleştireceğiniz geri yüklemelerin neredeyse tamamı buradan gelir.
Haftalık, iki ay saklanırKimsenin hemen fark etmediği hasar için pencere. Yavaş bozulma da sessiz ele geçirme de bu aralıkta yaşar.
Aylık, bir yıl saklanırUcuz bir sigorta ve genellikle bir muhasebe ya da sözleşme gerekliliği. Büyük ölçüde durağan bir sunucuda on iki aylık nokta, on iki tam kopyanın yalnızca bir kesri kadar tutar.

Yinelenenlerden arındırma, bunu tablonun gösterdiğinden çok daha ucuza getirir: büyük ölçüde değişmemiş bir sunucuya karşı yapılan ikinci çalıştırma yalnızca değişeni saklar, bu yüzden 40 GB'lık bir makinede bir yıllık aylık geri yükleme noktası tipik olarak yarım terabayt değil, birkaç gigabayta mal olur. Politikayı neyden kurtulmanız gerektiğine göre belirleyin, ardından faturayı kontrol edin. Genellikle cömert versiyonu karşılayabildiğinizi göreceksiniz.

Değiştirilemezlik: fidye yazılımını durduran parça

Yukarıdakilerin hepsi, düşmanın entropi olduğunu varsayar. Düşman root yetkisine sahip bir insansa, sıradan bir yedekleme işi bir kullanım kılavuzudur — kimlik bilgileri makinenin üzerindedir, hedef yapılandırma dosyasındadır ve şifreleme başlamadan önce depo silinir. Dört mekanizma bu zinciri kırar ve bunlardan herhangi biri sonucu değiştirir.

  • Yalnızca ekleme yapılabilen (append-only) depolar. Borg'un sunucu tarafı append-only modu, ya da restic'in append-only moddaki REST sunucusu, yeni veriyi kabul eder ve silmeleri reddeder. Sunucu yazabilir; yalnızca siz, başka bir yerden, budayabilirsiniz.
  • Çekme tabanlı (pull) yedekleme. Bağlantıyı yedekleme sunucusu başlatır ve tek kimlik bilgisine yalnızca o sahiptir. Üretim sunucusunda ne bir anahtar, ne bir hedef adresi, ne de depoya giden herhangi bir yol vardır.
  • Nesne kilidi (object lock). Saklama süresinin bucket düzeyinde zorunlu kılındığı S3 uyumlu depolama; burada silme işlemi, kimlik bilgilerinin aksi hâlde izin vereceği her şeyden bağımsız olarak depolama katmanı tarafından reddedilir.
  • Sunucu başına ayrı kimlik bilgileri. Ele geçirilen tek bir makine, diğer her makinenin tarihçesini açığa çıkarmamalıdır. Farklı anahtarlar, farklı yollar, farklı kısıtlamalar.
  • Gerçekten çevrimdışı olan bir kopya. Fişi çekilmiş bir disk, şimdiye kadar yazılmış her uzaktan saldırıya karşı bağışıktır. Modası geçmiştir, ama yenilmemiştir.

Geri yükleme provası

Bir geri yükleme bir prosedürdür ve kimsenin uygulamadığı bir prosedür kurgudan ibarettir. Bunu şimdi bir kez, sonra altı ayda bir çalıştırın ve öğrendiklerinizi yazıya dökün — bu notlar sonunda veri kadar değerli hâle gelir.

  1. 1

    Boş bir sunucu dağıtın

    Aynı işletim sistemi sürümü, başka hiçbir şey kurulmamış. Kısa ömürlü bir VPS yeterlidir ve bütün bu alıştırma bir öğle yemeğinden daha ucuza gelir.

  2. 2

    Yalnızca yazıya döktüklerinizi kullanarak geri yükleyin

    Depo adresi, parola cümlesi, komutlar. Öldüğünü varsaydığınız sunucuda var olan bir şeye ihtiyaç duyarsanız, kusuru bulmuşsunuz demektir — üstelik bunu bulmanın hiçbir bedelinin olmadığı bir günde.

  3. 3

    Veriyi uygulamadan önce geri getirin

    Veritabanı dökümünü yükleyin, dosyaları ait oldukları yere koyun, ardından sahiplik ve izin kiplerini (mode) düzeltin. Sahiplik genellikle beklenmeyen sürpriz olur: eski makineden gelen sayısal kullanıcı kimlikleri (ID), yenisinde nadiren tutar.

  4. 4

    Hizmeti başlatın ve gerçekten kullanın

    Bir durum komutu değil — oturum açın, bir sayfa yükleyin, bir sorgu çalıştırın, bir mesaj gönderin. Başlayan bir hizmet, çalışan bir hizmetle aynı şey değildir.

  5. 5

    Süresini ölçün ve sayıyı yazıya dökün

    Bütün bu işlem ne kadar sürdü? Bu, gerçek kurtarma sürenizdir ve neredeyse her zaman tahmininizin birkaç katıdır. Notları parola cümlesinin yanında tutun ve yığın her değiştiğinde ikisini de güncelleyin.

Maliyeti, dürüstçe

Yedekleme, altyapıdaki en ucuz sigortadır ve rutin olarak fiyatı yüzünden atlanır. Verinin, sıradan verinin yaptığı gibi sıkıştığını ve yinelenenlerden arındığını varsayarak, küçük bir sunucu için birkaç somut sayı.

40 GB'lık bir web ve veritabanı sunucusuSıkıştırmadan sonra, yinelenenlerden arındırılmış bir depoda kabaca 8 ile 15 GB arası, bir yıllık saklama süresi ise üzerine yalnızca birkaç gigabayt ekler. $3.49/mo karşılığında başka bir bölgedeki 1 GB'lık bir sunucu bunu rahatlıkla tutar — hizmet verdiği alan adından bile daha ucuza.
Birkaç yüz gigabaytPosta arşivleri, medya kütüphaneleri, bir belge deposu. HDD kapasitesinin kazandığı yer burasıdır: $8.99/mo karşılığında 1 TB'lık /storage yıllarca sürüm tutar ve ölçümsüz (unmetered) bir bağlantı, ilk yüklemenin bir bant genişliği faturasıyla gelmediği anlamına gelir.
TerabaytlarVideo, veri kümeleri, seedbox çıktısı. $23.99/mo karşılığında 4 TB. Asıl karar ise neyin sürümlenmeye, neyin yalnızca tek bir kopyaya ihtiyaç duyduğudur. Her şey bir yıllık aylık geri yükleme noktasını hak etmez.

Bunlardan herhangi birini, önledikleri kesintinin maliyetiyle karşılaştırın. Asıl mesele o sayıya adını koymaktır — para bir kez yazıya döküldüğünde, yedeklere karşı çıkan argüman zaten hiçbir zaman gerçekten parayla ilgili olmaz.

Sağlayıcının buradaki yeri

Bir yedekleme planı, koruduğu sunucuyla aynı iki bağımlılığa sahiptir: kopyayı koyacak bağımsız bir yer ve kim olduğunuza dair yeni bir kayıt oluşturmayan bir ödeme yolu. İkisi de burada, kaynakta olduğundan daha fazla önem taşır, çünkü yedek, kaynağın koruduğu her şeyin eksiksiz bir kopyasıdır.

Buradaki her /vps ve /storage planı, KYC olmadan ön ödemeli bir kripto bakiyesinden, /locations sayfasında listelenen on beş bölgede dağıtılır — böylece ikinci kopya, zincirin hiçbir yerinde ikinci bir kimlik kontrolüne gerek kalmadan, birincisinden farklı bir yargı alanı altında oturabilir. Beş saniyelik geri alma için her sunucuda anlık görüntüler dahildir, ölçümsüz (unmetered) bant genişliği ne ilk yüklemenin ne de acil durumdaki geri yüklemenin ekstra ücretlendirilen bir olay olmayacağı anlamına gelir ve /storage, içerik incelemesi olmadan terabayt sınıfında RAID korumalı disk ekler; başlangıç fiyatı $8.99/mo. /pay-with kabul edilen kripto paraları anlatır, /offshore-hosting yargı alanının gerçekte neyi değiştirdiğini ortaya koyar ve /guides, disk şifrelemesi ile bir sağlayıcının bir makine hakkında neyi görüp neyi göremeyeceği üzerine tamamlayıcı yazıları içerir.

Kontrol listesi

  • Bir araç seçmeden önce, karşısında savunma yaptığınız arızayı adlandırın.
  • Anlık görüntüleri bir geri alma düğmesi olarak görün, asla yedek olarak değil.
  • Veriyi ve yapılandırmayı yedekleyin; işletim sistemini bir betikten yeniden kurun.
  • Her veritabanının dökümünü kendi tutarlı dışa aktarma komutuyla alın ve o dökümü yedekleyin.
  • Herhangi bir şey makineden çıkmadan önce, istemci tarafında şifreleyin.
  • Depo parola cümlesini, sunucunun kaybını atlatacak bir yerde saklayın.
  • En az bir kopyayı farklı bir sağlayıcı, bölge ve ödeme yolu altında tutun.
  • Ele geçirilmiş bir root'un silemeyeceği şekilde bir kopyayı yalnızca ekleme yapılabilen, çekme tabanlı ya da çevrimdışı yapın.
  • Başarılı bir çalıştırmanın yokluğunda uyarı verin — başarısızlıklar sessizdir ve sessizlik belirtinin ta kendisidir.
  • Bugün bir dosyayı, yılda iki kez de tüm makineyi geri yükleyin. Süresini ölçün ve yazıya dökün.
Sağlayıcı anlık görüntüleri tek başına yeterli midir?

Hayır ve bu, diğer her yönden dikkatli olan kurulumlardaki en yaygın boşluktur. Bir anlık görüntü, kopyaladığı birimle aynı platformda yaşar; bu yüzden bir platform düzeyinde arıza, bir hesap askıya alması ya da bir ödeme aksaklığından — yani ona en çok ihtiyaç duyduğunuz üç senaryodan — sağ çıkamaz. Ayrıca genellikle yalnızca kısa bir tarihçe tutar; bu yüzden geçen ay silinen bir dosyayı ya da altı hafta önce başlamış bir bozulmayı kurtarmaz. Anlık görüntüler, riskli bir değişiklikten önceki beş saniyelik bir geri alma işlemi olarak mükemmeldir: onları tutun, her gün kullanın ve gerçek bir yedeği başka bir yerde saklayın.

restic mi, Borg mu — hangisini kullanmalıyım?

Hedef bir nesne depolama ya da düz bir SSH hesabıysa restic — çünkü karşı uçta hiçbir şeyin kurulu olmasına ihtiyaç duymaz ve S3'ü doğal olarak konuşur. Hedef kontrol ettiğiniz bir Linux makinesiyse ve onun append-only sunucu modunu, biraz daha sıkı bir sıkıştırmayı istiyorsanız Borg. İkisi de yinelenenlerden arındırır, ikisi de istemci tarafında şifreler ve doğrular, ikisi de olgundur ve yaygın şekilde kullanılır — ikisi de savunulabilir bir seçimdir. Yanlış olan cevap, sunucunun hiç yedeği yokken onları karşılaştırmaya bir ay harcamaktır — bu öğleden sonra birini seçin, önemli olursa fikrinizi daha sonra değiştirirsiniz.

Bir VPS'i ne sıklıkla yedeklemeliyim?

Aralık, basitçe yeniden yapmaya razı olduğunuz en fazla iş miktarıdır. Statik bir site için haftalık dürüst bir seçimdir. Kullanıcıların yazdığı herhangi bir şey için gecelik olan taban çizgisidir ve yinelenenlerden arındırma işini yapmaya başladığında saatlik olan da ucuzdur — günün ikinci çalıştırması genellikle yalnızca birkaç megabayt saklar. Bir günlük verinin değerini, bir yerine yirmi dört geri yükleme noktası saklamanın maliyetine karşı tartın; cevap genellikle apaçıktır.

Diskin tamamını mı, yoksa yalnızca kendi verimi mi yedeklemeliyim?

Neredeyse her durumda veri ve yapılandırma. Tam bir disk imajı, makineyi kurtarmakta olduğunuz ele geçirilme ve artık anlamadığınız paket durumu dahil, tam olarak eskisi gibi geri yükler ve hem oluşturması hem de geri yüklemesi daha yavaştır. /etc, uygulama verileriniz ve veritabanı dökümlerinizin dosya düzeyinde bir yedeği, işletim sistemini yeniden kuran bir betikle eşleştirildiğinde, daha hızlı ve daha temiz geri yüklenir. Bit-eksat adli (forensic) koruma gerektiğinde, ya da makine başka birinin inşa ettiği bir kara kutu olduğunda diski imajlayın.

Sağlayıcım disklerin şifreli olduğunu söylüyor — yedeğim de şifreli mi?

Size yardımcı olacak hiçbir anlamda değil. Sağlayıcı tarafı şifreleme, bir sürücünün raftan çıkarılmasına karşı korur; anahtar sağlayıcıda durur, bu yüzden veri hem sağlayıcı hem de sağlayıcıyı zorlayabilecek herkes tarafından okunabilir kalır. İstemci tarafı şifreleme — restic, Borg, rclone'un crypt katmanı ya da şifreli bir arşiv — hedefe ulaşan şeyin, makinenizden hiç çıkmamış bir parola cümlesi olmadan anlamsız olduğu anlamına gelir. Gizliliğin kritik olduğu bir yığın için bu ayrım her şeyin özüdür, çünkü yedek, sunucunun koruduğu her şeyin eksiksiz bir kopyasıdır.

Fidye yazılımının yedeklerimi de şifrelemesini nasıl engellerim?

Sunucunun ulaşabildiği her şeyi, root yetkisine sahip bir saldırganın da yok edebileceğini varsayın — kimlik bilgileri, hedef ve zamanlama hepsi makinenin üzerindedir. Bu erişimi üç yoldan biriyle kırın: yazmaları kabul eden ama silmeleri reddeden yalnızca ekleme yapılabilen bir depo, yedekleme sunucusunun içeri doğru bağlandığı ve sunucunun hiçbir kimlik bilgisine sahip olmadığı bir çekme (pull) modeli, ya da kilidi depolama katmanının kendisinin zorunlu kıldığı bir nesne depolama. Ardından uzun bir saklama süresi ekleyin, böylece yavaş ve sessiz bir ele geçirme kimse fark etmeden pencereden sessizce çıkıp gitmesin; ve hiçbir uzaktan saldırının erişemeyeceği bir kopyayı çevrimdışı tutun.

Uygulamaya geçirin.

$3.49/mo'dan başlayan bir offshore sunucu dağıtın · 8 kripto para birimi · KYC yok.