Kategorie szkoleń | Egzaminy | Kontakt
  • 0
  • 0
  • 1

Dzień Dobry.

Mamy dwie maszyny (RedHat7.4) pełniące rolę zarówno LoadBalancera, jak również RealServer (serwującego usługę).

Usługa jaką chcemy zbalansować jest zabindowana na adresie IP or IP1, dodatkowo za pomocą usługi Pacemaker (pcs + keepalived + ipvsadm) jest uruchomiony LB z adresem VIP, który może być na jednym z dwóch realserverów.


Objaw:
W momencie puszczenia generatora zdarzeń na adres VIP:5514 zwiększa się licznik InActConn, natomiast zdarzenia nie są odbierane przez usługi uruchomione na adresie RIP1:5514 oraz RIP2:5514.

Generator otrzymuje informację: connection timeout i/lub connection refused.

Polityka ipvsadm wygląda następująco:

[root@elastic1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP VIP:5514 rr
-> RIP1:5514 Route 100 0 0
-> RIP2:5514 Route 100 0 0
[root@elastic1 ~]#

 

Konfiguracja interfejsów sieciowych na realserver 1:


[root@elastic1 ~]# ip a
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:c2:9b:b0 brd ff:ff:ff:ff:ff:ff
inet <RIP>/24 brd 192.168.230.255 scope global ens33
valid_lft forever preferred_lft forever
inet <VIP>/32 brd 192.168.230.255 scope global ens33:vip
valid_lft forever preferred_lft forever
inet6 fe80::d90d:1616:bb2f:9232/64 scope link
valid_lft forever preferred_lft forever
[root@elastic1 ~]#

 

Konfiguracja interfejsów na realserver 2:


[root@elastic2 ~]# ip a
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:8c:31:f7 brd ff:ff:ff:ff:ff:ff
inet <RIP2>/24 brd 192.168.230.255 scope global ens33
valid_lft forever preferred_lft forever
inet <VIP>/32 brd 192.168.230.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::a075:506c:b4db:bb4/64 scope link
valid_lft forever preferred_lft forever
[root@elastic2 ~]#


Na obydwóch maszynach ustawione mamy:


net.ipv4.ip_forward=1

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.ens33.arp_ignore=1
net.ipv4.conf.ens33.arp_announce = 2


Reguły ipvsadm są tworzone za pośrednictwem ldirectord:


[root@elastic1 ~]# cat /etc/ha.d/ldirectord.cf
checktimeout=1
checkinterval=1
negotiatetimeout=3 #
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=yes

virtual=<VIP>:5514
real=<RIP1>:5514 gate 100
real=<RIP2>:5514 gate 100
protocol=tcp
scheduler=rr
checktype=connect
checkport=9600
[root@elastic1 ~]#

 

Konfiguracja Pacemakera wygląda w sposób następujący:

 

[root@elastic1 ~]# pcs config
Cluster Name: TEST_CLUSTER_PRV
Corosync Nodes:
RIP1 RIP2
Pacemaker Nodes:
elastic1 elastic2

Resources:
Group: logstash
Resource: vip (class=ocf provider=heartbeat type=IPaddr2)
Attributes: cidr_netmask=32 iflabel=vip ip=192.168.230.90 lvs_support=true nic=ens33:vip
Operations: monitor interval=10s timeout=20s (vip-monitor-interval-10s)
start interval=0s timeout=20s (vip-start-interval-0s)
stop interval=0s timeout=20s (vip-stop-interval-0s)
Resource: lvs (class=ocf provider=heartbeat type=ldirectord)
Operations: monitor interval=20 timeout=10 (lvs-monitor-interval-20)
start interval=0s timeout=15 (lvs-start-interval-0s)
stop interval=0s timeout=15 (lvs-stop-interval-0s)
Clone: vip-lo-clone
Meta Attrs: interleave=true
Resource: vip-lo (class=ocf provider=heartbeat type=IPaddr2)
Attributes: cidr_netmask=32 ip=192.168.230.90 nic=ens33
Operations: monitor interval=10s timeout=20s (vip-lo-monitor-interval-10s)
start interval=0s timeout=20s (vip-lo-start-interval-0s)
stop interval=0s timeout=20s (vip-lo-stop-interval-0s)

Stonith Devices:
Fencing Levels:

Location Constraints:
Resource: logstash
Enabled on: elastic1 (score:INFINITY) (role: Started) (id:cli-prefer-logstash)
Ordering Constraints:
Resource Sets:
set vip lvs
Colocation Constraints:
vip-lo-clone with logstash (score:-INFINITY)
Ticket Constraints:

Alerts:
No alerts defined

Resources Defaults:
No defaults set
Operations Defaults:
No defaults set

Cluster Properties:
cluster-infrastructure: corosync
cluster-name: TEST_CLUSTER_PRV
dc-version: 1.1.16-12.el7_4.5-94ff4df
have-watchdog: false
last-lrm-refresh: 1512505660
no-quorum-policy: ignore
stonith-enabled: false

Quorum:
Options:
[root@elastic1 ~]#

 

Polityki Firewall na obydwóch maszynach:

 

[root@elastic1 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 297K packets, 36M bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 373K packets, 44M bytes)
pkts bytes target prot opt in out source destination

 

Potrzebujemy pomocy w konfiguracji loadbalancera uruchomionego na maszynach serwujących usługę na adresie RIP:5514 (zdarzenia ---> VIP:5514 --> Balancer ---> RIP:5514), przy czym VIP:5514, RIP:5514 znajdują się na tej samej maszynie fizycznej. Adresy VIP i RIP są z tego samego segmentu sieci.

Ewentualnie poszukujemy innego rozwiązania obsługującego SSL.

Pozdrawiam.
Paweł Magdziak.

Paweł_Magdziak
  • Zapytał
  • @ Paweł_Magdziak | 06.12.2017
    • 1
    • 0
    • 3
Zaloguj się aby zadać pytanie
Pokrewne