このシリーズの最初の記事「キープアライブを使用してクラスター内の単純なフェイルオーバーを管理する」では、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_instance
VRRP
の個々のインスタンスを定義します インターフェイスで実行されているプロトコル。このインスタンスに任意の名前を付けました。 state
インスタンスが開始する初期状態を定義します。interface
VRRP
のインターフェースを定義します 実行されます。-
virtual_router_id
は、このシリーズの最初の記事で学習した一意の識別子です。 priority
このシリーズの最初の記事で学んだ、宣伝されている優先順位です。次の記事で学習するように、優先順位は実行時に調整できます。-
advert_int
広告が送信される頻度を指定します(この場合は1秒)。 authentication
VRRP
に参加するサーバーに必要な情報を指定します お互いに認証します。この場合、単純なパスワードが定義されています。-
virtual_ipaddress
VRRP
の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システム管理コースの受講を検討してください。 ]