フェンスの機器を介してクラスタノード間でリソースの競合、およびクラスタノード間のサービスの移行の現象に対処するために、クラスタ--RHCSクラスタのコンセプトのバランスをとるエンタープライズクラスのロードはまだ通常のクライアントアクセス(HA HA)です

まず、定義RHCSクラスターおよび関連する概念

定義1.1 RHCSクラスター

RHCSRedHatのクラスタスイートことを、中国は、つまりはRed Hat Clusterのスイートを意味しました。Red Hatのクラスタスイート(RedHatのCluterスイート、RHCS)は満たすために展開する際に異なって構成されることができるソフトウェアコンポーネントの統合セットで、高可用性、負荷分散、スケーラビリティ、ファイル共有とコスト削減が必要。これは、主に使用されていますRed Hat Enterpriseのlinux6これは次のようにクラスタの二種類が用意されています。

  • **高可用性:** nは、サーバークラスタノードを作成することによって、重要なアプリケーションやサービスへのアプリケーション/サービスのフェイルオーバー、フェイルオーバー
  • ロードバランシング: IPの負荷分散は、負荷がバランスされているIPネットワークの要求にサーバーのグループを受信します

1.2 RHCSクラスタ機能

(1)128のノード(のRed Hat Enterprise Linux 3およびRed Hat Enterprise Linux 4をサポート16個のノード)までサポート。
(2)複数のアプリケーションのための高可用性を提供することができます。
(3)NFS / CIFSフェイルオーバー:UnixとWindows環境で使用支持体高可用性ファイル。
(4)完全に共有ストレージ・サブシステム:すべてのクラスタメンバーが同じストレージ・サブシステムにアクセスすることができます。
(5)統合されたデータの整合性:そのようなデバイス(電源スイッチ)を切り替えるプログラマブル埋め込み、外部電源としての最新のI / O障壁(バリア)技術。
(6)サービスのフェイルオーバー:Red HatのクラスタSuiteの停止操作や故障にハードウェアのタイムリーな検出を確保することができ、同時に発生し、自動復旧システム、また、アプリケーションを監視することによって、適切な動作を保証するために適用することができ、自動的にそれが失敗したときに再起動します。

の1.3 RHCSクラスター

(1)クラスタアーキテクチャマネージャ
これは、具体的には、分散クラスタマネージャ(CMAN)、会員管理、ロックを含む、クラスタ内の各ノードは、一緒に働いて成るように、クラスタの基本的な機能を提供し、基本的なキットRHCSクラスターであります管理(DLM)プロファイルマネージャ(CCS)、ゲート装置(FENCE)。

(2)高可用性サービスマネージャが
提供サービスノードの監視とフェイルオーバーサービスサービス・ノードは、健康上の別のノードにサービスを失敗した場合

(3)クラスタ構成管理ツール
によってLUCI管理およびRHCSクラスタを設定するには、LUCIはあなたが簡単にLUCIにより、強力なクラスタシステムを構築することができ、Webベースのクラスタ構成です。リッチノードをホストするために使用され、ルーシーセグメントが通信管理することができます。

(4)のLinux Virtual Serverの
LVSは、オープンソースであります負荷分散ソフトウェアLVSすることにより、各ノード、動的な、インテリジェントな負荷分散に指定された負荷戦略とアルゴリズムに基づいてクライアントの要求の合理的な配分かもしれません。LVS関連

(5)RedHatGS((株)は、無料ファイルystemに参加)
GFS RedHatの会社、最新バージョンがGFS2で、クラスタ・ファイル・システムの開発でありますGFSファイルシステムサービスは、複数の同時読み取りを可能にし、ディスクパーティションを作成しますGFSを実現することができる、データの管理を集中化データの同期やコピーの手間がなくなりますが、独立して必要RHCSは、アセンブリサポートを根底をGFS存在することはできません。

(6)論理ボリュームマネージャクラスタ
クラスタ論理ボリュームマネージャ、およびCLVMは、LVMは、クラスタ内のマシンの使用は、共有ストレージを管理することを可能にする、拡張されているLVM

(7)iSCSIは
、インターネット上のプロトコルであるが、具体的には、イーサネット経由でのデータ伝送のための規格であり、彼は新しいストレージ技術IPstorage理論です。RHCSは、iSCSI技術と配布、共有ストレージを使用することによって導出することができます

1.4 RHCSクラスタの動作原理と特長

(1)分散クラスタマネージャ(CMAN)
それは、クラスタ管理CMANは、クラスタメンバーを管理するために使用されるタスク、メッセージや通知RHCSを提供し、各ノードで実行されて、彼によります各ノードの稼働状況を監視します ノードに障害が発生した場合、ノードのメンバーとの関係を理解するには、CMANは、速やかにこの変更を根底に通知し、その後、適切な調整を行います。

(2)ロック・マネージャ(DLM)
分散ロック・マネージャを表し、彼はRHCS基礎ベースを構築することであり、またロック操作機構の一般的なクラスタを提供します。クラスタの各ノード上で実行さDLMにRHCSにおいて、GFSは、システムメタデータ管理機構をロックすることによって、データへのアクセスを同期します。CLVMそれを通して、つつ、大幅に処理性能を向上させる、ピアロック管理を使用DLMサーバ必要がロックを設定しないLVM論理ボリュームへの同期および更新データにロック・マネージャの必要性を回避するDLMは、単一のノードに障害が発生した場合全体的な回復性能のボトルネック。また、DLMの要求は、あなたがネットワーク要求に地元の必要はありませんが、その要求は直ちに有効になります。最後に、機構を積層してDLMは、ロック管理空間の平行Aが複数実装されてもよいです。

(3)構成ファイル(CCSの)管理
クラスタ構成システムは、CCSと呼ばれる、それは主に、ノード間のクラスタ構成ファイル管理とプロファイルの同期のために使用されます。気楽に、時には、インタフェースのルーシー管理の態様は、ネットワークなどの要因に起因する可能性がない、CCSは、クラスタの各ノード上で実行されているCCS非常に必要となります単一の構成ファイル/etc/cluster/cluster.conf状態の各クラスタノードを監視します。この文書では、すべての変更は、彼らがすべてのクラスタ内の各ノードにこの更新プログラムを変更して、各ノード構成ファイルの同期を維持する場合。たとえば、管理者は、ノードAのクラスタ構成ファイルを更新し、CCSは、この変更はすぐに他のノードにまで広がって、ノード構成ファイルの変更を見つけましたRHCSプロファイルはcluster.confのですが、それは、クラスタ、クラスタノード情報、クラスタリソースやサービス情報、フェンス機器等の特定の名前が含まれているXMLファイルです

(4)ゲートデバイス(FENCE)
フェンスRHCSクラスタ装置は、本質的な部分であり、FENCE機器によって起因する「スプリットブレイン」現象の出現によって引き起こされる不測の事態に回避することができます。
、サーバまたはストレージ直接ハードウェア管理命令を発行するために、主にサーバやストレージのハードウェア自体の管理インターフェースまたは外部電源管理装置を介して同様の問題、フェンスデバイスを解決するために、フェンスデバイスで表示され、サーバが再起動またはシャットダウン、あるいはとされますネットワークから切断。

(5)高可用性サービスマネージャ(rgmanagerの)
ハイアベイラビリティサービス管理は、主に使用されるアプリケーション、サービス、およびリソースで、監督、クラスタを起動および停止。これは、クラスタ管理サービス、サービスのノード障害を提供する
、高可用性クラスタサービス管理プロセスサービスは、健康アップ他のノードに障害が発生したノードから転送することができ、このサービスは自動的かつ透過的に転送する能力でありますA。

RHCS通过rgmanager来管理集群服务,rgmanager运行在每个集群节点上,在服务器上对应的进程clurgmgrd。
在一个RHCS集群中,高可用性服务包含集群服务和集群资源两个方面,集群服务其实就是应用服务,例如apache、mysql等,
集群资源有很多种,例如一个IP地址、一个运行脚本、ext3/GFS文件系统等。

在RHCS集群中,高可用性服务是和一个失败转移域结合在一起的,所谓失败转移域是一个运行特定服务的集群节点的集合。
在失败转移域中,可以给每个节点设置相应的优先级,通过优先级的高低来决定节点失败时服务转移的先后顺序,
如果没有给节点指定优先级,那么集群高可用服务将在任意节点间转移。
因此,通过创建失败转移域不但可以设定服务在节点间转移的顺序,而且可以限制某个服务仅在失败转移域指定的节点内进行切换。

(6)クラスタ構成管理ツール(リッチとルーシー)
コンガのクラスタが新しいネットワーク構成ツールに基づいて、コンガが設定され、ウェブ・クラスタ・ノードによって管理されます。
コンガすなわちルーシーとリッチ二つの部分を、ルーシーは、クラスタを構成し、管理するための、別のコンピュータに搭載されましたリッチは、各クラスタノード、ルーシーをリッチに取り付けられ、クラスタ内の各ノードが通信します。 RHCSはまた、いくつかの強力なクラスタ管理コマンドラインツール、一般的に使用されるclustat、cman_tool、ccs_tool、fence_tool、clusvcadmなどを提供します

(7)RedhatGFS
GFSは、より実用的なクラスタは、ブロックレベルでストレージを共有する複数のノードは、共有メモリ空間によって各ノードは、アクセスがデータの一貫性を確保することを可能に設けられたクラスタストレージソリューションRHCSシステムでありますたとえば、GFSは、同時に、ファイルシステムのパーティションをマウントRHCSは、複数のノードによって提供されるクラスタファイルシステムであり、単一のファイルシステムで破壊からファイルシステムデータを得ることができません。

同時に読み取りおよび書き込みファイルシステム操作のために複数のノードを達成するために、ロック・マネージャを使用して、GFSは、I / O動作を管理しますときは、書き込み動作処理ファイル、ファイルがブロックされ、このプロセスが正常に完了するまで、他のプロセスが読み書きすることはできませんロックが解除されたとき、それはロックを解除し、書き込み、他のプロセスがこのファイルを読み書きすることができますノードGFSファイルシステム上で変更されたデータは、そのような修飾は、他のノードに直ちに基本的な通信機構RHCSの操作により表示されます場合、また、動作します。

RHCSクラスタの構成では、各ノード上の実行は、共有メモリとして一般GFS、およびGFS RHCS管理ツールで構成および管理することができます。ファイル名を指定して実行RHCS、GFSは、共有ストレージを必要とする場合にのみ、必要はありません、それはGFSのサポートを必要とし、GFSクラスタ・ファイル・システムアップセット、あなたがしなければならない:これらは、GFSとRHCSとの関係、一般の初心者が概念を混同することは容易であることに留意すべきですRHCSは、インストールノードがファイルシステムをGFSので、あなたがRHCSコンポーネントをインストールする必要があり、サポートを根底しています。

第二に、フェンスデバイスを介してクラスタノード間でリソースの競合の現象に対処します

  • FENCEの動作原理は以下のとおりです。事故が異常ホストまたはダウンを引き起こすとき、機会がフェンス操作が正常に実行される最初のコールフェンス装置は、FENCE異常なホストデバイスの再起動またはネットワークから分離し、作製したフェンスを受信した後、バックアップサーバ、バックアップ・マシンへの復帰情報情報の成功の後、サービスとリソースは、ホストを引き継ぐようになりました。FENCEを通じてこのようなデバイスは、異常なノードは、占有リソースを解放しますリソースおよびサービスは、常にノード上で実行されていることを確実にするために。
  • FENCE機器のRHCS二つに分けることができます。内部および外部FENCEフェンス、フェンスなどIPMI、外部フェンス機器UPS、SANSWITCH、NETWORKSWITCHとしてIBMRSAII共通の内部カード、HPのiLOカード、などの機器を持っています

実験環境
システム1の)rhel6.5
2)仮想マシン

IP 使用
ホスト(実機):172.25.7.250 フェンス機器としては、一時的にフロントを持っていません
仮想マシンのSERVER1:172.25.7.101 ダウンロードリッチ、ルーシー(コンガは、ユーザインターフェースを提供するように構成された)、マスタノード
仮想マシンのサーバー2:172.25.7.102 代理ノードとして、リッチダウンロード

1、ソースyumの設定rhel6.5 そして、追加、高可用性、負荷分散、メモリ、ファイルシステムの仮想マシンのserver1 server2のをYUMソースを設定(HAは、バックなどの記憶装置への追加しました)

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

yumの設定ファイルののserver1ソースは、サーバー2に送信されました:
ここに画像を挿入説明

基本的なクラスタ環境を作成します

最も基本的なRHCSクラスタ環境を構築するには、あること、クラスタを作成します

2、インストール管理ノードのクラスタとクラスタサービスSERVER1にリッチグラフィカル管理ツールルーシーサービス、SERVER1管理ノード、及びHAノードをしながら
(1)SERVER1:yumを-yリッチのluciをインストール

ここに画像を挿入説明
ここに画像を挿入説明(2)サーバ2: YUM -yリッチをインストール
ここに画像を挿入説明

(3)server1とサーバー2は、リッチをインストールした後であろうリッチユーザ生成のRedHat:パスワードリッチに設定することが

  • Red Hat Enterprise Linux 6.1を起動し、ユーザーがインストール・リッチの後にリッチパスワードを変更する必要があるので、更新されたパスワードを促進するために、クラスタ構成内の任意のノード上でリッチを使用する必要があり、これはノードの後ろのパスワードでは、インストール後に終了するように設定されています自動的にユーザー・リッチを生成するために、/ etc / passwdファイルを参照してください

ここに画像を挿入説明
ここに画像を挿入説明
(4)二つのノードのオープン・リッチ、ルーシーとブーツをセット

  • RHEL6、オープンサービス:/etc/init.d/のサービス開始
/etc/init.d/ricci start
/etc/init.d/luci start
  • RHEL6、最初からセットサービスブート:chkconfigをサービスで
chkconfig ricci on
chkconfig luci on

でSERVER1ここに画像を挿入説明

ここに画像を挿入説明

これら2つのサービスがポートを使用チェック:8084と11111
ここに画像を挿入説明

SERVER2
ここに画像を挿入説明

3. この時点で、実機ログインhttps://172.25.7.101:8084

  • 画面が表示され、次のブラウザアクセスhttps://172.25.12.1:8084、手動で[詳細設定]をクリックし、証明書をインポートします
  • 注:ノードクラスタを削除するには、自動的に消えますクラスタノードを削除した後、最初に削除されます

ここに画像を挿入説明
用户名:root
密码:redhat
ここに画像を挿入説明

4、添加server1和server2到集群:
点击集群管理(manage cluster),选择create,创建集群

ここに画像を挿入説明

设置集群的基本信息,添加节点

ここに画像を挿入説明
点击create cluster开始创建,可以看到开始创建集群

ここに画像を挿入説明

  • 创建时两台虚拟机都会重启,如果之前没有设置服务开机启动这个时候就会报错,重启后要在虚拟机中手动打开服务创建的过程才会继续

此时,主机连接的server1和server2会断开。 为了方便操作,我们仍旧连接server1和server2,在真机上操作。

ここに画像を挿入説明

创建集群完成,节点添加成功
ここに画像を挿入説明

集群中的服务
ここに画像を挿入説明

5、查看集群的状态:clustat
ここに画像を挿入説明
ここに画像を挿入説明

6、查看集群节点上的单一配置文件/etc/cluster/cluster.conf

ここに画像を挿入説明
ここに画像を挿入説明

添加fence,解决争抢资源的现象

如何通过fence设备解决集群节点之间争抢资源的现象?

RHCS高可用集群比之前的lvs调度器性能更好,更全面,有更多功能,前端后端均有,在这里我们可以把每个集群节点当作一个调度器,实际上功能不止调度器一个。一般情况下集群节点中有主有备,正常情况下会有一个正常工作(调度器正常),但是当调度器坏了就完蛋了。
因此要做到一台调度器坏了,调度器1就去通知调度器2接管它的工作,正常情况下调度器1和调度器2会一直通信,当2收不到1的消息的时候,就说明1坏了,2马上接替1的工作,但是当1和2之间的心跳检测出现问题的时候,也就是有一个卡死了,其实两个都能正常工作,这个时候两个都能工作,因此1和2都会去为客户端服务,会去争抢资源,因此需要fence这样一个物理设备抑制争抢资源。 当争抢资源的时候,1会去通过fence设备强制重启2(或者2重启1),两个可以互相强制重启,但是实际当中集群也是有主有备的。现在server1是一个集群,server2是一个集群,真机是一个fence设备(保安)。通过fence这个物理设备将集群连接在一起,保证时刻只有一个集群正常工作一旦出现争抢资源的现象,主的集群就会通过fence强制重启备的集群,从而使主集群正常工作。

7、 添加fence
(1)配置真机的yum源:将虚拟机的yum源的配置文件发给真机

ここに画像を挿入説明

(2)在真机上安装fence的软件包

fence只是中间一个通道,server1和server2都是连接在fence这个物理设备上,通过一个集群去拔另外一个集群的电,防止争抢资源

yum search fence -y
yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y

ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明

(3)配置fence : fence_virtd -c

ここに画像を挿入説明
设备选择br0,其他用默认

ここに画像を挿入説明

vim /etc/fence_virt.conf 可查看配置文件

ここに画像を挿入説明

ここに画像を挿入説明

(4)生成fence_xvm.key :dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1ここに画像を挿入説明

(5)把fence_xvm.key分发到HA节点,通过这个key来管理节点

scp fence_xvm.key root@server1:/etc/cluster/
scp fence_xvm.key root@server2:/etc/cluster/

ここに画像を挿入説明

ここに画像を挿入説明

(6)web界面为节点配置fence

添加fence设备(fence virt)—>vmfence(名字随便起)ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明
ここに画像を挿入説明

ここに画像を挿入説明

  • 给server1和server2集群添加fence,vmfence_1(名字) uuid(server1主机的),vmfence_2(名字) uuid(server2主机的)。。因为两个集群的ip可能会一样,有可能会一次关闭两个集群,不安全,应该把每个集群唯一的uuid写在fence设备上面,在真机里面virt-manager把两个uuid查看出来。

ここに画像を挿入説明

(7)启动fence:systemctl start fence_virtd.service

ここに画像を挿入説明
ここに画像を挿入説明

ここに画像を挿入説明
ここに画像を挿入説明

8、测试

(1)在server1上面输入:fence_node server2可以看到集群1把集群2强制重启了

ここに画像を挿入説明
server1通过fence干掉server2,可以看到server2断电重启

ここに画像を挿入説明ここに画像を挿入説明

(2)当破坏server1的内核时,输入:echo c > /proc/sysrq-trigger,fence会强制重启server1

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

(3)当server2掉线,下线时,
ここに画像を挿入説明
查看集群状态,发现server2不在线。
ここに画像を挿入説明

三、实现各集群节点之间服务迁移时客户端仍正常访问(高可用HA)

背景 :当一个集群节点(类似于调度器)坏了,如何将服务安全的迁移到另一个集群上面,对于客户访问资源来说,访问毫无感觉,透明。在集群的图形化管理工具里面进行设置(类似于一个总的负责人,它管理所有的集群节点)
思路 :先设置迁移服务的规则,再设置客户访问资源的规则(入口地址,脚本方式启动web服务),最后资源组:所有的资源都要放在一个组里面,迁移的时候也是也是一整套的删除

3.1 高可用服务配置(以httpd为例)

server1和server2配置httpd服务,编写默认发布页面
ここに画像を挿入説明

ここに画像を挿入説明

1、设置失败回切(故障转移域)

(1)在浏览器里面:设置服务迁移failover Domains

ここに画像を挿入説明

 命名为webfail,当一个节点出现故障时切换到正常的哪一个上
将server1和server2添加在域中,设置两个节点的优先级,数字越小优先级越高
第三个表示是否服务往优先级高迁移,企业一般不会再自动迁移到优先级高

ここに画像を挿入説明

2、设置回切资源

点击add --> 添加ip address(集群外的VIP)—>设置切换主机的时间5秒—>submit提交
再次点击add–>添加script(因为httpd时脚本启动的)—>添加/etc/init.d/httpd文件

ここに画像を挿入説明

ここに画像を挿入説明

资源添加完毕后,查看httpd服务的状态,不用启动httpd服务,集群会自己开启

3、设置资源组

点击add设置资源组的名字为apache -->添加资源(上一步中添加的vip)—>添加资源(httpd脚本)

ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明

刷新页面,显示httpd服务运行在server1上(server1优先级高)
ここに画像を挿入説明

4、测试

(1)在server1上, 关闭httpd服务
ここに画像を挿入説明

ここに画像を挿入説明
服务和入口ip自动迁移到server2上,且不回迁

ここに画像を挿入説明
(2)在server2中输入echo c> /proc/sysrq-tigger,破坏server2的内核,使其重启
ここに画像を挿入説明
服务自动迁移到了server1

ここに画像を挿入説明

当server2重启成功后,服务不会自动回迁到server1上(可设定回迁)
ここに画像を挿入説明
没有手动开启httpd服务时在web集群管理界面,刷新界面只会开启一个节点的httpd
所以当服务落在某一个节点时只能访问到虚拟ip和当前节点,其他节点是访问不到的

公開された102元の記事 ウォン称賛21 ビュー5337

おすすめ

転載: blog.csdn.net/ranrancc_/article/details/102577279