web-dev-qa-db-ja.com

Piranha / Pulse、lvs.cf、永続性とサーバー障害

次の設定があります。

  • RedHat 6
  • 2つのWebサーバー間で失敗するように設定されたLVS
  • 900秒の接続持続性

これは非常に簡単なセットアップですが、サーバーが失敗としてマークされている場合、piranha/Pulse/nannyプロセスは、テーブル内のサーバーの重みを0としてマークし、失敗したサーバーを削除しません。これは、永続的な接続が障害のあるサーバーに接続されたままになり、負荷分散が無効になることを意味します。

動作中のノードへの永続的な接続が失敗するように、障害が発生したノードを強制的に削除するようにnannyに指示するにはどうすればよいですか?

ありがとう


次のlvs.cfがあります。

serial_no = 201305302344
primary = 10.1.1.45
service = lvs
backup = 0.0.0.0
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = nat
nat_router = 10.1.1.70 eth0:1
nat_nmask = 255.255.255.0
debug_level = NONE
virtual http {
     active = 1
     address = 10.1.1.70 eth0:1
     vip_nmask = 255.255.255.0
     persistent = 900
     pmask = 255.255.255.0
     port = 80
     send = "GET / HTTP/1.0\r\n\r\n"
     expect = "HTTP/1.1 200 OK"
     use_regex = 0
     load_monitor = none
     scheduler = wlc
     protocol = tcp
     timeout = 6
     reentry = 15
     quiesce_server = 1
     server web1 {
         address = 10.1.1.51
         active = 1
         weight = 1
     }
     server web2 {
         address = 10.1.1.52
         active = 1
         weight = 1
     }
}
virtual https {
     active = 1
     address = 10.1.1.70 eth0:1
     vip_nmask = 255.255.255.0
     port = 443
     persistent = 900
     pmask = 255.255.255.0
     send = "GET / HTTP/1.0\r\n\r\n"
     expect = "up"
     use_regex = 0
     load_monitor = none
     scheduler = wlc
     protocol = tcp
     timeout = 6
     reentry = 15
     quiesce_server = 1
     server web1 {
         address = 10.1.1.51
         active = 1
         weight = 1
     }
     server web2 {
         address = 10.1.1.52
         active = 1
         weight = 1
     }
}
2
Antitribu

echo 1 > /proc/sys/net/ipv4/vs/expire_quiescent_templateをお試しください

詳細はこちら:

http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.persistent_connection.html

1
dmourati

ディレクターの障害/回復時に、そのディレクターを削除/追加するスクリプトをトリガーする必要があります。

私が使う lvs-kissこれには、これらの場合のスクリプトを含めるための構文があります。

1
Nils