Home

技術系のメモと日々の雑感

keepalived で冗長化

この前の LVS の構成では落ちているサーバにもお構いなしにリクエストを転送してしまうので、keepalived を使って冗長化してみることにした。
ちなみに、今回も動作を見たかっただけなので必要最低限のことしかやってないけど、あしからず。

まずは keepalived をソースからインストール。

# tar zxvf keepalived-1.1.15.tar.gz
# cd keepalived-1.1.15
# ./configure --prefix=/usr/local
# make
# make install

特に引っかかるところはなかった。
続いて、最低限の keepalived.conf を作る。

virtual_server 192.168.0.200 80 {
  delay_loop 5
  lb_algo lc
  lb_kind NAT
  nat_mask 255.255.255.0
  protocol TCP

  sorry_server 127.0.0.1 80
  virtualhost 127.0.0.1

  real_server 192.168.1.101 80 {
    weight 1
    inhibit_on_failure
    HTTP_GET {
      url {
        path /index.html
        status_code 200
      }
      connect_timeout 3
    }
  }
  real_server 192.168.1.102 80 {
    weight 1
    inhibit_on_failure
    HTTP_GET {
      url {
        path /index.html
        status_code 200
      }
      connect_timeout 3
    }
  }
}

これで環境ができたので早速実行してみよう。

# /usr/local/sbin/keepalived -n -S 1 ¥
  -f /usr/local/etc/keepalived/keepalived.conf --check -d

まず両方のリアルサーバが生きている状態で確認。

# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port      Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80  lc
  -> 192.168.1.102:80        Masq    1      0          0
  -> 192.168.1.101:80        Masq    1      0          0

ここで 192.168.1.102 側を落としてみると

# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port      Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80  lc
  -> 192.168.1.102:80        Masq    0      0          0
  -> 192.168.1.101:80        Masq    1      0          0

自動的に Weight が 0 に変わって転送されなくなった。
素晴らしい〜!

この記事に対するトラックバック

この記事のトラックバックURL

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/16(月) 06:24:22

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/07(土) 12:10:49

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/07(土) 05:19:56

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/06(金) 22:33:16

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/05(木) 19:00:42

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/29(金) 10:48:16

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/13(水) 04:53:00

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/12(火) 14:52:26

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/07(木) 08:47:06

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/07(木) 01:16:01

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/06(水) 16:28:21

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/06(水) 07:03:36

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/05(火) 22:26:19

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/04(月) 18:11:52

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/03(日) 02:06:17

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/02(土) 03:05:45

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/01(金) 04:39:48

-

管理人の承認後に表示されます

  • From: |
  • 2013/08/24(土) 12:53:37

-

管理人の承認後に表示されます

  • From: |
  • 2013/04/21(日) 00:06:39

この記事に対するコメント

この記事にコメントする

管理者にだけ表示を許可する