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

CentOS 7 /RHEL7でPacemakerを使用して2ノードSquidクラスターを構成する

イカはキャッシュプロキシサーバーであることは誰もが知っています。 HTTP、HTTPS、FTPなどのプロトコルをサポートします。言い換えれば、イカ はWebプロキシサーバーとして知られており、ISPやその他の組織が帯域幅を削減するのに役立ちます。また、最も頻繁にコンテンツをローカルにキャッシュするため、応答時間が大幅に改善されます。新しいリクエストが来ると、squidはキャッシュされている場合はキャッシュからそれを提供します。そうでない場合は、リモートサーバーからリクエストをフェッチし、将来のリクエストのためにコンテンツをキャッシュに保存します。

この記事では、CentOS7またはRHEL7システムでペースメーカーを使用して2ノードのsquid(プロキシサーバー)クラスタリングを構成する方法を示します。

以下は、この記事で使用したラボの詳細です。

  • Squid Server 1(squid01.linuxtechi.lan)– 192.168.1.21 –最小のCentOS 7 / RHEL 7
  • Squid Server 2(squid02.linuxtechi.lan)– 192.168.1.22 –最小のCentOS 7 / RHEL 7
  • Squid Server VIP – 192.168.1.20
  • ファイアウォールが有効
  • SELinuxが有効

ステップ:1)/ etc / hostsファイルにホスト名を追加し、すべての更新を適用します

両方のsquidサーバーの/etc/hostsファイルに次の行を追加します。

192.168.1.21 squid01.linuxtechi.lan squid01
192.168.1.22 squid02.linuxtechi.lan squid02

under yum updateコマンドを使用してすべての更新をインストールしてから、ノードを再起動します

[[email protected] ~]# yum update -y && reboot
[[email protected] ~]# yum update -y && reboot

手順:2)両方のsquidサーバーにPacemakerとフェンシングエージェントのパッケージをインストールします

両方のサーバーで次のyumコマンドを実行して、ペースメーカー、PC、およびフェンシングパッケージをインストールします。

[[email protected] ~]# yum install pcs pacemaker fence-agents-all -y
[[email protected] ~]# yum install pcs pacemaker fence-agents-all -y

上記のパッケージが両方のサーバーにインストールされたら、以下のコマンドを使用してペースメーカー(pcsd)サービスを開始して有効にします。

[[email protected] ~]# systemctl start pcsd.service
[[email protected] ~]# systemctl enable pcsd.service

[[email protected] ~]# systemctl start pcsd.service
[[email protected] ~]# systemctl enable pcsd.service

私のラップセットアップと同様に、OSファイアウォールサービスが実行されて有効になっているため、高可用性またはクラスタリングサービスのファイアウォールルールを構成し、次の「ファイアウォール-cmd」を実行します。 」イカサーバーのコマンド

[[email protected] ~]# firewall-cmd --permanent --add-service=high-availability
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#
[[email protected] ~]# firewall-cmd --permanent --add-service=high-availability
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected]2 ~]#

ステップ:3)イカサーバーを承認し、イカクラスターを形成します

クラスタを形成するには、両方のノード/サーバーがそれ自体を承認する必要があります。まず、「 hacluster」のパスワードを設定しましょう。 」ユーザー、

[[email protected] ~]# echo "password_here" | passwd --stdin hacluster
[[email protected] ~]# echo "password_here" | passwd --stdin hacluster

次に、以下の「pcsクラスター認証」を使用します いずれかのsquidサーバーからの「」コマンドを使用して、haclusterクレデンシャルを使用して両方のサーバーを認証します。

[[email protected] ~]# pcs cluster auth squid01.linuxtechi.lan squid02.linuxtechi.lan
Username: hacluster
Password:
squid02.linuxtechi.lan: Authorized
squid01.linuxtechi.lan: Authorized
[[email protected] ~]#

以下の「pcsclustersetup」を使用してください クラスターを形成するための任意のノードからの「」コマンド。私の場合はsquid01から実行しており、クラスターの名前は「 squid_cluster 」です。 」

[[email protected] ~]# pcs cluster setup --start --name squid_cluster squid01.linuxtechi.lan squid02.linuxtechi.lan

上記のコマンドの出力は、次のようになります。

再起動時に自動的に開始されるようにpcsclusterサービスを有効にし、任意のsquidサーバーから以下のコマンドを実行します

[[email protected] ~]# pcs cluster enable --all
squid01.linuxtechi.lan: Cluster Enabled
squid02.linuxtechi.lan: Cluster Enabled
[[email protected] ~]#

以下のコマンドを使用して、クラスターのステータスを確認します。

[[email protected] ~]# pcs cluster status
[[email protected] ~]# pcs status

手順:4)両方のサーバーにSquidパッケージをインストールし、フェンシングを無効にします

両方のサーバーで次のyumコマンドを実行して、squid(プロキシサーバー)パッケージをインストールします。

[[email protected] ~]# yum install squid -y
[[email protected] ~]# yum install squid -y

次のコマンドを使用して、OSファイアウォールでsquidポート(3128)を許可します

[[email protected] ~]# firewall-cmd --permanent --add-service=squid
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#
[[email protected] ~]# firewall-cmd --permanent --add-service=squid
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

私のラボにはフェンシングエージェントやデバイスがないため、以下のコマンドを使用して無効にします。

[[email protected] ~]# pcs property set stonith-enabled=false
[[email protected] ~]# pcs property set no-quorum-policy=ignore
[[email protected] ~]#

手順:5)Squidクラスターリソースとクラスターグループを構成する

私のラボのセットアップでは、サイズが1GBと12GBの2つの共有ディスクがあり、これらのディスクは両方のサーバーに割り当てられています。

クラスターでは、 / etc / squidをマウントします (つまり、squid構成ファイル)1GBディスク上のファイルシステムと「/ var / spool / squid 」(つまり、squidキャッシュディレクトリ)は12GBのディスクにマウントされます

  • / dev / sdb(1 GBディスク)– / etc / squid
  • / dev / sdc(12 GBディスク)– / var / spool / squid

これらのディスクは両方のsquidサーバーで表示されるため、いずれかのsquidサーバーからfdiskコマンドを使用して/ dev/sdbと/dev/ sdcにパーティションを作成し、mkfs.xfsコマンドを使用してxfsファイルシステムでフォーマットします

現在、すべてのsquid構成ファイルはローカルフォルダー/ etc/squidにあります。データをローカルファイルシステム/etc/ squidから共有ディスク(/ dev / sdb1)にコピーします

[roo[email protected] ~]# mount /dev/sdb1 /mnt/
[[email protected] ~]# cp -av /etc/squid/* /mnt/
[[email protected] ~]# umount /mnt/

次に、2つのファイルシステムリソースを作成します。1つは/ etc / squidファイルシステム用で、もう1つは/ var / spool/squid用です

次の「pcsresourcecreate」を実行します ファイルシステムリソースを作成するための任意のsquidサーバーからの「」コマンド。私の場合、ファイルシステムリソース名を「 squidfs1」とします。 」と「squidfs2 」とグループ名を「squidgrp

[[email protected] ~]# pcs resource create squidfs1 Filesystem device=/dev/sdb1 directory=/etc/squid fstype=xfs --group squidgrp
[[email protected] ~]# pcs resource create squidfs2 Filesystem device=/dev/sdc1 directory=/var/spool/squid fstype=xfs --group squidgrp 
[[email protected] ~]#

pcs resourceコマンドを使用してsquid(systemd service)リソースを定義し、任意のsquidサーバーから以下のコマンドを実行します

[[email protected] ~]# pcs resource create proxy systemd:squid op monitor interval=10s --group squidgrp
[[email protected] ~]#

クラスタのsquidvipを定義します。私の場合は、「 192.168.1.20」を使用します。 」をsquidvipとして使用すると、このIPはこれらのサーバー間でフロートします。エンドユーザーまたはsquidクライアントは、プロキシ設定を構成するときにこのIPをsquidプロキシサーバーIPとして使用し、デフォルトのsquidポート3128も使用します。

[[email protected] ~]# pcs resource create squid_vip ocf:heartbeat:IPaddr2 ip=192.168.1.20 cidr_netmask=24 op monitor interval=30s --group squidgrp
[[email protected] ~]#

次に、すべてのクラスターリソースが開始されているかどうかを確認します。 「PCステータス」を実行します 」任意のsquidサーバーからのコマンド

[[email protected] ~]# pcs status
Cluster name: squid_cluster
Stack: corosync
Current DC: squid01.linuxtechi.lan (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition with quorum
Last updated: Wed Mar 27 06:59:59 2019
Last change: Wed Mar 27 06:59:02 2019 by root via cibadmin on squid01.linuxtechi.lan

2 nodes configured
4 resources configured

Online: [ squid01.linuxtechi.lan squid02.linuxtechi.lan ]
Full list of resources:
 Resource Group: squidgrp
     squidfs1   (ocf::heartbeat:Filesystem):    Started squid01.linuxtechi.lan
     squidfs2   (ocf::heartbeat:Filesystem):    Started squid01.linuxtechi.lan
     proxy      (systemd:squid):        Started squid01.linuxtechi.lan
     squid_vip  (ocf::heartbeat:IPaddr2):       Started squid01.linuxtechi.lan

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
[[email protected] ~]#

上記のように、すべてのリソースはsquid01サーバーで開始されます。 SquidServiceのステータスとsquidvipを確認しましょう

[[email protected] ~]# systemctl status squid
[[email protected] ~]# ip a s

上記の2つのコマンドの出力は、次のようになります。

これでこの記事は終わりです。これで、/ etc/squid.confファイルで環境に適したACLを構成できます。フィードバックやコメントを共有してください。


Cent OS
  1. DVDまたはCDROMを使用してYUMリポジトリを構成するCentOS/RHEL

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

  3. CentOS / RHEL 7 :nmcli を使用して VLAN タギングを構成する方法

  1. CentOS7上のPacemakerを備えた2ノードのApacheWebサーバークラスター

  2. CentOS7およびRHEL7にJenkinsをインストールして構成する方法

  3. CentOS/RHEL 8 で nfsconf を使用して NFSv4 専用クライアントを構成する方法

  1. CentOS 7 /RHEL7にDockerSwarmモードをインストールして構成する方法

  2. CentOS 7 /RHEL7でPacemakerを使用してNFSサーバークラスタリングを構成する

  3. RHEL 8 /CentOS8にKVMをインストールして構成する方法