GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7でPacemakerとCorosyncを使用してNginx高可用性を設定する方法

このチュートリアルでは、Pacemaker、Corosync、およびPcsdを使用して高可用性クラスターNginxウェブサーバーを作成する方法を段階的に説明します。 CentOS7システムでPacemakerを使用してアクティブ-パッシブクラスターまたはフェールオーバークラスターNginxWebサーバーを作成します。

ペースメーカー は、サービスの最大の高可用性を実現するオープンソースのクラスターマネージャーソフトウェアです。これは、ClusterLabsによって配布される高度でスケーラブルなHAクラスターマネージャーです。

Corosync Cluster Engineは、新しいBSDライセンスの下でOpenAISプロジェクトから派生したオープンソースプロジェクトです。これは、アプリケーション内に高可用性を実装するための追加機能を備えたグループ通信システムです。

Pacemakerインターフェースにはいくつかのアプリケーションがあります。 Pcsd は、Pacemakerを管理するためのPacemakerコマンドラインインターフェイスおよびGUIの1つです。 pcsdコマンドpcsを使用して、新しいノードを作成、構成、またはクラスターに追加できます。

前提条件

  • 2台以上のCentOS7サーバー
    • web01 10.0.15.10
    • web02 10.0.15.11
    • web03 10.0.15.12
  • フローティングIPアドレス10.0.15.15
  • ルート権限

私たちが行うこと:

  1. ホストファイルをマッピングする
  2. EpelリポジトリとNginxをインストールする
  3. Pacemaker、Corosync、およびPcsdのインストールと構成
  4. クラスターの作成と構成
  5. STONITHを無効にし、クォーラムポリシーを無視する
  6. フローティングIPとリソースを追加する
  7. クラスターにルールを追加する
  8. Firewallを設定する
  9. セットアップをテストする
ステップ1-ホストファイルをマップする

:すべてのサーバーweb01、web02、web03で手順1〜3を実行します。

最初に行う必要があるのは、すべてのサーバーのホスト名をマッピングするために、各サーバーのホストファイルを編集することです。 'web01'、'web02'、および'web03'サーバーがあり、sshアカウントで各サーバーにログインします。

ssh [email protected][01,02,03]

'/ etc/hosts'ファイルをvimで編集します。

vim /etc/hosts

次の構成をそこに貼り付けます。

10.0.15.10      web01
10.0.15.11      web02
10.0.15.12      web03

保存して終了します。

次に、ホストのマッピング構成をテストします。

ping -c 3 web01
ping -c 3 web02
ping -c 3 web03

「web01」、「web02」、「web03」が正しいIPアドレスにマッピングされていることを確認してください。

ステップ2-EpelリポジトリとNginxをインストールする

このステップでは、epelリポジトリをインストールしてから、NginxWebサーバーをインストールします。 Nginxパッケージをインストールするには、エンタープライズLinuxリポジトリ用のEPELまたは追加パッケージが必要です。

次のyumコマンドを使用してEPELリポジトリをインストールします。

yum -y install epel-release

次に、EPELリポジトリからNginxWebサーバーをインストールします。

yum -y install nginx

インストールが完了したら、各サーバーのデフォルトのindex.htmlページを新しいページに変更します。

#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

これで、EPELリポジトリとNginxWebサーバーがシステムにインストールされました。

ステップ3-Pacemaker、Corosync、およびPcsdをインストールして構成します

Pacemaker、Corosync、およびPcsdは、デフォルトのシステムリポジトリで利用できます。したがって、次のyumコマンドを使用して、CentOSリポジトリからすべてをインストールできます。

yum -y install corosync pacemaker pcs

インストールが完了したら、以下のsystemctlコマンドを使用して、システムの起動時にすべてのサービスを自動的に起動できるようにします。

systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker

次に、すべてのサーバーでpcsdPacemakerコマンドラインインターフェイスを起動します。

systemctl start pcsd

次に、「hacluster」ユーザーの新しいパスワードを作成し、すべてのサーバーに同じパスワードを使用します。このユーザーは、ソフトウェアのインストール中に自動的に作成されました。

' haclusterのパスワードを構成する方法は次のとおりです。 'ユーザー。

passwd hacluster
Enter new password:

高可用性ソフトウェアスタックPacemaker、Corosync、およびPcsdがシステムにインストールされています。

ステップ4-クラスターの作成と構成

'web01' で手順4〜7を実行します のみ。

このステップでは、3つのcentosサーバーで新しいクラスターを作成します。次に、フローティングIPアドレスを構成し、新しいNginxリソースを追加します。

クラスターを作成するには、pcsコマンドとhaclusterユーザーを使用してすべてのサーバーを認証する必要があります。

pcsコマンドとhaclusterユーザーおよびパスワードを使用してすべてのサーバーを認証します。

pcs cluster auth web01 web02 web03
Username: hacluster
Password: [email protected]

次に、クラスターをセットアップします。クラスタ名と、クラスタの一部となるすべてのサーバーを定義します。

pcs cluster setup --name hakase_cluster web01 web02 web03

次に、すべてのクラスターサービスを開始し、それらを有効にします。

pcs cluster start --all
pcs cluster enable --all

次に、クラスタのステータスを確認します。

pcs status cluster

ステップ5-STONITHを無効にしてクォーラムポリシーを無視する

フェンシングデバイスを使用していないため、STONITHを無効にします。 STONITHまたはShootTheOther Node In the Headは、Pacemakerのフェンシング実装です。本番環境にいる場合は、STONITHを有効にすることをお勧めします。

次のpcsコマンドでSTONITHを無効にします。

pcs property set stonith-enabled=false

次に、クォーラムポリシーについては、無視してください。

pcs property set no-quorum-policy=ignore

プロパティリストをチェックして、stonithとクォーラムポリシーが無効になっていることを確認してください。

pcs property list

STONITHおよびクォーラムポリシーが無効になっています。

ステップ6-フローティングIPとリソースを追加する

フローティングIPは、同じデータセンター内のあるサーバーから別のサーバーに自動的に移行/移動できるIPアドレスです。また、PacemakerHigh-AvailabilityのフローティングIPアドレスを「10.0.15.15」に定義しました。次に、「virtual_ip」という名前のフローティングIPアドレスリソースと「webserver」という名前のNginxWebサーバー用の新しいリソースの2つのリソースを追加します。

以下に示すように、pcsコマンドを使用して新しいリソースフローティングIPアドレス「virtual_ip」を追加します。

pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30s

次に、Nginxの「ウェブサーバー」の新しいリソースを追加します。

pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"

エラー結果がないことを確認してから、利用可能なリソースを確認してください。

pcs status resources

2つのリソース「virtual_ip」と「webserver」が表示されます。 FloatingIPおよびNginxWebサーバーの新しいリソースが追加されました。

ステップ7-クラスターに制約ルールを追加する

このステップでは、高可用性ルールを設定し、pcsコマンドラインインターフェイスを使用してリソース制約を設定します。

スコアが「INFINITY」のwebserverおよびvirtual_ipリソースの照合制約を設定します。また、すべてのサーバーノードで同じようにwebserverとvirtual_ipリソースを設定します。

pcs constraint colocation add webserver virtual_ip INFINITY

'virtual_ip'および'webserver'リソースを常に同じノードサーバーに設定します。

pcs constraint order virtual_ip then the webserver

次に、クラスターを停止してから再開します。

pcs cluster stop --all
pcs cluster start --all

ここで、リソースをもう一度確認すると、同じサーバー「web01」で「開始済み」としてステータスが表示されます。

pcs status resources

virtual_ipとwebserverのリソースが同じサーバー/ノード「web01」で開始されました。

ステップ8-Firewalldを設定する

HA-Clusterはファイアウォール構成firewalldで実行されます-パッケージがない場合はインストールしてください。

yum -y install firewalld

次のsystemctlコマンドを使用して、firewalldを起動し、システムの起動時に毎回自動的に実行されるようにします。

systemctl start firewalld
systemctl enable firewalld

次に、firewall-cmdコマンドを使用してfirewalldに新しいサービスを追加します-Nginxの高可用性サービス、HTTP、およびHTTPSサービスを追加します。

firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

ファイアウォール構成を再ロードし、すべてのサービスを確認します。

firewall-cmd --reload
firewall-cmd --list-all

HTTPとhttpsを使用したhaサービスがリストに含まれていることを確認してください。

ステップ9-テスト

このステップでは、クラスターのテストを行います。ノードのステータス(「オンライン」または「オフライン」)をテストし、corosyncメンバーとステータスをテストしてから、フローティングIPアドレスにアクセスしてNginxウェブサーバーの高可用性をテストします。

次のコマンドでノードのステータスをテストします。

pcs status nodes

すべてのノードが「オンライン」になっています。

corosyncメンバーをテストします。

corosync-cmapctl | grep members

CorosyncメンバーのIPアドレスを取得します。

Corosyncメンバーを確認すると、次のような結果が表示されます。

pcs status corosync

最後に、Webサーバーの高可用性を確認します。 Webブラウザーを開き、フローティングIPアドレス「10.0.15.15」を入力します。

「web01」サーバーからのWebページが表示されます。

次に、以下のコマンドを使用して、「web01」サーバー上のクラスターを停止します。

pcs cluster stop web01

そして、ページをもう一度確認すると、以下のように「web02」サーバーからページが取得されます。

追加:

以下のコマンドでクラスターの状態を確認してください。

pcs status

そして、以下のような結果が得られます。

CentOS 7サーバーでのPacemaker、Corosync、およびPcsdを使用したNginxWebサーバーの高可用性のセットアップが正常に完了しました。


Cent OS
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOS7にNginxを使用してphpMyAdminをインストールする方法

  3. CentOS7でPacemakerを使用してNginx高可用性クラスターをセットアップする方法

  1. CentOS8にNginxとPHP7.3でNextcloudをインストールする方法

  2. CentOS7にNginxとMariaDBを使用してownCloud9.1をインストールする方法

  3. CentOS7にHHVMとNginxを使用してWordPressをインストールする方法

  1. CentOS7にNginxとPHP7-FPMを使用してNextcloudをインストールする方法

  2. Ubuntu 16.04でPacemaker、Corosync、およびCrmshを使用してNginx高可用性を設定する方法

  3. CentOS7でNginxを使用してAskbotをインストールおよび構成する方法