このシリーズの最初の記事「キープアライブを使用してクラスター内の単純なフェイルオーバーを管理する」では、Keepalivedについて学習しました。 およびVRRP あるマシンから別のマシンにIPアドレスをフェイルオーバーするためのプロトコル。それでは、手を汚して、Keepalivedのインストールと基本構成について学びましょう。 。この記事では、Keepalivedを設定します 2台のサーバー間のフェイルオーバーを有効にします。始めましょう!
キープアライブインストール
Keepalived 標準パッケージリポジトリ内で利用可能であり、yumを使用して簡単にインストールできます :
[root@server1 ~]# yum install -y keepalived
[root@server1 ~]# keepalived --version
Keepalived v2.0.10 (11/12,2018)
[root@server1 ~]# systemctl status keepalived
keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disab
Active: inactive (dead)
Keepalivedをコンパイルする方法も知っておく必要があります ソースコードから。 Keepalived は積極的に保守されているプロジェクトであり、必要なときにパッケージマネージャーバージョンにはない可能性のある新機能やバグ修正を定期的に受け取ります。このシリーズを書いているときに、パッケージリポジトリの現在のバージョンでバグに遭遇したこともあり、最新バージョンのKeepalivedを使用するには、この正確な手順に従う必要がありました。 。
# Install prerequisites
yum install -y gcc openssl-devel
# Download the latest version of the code. Be sure to check the downloads page for the most recent version:https://www.keepalived.org/download.html
[root@localhost ~]# wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
# Extract the code
[root@localhost ~]# tar -xf keepalived-2.0.20.tar.gz
# Run the configure scripts
[root@localhost ~]# cd keepalived-2.0.20
[root@localhost keepalived-2.0.20]# ./configure
# Build and install keepalived
[root@localhost keepalived-2.0.20]# make
[root@localhost keepalived-2.0.20]# make install
# Test your installation
[root@localhost keepalived-2.0.20]# keepalived --version
Keepalived v2.0.20 (01/22,2020) 基本構成
VRT Network Equipment Extension、CCBY-SA3.0を介して利用できる図のネットワーク記号。
Keepalivedの構成ファイル /etc/keepalived/keepalived.confにあります 。前の記事で説明したように、Keepalived 基本的なVRRPを実装するだけではありません 。これにより、Keepalivedのマニュアルページを見ると気が遠くなるような構成ファイルが作成されます。ただし、上記のような単純なトポロジは、最小限の構成で実現できます。
最も基本的なKeepalived 構成により、2つのサーバー間で共有IPアドレスが有効になります。上記のトポロジでは、server1がマスターで、server2がバックアップです。両方のサーバーの構成は簡単です。
サーバー1の構成:
server1# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 255
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.122.200/24
}
} サーバー2の構成:
server2# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 254
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.122.200/24
}
} 構成ディレクティブは、命名規則から明らかなはずですが、それぞれについて説明します。
-
vrrp_instanceVRRPの個々のインスタンスを定義します インターフェイスで実行されているプロトコル。このインスタンスに任意の名前を付けました。 stateインスタンスが開始する初期状態を定義します。interfaceVRRPのインターフェースを定義します 実行されます。-
virtual_router_idは、このシリーズの最初の記事で学習した一意の識別子です。 priorityこのシリーズの最初の記事で学んだ、宣伝されている優先順位です。次の記事で学習するように、優先順位は実行時に調整できます。-
advert_int広告が送信される頻度を指定します(この場合は1秒)。 authenticationVRRPに参加するサーバーに必要な情報を指定します お互いに認証します。この場合、単純なパスワードが定義されています。-
virtual_ipaddressVRRPのIPアドレス(複数ある場合もあります)を定義します 責任があります。
firewalldなどのホストベースのファイアウォールを使用している場合 またはiptables 、次に、IPプロトコル112トラフィックを許可するために必要なルールを追加する必要があります。それ以外の場合は、Keepalived の広告方法は機能しません。ホストベースのファイアウォールの構成はこの記事の範囲外ですが、詳細については、EnableSysadminの他のiptablesおよびfirewalldに関する記事を確認してください。
上記の設定が整ったら、Keepalivedを開始できます。 systemctl start keepalivedを使用する両方のサーバーで 各マシンのIPアドレスを確認します。 server1がVRRPとして起動していることに注意してください マスターであり、共有IPアドレス(192.168.122.200)を所有していますが、server2のIPアドレスは変更されていません:
server1# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.101/24 192.168.122.200/24 fe80::5054:ff:fe82:d66e/64
server2# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.102/24 fe80::5054:ff:fe04:2c5d/64
Keepalivedであることを確認したら は両方のサーバーで開始され、server1はアクティブマスターです。VIPを他のサーバーに「フリップ」することでフェイルオーバー機能をテストできます。 Keepalivedを停止する server1では、アクティブマスターがアドバタイズメントの送信を停止し、server2がVIPを引き継ぎます。
server1# systemctl stop keepalived
server1# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.101/24 fe80::5054:ff:fe82:d66e/64
server2# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.102/24 192.168.122.200/24 fe80::5054:ff:fe04:2c5d/64 以上です!これで、冗長サーバーの基本的なペアができました。
VRRPトラフィックの監視
シリーズの最初の記事で説明したように、VRRPのプロトコルレベルの動作を理解する 適切に構成してトラブルシューティングできるようにするために重要です。ネットワークトラフィックの分析に関するEnableSysadminの以前の記事を読んだ場合は、おそらくtcpdumpを使用しても問題ありません。 。 tcpdumpを使用したコマンドラインパケットキャプチャ VRRPについて知っておくべきことをすべて明らかにすることができます アクティブマスターのVRIDと優先度を含む構成:
server1# tcpdump proto 112
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:51:01.353224 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
16:51:02.353673 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
16:51:03.353753 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
^C
3 packets captured
3 packets received by filter
0 packets dropped by kernel
tcpdumpを実行して、自分で試してみてください 2台のサーバー間でVIPを前後に切り替えながら。
まとめ
この記事では、Keepalivedの基本について説明しました。 インストールと構成。 Keepalivedをインストールする方法を学びました パッケージマネージャーを介して、ソースからコンパイルすることで、基本的なKeepalivedを構築しました。 2つのホスト間のVIPフェイルオーバーを有効にする構成。最後に、この構成をテストし、tcpdumpを使用しました VRRPを監視する トラフィック。このシリーズの次の記事では、いくつかの高度なKeepalivedについて説明します。 構成。
[Linuxシステム管理についてもっと知る必要がありますか? RedHatシステム管理コースの受講を検討してください。 ]