Skip to content

Commit cc88909

Browse files
authored
keepalived_conf
1 parent ed5d1b7 commit cc88909

File tree

1 file changed

+197
-0
lines changed

1 file changed

+197
-0
lines changed

HAProxy/keepalived_conf.md

+197
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
# Keepalived configuration file
2+
3+
File cấu hình: `/etc/keepalived/keepalived.conf`
4+
5+
Một ví dụ đơn giản về hệ thống cân bằng tải gồm hai server: LB1 (active) và LB2 (backup) sẽ định tuyến các requests cho một pool của bốn web server chạy `httpd` với real IP là 192.168.1.20 tới 192.168.1.24, chia sẻ một virtual IP (VIP) là 10.0.0.1. Mỗi một lb có hai interfaces (eth0 và eth1), một sẽ thực hiện xử lý external internet traffic, hai sẽ thực hiện routing requests tới các server thực. Giải thuật load balancing được sử dụng là Round Robin và routing method sẽ là NAT.
6+
7+
## 1. Global Definitions
8+
9+
Global Definitions section cho phép admin chỉ định chi tiết thông báo khi có sự thay đổi xảy ra với load balancer. Section này là tùy chọn không yêu cầu bắt buộc trong cấu hình của keepalived. Section này giống nhau trên cả lb2 và lb1.
10+
11+
```sh
12+
global_defs {
13+
14+
notification_email {
15+
16+
}
17+
notification_email_from [email protected]
18+
smtp_server 127.0.0.1
19+
smtp_connect_timeout 60
20+
}
21+
```
22+
23+
* `notification_email` là địa chỉ email của admin
24+
* `notification_email_from` là địa chỉ gửi load balancer state changes.
25+
26+
Cấu hình cụ thể của SMTP chỉ định máy chủ thư mà các thông báo được gửi mail qua.
27+
28+
29+
## 2 . VRRP Instance
30+
31+
Ví dụ dưới đây là một đoạn `vrrp_sync_group` của file config `keeplalived.conf` trong master router và backup router. Chú ý về giá trị `state``priority` khác nhau giữ hai lb.
32+
33+
Ví dụ trên master:
34+
35+
```sh
36+
vrrp_sync_group VG1 {
37+
group {
38+
RH_EXT
39+
RH_INT
40+
}
41+
}
42+
43+
vrrp_instance RH_EXT {
44+
state MASTER
45+
interface eth0
46+
virtual_router_id 50
47+
priority 100
48+
advert_int 1
49+
authentication {
50+
auth_type PASS
51+
auth_pass passw123
52+
}
53+
virtual_ipaddress {
54+
10.0.0.1
55+
}
56+
}
57+
58+
vrrp_instance RH_INT {
59+
state MASTER
60+
interface eth1
61+
virtual_router_id 2
62+
priority 100
63+
advert_int 1
64+
authentication {
65+
auth_type PASS
66+
auth_pass passw123
67+
}
68+
virtual_ipaddress {
69+
192.168.1.1
70+
}
71+
}
72+
```
73+
74+
Ví dụ trên node backup:
75+
76+
```sh
77+
vrrp_sync_group VG1 {
78+
group {
79+
RH_EXT
80+
RH_INT
81+
}
82+
}
83+
84+
vrrp_instance RH_EXT {
85+
state BACKUP
86+
interface eth0
87+
virtual_router_id 50
88+
priority 99
89+
advert_int 1
90+
authentication {
91+
auth_type PASS
92+
auth_pass passw123
93+
}
94+
virtual_ipaddress {
95+
10.0.0.1
96+
}
97+
}
98+
99+
vrrp_instance RH_INT {
100+
state BACKUP
101+
interface eth1
102+
virtual_router_id 2
103+
priority 99
104+
advert_int 1
105+
authentication {
106+
auth_type PASS
107+
auth_pass passw123
108+
}
109+
virtual_ipaddress {
110+
192.168.1.1
111+
}
112+
}
113+
```
114+
115+
Trong ví dụ `vrrp_sync_group` định nghĩa một VRRP group. Nó có một instance được định nghĩa cho external interface để kết nối ra ngoài internet (RH_EXT), và một cho internal interface (RH_INT).
116+
117+
* Dòng `vrrp_instance` cấu hình chi tiết các virtual interface cho VRRP service daemon, cái mà được tạo bởi VIP instanece. `state MASTER` được thiết kế cho active server, và `state BACKUP` là cho backup server.
118+
119+
* `interface` là thuộc tính chỉ định tên physical interface để thêm VIP instance.
120+
121+
* `virtual_router_id` là một số dùng để định danh cho các virtual router instance. Nó sẽ giống nhau trên tất cả các LVS Router systems tham gia vào Virtual Router. Nó được sử dụng để phân biệt các instances của keepalived chạy trên cùng một network interface.
122+
123+
* `priority` chỉ định thứ tự, độ ưu tiên chọn các interface trong khi failover; số càng cao, mức độ ưu tiên càng cao. Giá trị ưu tiên này phải nằm trong khoảng từ 0 đến 255, và Load Balancing server được cấu hình như `state MASTER` nên có một giá trị priority được thiết lập cao hơn giá trị priority được thiết lập bên phía server được cấu hình `state BACKUP`.
124+
125+
* `authentication` block chỉ định authentication type (`auth_type`) và password (`auth_pass`) được sử dụng để xác thực server khi failover synchronization. `PASS` chỉ định password authentication; Keepalived cũng hỗ trợ AH hoặc Authentication Headers cho các kết nối toàn vẹn.
126+
127+
* `virtual_ipaddress` chỉ định một interface virtual IP address.
128+
129+
130+
### 3. Virtual Server Definitions
131+
132+
Section định nghĩa Virtual Server giống nhau trên cả LB1 và LB2.
133+
134+
```sh
135+
virtual_server 10.0.0.1 80 {
136+
delay_loop 6
137+
lb_algo rr
138+
lb_kind NAT
139+
protocol TCP
140+
141+
real_server 192.168.1.20 80 {
142+
TCP_CHECK {
143+
connect_timeout 10
144+
}
145+
}
146+
real_server 192.168.1.21 80 {
147+
TCP_CHECK {
148+
connect_timeout 10
149+
}
150+
}
151+
real_server 192.168.1.22 80 {
152+
TCP_CHECK {
153+
connect_timeout 10
154+
}
155+
}
156+
real_server 192.168.1.23 80 {
157+
TCP_CHECK {
158+
connect_timeout 10
159+
}
160+
}
161+
162+
}
163+
```
164+
165+
* Dòng đầu tiên `virtual_server` với IP address.
166+
* `delay_loop`: Cấu hình khoảng thời gian (được tính bằng giây) giữa các lần health checks.
167+
* `lb_algo`: chỉ định loại giải thuật được sử dụng cho tính khả dụng (trong trường hợp này là `rr` hay round-robin)
168+
* `lb_kind`: xác định routing method (trong ví dụ trên là sử dụng NAT)
169+
* Sau đó là cấu hình chi tiết cho các Virtual Server
170+
* `real_server` được cấu hình lại một lần nữa, tương tự với IP được chỉ định lúc trước.
171+
* `TCP_CHECK` Kiểm tra tính khả dụng của real server bằng cách sử dụng TCP.
172+
* `connect_timeout` cấu hình thời gian tính bằng giây, trước khi một timeout xảy ra.
173+
174+
Bảng một số các giá trị `lv_algo` cho Virtual Server
175+
176+
|Algorithm Name |lv_algo value|
177+
|---|---|
178+
|Round-Robin| rr|
179+
|Weighted Round-Robin| wrr|
180+
|Least-Connection| lc|
181+
|Weighted Least-Connection| wlc|
182+
|Locality-Based Least-Connection| lblc|
183+
|Locality-Based Least-Connection Scheduling with Replication| lblcr|
184+
|Destination Hash| dh|
185+
|Source Hash| sh|
186+
|Source Expected Delay| sed|
187+
|Never Queue| nq|
188+
189+
190+
191+
192+
193+
194+
195+
## Tham khảo
196+
197+
[1] https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/load_balancer_administration/ch-initial-setup-vsa

0 commit comments

Comments
 (0)