【Keepalived】【VMware 6】Keepalived インストール手順および設定手順

以前、Linux での冗長構成(HA構成)について概要の解説をしました。

 

 

【Linux HA】冗長構成についての基本

 

今回は実際に VMware 6 の環境に仮想マシンを2台構築し、Keepalived でネットワーク(IP アドレス)を冗長化してみます。

 

 

 

ネットワーク(IP アドレス)冗長構成設計

以下のような構成で DRBD 環境を構築します。

  • VIP:192.168.1.15
  • ホスト名(1号機):centos7    (サービス側:192.168.1.13) (DRBD側:10.0.0.1)
  • ホスト名(2号機):centos7-02 (サービス側:192.168.1.14) (DRBD側:10.0.0.2)
  • keepalived ← 仮想 IP による冗長構成 及び ノード死活監視

 

 

環境

  • VMware環境:VMware ESXi 6.0.0
  • OS:CentOS 7.4.1708
  • Keepalived:v1.3.5

 

[test@centos7 ~]$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

[test@centos7 ~]$ rpm -qa | grep keepalived
keepalived-1.3.5-1.el7.x86_64

[test@centos7 ~]$ keepalived –version
Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2

 

Copyright(C) 2001-2017 Alexandre Cassen, <acassen@gmail.com>

 

Build options: PIPE2 LIBNL3 RTA_ENCAP RTA_EXPIRES FRA_OIFNAME FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK LIBIPTC LIBIPSET_DYNAMIC LVS LIBIPVS_NETLINK VRRP VRRP_AUTH VRRP_VMAC SOCK_NONBLOCK SOCK_CLOEXEC FIB_ROUTING INET6_ADDR_GEN_MODE SNMP_V3_FOR_V2 SNMP SNMP_KEEPALIVED SNMP_CHECKER SNMP_RFC SNMP_RFCV2 SNMP_RFCV3 SO_MARK
[test@centos7 ~]$ 

 

 

 

 

 

keepalived インストール及び設定

 

仮想マシン2台のネットワークを冗長化します。

冗長化を実現するために keepalived をインストールします。

 

keepalived のインストール手順

CentOS 7 の場合は yum コマンドで keepalived をインストールします。

特にリポジトリを追加する必要はなくデフォルトの「base」リポジトリでインストール可能です。

[root@centos7 ~]# yum install keepalived 

 

~ 省略 ~
 
======================================================================================================== 
 Package                       アーキテクチャー 
                                             バージョン                            リポジトリー    容量 
======================================================================================================== 
インストール中: 
 keepalived                    x86_64        1.3.5-1.el7                           base           327 k  ← デフォルトの「base」リポジトリだけで「keepalived」をインストールできます。
依存性関連でのインストールをします: 
 lm_sensors-libs               x86_64        3.4.0-4.20160601gitf9185e5.el7        base            41 k 
 net-snmp-agent-libs           x86_64        1:5.7.2-28.el7_4.1                    updates        704 k 
 net-snmp-libs                 x86_64        1:5.7.2-28.el7_4.1                    updates        748 k 
 perl                          x86_64        4:5.16.3-292.el7                      base           8.0 M 
 perl-Carp                     noarch        1.26-244.el7                          base            19 k 
 perl-Encode                   x86_64        2.51-7.el7                            base           1.5 M 
 perl-Exporter                 noarch        5.68-3.el7                            base            28 k 
 perl-File-Path                noarch        2.09-2.el7                            base            26 k 
 perl-File-Temp                noarch        0.23.01-3.el7                         base            56 k 
 perl-Filter                   x86_64        1.49-3.el7                            base            76 k 
 perl-Getopt-Long              noarch        2.40-2.el7                            base            56 k 
 perl-HTTP-Tiny                noarch        0.033-3.el7                           base            38 k 
 perl-PathTools                x86_64        3.40-5.el7                            base            82 k 
 perl-Pod-Escapes              noarch        1:1.04-292.el7                        base            51 k 
 perl-Pod-Perldoc              noarch        3.20-4.el7                            base            87 k 
 perl-Pod-Simple               noarch        1:3.28-4.el7                          base           216 k 
 perl-Pod-Usage                noarch        1.63-3.el7                            base            27 k 
 perl-Scalar-List-Utils        x86_64        1.27-248.el7                          base            36 k 
 perl-Socket                   x86_64        2.010-4.el7                           base            49 k 
 perl-Storable                 x86_64        2.45-3.el7                            base            77 k 
 perl-Text-ParseWords          noarch        3.29-4.el7                            base            14 k 
 perl-Time-HiRes               x86_64        4:1.9725-3.el7                        base            45 k 
 perl-Time-Local               noarch        1.2300-2.el7                          base            24 k 
 perl-constant                 noarch        1.27-2.el7                            base            19 k 
 perl-libs                     x86_64        4:5.16.3-292.el7                      base           688 k 
 perl-macros                   x86_64        4:5.16.3-292.el7                      base            43 k 
 perl-parent                   noarch        1:0.225-244.el7                       base            12 k 
 perl-podlators                noarch        2.5.1-3.el7                           base           112 k 
 perl-threads                  x86_64        1.87-4.el7                            base            49 k 
 perl-threads-shared           x86_64        1.43-6.el7                            base            39 k 

 

~ 省略 ~
 
完了しました! 
[root@centos7 ~]#

 

 

keepalived の設定

keepalived をインストールしたら設定をします。

keepalived をインストールすると自動的に「/etc/keepalived」ディレクトリ配下に「keepalived.conf」設定ファイルが作成されるので、この設定ファイルのコピーを取り設定をします。

[root@centos7 keepalived]# pwd 
/etc/keepalived 
[root@centos7 keepalived]# ls 
keepalived.conf 
[root@centos7 keepalived]# cat keepalived.conf ← オリジナルのコンフィグファイルです。  
! Configuration File for keepalived 
 
global_defs { 
   notification_email { ← 警告メールの送信先アドレスを指定します。  
     acassen@firewall.loc 
     failover@firewall.loc 
     sysadmin@firewall.loc 
   } 
   notification_email_from Alexandre.Cassen@firewall.loc ← 警告メールの送信元を定義します。 
   smtp_server 192.168.200.1 ← メール送信に使用する SMTP サーバを設定します。 
   smtp_connect_timeout 30 ← SMTP サーバーの接続タイムアウト値を設定します。 
   router_id LVS_DEVEL ← クラスタの ID を指定します。 
   vrrp_skip_check_adv_addr 
   vrrp_strict 
   vrrp_garp_interval 0 
   vrrp_gna_interval 0 

 
vrrp_instance VI_1 { ← インスタンスの設定をするブロックです。「VI_1」は VRRP インスタンスの名称です。   
    state MASTER ← このインスタンスの初期動作モードを指定します。「MASTER」と「BACKUP」を設定できます。 
    interface eth0 ← 仮想ルータに参加するインタフェースを定義します。 
    virtual_router_id 51 ← 仮想ルータの識別番号を「0~255」の範囲で指定します。 この値は仮想ルータに参加するすべてのインスタンスで同じ値にする必要があります。
    priority 100 ← 各インスタンスの仮想ルータ内での優先度を「0~255」の範囲で定義します。priority が高いものが MASTER になります。
    advert_int 1 ← 各インスタンスの間で死活監視を行う間隔を秒数で指定します。
    authentication { ← 各インスタンス間で死活監視を行う時に使用するパケット認証を設定する認証ブロックの開始を示します。認証パラメータ(パスワード)は、仮想ルータ内のすべてのインスタンスで同じにする必要があります。
        auth_type PASS ← 認証のタイプを「PASS」か「AH」で指定します。「PASS」は単純なパスワード認証で、AH は IPSec の認証ヘッダ機能を利用します。 
        auth_pass 1111 ← 認証パスワードを設定します。 
    } 
    virtual_ipaddress { ←仮想ルータの IP アドレスを指定します。{} で囲んだブロックの中に IP アドレスを定義します。複数の IP アドレスを指定することができます。 
        192.168.200.16 
        192.168.200.17 
        192.168.200.18 
    } 

 
virtual_server 192.168.200.100 443 { ← 対象とする仮想サービスを定義します。virtual_server は LVS によるロードバランサを設定する場合に使用します。
    delay_loop 6 ← 死活監視用のポーリング間隔を秒で指定します。
    lb_algo rr ← ロードバランスのアルゴリズムを設定します。rrはラウンドロビンです。wrrは重みを加えたラウンドロビンです。lcはコネクションが最も少ないインスタンスを選択します。wlcは重みとコネクション数によりインスタンスを選択します。
    lb_kind NAT 
    persistence_timeout 50 
    protocol TCP 
 
    real_server 192.168.201.100 443 { ← real_server はバーチャルサーバーに所属するバックエンドのサーバーのことを言います。
        weight 1 
        SSL_GET { 
            url { 
              path / 
              digest ff20ad2481f97b1754ef3e12ecd3a9cc 
            } 
            url { 
              path /mrtg/ 
              digest 9b3a0c85a887a256d6939da88aabd8cd 
            } 
            connect_timeout 3 
            nb_get_retry 3 
            delay_before_retry 3 
        } 
    } 

 
virtual_server 10.10.10.2 1358 { 
    delay_loop 6 
    lb_algo rr 
    lb_kind NAT 
    persistence_timeout 50 
    protocol TCP 
 
    sorry_server 192.168.200.200 1358 
 
    real_server 192.168.200.2 1358 { 
        weight 1 
        HTTP_GET { 
            url { 
              path /testurl/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            url { 
              path /testurl2/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            url { 
              path /testurl3/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            connect_timeout 3 
            nb_get_retry 3 
            delay_before_retry 3 
        } 
    } 
 
    real_server 192.168.200.3 1358 { 
        weight 1 
        HTTP_GET { 
            url { 
              path /testurl/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334c 
            } 
            url { 
              path /testurl2/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334c 
            } 
            connect_timeout 3 
            nb_get_retry 3 
            delay_before_retry 3 
        } 
    } 

 
virtual_server 10.10.10.3 1358 { 
    delay_loop 3 
    lb_algo rr 
    lb_kind NAT 
    persistence_timeout 50 
    protocol TCP 
 
    real_server 192.168.200.4 1358 { 
        weight 1 
        HTTP_GET { 
            url { 
              path /testurl/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            url { 
              path /testurl2/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            url { 
              path /testurl3/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            connect_timeout 3 
            nb_get_retry 3 
            delay_before_retry 3 
        } 
    } 
 
    real_server 192.168.200.5 1358 { 
        weight 1 
        HTTP_GET { 
            url { 
              path /testurl/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            url { 
              path /testurl2/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            url { 
              path /testurl3/test.jsp 
              digest 640205b7b0fc66c1ea91c463fac6334d 
            } 
            connect_timeout 3 
            nb_get_retry 3 
            delay_before_retry 3 
        } 
    } 

[root@centos7 keepalived]#

 

今回は、「vrrp_instance」の設定のみ行い、「virtual_server」の設定は行いません。

 

「keepalived.conf」ファイルのバックアップを取ります。 

[root@centos7 ~]# cd /etc/keepalived/
[root@centos7 keepalived]# ls
keepalived.conf

[root@centos7 keepalived]# cp -ip keepalived.conf keepalived.conf.org

 

 

以下のように設定します。

 

■1号機(centos7)の「/etc/keepalived/keepalived.conf」の設定

[root@centos7 keepalived]# vi /etc/keepalived/keepalived.conf 
! Configuration File for keepalived 
 
global_defs { ← メールの設定は特にしません。 

   router_id test

vrrp_instance VI_1 { 
    state MASTER ← 1号機を MASTER に設定します。 
    interface ens160 ← ens160 が対象です。
    virtual_router_id 51 
    priority 100 
    advert_int 1 
    authentication {
        auth_type PASS
        auth_pass password
    }
    virtual_ipaddress { 
        192.168.1.15/24 dev ens160 ← この IP アドレスが VIP になります。
    } 

 
[root@centos7 keepalived]#

 

 

■2号機(centos7-02)の「/etc/keepalived/keepalived.conf」の設定

[root@centos7-02 ~]# vi /etc/keepalived/keepalived.conf 
! Configuration File for keepalived 
 
global_defs { 
   router_id test 

 
vrrp_instance VI_1 { 
    state BACKUP ← 2号機を BACKUP に設定します。  
    interface ens160 
    virtual_router_id 51 
    priority 100 
    advert_int 1 
    authentication { 
        auth_type PASS 
        auth_pass password 
    } 
    virtual_ipaddress { 
        192.168.1.15/24 dev ens160 
    } 

[root@centos7-02 ~]#

 

 

 

keepalived の再起動

keepalived の設定を変更したら keepalived を再起動します。

[root@centos7 keepalived]# systemctl restart keepalived 
[root@centos7 keepalived]# systemctl status keepalived 
● keepalived.service – LVS and VRRP High Availability Monitor 
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled) 
   Active: active (running) since 日 2018-03-25 19:07:09 JST; 1s ago 
  Process: 11608 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS) 
 Main PID: 11609 (keepalived) 
   CGroup: /system.slice/keepalived.service 
           tq11609 /usr/sbin/keepalived -D 
           tq11610 /usr/sbin/keepalived -D 
           mq11611 /usr/sbin/keepalived -D 
 
 3月 25 19:07:09 centos7.localdomain Keepalived_healthcheckers[11610]: Initializing ipvs 
 3月 25 19:07:09 centos7.localdomain Keepalived_healthcheckers[11610]: Opening file ‘/etc/keepalived/keepalived.conf’. 
 3月 25 19:07:09 centos7.localdomain Keepalived_vrrp[11611]: Registering Kernel netlink reflector 
 3月 25 19:07:09 centos7.localdomain Keepalived_vrrp[11611]: Registering Kernel netlink command channel 
 3月 25 19:07:09 centos7.localdomain Keepalived_vrrp[11611]: Registering gratuitous ARP shared channel 
 3月 25 19:07:09 centos7.localdomain Keepalived_vrrp[11611]: Opening file ‘/etc/keepalived/keepalived.conf’. 
 3月 25 19:07:09 centos7.localdomain Keepalived_vrrp[11611]: VRRP_Instance(VI_1) removing protocol VIPs. 
 3月 25 19:07:09 centos7.localdomain Keepalived_vrrp[11611]: Using LinkWatch kernel netlink reflector… 
 3月 25 19:07:09 centos7.localdomain Keepalived_vrrp[11611]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)] 
 3月 25 19:07:10 centos7.localdomain Keepalived_vrrp[11611]: VRRP_Instance(VI_1) Transition to MASTER STATE 
[root@centos7 keepalived]#

 

 

 

keepalived の動作確認

VIP の確認は「ip addr」コマンドから行います。

以下は「centos7-02」サーバからコマンドを実行した結果です。

[test@centos7-02 ~]$ ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    inet 127.0.0.1/8 scope host lo 
       valid_lft forever preferred_lft forever 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:c9:e9:40 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.1.14/24 brd 192.168.1.255 scope global ens160 
       valid_lft forever preferred_lft forever 
    inet 192.168.1.15/32 scope global ens160 ← IP アドレス 192.168.1.15 が付与されています。 
       valid_lft forever preferred_lft forever 
    inet6 2408:210:8105:9500:fe27:e918:c2f3:ba1a/64 scope global noprefixroute dynamic 
       valid_lft 2591943sec preferred_lft 604743sec 
    inet6 fe80::6344:476d:2510:ba9c/64 scope link 
       valid_lft forever preferred_lft forever 
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:c9:e9:4a brd ff:ff:ff:ff:ff:ff 
    inet 10.0.0.2/24 brd 10.0.0.255 scope global ens192 
       valid_lft forever preferred_lft forever 
    inet6 fe80::8a6a:f2f1:9e13:7ef9/64 scope link 
       valid_lft forever preferred_lft forever 
[test@centos7-02 ~]$

 

 

「ifconfig -a」コマンドでは表示されません。

[root@centos7-02 keepalived]# ifconfig -a 
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
        inet 192.168.1.14  netmask 255.255.255.0  broadcast 192.168.1.255 ← ifconfig -a コマンドでは VIP が表示されません。
        inet6 fe80::6344:476d:2510:ba9c  prefixlen 64  scopeid 0x20

        inet6 2408:210:8105:9500:fe27:e918:c2f3:ba1a  prefixlen 64  scopeid 0x0 
        ether 00:0c:29:c9:e9:40  txqueuelen 1000  (Ethernet) 
        RX packets 19806  bytes 8723444 (8.3 MiB) 
        RX errors 0  dropped 0  overruns 0  frame 0 
        TX packets 4494  bytes 439956 (429.6 KiB) 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
 
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255 
        inet6 fe80::8a6a:f2f1:9e13:7ef9  prefixlen 64  scopeid 0x20 
        ether 00:0c:29:c9:e9:4a  txqueuelen 1000  (Ethernet) 
        RX packets 2  bytes 120 (120.0 B) 
        RX errors 0  dropped 0  overruns 0  frame 0 
        TX packets 13  bytes 918 (918.0 B) 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536 
        inet 127.0.0.1  netmask 255.0.0.0 
        inet6 ::1  prefixlen 128  scopeid 0x10 
        loop  txqueuelen 1  (Local Loopback) 
        RX packets 915  bytes 286849 (280.1 KiB) 
        RX errors 0  dropped 0  overruns 0  frame 0 
        TX packets 915  bytes 286849 (280.1 KiB) 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
 
[root@centos7-02 keepalived]#

 

 

以下は VIP を持っていない「centos7」からコマンドを実行した結果です。

VIP は表示されません。

[root@centos7 ~]# ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    inet 127.0.0.1/8 scope host lo 
       valid_lft forever preferred_lft forever 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:70:14:c8 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.1.13/24 brd 192.168.1.255 scope global ens160 
       valid_lft forever preferred_lft forever 
    inet6 2408:210:8105:9500:4dd7:2e9f:178:a8f6/64 scope global noprefixroute dynamic 
       valid_lft 2591632sec preferred_lft 604432sec 
    inet6 fe80::a1d7:68b0:ce7b:e1b2/64 scope link 
       valid_lft forever preferred_lft forever 
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:70:14:d2 brd ff:ff:ff:ff:ff:ff 
    inet 10.0.0.1/24 brd 10.0.0.255 scope global ens192 
       valid_lft forever preferred_lft forever 
    inet6 fe80::8b35:2556:1654:2c2d/64 scope link 
       valid_lft forever preferred_lft forever 
[root@centos7 ~]#

 

 

 

 

【動作確認】Teraterm から VIP にログインしてみる

最後に keepalived の動作確認です。

Teraterm より VIP の「192.168.1.15」にログインしてみます。

【DRBD】【VMware 6】DRBD インストール手順および設定手順(Keepalived、Pacemaker(heartbeat)、DRBD)(PostgreSQL冗長構成)【詳細版】

 

 

2号機の「centos7-02」にログインしました。

【DRBD】【VMware 6】DRBD インストール手順および設定手順(Keepalived、Pacemaker(heartbeat)、DRBD)(PostgreSQL冗長構成)【詳細版】

 

 

keepalived 切り替え試験

keepalived サービスを停止して、ノード間で IP アドレスが移動するか動作確認をします。

 

■1号機の状態

[root@centos7 ~]# ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    inet 127.0.0.1/8 scope host lo 
       valid_lft forever preferred_lft forever 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:70:14:c8 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.1.13/24 brd 192.168.1.255 scope global ens160 
       valid_lft forever preferred_lft forever 
    inet 192.168.1.15/24 scope global secondary ens160 ← 1号機が VIP を持っています。 
       valid_lft forever preferred_lft forever 
    inet6 2408:210:8105:9500:4dd7:2e9f:178:a8f6/64 scope global noprefixroute dynamic 
       valid_lft 2591715sec preferred_lft 604515sec 
    inet6 fe80::a1d7:68b0:ce7b:e1b2/64 scope link 
       valid_lft forever preferred_lft forever 
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:70:14:d2 brd ff:ff:ff:ff:ff:ff 
    inet 10.0.0.1/24 brd 10.0.0.255 scope global ens192 
       valid_lft forever preferred_lft forever 
    inet6 fe80::8b35:2556:1654:2c2d/64 scope link 
       valid_lft forever preferred_lft forever 
[root@centos7 ~]#

 

 

■2号機の状態

[root@centos7-02 ~]# ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    inet 127.0.0.1/8 scope host lo 
       valid_lft forever preferred_lft forever 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:c9:e9:40 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.1.14/24 brd 192.168.1.255 scope global ens160 
       valid_lft forever preferred_lft forever 
    inet6 2408:210:8105:9500:fe27:e918:c2f3:ba1a/64 scope global noprefixroute dynamic 
       valid_lft 2591966sec preferred_lft 604766sec 
    inet6 fe80::6344:476d:2510:ba9c/64 scope link 
       valid_lft forever preferred_lft forever 
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:c9:e9:4a brd ff:ff:ff:ff:ff:ff 
    inet 10.0.0.2/24 brd 10.0.0.255 scope global ens192 
       valid_lft forever preferred_lft forever 
    inet6 fe80::8a6a:f2f1:9e13:7ef9/64 scope link 
       valid_lft forever preferred_lft forever 
[root@centos7-02 ~]#

 

■1号機の keepalived を停止する

[root@centos7 ~]# systemctl stop keepalived

[root@centos7 ~]#

 

 

■2号機に切り替わる

[root@centos7-02 ~]# ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    inet 127.0.0.1/8 scope host lo 
       valid_lft forever preferred_lft forever 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:c9:e9:40 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.1.14/24 brd 192.168.1.255 scope global ens160 
       valid_lft forever preferred_lft forever 
    inet 192.168.1.15/24 scope global secondary ens160 ← 2号機に VIP が移動しています。
       valid_lft forever preferred_lft forever 
    inet6 2408:210:8105:9500:fe27:e918:c2f3:ba1a/64 scope global noprefixroute dynamic 
       valid_lft 2591922sec preferred_lft 604722sec 
    inet6 fe80::6344:476d:2510:ba9c/64 scope link 
       valid_lft forever preferred_lft forever 
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 
    link/ether 00:0c:29:c9:e9:4a brd ff:ff:ff:ff:ff:ff 
    inet 10.0.0.2/24 brd 10.0.0.255 scope global ens192 
       valid_lft forever preferred_lft forever 
    inet6 fe80::8a6a:f2f1:9e13:7ef9/64 scope link 
       valid_lft forever preferred_lft forever 
[root@centos7-02 ~]#

 

 

■pingの確認

192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =5ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =3ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =3ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
要求がタイムアウトしました。 ← フェイルオーバーしたタイミングで ping が1個欠けました。 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =11ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =2ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =5ms TTL=64 
192.168.1.15 からの応答: バイト数 =32 時間 =3ms TTL=64

 

 

 

 

 

関連ページ

いずれも Linux HA(Linux の冗長化)について解説をしています。

 

DRBDのインストールと設定手順

 

【Linux HA】冗長構成についての基本

 

 

 

 

参考文献

若干古いですが、「keepalived」「hearbeat」「DRBD」を使った Linux HA の考え方が勉強になります。

Linuxのクラスタリングの構築技術としては唯一の書籍だと思います。

Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編 (Network server construction guide series (13))

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください