Jak zabezpieczyć się przed utratą serwera w budżecie

22

Jestem małą firmą o niewielkim budżecie, która zapewnia witryny i bazy danych dla klientów organizacji charytatywnych i non-profit.

Mam kilka serwerów VPS Debiana Linux i zapewniam, że mam codzienne kopie zapasowe innego VPS niż ten, na którym hostowana jest usługa.

Niedawno jedna z moich firm hostingowych powiedziała mi, że dwa dyski uległy awarii jednocześnie i że dane zostały utracone na zawsze. Rzeczy się zdarzają, przepraszali, co jeszcze mogliby zrobić? Ale sprawiło, że zastanawiałem się nad opłacalnymi sposobami ponownego podniesienia VPS w przypadku awarii sprzętu lub innej awarii hosta.

Obecnie musiałbym

  1. Rozwiń nowy VPS
  2. Pobierz kopię zapasową z ostatniego dnia (która obejmuje bazy danych, katalog główny i konfigurację specyficzną dla witryny) na VPS i skonfiguruj ją tak, jak ostatnia itp.
  3. Zaktualizuj DNS i poczekaj na jego propagację.

Osiągnięcie tego zajęłoby prawdopodobnie około jednego dnia, przy czym propagacja DNS jest dużą niewiadomą, chociaż mam dość niskie ustawienie TTL (około godziny).

Niektóre hosty zapewniają migawki, których można użyć do replikacji zestawu do nowego VPS, ale nadal istnieje adres IP i to nie pomaga w przypadku, gdy firma hosta anuluje / zawiesza konto wprost (czytałem o tym zachowanie niektórych dostawców usług hostingowych i mnie to przeraża! Nie robię nic spamerskiego / podejrzanego i uważnie obserwuję bezpieczeństwo, ale zdaję sobie sprawę, że dosłownie mają moc, aby to zrobić i jestem dość niechętny).

Czy to w połączeniu z wyborem renomowanych hostów to najlepsze, co mogę zrobić, nie szukając niewiarygodnie drogiego rozwiązania?

artfulrobot
źródło
1
Bardzo sceptycznie odnosi się do twierdzenia, że ​​2 dyski
uległy
Najwyraźniej jeden zawiódł, a drugi podczas odbudowy nowego.
artfulrobot
spójrz na drbd.linbit.com , to może pasować do twoich wymagań ..
The Unix Janitor
2
@symcbean: Problem polega na tym, że przebudowa RAID-5 wymaga odczytu wszystkich danych wszystkich pozostałych dysków. To dość długa operacja (godziny, jeśli nie dni). Tani system RAID-5 może mieć konfigurację 9 + 1 przy użyciu dysków stacjonarnych. Wszystkie te 9 dysków będą obciążone poza granice projektowe podczas przebudowy RAID. W rzeczywistości należy się spodziewać niepowodzenia.
MSalters
1
Cóż, faktycznie mają one pule pamięci i pule procesorów + pamięci jako osobne jednostki, ale pytanie nie dotyczy tego, co się stało, czy nie u jednego konkretnego dostawcy; jest to bardziej ogólne niż konkretne wdrożenie.
artfulrobot

Odpowiedzi:

28

Dla mnie wybranie renomowanych hostów i regularne tworzenie kopii zapasowych - które wydaje się, że już robisz - jest tak samo dobre, jak możesz, nie zaczynając myśleć o planowaniu ciągłości działania, konfiguracjach o wysokiej dostępności, umowach SLA i tak dalej.

Mówię ludziom, że masz 99% czasu pracy za darmo (tj. Bez wydawania dodatkowych pieniędzy na wysoką dostępność). To około trzy i pół dnia przestoju w roku. Każde dodatkowe 9 w tym czasie pracy zwiększa koszt o około trzy do dziesięciu razy.

Jeśli ludzie nie są gotowi zapłacić tego rodzaju pieniędzy, moim zdaniem błędem jest wprowadzanie ich w błąd, myśląc, że mogą uzyskać dodatkową ochronę o dowolnym znaczeniu.

MadHatter obsługuje Monikę
źródło
3
To świetna odpowiedź. Mam bardzo podobną konfigurację i typy klientów do @artfulrobot (korzystamy nawet z tej samej firmy hostingowej), a jego pytanie i odpowiedź uświadomiły mi, że moim obowiązkiem jest poinformować moich klientów o ograniczeniach i ryzyku, w bardzo prostym języku angielskim, aby upewnić się, że mają realistyczne oczekiwania. Większość z nich jest bardzo non-teccie, więc istnieje bardzo realne prawdopodobieństwo, że będą myśleć, że wszystko jakoś magicznie zadziała, non-stop i ad infinitum. Nie chcę zarządzać ich oczekiwaniami podczas / po poważnej awarii, muszę to zrobić wcześniej!
Simon Blackbourn
Nie twierdzę, że awarie są całkowicie nieskorelowane, ale teoretycznie nadmiarowość 1 + 1 powinna dać ci dwie dodatkowe dziewiątki za dwukrotność kosztu. Sugerujesz, że koszt dwóch dodatkowych dziewiątek wynosi od 9 do 100 razy. 2x w porównaniu do ~ 30x to ogromna różnica.
MSalters
2
@MSalters to prawda, w przypadku niektórych rodzajów awarii (awaria serwera). W przypadku np. Awarii witryny nic nie robi, chyba że dwa serwery znajdują się w różnych lokalizacjach, co staje się niezwykle skomplikowane pod względem administracyjnym sieci. Bierzesz również pod uwagę tylko koszty kapitałowe i pomijasz zwiększone koszty bieżące - utrzymywanie idealnej synchronizacji dwóch serwerów nie jest trywialne, w zależności od tego, co robią, a koszty równoważenia obciążenia wiążą się z kosztami administracyjnymi. Mam wrażenie, że nadmiarowe serwery w jednej witrynie, dzielące obciążenie LB, dają kolejne dziewięć w zamian za 3-4-krotny koszt.
MadHatter obsługuje Monikę
Dobry i łatwy sposób na przedstawienie tego. (Ale ... Chciałbym po prostu dodać gdzieś cenę, ponieważ 3 do 10 razy „darmowy” jest nadal bezpłatny;). Czy oczywiście masz na myśli całkowity koszt samej usługi? )
Olivier Dulac
@OlivierDulac właśnie tak!
MadHatter obsługuje Monikę
8

Małe firmy z małymi budżetami, zwłaszcza non-profit, zazwyczaj nie będą w stanie pozwolić sobie na wysoką dostępność. Pytanie brzmi: jeśli praktycznie nie masz budżetu, jak to zwykle bywa w takich sytuacjach, jaka jest twoja strategia przywracania?

Mam takich klientów i robię to:

Po pierwsze, dla niektórych z nich mam przyrostową kopię zapasową i pełny zrzut bazy danych co sześć godzin. Jeden klient już używał CrashPlan Pro, więc właśnie tego użyłem. Cokolwiek robisz, musisz mieć pewność, że masz kopię zapasową, którą można przywrócić.

Mam prosty poradnik ansible, który przygotowałem w ciągu około godziny (wcześniej nie pracowałem z ansible), który instaluje nginx, php-fpm i MariaDB i przygotowuje je do obsługi witryny lub witryn. Uruchomienie tego podręcznika powoduje, że serwer (lub serwery) są gotowe do hostowania typowej aplikacji internetowej, a ja mogę po prostu przywrócić do niego wirtualny host nginx, pliki aplikacji i bazę danych.

Wynikiem tego jest to, że mogę uruchomić taką stronę internetową z kopii zapasowej w ciągu zaledwie kilku minut, w przeciwieństwie do ręcznego sposobu, który może potrwać godzinę lub dłużej.

Michael Hampton
źródło
Hej, to brzmi idealnie. Zajrzę do tego. Dzięki.
artfulrobot
Wysoka dostępność jest łatwo dostępna nawet dla małych klientów od dobrych dostawców. Mają ekonomię skali.
JamesRyan
@JamesRyan Tak, ale nie masz ekonomii ... ekonomii. Powiedz mi, czy sensowne jest uruchomienie dwóch instancji Amazon i modułu równoważenia obciążenia elastycznego dla witryny, która ogląda 300 odsłon miesięcznie?
Michael Hampton
@MichaelHampton, że nie jest to nawet to, co sugerowałem. Firma hostująca VPS dla setek klientów może rozdzielić je między zbędny sprzęt, a nie po prostu umieścić kilka z nich na jednym fizycznym serwerze i trzymać kciuki.
JamesRyan
4

Złożoność implementacji zależy od stosu aplikacji, ale najlepiej byłoby ustawić „tryb gotowości na gorąco” (u innego dostawcy), przy czym dane są replikowane w czasie rzeczywistym (lub tak blisko czasu rzeczywistego), jak to możliwe.

Przedstawienie uzasadnienia biznesowego posiadania 2 „aktywnych” serwerów jest tak proste, jak porównanie potencjalnej utraty przychodów w okresie „odzyskiwania z obrazów” z kosztem innego serwera.

Mark R.
źródło
Dzięki. Używam stosu LAMP. Wydaje mi się, że replikacja MySQL w czasie rzeczywistym byłaby dość trudna w zarządzaniu. Podwaja to serwery, którymi muszę zarządzać. Może miałoby sens mieć jedno pole o niskiej specyfikacji, które miało kopię na żywo wszystkich innych serwerów, więc była to tylko propagacja DNS. Następnie mógłbym sklonować to z powrotem do nowego VPS i zmienić DNS (hmmm.).
artfulrobot
Replikacja MySQL jest zwykle dość prosta do skonfigurowania i skonfigurowania, poza czasem przesyłania początkowego zestawu danych. Jeśli chodzi o DNS, większość resolworów szanuje obecnie niskie TTL, a ustawienie TTL rekordu na zaledwie 60 sekund zwykle działa dobrze.
Mark R.
Replikacja MySQL jest bardziej złożona, gdy trzeba dodać nowe dodatkowe bazy danych i uważam, że nadal trudno jest mieć jeden serwer jako slave dla więcej niż jednego mastera (replikacja kilku dbs na jednym serwerze rezerwowym). Oczywiście musisz również zabezpieczyć dostęp między serwerami, np. Stunnel, więc jest to PKI do utrzymania itp., Chyba że masz prywatną sieć LAN, ale wyklucza to konieczność posiadania oddzielnej firmy hostingowej.
artfulrobot
Zawsze tunele replikacja-do-db i SSH z kluczami.
Mark R.
Używany do uruchomienia standardowego tunelu SSH, ale nie był niezawodny. Stunnel jest genialny, kiedy już go uruchomisz.
artfulrobot
2

Pamiętaj, że czas działania nie jest tym samym co integralność danych. Możesz mieć 99,99% czasu sprawności i utracić wszystkie swoje dane dwa razy w roku, o ile serwer został zrestartowany „wystarczająco szybko”. Większość dostawców VPS gwarantuje, że Twój serwer działa, a NIE twoje dane są bezpieczne. Twoje dane to Twój problem :(.

To, czego szukasz, będzie przechowywać kopie zapasowe na osobnym serwerze i (IMHO) nawet u tego samego dostawcy. W zależności od rozmiaru danych, o których mówisz, przenośny dysk twardy może być używany jako trzecia linia obrony offline. Wykonaj kopię zapasową swoich danych, a następnie regularnie kopiuj (lub tylko zmiany, jeśli to możliwe) na przenośny dysk twardy lub nawet na komputer lokalny. Istnieją również niedrogie opcje, takie jak Backblaze dla rozwiązań do tworzenia kopii zapasowych, ale cena będzie zależeć od ilości danych, o których mówisz. Jeśli możesz tworzyć przyrostowe kopie zapasowe, będzie to znacznie tańsze niż pełne kopie zapasowe, ale przyrostowe kopie zapasowe mogą być bardzo trudne w zależności od miejsca przechowywania danych (pliki płaskie = łatwe, baza danych = nie takie łatwe).

millebi
źródło
Tak, robię to :-) I tak, firmy hostingowe nie dbają o dane, już wcześniej miałem do czynienia z uszkodzeniem dysku!
artfulrobot
0

Odpowiedź zależy całkowicie od architektury i wymagań. Jakiś czas temu 3 dyski zawiodły na moim serwerze, usuwając ponad 20 vm, gdy Raid 6 zawiódł.

Pisałem o tym na

https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs

Ale: Ponieważ jest to krytyczne, mieliśmy kopie zapasowe - codziennie dla nieistotnych rzeczy, 15 minut dla baz danych i e-maili. Heck, teraz dodałem serwer, który jest replikowany na innym komputerze co 30 sekund.

Nic nie mówisz o stosie, nic o żadnym budżecie - więc najlepszą i jedyną radą tutaj jest udanie się do dostawcy usług w chmurze i rozpoczęcie korzystania z ich mechanizmów tworzenia kopii zapasowych. Ale zacznij definiować, czego właściwie potrzebujesz.

Ponadto - budżet tej kopii zapasowej powinien zależeć od ceny. To musi być zapłacone. I jakiejkolwiek infrastruktury potrzebujesz ... potrzebujesz. Nie jest to więc „absurdalnie drogie”.

TomTom
źródło
TomTom: aoe + openfiler i kilka pudełek, a możesz zbudować bardzo wysoką dostępność micro-san
symcbean