予算内でサーバーの損失を防ぐ方法


22

私は小さな会社で、慈善団体や非営利のクライアントにウェブサイトやデータベースを提供する予算はあまりありません。

Debian Linux VPSサーバーをいくつか所有しており、サービスがホストされているVPSとは異なるVPSに毎日バックアップしていることを確認します。

最近、ホスティング会社の1社から、2台のドライブが同時に故障したため、データが永久に失われたと言われました。物事が起こり、申し訳ありませんが、他に何ができるでしょうか?しかし、ハードウェアまたはその他のホスト関連の障害が発生した場合に、基本的に再びVPSを起動する費用対効果の高い方法について疑問に思いました。

現在、私はする必要があります

  1. 新しいVPSをスピンアップする
  2. 最終日のバックアップ(データベース、Webルート、Webサイト固有の構成を含む)をVPSに取得し、最後のバックアップなどのように構成します。
  3. DNSを更新し、伝播するのを待ちます。

TTLを非常に低く設定していますが(1時間程度)、DNS伝搬は大きな未知数であるため、おそらく1日ほどかかるでしょう。

一部のホストは、新しいVPSにセットアップを複製するために使用できるスナップショットを提供しますが、IPがまだあり、ホスト会社がアカウントを完全にキャンセル/一時停止する場合は役に立ちません(これについて読んでいます)特定のホスティングプロバイダーからの行動、それは私を怖がらせます!私はスパム/危険なことを何もせず、セキュリティに細心の注意を払っていますが、私は彼らが文字通りこれを行う力を持っていることを理解し、私はかなりリスクを嫌います)。

これは、評判の良いホストを選択することと組み合わせて、信じられないほど高価なソリューションを使わずにできる最善の方法ですか?


1
2つのドライブは、特にVPSに、同時に障害が発生したという主張の非常に懐疑的
symcbean

どうやら新しいものが再構築されている間に、あるものが失敗し、別のものが失敗したようです。
artfulrobot

見とるdrbd.linbit.comを、これはあなたの要件に合うかもしれません...
Unixの用務員

2
@symcbean:問題は、RAID-5の再構築には、残りのすべてのディスクのすべてのデータの読み取りが必要なことです。これはかなり長い操作です(数日ではないにしても数時間)。安価なRAID-5システムには、デスクトップドライブを使用した9 + 1セットアップがあります。これらの9つのディスクはすべて、RAIDの再構築時に設計上の制限を超えてストレスがかかります。実際には、失敗が予想されます。
–MSalters

1
実際、ストレージプールとプロセッサ+メモリプールは別々のエンティティとして存在しますが、問題は特定のプロバイダーで何が起こったのか、何がなかったのかということではありません。特定の実装よりも一般的です。
artfulrobot

回答:


28

私にとって、評判の良いホストを選択して定期的なバックアップを行うことは、どちらも既に行っているように思えますが、ビジネス継続性計画、高可用性セットアップ、SLAなどについて考え始めることなく行うことができます。

99%のアップタイムが無料で得られることを人々に伝えます(つまり、高可用性に余分な費用をかけることはありません)。これは、年間約3日半のダウンタイムです。その稼働時間に9を追加するごとに、コストが3〜10倍増加します。

人々がその種のお金を支払う準備ができていない場合、私の意見では、どんな意味の余分な保護も得られると誤解させるのは間違いです。


3
これは素晴らしい答えです。私は@artfulrobotに非常によく似たセットアップとタイプのクライアントを持っています(私たちは同じホスティング会社を使用しています)。非常に分かりやすい英語で、彼らが現実的な期待を持っていることを確認します。それらのほとんどは非常に非技術的であるため、彼らはすべてが何らかの形で魔法のように機能し、ノンストップで広告無限であると考える可能性が非常に高いです。重大な障害の間/後に彼らの期待を管理したくないので、前にそれをする必要があります!
サイモンブラックボーン

故障が完全に無相関であると言っているわけではありませんが、理論的には1 + 1の冗長性により、2倍のコストで2 つの余分な9 が得られるはずです。余分な2つのナインのコストは9倍から100倍の間にあることをお勧めします。2倍対30倍は大きな違いです。
–MSalters

2
@MSaltersは、特定の種類の障害(サーバー障害)に対して真実です。例えばサイトの障害に対して、それは2台のサーバーが異なるサイトでない限り、何もしない、とそれはネットワーク管理の面で非常に複雑になります。また、資本コストのみを考慮し、増加するランニングコストを見落とします。2台のサーバーを完全に同期させることは、どのようなことをしているのかに応じて簡単ではなく、ロードバランサーの管理コストがあります。私は、LB負荷を共有する単一サイトの冗長サーバーは、3〜4倍のコストと引き換えにさらに9台を提供すると考えています。
MadHatterはモニカをサポートします

それを提示するための良い簡単な方法。(ただし... 3〜10倍の「無料」はまだ無料なので、どこかに価格を追加するだけです。)または、もちろん、サービス自体の全体的なコストを意味しますか?)
オリビエデュラック

@OlivierDulacまさにそう!
MadHatterは、モニカをサポートします

8

予算の少ない中小企業、特に非営利団体は、通常、高可用性を確保できません。問題は、このような状況でよくあるように、実質的に予算がない場合、復元戦略は何ですか?

私はこのようなクライアントを持っていますが、これが私がやっていることです:

まず、そのうちのいくつかについては、6時間ごとに増分バックアップとデータベース全体のダンプがあります。1人のクライアントがすでにCrashPlan Proを使用していたので、それを使用しました。何をするにしても、復元可能なバックアップがあることを確認する必要があります。

nginx、php-fpm、MariaDBをインストールし、1つまたは複数のWebサイトをホストするために準備する簡単なansibleプレイブックを約1時間で作成しました(以前はansibleで作業したことはありません)。このプレイブックを実行すると、一般的なWebアプリケーションをホストする準備ができたサーバーが作成され、nginx仮想ホスト、アプリケーションファイル、データベースを単純に復元できます。

この結果、1時間以上かかる手動の方法とは対照的に、バックアップからこのようなWebサイトをわずか数分で立ち上げることができます。


ちょっとそれはスポットに聞こえます。それについて見ていきます。ありがとう。
artfulrobot

高可用性は、優れたプロバイダーの小規模クライアントでも容易に利用できます。彼らは規模の経済を得る。
ジェームズライアン

@JamesRyanはい、しかしあなたは経済を得ることができません...経済。1か月に300ヒットするWebサイトで2つのAmazonインスタンスとエラスティックロードバランサーを実行することが理にかなっている場合、教えてください。
マイケルハンプトン

@MichaelHamptonそれは私が提案していたものでさえも遠くありません。数百のクライアント用にVPSをホストしている会社は、単一の物理サーバーに単純に大量のVPSを配置して指先でやり取りするのではなく、それらを冗長ハードウェアに分散できます。
ジェームズライアン

4

実装の複雑さはアプリケーションスタックによって異なりますが、理想的には、可能な限りリアルタイム(またはリアルタイムに近い状態)で複製される「ホットスタンバイ」(別のプロバイダーで)をセットアップする必要があります。

「ライブ」サーバーを2台持つビジネスケースを作成するのは、「イメージからの回復」期間中の潜在的な収益の損失を別のサーバーの費用と比較するのと同じくらい簡単です。


ありがとう。LAMPスタックを使用しています。リアルタイムはMySQLレプリケーションのようなものになると思いますが、管理するのはかなり難しくなります。そして、管理しなければならないサーバーが2倍になりました。たぶん、他のすべてのサーバーのライブコピーを持つ低スペックボックスを1つ持つことは理にかなっているので、それは単なるDNSの伝播でした。次に、それを新しいVPSにクローンし、DNSを変更します(うーん。)。
artfulrobot

通常、MySQLレプリケーションは、初期データセットの転送に費やされる時間を除き、セットアップと構成が非常に簡単です。DNSに関しては、ほとんどのリゾルバは最近では低いTTLを尊重しており、通常はレコードのTTLを60秒まで低く設定するとうまくいきます。
マークR.

MySQLのレプリケーションは、新しいデータベースを追加する必要がある場合、より複雑になります。1台のサーバーを複数のマスターのスレーブにすることは依然として難しいと考えます(1台のスタンバイサーバーに複数のdbを複製します)。もちろん、サーバー間のアクセスを保護する必要があります。たとえば、stunnelです。プライベートLANがない限り、保守するPKIですが、これは別のホスティング会社との必要性によって除外されます。
artfulrobot

キー付きのreplicate-do-dbおよびSSHトンネルが常に存在します。
マークR.

標準のSSHトンネルを実行するために使用されていましたが、信頼性がありませんでした。ただし、Stunnelは、一度立ち上げて実行すると素晴らしいものになります。
artfulrobot

2

稼働時間はデータの整合性と同じではないことに注意してください。サーバーが「すぐに」再起動される限り、1年に99.99%の稼働率があり、すべてのデータが失われる可能性があります。ほとんどのVPSプロバイダーは、データの安全性ではなく、サーバーの実行を保証しています。あなたのデータはあなたの問題です:(。

探しているのは、バックアップを別のサーバーに保存し、同じプロバイダーでも(IMHO)に保存しないものです。話しているデータサイズによっては、ポータブルハードドライブをオフライン防御の3行目として使用できます。これまでのようにデータをバックアップし、それを定期的にポータブルハードドライブまたはローカルコンピューターにコピーします(または可能であれば変更のみ)。バックアップソリューション用のBackblazeのような合理的に安いオプションもありますが、価格はあなたが話しているデータの量に依存します。増分バックアップを実行できる場合、完全バックアップよりもはるかに安価ですが、データの保存場所によっては増分バックアップが非常に困難になる場合があります(フラットファイル=簡単、データベース=それほど簡単ではありません)。


ええ、私はそうします:-)そして、はい、ホスティング会社はデータを気にしません、私は以前にもディスクの破損に対処しました!
artfulrobot

0

答えは、アーキテクチャと要件に完全に依存します。しばらく前に、私のサーバーで3枚のディスクが故障し、RAID 6が故障すると20以上の仮想マシンがダウンしました。

私はそれについて書いた

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

しかし、これは重要であるため、重要ではないものについては毎日、データベースおよび電子メールについては15分、バックアップがありました。ヘック、30秒ごとに別のマシンに複製されるサーバーを追加しました。

スタックについても、予算についても何も言わないので、ここでの最善かつ唯一のアドバイスは、クラウドプロバイダーに行き、バックアップメカニズムの使用を開始することです。しかし、実際に必要なものを定義し始めてください。

また、このバックアップの予算は価格設定に含まれている必要があります。支払いが必要です。そして、あなたが必要とするどんなインフラストラクチャも....あなたはそれを必要とします。それは「ばかげて高価」ではありません。


TomTom:aoe + openfilerおよびいくつかのボックスを使用すると、非常に高可用性のmicro-sanを構築できます
-symcbean
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.