NCache 高可用性と定期メンテナンス

このビデオは、 NCache 100%の稼働時間とデータの信頼性を提供することにより、データの高可用性を維持します。 この特定のデモでは、実行中のキャッシュクラスターからキャッシュサーバーノードを開始および停止し、その方法を示します。 NCache クライアントアプリケーションのダウンタイムやデータ損失なしに、これを正常に処理します。

今日は、高可用性を実現する方法についてお話します。 NCache そしてどうやって NCache 高可用性を提供します。 あなたが知っているように、 NCache ダウンタイムを許容できないミッションクリティカルなアプリケーションで使用されます。

これは、複数のサーバーのキャッシュクラスターを使用しているアプリケーションサーバーファームがあり、複数のデータソースがある写真です。 そして、これらは通常、少なくともXNUMXつ以上のキャッシュサーバーです。

NCache ミッションクリティカルなアプリケーションで使用
NCache ミッションクリティカルなアプリケーションで使用

と、 NCache あなたに 動的キャッシュクラスタリング、アプリケーションを停止せずに実行時にキャッシュサーバーを追加または削除できる場合。 NCache ピアツーピアアーキテクチャを備えています。 そして、今日のビデオでこれを実演します。

パーティションレプリカトポロジを使用します。ここでは、サーバーを追加していきます。このトポロジでは、すべてのサーバーにXNUMXつのパーティションがあることがわかります。 したがって、XNUMX台のサーバーから開始した場合、それはXNUMXつのパーティションのみであり、レプリカも同じパーティション上にあるか、レプリカがない可能性があり、XNUMX番目のサーバーを追加するとXNUMXつのパーティションがあります。 したがって、キャッシュのデータ全体がそれぞれ半分に分割され、各パーティションが異なるサーバーに複製されます。

キャッシングトポロジ:パーティション-レプリカキャッシュ

次に、XNUMX番目のサーバーを追加すると、XNUMXつのパーティションがあり、同じデータがXNUMXつのパーティションに分割されます。 各パーティションには、データの半分ではなくデータのXNUMX分のXNUMXが含まれるようになり、各パーティションは別のサーバーにバックアップされます。 だから、これは私がデモンストレーションしようとしているものです。

実行時のクライアントとサーバーの追加

すぐに製品に飛び込んで、これをお見せしましょう。 使用するキャッシュサーバーがXNUMXつあります。 XNUMXつから始めて、それからさらに追加していきます。 そして、私にはXNUMX人のクライアントがいます。私は現在、クライアントマシンに座っています。 だから、これをクリックして開きます NCache Webマネージャ、これはWebベースの管理ツールです。 そして現在、これはどのように NCache インストールすると来る NCache。 だから、あなたがインストールしたように NCache これらXNUMXつのサーバーすべてに、各サーバーに「デモキャッシュ」がインストールされていました。 それで、実際にデモキャッシュを開始します。デモキャッシュが開始されていることがわかります。

キャッシュを開始する
キャッシュを開始する

開始したら、統計も開き、キャッシュの監視も行います。 監視すると、非常に優れたダッシュボードが得られます。 サーバーダッシュボードとレポートダッシュボードがあります。 レポートダッシュボードは、統計ウィンドウに非常によく似ています。 したがって、サーバーダッシュボードに固執し、ここに保持します。 そして、これを実行しているので、クライアントを実行する必要があります。

NCache Powershellベースのストレステストツールが付属しています。 だから、私に単語を入力させてください NCache。 Powershell管理があるので、「Test-stress」を実行し、ここに表示されているように、「democache」というキャッシュの名前を付けます。テストストレスデモキャッシュ'。 キャッシュ名では大文字と小文字が区別されないため、任意の方法でキャッシュ名を入力できます。

ストレステストツール
ストレステストツール

アプリケーションを起動すると、これが私のストレステストツールになります。 これが存在する理由は、テストを開始するためにプログラミングを行う必要がないためです。 NCache。 このストレステストツールを使用して、ストレスをシミュレートすることもできます。 それがストレステストツールと呼ばれる理由です。 しかし、ご存知のとおり、これがあなたのアプリケーションになると想像してみてください。

さて、統計ウィンドウにアクセスすると、約400個のアイテムが増え続けていることがわかります。 その981つのクライアントから1000秒あたり約XNUMXまたは約XNUMXのリクエストがあります。

統計ウィンドウ
統計ウィンドウ

次に、XNUMX番目のクライアントアプリケーションを実行します。 したがって、複数のストレステストツールインスタンスを開始することで複数のクライアントを追加し続けることができます。または、Powershellインスタンスを申し訳ありません。 だから、ここに来たらまた言う テストストレスデモキャッシュ。 これを実行すると、カウントまたはリクエストがほぼXNUMX倍になっていることがわかります。 なぜなら、この写真で見たように、各クライアントはサーバーに独自のトランザクション負荷をかけているため、サーバーのトランザクション容量はほぼXNUMX倍になっています。 また、サーバーダッシュボードで、XNUMXつのクライアントがXNUMXつのノードキャッシュクラスターに接続されていることもわかります。

XNUMX番目のクライアントを追加しました
XNUMX番目のクライアントを追加しました

したがって、現在使用しているサーバーはクラスター内にXNUMXつだけです。 さて、これから説明します。実際に起こっていることは、容量が増えるということです。ちなみに、少なくともXNUMX台のキャッシュサーバーをお勧めします。 したがって、この上でXNUMXつのキャッシュサーバーのみを実行することはできません。 しかし、私はXNUMXつから始めたかったので、実行時にXNUMXつのサーバーを追加して表示することができます。

次に、117番目のキャッシュサーバーを追加します。追加する117番目のキャッシュサーバーはXNUMXです。先に進み、XNUMXと言います。 追加されましたが、停止しました。 それで、ここをクリックして開始と言います。 これでサーバーノードが起動します。

XNUMX番目のキャッシュサーバーの追加
XNUMX番目のキャッシュサーバーの追加

ここから始めると、XNUMX番目のノードがここに追加されることがわかります。 そして、キャッシュカウントが落ちたカウント。 キャッシュ数が実際にXNUMX倍になったことは示しませんでした。これは、XNUMX台のサーバーでキャッシュ数が減少し、XNUMX秒あたりのトランザクション要求が半分に分割されたためです。 リクエストの半分はこのキャッシュサーバーによって処理されているため、リクエストの半分はこのキャッシュサーバーによって処理されています。 だから、これはカウントが下がった方法です。

統計

これで、アプリケーションを停止せずにキャッシュサーバーを追加しました。 ストレステストツールがここで実行されており、ここでも実行されていることがわかります。 全く問題ありません。 そして今起こったことは、私のパーティション、つまり私は1500台のサーバーでしたが、今はXNUMX台のサーバークラスターになっています。 つまり、パーティションXNUMX、パーティションXNUMXがあり、すべてのパーティションが他のサーバーにバックアップされます。 それで、それが何であるかをお見せしましょう。 それで、これがパーティションXNUMXです。 これだけ多くのアイテムを入手し、そのレプリカはここにあります。 つまり、これはこれとほぼ同じ量であることがわかります。 そして、これが私のパーティションXNUMXです。 約XNUMXの何かとそれはここにバックアップされています。

非同期。 レプリケーション

現在、このレプリケーションは非同期です。 したがって、このカウントは常に正確であるとは限りません。 ただし、トランザクションを停止しても、最終的には正確になります。

Ok。 さて、私のトランザクション負荷が増え続けているとしましょう。 私のビジネスは順調に進んでおり、トランザクション容量を増やす必要があるため、サーバーを追加する必要があります。 それが起こるので、私はさらにクライアントを追加することもできます。

まず、クライアントを追加します。最初に行うのは、クライアント、つまりアプリケーションサーバーを追加することだからです。 また、トランザクションの負荷が高くなります。 ちょっと見てください、このトランザクションの負荷は増加します、そこで、見てください。 サーバーあたり1182個ではなく800個になりましたが、実際にはさらに1200個になりました。

より高いトランザクション負荷
より高いトランザクション負荷

そのため、トランザクションの負荷は増え続けます。 ここでも見ることができます。 各サーバーでXNUMX秒あたりのリクエスト数を確認できます。これは、サーバーを追加するにつれて分散され、増加しています。

したがって、クライアントを追加したので、ある時点で、トランザクション容量が最大になっているため、またはメモリ容量のストレージ容量が最大になっているために、キャッシュサーバーの速度が低下し始めていることに気付くでしょう。私は各サーバーで最大になっています。 したがって、サーバーをもうXNUMXつ追加する必要があります。

いずれにせよ、私が言ったように、少なくともXNUMX台のサーバーをお勧めします。 したがって、少なくとも本番環境に単一のサーバークラスターを配置することはできません。 なぜなら、それはあなたに高可用性を与えないからです。 したがって、XNUMXつ以上あり、これらXNUMXつの容量制限に達したら、XNUMX番目のサーバーを追加します。

157番目のサーバーを追加するにはどうすればよいですか? ここに157番目のサーバーがあります157。すぐにここに来て、サーバーを追加すると言います。これはXNUMXです。そこで、ここに来てXNUMXを追加します。ここでも追加されますが、停止しました。 私はここに来て、これを選択して開始と言います。

XNUMX番目のキャッシュサーバーの追加
XNUMX番目のキャッシュサーバーの追加

私が気づき始めると、この1800はダウンします。 1100番目のサーバーが起動するとすぐに、負荷が共有されることに注意してください。 ほら、それはそれぞれ約XNUMXになりました。

負荷分散
負荷分散

なぜなら、今はXNUMX台ではなくXNUMX台のサーバーがあり、ここで示したように、XNUMX台のサーバーがある場合、XNUMXつのパーティションがあるからです。 したがって、これらの両方のパーティションからのデータは、さらにXNUMXつのパーティションに分割されます。

つまり、各パーティションには異なるサーバーへのレプリカがあり、それがデータの実際の分散方法です。 したがって、アプリケーションまたはキャッシュを停止せずにサーバーを追加できることを示しました。 つまり、すべてが…つまり、アプリケーションは完全に、この変更の影響を受けず、サーバーを追加することによって影響を受けるということです。これは素晴らしいことです。 NCache それはあなたにそれをさせます。

わかった。 そのため、サーバーを停止する必要があるかもしれません。 サーバーを停止する方法はXNUMXつあります。 容量を減らしているため、永続的にダウンさせています。 季節限定のビジネスであるため、サーバーをXNUMX台からXNUMX台に減らしているのかもしれません。 ホリデーシーズン中に使用量のピークがありましたが、今度はデフォルトの小さな構成に戻ります。 したがって、これらのサーバーの一部は実際に削除される予定です。 それでは、先に進んでそれを実行しましょう。

これでサーバー157を削除します。 それで、サーバー157を選択し、停止します。 まずはやめます。 ご覧のとおり、停止すると、このカウントは減少し、このカウントはさらに増加し​​ます。 ほら、またそれぞれ約2000になりました。 これは、データがこれからこれにシフトしたことを意味します。

実行時のサーバーの削除/停止
実行時のサーバーの削除/停止

基本的に、XNUMXつのパーティション構成からXNUMXつのパーティション構成に移行しました。 ここで各パーティションを見ることができるように、各パーティションは複製されます。 つまり、このパーティションはここに複製され、このパーティションはここに複製されます。 そして、あなたが見ることができるように、アプリケーションへの影響はありません。

つまり、容量を増やす必要があるため、または容量のニーズが変更されたためにサーバーを停止する必要があるため、サーバーを追加する必要がある状況をほぼ処理します。 実際には、季節的な使用のために、容量の必要性が変化しました。

メンテナンスモード

サーバーをダウンさせる必要があるが、容量がダウンしたためではなく、メンテナンスモードと呼ばれる別の状況があります。これは、何らかのメンテナンスを行う必要があるためです。 オペレーティングシステムのパッチなどをアップアプライする必要があるとしましょう。 したがって、サーバーをXNUMX分、XNUMX分、XNUMX分ほど停止する必要があります。 ただし、キャッシュには大量のデータがあります。 つまり、お客様は、各サーバーに数十ギガバイトのデータを持っています。 したがって、XNUMX、XNUMX、XNUMX、XNUMX台のサーバークラスターがあり、それらを組み合わせた場合、各サーバーに数十ギガバイトのデータがあり、サーバーがダウンすると、実際にはパフォーマンスに影響します。 なぜなら、XNUMXつのパーティションからXNUMXつのパーティションにすべてを再パーティション化する必要がある場合は、多くの状態転送を実行してから、再度追加する必要があるためです。 そこで、メンテナンスモードと呼ばれる機能を考案しました。 NCache このサーバーを停止しますが、キャッシュを再パーティション化する必要はありません。これをXNUMXつのパーティションノード、パーティションXNUMX、パーティションXNUMXとして保持し、ここにあるレプリカXNUMXがパーティションXNUMXになります。 そして、これはアクティブなままです。 これは一時的な取り決めです。 完了したら、このノードを元に戻し、再びこの画像に戻ります。

キャッシュサーバーのメンテナンスモード
キャッシュサーバーのメンテナンスモード

どうすればそれができるかをお見せしましょう。 それで、まず最初にXNUMXつのサーバー構成を実現します。これを追加します。これを削除したと仮定して、今度は追加し直します。 私はそれを取り除くべきだった、私はそれを止めただけだった。 しかし、私はそれを再び追加するつもりです。 私は再びXNUMXノードクラスターにいます。 私のデータは均等に分散されています。

キャッシュサーバーのメンテナンスモード
キャッシュサーバーのメンテナンスモード

私のトランザクション負荷は均等に分散されており、ここでも確認できます。 実際、これはまだ表示されていません。表示されます。 とにかく。 それで、これを手に入れたら、今はメンテナンスをする必要があります。 それで、ここに来て、もう一度言いますが、各ノードにはそれぞれ約1200個のアイテムがあることを覚えておいてください。

したがって、これを停止すると、2000ノードクラスターでは、各ノードで最大XNUMX以上のアイテムが発生するはずです。これは、ここに来るので、次のように言います。ここでは、メンテナンスのためにこれを停止します。

メンテナンスのための停止ノード
メンテナンスのための停止ノード

これをクリックすると、どのくらいの期間メンテナンスを続けたいですか? 明らかに、このタイムアウトは非常に重要です。なぜなら、そのタイムアウトの終わりに NCache もはやメンテナンスではないと想定しています。 なぜなら、この時点までにノードを追加し直さないと、 NCache 他の削除と同様に、実際に完全に削除したことを前提としています。これは、先ほど示したとおりであり、実際にキャッシュを削除して再パーティション化します。

メンテナンスのための停止ノード
メンテナンスのための停止ノード

ただし、この期間内に追加し直し、構成可能な期間である場合、この期間内に追加し直すと、 NCache 再パーティション化せず、そのパーティション、そのレプリカを一時パーティションモードで保持することを示したとおりに実行されます。 だから、私に言わせてください、わかりました、私は今これをやめると言っています。 それでは、ここに1300、1300、1470に来てみましょう。これで、これは完全になくなりました。 ただし、この数は増えていないことに注意してください。 なんで? レプリカのXNUMXつがアクティブパーティションになっているためです。 この写真ではどちらかはわかりませんが、カウントが上がっていないという事実から、レプリカはまだそこにあります。 このレプリカはアクティブパーティションになりました。 つまり、サーバーXNUMXにはパーティションXNUMXとパーティションXNUMXがあり、サーバーXNUMXにはパーティションXNUMXとパッシブレプリカXNUMXがあり、サーバーXNUMXはダウンしています。これは、メンテナンスのためにダウンさせる必要があります。

キャッシュサーバーのメンテナンスモード
キャッシュサーバーのメンテナンスモード

だから、今あなたは行き​​、あなたはあなたのメンテナンスをします。 パッチを適用し、完了したら、元に戻したいので、ここに戻っただけで、再度追加する必要はありません。停止したため、もう一度開始と言ってください。 ちなみに、アプリケーションは中断することなく実行されていました。 したがって、これらすべての変更には、アプリケーションの中断は必要ありません。 だから、もう一度やり直します。 そして、私が「開始」と言ったら、今すぐ見てください。これはその位置を取り戻し、再びデータに追いつき、以前と同じレベルに戻っていることがわかります。

実行時にノードを開始する

まとめ

ご覧のとおり、実行時に永続的にノードを追加および削除することと、スケジュールされたメンテナンスに基づいてノードを一時的に削除することの両方を示しました。 これでデモは終了です。 私はあなたにそれを示すことを望んでいました NCache 高可用性を提供します。 これは100%の稼働時間であり、アプリケーションを停止する必要はありません。 アプリケーションに中断はありません。

次はどうする?

 

お問い合わせ(英語)

電話
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。