ホームページ  >  記事  >  運用・保守  >  RHEL 9/8 で高可用性 Apache (HTTP) クラスターをセットアップする方法

RHEL 9/8 で高可用性 Apache (HTTP) クラスターをセットアップする方法

PHPz
PHPz転載
2023-06-09 18:20:271302ブラウズ

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

Pacemaker は、Linux のようなオペレーティング システムに適した高可用性クラスター ソフトウェアです。 Pacemaker は「クラスター リソース マネージャー」として知られており、クラスター ノード間のリソースのフェイルオーバーによってクラスター リソースの可用性を最大限に高めます。 Pacemaker は、ハートビートとクラスター コンポーネント間の内部通信に Corosync を使用し、クラスター内の投票 (クォーラム) も行います。

前提条件

始める前に、以下のものがあることを確認してください:

  • 2 台の RHEL 9/8 サーバー
  • Red Hat サブスクリプションまたはローカル構成されたリポジトリ
  • SSH 経由で両方のサーバーにアクセス
  • root または sudo 権限
  • インターネット接続

ラボの詳細:

早速、これらの手順について詳しく見ていきましょう。

1. /etc/hosts ファイルを更新します

両方のノードの /etc/hosts ファイルに次のエントリを追加します:

192.168.1.6node1.example.com192.168.1.7node2.example.com

2 , 高可用性パッケージ Pacemaker をインストールします

Pacemaker およびその他の必要なソフトウェア パッケージは、RHEL 9/8 のデフォルトのパッケージ リポジトリでは入手できません。したがって、可用性の高いウェアハウスを有効にする必要があります。両方のノードで次のサブスクリプション マネージャー コマンドを実行します。

RHEL 9 サーバーの場合:

$ sudo subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpms

RHEL 8 サーバーの場合:

$ sudo subscription-manager repos --enable=rhel-8-for-x86_64-highavailability-rpms

リポジトリを有効にした後、コマンドを実行して pacemaker パッケージをインストールします。両方のノード :

$ sudo dnf install pcs pacemaker fence-agents-all -y

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

RHEL 9/8 で高可用性 Apache (HTTP) クラスターをセットアップする方法

3. 高可用性ポートを許可するファイアウォール内

ファイアウォールで高可用性ポートを許可するには、各ノードで次のコマンドを実行します:

$ sudo firewall-cmd --permanent --add-service=high-availability$ sudo firewall-cmd --reload

4. hacluster ユーザーのパスワードを設定し、pcsd サービスを開始します

両方のサーバーで、hacluster ユーザーのパスワードを設定し、次の echo コマンドを実行します。

$ echo "<Enter-Password>" | sudo passwd --stdin hacluster

次のコマンドを実行して、クラスター サービスを開始して有効にします。両方のサーバーで:

$ sudo systemctl start pcsd.service$ sudo systemctl enable pcsd.service

5. 高可用性クラスターを作成します

pcs コマンドを使用して両方のノードを認証し、任意のノードから次のコマンドを実行します。私の場合、node1:

$ sudo pcs host auth node1.example.com node2.example.com

hacluster ユーザーを使用して認証されて実行しています。

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

次の pcs cluster setup コマンドを使用して、クラスターに 2 つのノードを追加します。ここで使用するクラスター名は http_cluster です。 。 node1 でのみコマンドを実行します:

$ sudo pcs cluster setup http_cluster --start node1.example.com node2.example.com$ sudo pcs cluster enable --all

これら 2 つのコマンドの出力は次のとおりです:

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

从任何节点验证初始集群状态:

$ sudo pcs cluster status

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

注意:在我们的实验室中,我们没有任何防护设备,因此我们将其禁用。但在生产环境中,强烈建议配置防护。

$ sudo pcs property set stonith-enabled=false$ sudo pcs property set no-quorum-policy=ignore

6、为集群配置共享卷

在服务器上,挂载了一个大小为 2GB 的共享磁盘(/dev/sdb)。因此,我们将其配置为 LVM 卷并将其格式化为 XFS 文件系统。

在开始创建 LVM 卷之前,编辑两个节点上的 /etc/lvm/lvm.conf 文件。

将参数 #system_id_source = "none" 更改为 system_id_source = "uname"

$ sudo sed -i 's/# system_id_source = "none"/ system_id_source = "uname"/g' /etc/lvm/lvm.conf

在 node1 上依次执行以下一组命令创建 LVM 卷:

$ sudo pvcreate /dev/sdb$ sudo vgcreate --setautoactivation n vg01 /dev/sdb$ sudo lvcreate -L1.99G -n lv01 vg01$ sudo lvs /dev/vg01/lv01$ sudo mkfs.xfs /dev/vg01/lv01

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

将共享设备添加到集群第二个节点(node2.example.com)上的 LVM 设备文件中,仅在 node2 上运行以下命令:

[sysops@node2 ~]$ sudo lvmdevices --adddev /dev/sdb

7、安装和配置 Apache Web 服务器(httpd)

在两台服务器上安装 Apache web 服务器(httpd),运行以下 dnf 命令:

$ sudo dnf install -y httpd wget

并允许防火墙中的 Apache 端口,在两台服务器上运行以下 firewall-cmd 命令:

$ sudo firewall-cmd --permanent --zone=public --add-service=http$ sudo firewall-cmd --permanent --zone=public --add-service=https$ sudo firewall-cmd --reload

在两个节点上创建 status.conf 文件,以便 Apache 资源代理获取 Apache 的状态:

$ sudo bash -c 'cat <<-END > /etc/httpd/conf.d/status.conf<Location /server-status>SetHandler server-statusRequire local</Location>END'$

修改两个节点上的 /etc/logrotate.d/httpd

替换下面的行

/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true

/usr/bin/test -f /run/httpd.pid >/dev/null 2>/dev/null &&/usr/bin/ps -q $(/usr/bin/cat /run/httpd.pid) >/dev/null 2>/dev/null &&/usr/sbin/httpd -f /etc/httpd/conf/httpd.conf \-c "PidFile /run/httpd.pid" -k graceful > /dev/null 2>/dev/null || true

保存并退出文件。

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

8、为 Apache 创建一个示例网页

仅在 node1 上执行以下命令:

$ sudo lvchange -ay vg01/lv01$ sudo mount /dev/vg01/lv01 /var/www/$ sudo mkdir /var/www/html$ sudo mkdir /var/www/cgi-bin$ sudo mkdir /var/www/error$ sudo bash -c ' cat <<-END >/var/www/html/index.html<html><body>High Availability Apache Cluster - Test Page </body></html>END'$$ sudo umount /var/www

注意:如果启用了 SElinux,则在两台服务器上运行以下命令:

$ sudo restorecon -R /var/www

9、创建集群资源和资源组

为集群定义资源组和集群资源。在我的例子中,我们使用 webgroup 作为资源组。

  • web_lvm 是共享 LVM 卷的资源名称(/dev/vg01/lv01
  • web_fs 是将挂载在 /var/www 上的文件系统资源的名称
  • VirtualIP 是网卡 enp0s3 的 VIP(IPadd2)资源
  • Website 是 Apache 配置文件的资源。

从任何节点执行以下命令集。

$ sudo pcs resource create web_lvm ocf:heartbeat:LVM-activate vgname=vg01 vg_access_mode=system_id --group webgroup$ sudo pcs resource create web_fs Filesystem device="/dev/vg01/lv01" directory="/var/www" fstype="xfs" --group webgroup$ sudo pcs resource create VirtualIP IPaddr2 ip=192.168.1.81 cidr_netmask=24 nic=enp0s3 --group webgroup$ sudo pcs resource create Website apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group webgroup

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

现在验证集群资源状态,运行:

$ sudo pcs status

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

很好,上面的输出显示所有资源都在 node1 上启动。

10、测试 Apache 集群

尝试使用 VIP(192.168.1.81)访问网页。

使用 curl 命令或网络浏览器访问网页:

$ curl http://192.168.1.81

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

或者

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

完美!以上输出确认我们能够访问我们高可用 Apache 集群的网页。

让我们尝试将集群资源从 node1 移动到 node2,运行:

$ sudo pcs node standby node1.example.com$ sudo pcs status

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

完美,以上输出确认集群资源已从 node1 迁移到 node2

要从备用节点(node1.example.com)中删除节点,运行以下命令:

$ sudo pcs node unstandby node1.example.com

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群

以上がRHEL 9/8 で高可用性 Apache (HTTP) クラスターをセットアップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。