イカはキャッシュプロキシサーバーであることは誰もが知っています。 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を構成できます。フィードバックやコメントを共有してください。