CentOS 7에서 ipvsadm 설정으로 로드밸런스 해보기

# LVS서버 # LVS 설치 $ yum -y install ipvsadm # 설정확인 0이면 비활성화 된 것임. $ sysctl -a | grep ip_forward net.ipv4.ip_forward = 0 net.ipv4.ip_forward_use_pmtu = 0 $ vi /etc/sysctl.conf net.ipv4.ip_forward = 1 $ sysctl -p # 리부트 후, 값이 저장되었는지 확인해보자. $ reboot $ sysctl -a | grep ip_forward net.ipv4.ip_forward = 1 net.ipv4.ip_forward_use_pmtu = 0 # 가상IP(VIP) 추가 $ ip addr add 192.168.199.250 dev eno16777736:0 # 잘못 추가했다면 # ip addr del 192.168.199.250 dev eno16777736:0 [root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:4d:21:a7 brd ff:ff:ff:ff:ff:ff inet 192.168.199.130/24 brd 192.168.199.255 scope global dynamic eno16777736 valid_lft 1677sec preferred_lft 1677sec inet 192.168.199.250/32 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe4d:21a7/64 scope link valid_lft forever preferred_lft forever # LVS Direct Routing으로 추가하기 $ ipvsadm -C $ ipvsadm -A -t 192.168.199.250:8001 -s rr $ ipvsadm -a -t 192.168.199.250:8001 -r 192.168.199.128:8001 -g $ ipvsadm -a -t 192.168.199.250:8001 -r 192.168.199.129:8001 -g # real server vi /etc/sysctl.conf net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 $ sysctl -p # LVS에 할당한 VIP를 lo:0에 추가한다. $ ip addr add 192.168.199.250 dev lo:0 $ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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 inet 192.168.199.250/32 scope global lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:74:0f:83 brd ff:ff:ff:ff:ff:ff inet 192.168.199.129/24 brd 192.168.199.255 scope global dynamic eno16777736 valid_lft 1601sec preferred_lft 1601sec inet6 fe80::20c:29ff:fe74:f83/64 scope link valid_lft forever preferred_lft forever # 잘되고 있는지 LVS서버에서 확인 $ ipvsadm -L -n --stats IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:Port TCP 192.168.199.250:8001 2 43 0 10016 0 -> 192.168.199.128:8001 1 29 0 5964 0 -> 192.168.199.129:8001 1 14 0 4052 0

에잇, 되긴 했지만 너무 어렵다. haproxy로 하자.