Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxシステムクラスタテクノロジの要点の分析

Linuxシステムクラスタテクノロジの要点の分析

  

今日、多くの企業やWebサイトでLinuxオペレーティングシステムが使用されていますが、Linuxの利点により、Microsoftは見捨てられています。今日のLinuxクラスタテクノロジについてお話ししましょう。Linuxについてさらに詳しく知り、Linuxクラスタテクノロジの強力な機能を知ってください。あなたにシステムへの参照を与えてください。

Linuxが非常に競争力がある理由の1つは、高価な専用ハードウェアを購入する必要なしに、非常に人気のあるPC上で実行できることです。対応するクラスタソフトウェアが追加されている限り、Linuxを実行している複数のPCで、優れた信頼性、負荷容量、および計算能力を備えたLinuxクラスタを形成できます。クラスタ内の各サーバはノードと呼ばれます。

焦点に応じて、Linuxクラスタは3つのカテゴリに分類できます。 1つのタイプはいくつかのシステム障害の場合にサービスを提供し続けるために2つ以上のノードで動作する高可用性クラスタです。高可用性クラスタの設計理念は、サービスの停止時間を最小限に抑えることです。これらのクラスタの中で最も有名なのはTurbolinux TurboHA、Heartbeat、Kimberliteなどです。もう1つは、ノード数に比例した負荷容量を提供することを目的とした、負荷の高いWebサービスの提供に適した負荷分散クラスタです。負荷分散クラスタには、多くの場合、特定の高可用性機能があります。 Turbolinux Cluster ServerとLinux Virtual Serverはすべて負荷分散クラスタです。もう1つのタイプはスーパーコンピューティングクラスタで、コンピューティングの関連度に応じて2つのタイプに分類できます。 1つはタスクスライスモードで、計算タスクをタスクスライスに分割し、次にタスクスライスを各ノードに割り当て、それらを各ノードで別々に計算し、結果を集計して最終的な計算結果を生成します。もう1つは、計算過程でノード間で大量のデータ交換を行う並列計算方法であり、強い結合関係のある計算を行うことができる。これら2つのスーパーコンピューティングクラスタは、さまざまな種類のデータ処理作業に適しています。スーパーコンピューティングのクラスタリングソフトウェアを使用すると、企業は多くのPCを使用して、通常スーパーコンピューターでのみ可能なコンピューティングタスクを実行できます。そのようなソフトウェアにはTurbolinux EnFusion、SCoreなどがあります。

高可用性クラスタと負荷分散クラスタは動作が異なり、さまざまな種類のサービスに適しています。一般に、ロードバランシングクラスタは、HTTPサービスなどの静的データを提供するサービスに適しており、高可用性クラスタは、HTTPサービスなどの静的データを提供するサービスやデータベースなどの動的データを提供するサービスに適しています。ノードはRAIDBoxなどの同じ記憶媒体を共有するため、動的データを提供するサービスに高可用性クラスタを適用できます(つまり、高可用性クラスタでは、各サービスのユーザーデータのコピーが1つだけ共有記憶装置に格納されます)。一方、このデータを読み書きできるノードは1つだけです。

Turbolinux TurboHAを例にとると、クラスタ内にAとBの2つのノードがあり、このクラスタはOracleサービスのみを提供し、ユーザーデータは共有記憶装置のパーティション/dev /sdb3に格納されます。通常の状態では、ノードAはOracleデータベースサービスを提供し、パーティション/dev /sdb3はノードAによって/mnt /oracleにロードされます。システム障害が発生し、TurboHAソフトウェアによって検出されると、TurboHAはOracleサービスを停止し、パーティション/dev /sdb3をアンインストールします。その後、ノードBのTurboHAソフトウェアはノードBのパーティションをロードし、Oracleサービスを開始します。 Oracleサービスが仮想IPアドレスを持つようにするには、OracleサービスをノードAからノードBに切り替えると、仮想IPアドレスもノードBにバインドされるため、ユーザーは引き続きサービスにアクセスできます。

上記の分析からわかるように、高可用性クラスターにはサービスに対する負荷分散機能がないため、システム全体の信頼性を向上させることはできますが、負荷容量を増やすことはできません。もちろん、高可用性クラスタは複数のサービスを実行し、異なるノードに適切に分散させることができます(たとえば、ノードAはOracleサービスを提供し、ノードBはSybaseサービスを提供します)。複数のサービスを配布するために。

負荷分散クラスタは、HTTPサービスなど、比較的静的なデータを提供するサービスに適しています。通常、負荷分散クラスタのノード間に共有記憶媒体がないため、ユーザーデータは複数のコピーにコピーされ、サービスを提供する各ノードに格納されます。以下は、Turbolinux Cluster Serverを例として使用した負荷分散クラスタの動作メカニズムの簡単な紹介です。クラスタ内にAdvanced Traffic Manager(ATM)と呼ばれるマスターノードがあります。このクラスタはHTTPサービスを提供するためだけに使用され、残りのノードはすべてHTTPサービスノードに設定されているとします。サービスの外部IPアドレスはATMにバインドされているため、ページに対するユーザーの要求はATMに送信されます。 ATMは受信した要求を平均してサービスノードに送信し、要求を受信した後、サービスノードは対応するウェブページを直接ユーザに送信する。したがって、1秒間に1000個のHTTPページ要求があり、クラスタ内に10個のサービスノードがある場合、各ノードは100個の要求を処理します。したがって、外界からは、ユーザーアクセスを処理する10倍速の高速コンピュータがあるようです。これがロードバランシングの本当の意味です。

しかし、ATMは1000ページのリクエストすべてを処理する必要がありますが、クラスタ処理速度のボトルネックになるのでしょうか。ページに要求されるデータ量は比較的少ないので、ページコンテンツに返されるデータ量は比較的多く、この方法は依然として非常に効率的です。 ATMが故障してもシステム全体が故障することはありません。 Turbolinux Cluster Serverは、1台以上のコンピュータをバックアップ用のATMノードとして設定することができ、プライマリATMノードに障害が発生すると、バックアップ用のATMに新しいプライマリATMが生成され、その処理が引き継がれます。この負荷分散クラスタにも一定の高可用性があることがわかります。

HTTPページは比較的静的ですが、時々変更する必要があります。 Turbolinux Cluster Serverは、ページへの変更をサービスを提供するすべてのノードに簡単に同期させることを可能にするデータ同期ツールを提供します。

次に、高可用性クラスタと負荷分散クラスタの組み合わせについて説明します。ユーザーが2つのノードからなる最小クラスタを使用している場合、高可用性クラスタと負荷分散クラスタの両方の利点を享受することは可能ですか?答えはイエスです。高可用性クラスタは動的データを提供するサービスに適しており、ロードバランシングクラスタは静的データを提供するサービスに適しているため、OracleとHTTPの両方のサービスが利用可能であると考えることもできます。ユーザーはノードAとBにTurbolinuxTurboHAとTurbolinuxClusterServerソフトウェアをインストールする必要があります。ノードAはOracleの作業ノードとして使用され、ノードBはOracleサービスのバックアップノードです(TurboHAソフトウェア用)。 ClusterServerソフトウェアでは、ノードBがプライマリATMノードに設定され、ノードAがバックアップATMノードになり、ノードAとノードBが両方ともHTTPサービスノードになります。

その結果、ノードAとノードBの両方がロールになり、ユーザーは高可用性のOracleサービスとロードバランシング付きのHTTPサービスの両方を利用できます。 1つのノードに障害が発生しても、OracleサービスもHTTPサービスも中断されません。

しかし、同じサービスの場合、高可用性と負荷分散を同時に達成することはできません。サービスの場合、共有ストレージデバイスに配置されたデータ、高可用性のために一度に1つのノードからアクセスされたデータ、または各ノードのローカルハードディスクに保存された複数のコピーにコピーされたデータは1つのみです。要求は負荷分散のために同時に複数のノードに送信されます。

高可用性クラスタでは、サービスの中断時間を最小限に抑えるように設計されているため、サービスの切り替えが大きな問題になります。 1つのノード上のサービスが失敗すると、それはすぐに検出されて別のノードに切り替えられます。ただし、切り替え時にデータの完全性の保護を無視することはできません。

どのような状況下でデータの整合性が失われるのでしょうか。共有ストレージデバイスに接続された高可用性クラスタには少なくとも2つのノードがあるため、裸でないパーティションの場合、両方のノードが同時に読み取りと書き込みを行うと、ファイルシステムが破壊されます。そのため、このイベントが発生しないようにするには、I /Oバリアを使用する必要があります。

I /Oバリアの目的は、障害のあるノードがサービスの共有パーティションを読み書きできなくすることを保証することです。あるノードに障害が発生した場合、別のノードがそれを検出できると、Kimberliteはシリアルポートを通じてコマンドを発行し、障害のあるノードの電源に接続されているハードウェアスイッチを制御し、一時的に電源を切り電源の投入方法によって、障害が発生したノードが再起動されます。

I /Oの障壁にはさまざまな形態があります。 SCSI Reserve /Releaseコマンドをサポートするストレージデバイスの場合、SGコマンドを使用してI /Oバリアを実装することもできます。通常のノードは、故障したノードによって読み書きされないようにするために、SCSI Reserveコマンドの「lock」共有ストレージデバイスを使用する必要があります。障害が発生したノードのクラスタソフトウェアがまだ実行中の場合は、共有ストレージデバイスが他のパーティによってロックされていることが判明した場合は、通常の動作状態に戻すために自分自身を再起動する必要があります。

上記はLinuxクラスタテクノロジの基本原理を紹介したもので、いくつかの有名なソフトウェアも紹介しています。つまり、Linuxクラスタテクノロジは、PCとネットワークの利点を最大限に引き出し、かなりのパフォーマンスを引き出すことができ、そして有望なテクノロジです。この記事を通して、皆さんがLinuxクラスター・テクノロジーについてもっと学ぶことができると思います。

Copyright © Windowsの知識 All Rights Reserved