タグ付けされた質問 「high-availability」

高可用性は、システムまたはコンポーネントに障害が発生した場合の可用性を保証するための冗長性の度合いを伴うことが多いアーキテクチャ上の考慮事項です。

11
複数のデータセンターとHTTPトラフィック:DNSラウンドロビンは、インスタントフェールオーバーを保証する唯一の方法ですか?
同じドメインを指す複数のAレコードは、安価な負荷分散技術としてDNSラウンドロビンを実装するためにほぼ排他的に使用されるようです。 DNS RRに対する通常の警告は、高可用性には向いていないということです。1つのIPがダウンすると、クライアントはそれを数分間使用し続けます。 多くの場合、ロードバランサーがより良い選択肢として提案されています。 両方の主張は完全に真実ではありません: トラフィックがHTTPの場合、HTMLブラウザーのほとんどは、前のレコードがダウンしている場合、新しいDNSルックアップなしで、次のAレコードを自動的に試行できます。ここ3.1章とこちらをお読みください。 複数のデータセンターが関係する場合、DNS RRがトラフィックをそれらに分散する唯一のオプションです。 それでは、複数のデータセンターとHTTPトラフィックがある場合、DNS RRを使用するのは、1つのデータセンターがダウンしたときに即座にフェイルオーバーを保証する唯一の方法ですか? おかげで、 ヴァレンティノ 編集: もちろん、各データセンターにはホットスペアを備えたローカルロードバランサーがあります。 インスタントフェールオーバーのためにセッションアフィニティを犠牲にしてもかまいません。 知る限り、DNSが別のデータセンターではなくデータセンターを提案する唯一の方法は、そのデータセンターに関連付けられたIPのみで返信することです。データセンターが到達不能になると、それらのIPもすべて到達不能になります。これは、スマートHTMLブラウザーが別のAレコードをすぐに試すことができる場合でも、ローカルキャッシュエントリが期限切れになり、新しいDNSルックアップが行われ、新しい作業IPを取得するまですべての試行が失敗することを意味します(DNSは自動的に1つの障害が発生した場合の新しいデータセンター)。そのため、「スマートDNS」では、即時のフェイルオーバーを保証できません。 逆に、DNSラウンドロビンはそれを許可します。1つのデータセンターに障害が発生すると、スマートHTMLブラウザー(そのほとんど)は、別の(稼働中の)データセンターにジャンプする他のキャッシュされたAレコードを即座に試行します。そのため、DNSラウンドロビンはセッションアフィニティまたは最低のRTTを保証しませんが、クライアントが「スマート」HTMLブラウザーである場合に即座にフェールオーバーを保証する唯一の方法のようです。 編集2: 一部の人々は、TCP Anycastを決定的なソリューションとして提案しています。この論文(第6章)エニーキャストは、フェイルオーバーがあると説明されているBGPコンバージェンスに関連しています。このため、エニーキャストは完了するのに15分から20秒かかります。トポロジーがこのために最適化されたネットワークでは20秒が可能です。おそらく、CDNオペレーターだけがこのような高速フェールオーバーを許可できます。 編集3:* 私はいくつかのDNSルックアップとtracerouteを行いました(専門家によっては二重にチェックできるかもしれません)そして: TCP Anycastを使用する唯一のCDNはCacheFlyのようです。CDNネットワークやBitGravityなどの他のオペレーターはCacheFlyを使用します。エッジをリバースプロキシとして使用できないようです。したがって、インスタントフェールオーバーを許可するために使用することはできません。 AkamaiとLimeLightは、地理認識DNSを使用しているようです。しかし!複数のAレコードを返します。tracerouteから、返されたIPは同じデータセンターにあるようです。そのため、あるデータセンターがダウンしたときに、どのように100%SLAを提供できるのか戸惑っています。

6
Windows 2008はGratuitous ARP要求を無視します
最近、ルーターのフェールオーバー後に、フェールバック後にWindows 2008 Boxesがプライマリルーターと通信を開始しなかったという問題が見つかりました。 いくつかの掘削を行ったときに、セカンダリルーターからのARPエントリがまだありました。TechNetブログによると、これは仕様によるものです。 まず、Windows VistaまたはWindows Server 2008は、ARPブロードキャストが受信者へのブロードキャストARP要求の一部でない限り、ARPブロードキャストを受信した場合、近隣キャッシュを更新しません。つまり、Windows VistaおよびWidows Server 2008を使用してネットワーク上でGratuitous ARPが送信された場合、IPアドレスの競合がある場合、これらのシステムは誤った情報でキャッシュを更新しません。 次に、マシンが現在キャッシュにあるマシンと通信できなくなった場合にのみ、windows neighbor-cache(arp-cache)が更新されるようです。キャッシュが古くなっていないことを確認するために、時々ARP要求を送信しません。これは最初のフェールオーバーでは問題になりませんが、両方のボックスが生きているフェールバックでは、ウィンドウがセカンダリボックスと通信し続けます。 Windows 2008でGratuitous ARPリクエストを受け入れるようにする方法はありますか?

9
Heartbeat、Pacemaker、CoroSyncの代替品ですか?
典型的なHeartbeat / Pacemaker / CoroSyncの組み合わせ以外に、Linuxでの自動フェイルオーバーの主要な代替手段はありますか?特に、ユニキャストのみをサポートし、マルチキャストもブロードキャストもサポートしないEC2インスタンスでフェイルオーバーを設定しています。特に、自動フェールオーバーがなく、マルチマスター環境をサポートしていないソフトウェアをいくつか処理しようとしています。これには、HAProxyやSolrなどのツールが含まれます。 Heartbeat + Pacemakerを使用していますが、私は興奮していません。ここに私の問題のいくつかがあります: ハートビート-単独で、2つのノードに制限されます。3+が欲しいです。 Pacemaker-自動的に構成することはできません。クラスタはクォーラムで実行する必要がありますが、それでも手動構成が必要です。 CoroSync-ユニキャストをサポートしません。 Pacemakerは非常にうまく機能しますが、そのパワーによりセットアップが難しくなります。Pacemakerの本当の問題は、構成を自動化する簡単な方法がないことです。私は本当にEC2インスタンスを起動し、Chef / Puppetをインストールし、私の介入なしにクラスター全体を起動したいと思っています。


1
statsdとグラファイトの高可用性、Webアクセスおよびスケーラブルな展開
statsd / graphiteをセットアップして、HTMLデバイスで実行されているJSアプリをログに記録できるようにします(つまり、収容されたLAN環境ではなく、直接制御できない大量の着信データがある場合)。 私の制約: エントリポイントはHTTPを話す必要があります:これは単純なHTTP-to-UDP-statsdプロキシ(たとえば、githubのhttpstatsd)によって解決されます 単一のサーバーの障害に抵抗する必要があります(マーフィーの法則と戦うために:) 水平方向にスケーラブルでなければなりません:webscale、baby!:) アーキテクチャは可能な限りシンプル(かつ安価)に保つ必要があります 私のサーバーは仮想マシンです データファイルはファイラーアプライアンスに保存されます(NFSを使用) tcp / udpハードウェアロードバランサーを自由に使用できます 要するに、データパス:[client]-(http)-> [http2statsd]-(udp)-> [statsd]-(tcp)-> [graphite]-(nfs)-> [filer] これまでの私の調査結果: http2statsd部分のスケーリングは簡単です(ステートレスデーモン) statsd部分のスケーリングは簡単ではないようです(sum、avg、min、maxなどの集計データのグラファイトで一貫性のない値になると思います)。HTTPデーモンがキーを分割するために一貫したハッシュを行わない限り。たぶんアイデア...(しかし、HAの質問があります) グラファイト部分のスケーリングは、シャーディング(カーボンリレーを使用)で実行できます(ただし、HAの問題も解決しません)。明らかに、いくつかのささやきインスタンスは同じNFSファイルを書き込むべきではありません。 ファイラー部分のスケーリングは問題の一部ではありません(ただし、IOが少ないほど良いです:) 共有NFSデータのみを読み取るため、webappのスケーリングは明らかです(私はテストしていませんが)。 だから、誰もが安定したstatsd /グラファイト展開のために共有する経験とベストプラクティスを持っているのだろうかと思っていましたか?

8
DNSサーバーに障害が発生した場合のDNSタイムアウトの回避
3つの内部DNSサーバー(バインド9)を指す約100のホストを持つ小さなデータセンターがあります。問題は、内部DNSサーバーの1つが使用できなくなったときに発生します。その時点で、そのサーバーを指すすべてのクライアントの実行が非常に遅くなります。 問題は、標準のLinuxリゾルバには、実際には別のDNSサーバーへの「フェイルオーバー」という概念がないということです。使用するタイムアウトと再試行回数を調整できます(そして、リストで機能するように回転を設定します)が、プライマリDNSサーバーが使用できなくなった場合、サービスを使用する設定がどれほど遅くなるかは関係ありません。現時点では、これは私たちにとって最大のサービス中断の原因の1つです。 私の理想的な答えは、「RTFM:tweak /etc/resolv.conf like this ...」のようなものですが、それがオプションである場合は見ていません。 私は他の人々がこの問題をどのように扱っているのだろうと思っていましたか? 私は3つの可能なタイプのソリューションを見ることができます: linux-ha / PacemakerとフェイルオーバーIPを使用します(DNS IP VIPは「常に」利用可能です)。残念ながら、優れたフェンシングインフラストラクチャがなく、フェンシングなしではペースメーカーはあまりうまく機能しません(私の経験では、Pacemakerはフェンシングなしで可用性を低下させます)。 各ノードでローカルDNSサーバーを実行し、resolv.confがlocalhostを指すようにします。これは機能しますが、監視および管理するためのより多くのサービスを提供します。 各ノードでローカルキャッシュを実行します。人々はnscdが「壊れている」と考えているように見えますが、dnrdには適切な機能セットがあるようです。つまり、dnsサーバーをupまたはdownとしてマークし、「down」dnsサーバーを使用しません。 エニーキャスティングは、IPルーティングレベルでのみ機能するようであり、サーバー障害のルート更新に依存します。マルチキャスティングは完璧な答えのように見えましたが、バインドはブロードキャストまたはマルチキャスティングをサポートしていないため、マルチキャストdnsは通常のdns解決ではなく、サービス検出と自動構成を目的としていることがわかります。 明らかな解決策がありませんか?

3
AnycastとGeoDNS / GeoIP wrt HAの違いは何ですか?
AnycastのWikipediaの説明に基づいて、多くのDNSサーバーにわたるドメイン名から多IPへのマッピングの配布と、地理的に最も近い(または最も速い)サーバーを持つクライアントへの応答の両方が含まれます。 google.com(または多くのグローバルエッジロケーションを持つCDNサービス)のようなグローバルに分散された可用性の高いサイトのコンテキストでは、これは必要な2つの重要な機能のように聞こえます。 AmazonのRoute53、EasyDNS、DNSMadeEasyなどのDNSサービスはすべて、自分自身をエニーキャスト対応ネットワークとしてアドバタイズします。 したがって、私の想定では、これらのDNSサービスのそれぞれが、マルチIPからドメインへのマッピングと、最も近いノードへのクライアントのルーティングという2つのキラー機能を透過的に提供します。 ただし、これらのサービスはそれぞれ、2つの機能(クライアントを最も近いノードにルーティングする)を「GeoDNS」、「GeoIP」、または「Global Traffic Director」と呼び、サービスに対して追加料金を請求するこれら2つの機能を分離しているようです。 エニーキャスト対応システムのコアテナントがこれを既に行う場合、この機能がこの追加機能として指定されているのはなぜですか?この「GeoDNS」機能とは、標準のエニーキャストDNSサービスではできないことです(ウィキペディアのエニーキャストの定義によると、宣伝されているものを理解していますが、まだ暗示されていない理由だけではありません)。 この曖昧な「GeoDNS」機能をサポートしていないRoute53のようなDNSサービスが次のような機能をリストすると、私はさらに混乱します。 高速–世界中のDNSサーバーのグローバルエニーキャストネットワークを使用するRoute 53は、ネットワークの状態に応じてユーザーを最適な場所に自動的にルーティングするように設計されています。その結果、このサービスは、エンドユーザーのクエリレイテンシを低くし、DNSレコード管理のニーズに合わせた更新レイテンシを低くします。 ...これはGeoDNSが意図していることとまったく同じように聞こえますが、地理的に指示するクライアントはまだ明示的にサポートしていません。 最終的には、DNSプロバイダーから次の2つの機能を探しています。 複数のIPアドレスを単一のドメイン名にマップします(google.com、amazon.comなどがそうします) DNSサービスを利用して、そのドメインに対するクライアントリクエストに、リクエスト先に最も近いサーバーのIPアドレスで応答します。 前述のように、これはすべて「Anycast」DNSサービス(これらはすべてサービス)の一部であるように見えますが、それらから見える機能とマーケティングはそうではないことを示唆しているため、どのようにもう少し学ぶ必要があると思いますDNSは、展開を選択する前に機能します。 明確化のために事前に感謝します。

8
Webサイトの高可用性を導入するのに適切なタイミングはいつですか?
Webサイトの高可用性を導入するのに適切なタイミングはいつですか? 高可用性オプションに関する多くの記事があります。ただし、単一サーバーから高可用性構成に切り替えるのに適切なタイミングはいつかということは明らかではありません。 私の状況を考慮してください: http : //www.postjobfree.comは24時間年中無休のWebサイトであり、大量のトラフィックがあります:http : //www.similarweb.com/website/postjobfree.com 現在、単一のサーバーで実行しています。IIS7.0 WebサーバーとSQL Server 2008の両方が同じハードウェアボックスで実行されています。 通常、Windows Serverの更新プログラムで必要な再起動が原因で、時折(1か月に1回)〜5分のダウンタイムが発生します。通常、ダウンタイムは予定されており、夜間に発生します。それでも、Google Botと一部のユーザーは夜もアクティブであるため、不快です。 現在のWebサイトの収益は、約8,000ドル/月です。 2サーバー構成(2つのWebサーバーのWebファームと、2つのハードウェアサーバーでホストされる2つのSQL Serverのクラスター)に切り替えることを検討します。 長所: 1)高可用性(理論的にはダウンタイムなし)。サーバーの1つがダウンした場合でも、別のサーバーが引き継ぎます。 2)データの損失なし:SQLクラスターがない場合、ハードウェア障害の場合に最大1日分のデータが失われる可能性があります(毎日バックアップを行います)。 短所: 1)そのような構成をセットアップして維持するためのより多くの努力。 2)ホスティングコストが高い。毎月〜600ドルではなく、毎月約1200ドルです。 あなたの推薦は何ですか?

5
A Webサーバーのプラグが抜かれた場合、すべてのユーザーを別の都市のB Webサーバーに自動的にリダイレクトするにはどうすればよいですか?
A Webサーバーのプラグが抜かれた場合、すべてのユーザーを別の都市のB Webサーバーに自動的にリダイレクトするにはどうすればよいですか? 負荷分散スイッチは、両方のWebサーバーが同じ建物内にない限り、どのように機能させるかわからないことを除いて、私が望むことを行います。 高可用性クラスタリングシステムは、両方のWebサーバーが同じ建物内にない限り、どのように機能させるかわからないことを除いて、私が望むことを行います。 「メインWebサーバーがダウンしているときに別のWebサーバーの静的ページにリダイレクトする」に対する受け入れられた回答は、2つの異なる都市のWebサーバーをサポートしているようです。しかし、1つのボックスにソフトウェアをインストールすると、そのボックスを取り外した後にどのように役立ちますか? ラウンドロビンDNSおよびコンテンツ配信ネットワーク(CDN)はどのようにそれを行いますか? 私は1つのアプローチが次のようなものから始まると思います: 物理的なWebサーバーのすべてのIPアドレスを取得します。 物理的なWebサーバーのすべてのIPアドレスを、 "the" Webサイトの単一ドメイン名(複数のAレコードまたはAAAAレコードまたは両方)のDNSレコードに入れます。 ...次に何をする必要がありますか? 別のアプローチは次のようなものから始まると思います ユーザーがWebブラウザーに入力することを期待する単一のドメイン名に、いくつかの動的DNSプロバイダーを使用します 各Webサーバーでcronジョブを設定し、定期的にDNSプロバイダーに独自のIPアドレス(AレコードまたはAAAAレコードを更新)または独自のドメイン名(CNAMEレコードまたはDNAMEレコードを更新)に通知します。 ...次に何をする必要がありますか? (今のところ、WebサーバーAが接続されていないときはいつでも、ユーザーが連絡先情報と「メインA Webサーバーがダウンしているように見える」という脚注を含む静的なWebページを手に入れれば幸いです。 「サーバーが見つかりません」というエラーを単に表示する現在のシステムです。理想的には、AとBを完全に同期し、見かけ上は同一にしたいのですが、それは別の質問です:CDNと同等ですが、動的コンテンツですか?)。

3
マルチサイトの高可用性
高可用性が必要なSaaSアプリケーションがあります。高価でメンテナンスの行き届いたHyper-Vフェールオーバークラスターは既にありますが、今日、そのクラスターをホストするデータセンターでは5時間の停電が発生し、完全にオフラインになりました。そのため、2つの別々のデータセンターでサーバーを使用する方がよいのではないかと考えています。これらの2つのサイト間ですべてのバックエンドファイルレプリケーションとデータレプリケーションが機能すると仮定すると、フロントエンドルーティングの処理方法が不思議になります。単一障害点。 質問は...ロードバランサーが単一障害点にならないように、2つのホスティングサイト間でロードバランシングを設定するにはどうすればよいですか?各サイトに1つずつ、2つの個別のロードバランサーを使用する方法はありますか?ラウンドロビンDNSを検討すべきですか?

1
高可用性のためのbeanstalkdの複製
タイトルがすべてを語っています。 beanstalkサーバーがダウンした場合に他のスレーブが引き継ぐことができるようにbeanstalkdを複製する方法を知っている人はいますか? 私が考えたアプローチの1つを次に示します。beanstalkに(-bを使用して)binlogを共有場所に書き込み、プライマリサーバーで障害が発生した場合にセカンダリサーバーまたはバックアップサーバーでbeanstalkdを起動させることができます。 しかし、もっと良い方法があるはずです。

2
Puppetを使用したマルチサイト高可用性のオプション
私は2つのデータセンターを維持しており、重要なインフラストラクチャの多くがパペットを介して制御され始めているため、プライマリサイトで障害が発生した場合、パペットマスターが2番目のサイトで動作することが重要です。 さらに良いのは、2番目のサイトのサーバーがWANを介してポーリングしないように、アクティブ/アクティブのセットアップを行うことです。 マルチサイトパペットの高可用性の標準的な方法はありますか?

5
DNSラウンドロビン:ブラウザーは、オンラインである限り1つのIPに固執しますか?
DNSサーバーから複数のAレコードを取得した場合、ほとんどのブラウザーはどのように動作しますか?到達可能な限り、1つのIPにスティックします(IPがダウンしている場合にのみ別のIPを使用します)。それとも、彼らは理由もなく常に切り替えますか? 現在のブラウザの大部分が1つのIPに固執している場合、DNS-RRは単純なフェイルオーバーソリューションとして十分です。

8
Apacheを予算内で負荷分散しますか?
何百万人ものユーザーに途方もない速度を提供するための負荷分散ではなく、物事がうまくいかないときにユーザーを幸せに保つために、可用性と冗長性を確保する負荷分散の概念を理解しようとしています。 私たちは予算に余裕があり、十分な知識があるものに固執しようとしているので、Ubuntu VPSでApacheを実行することは、有名な検索エンジンが私たちを獲得するまでの戦略のようです(土曜日の皮肉が含まれています、注意してください)。 少なくとも私にとっては、利用可能なさまざまなソリューションの完全なジャングルです。Apacheが所有するmod_proxyとHAproxyは、Googleのクイック検索で見つけた2つですが、負荷分散の経験がゼロであるため、私たちの状況に適切なもの、または解決するソリューションを選択する際に何を検討するのかわかりません可用性の問題。 私たちにとって最良の選択肢は何ですか?予算内で高い可用性を実現するにはどうすればよいですか?

3
RabbitMQ-ゼロダウンタイムアップグレード用にサーバーを構成する方法
docsとActionのRabbitMQを読んで、RabbitMQクラスターの作成は簡単に思えますが、既存のRabbitMQクラスターをアップグレードまたはパッチを適用するには、クラスター全体を再起動する必要があります。 クラスタリング、ショベル、フェデレーション、および負荷分散を組み合わせて、キューやメッセージを失うことなくローリングアップグレードを可能にする方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.