Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update: Content #2

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,34 @@
# ghichep-haproxy
Ghi chép về haproxy

# Mục lục

## A. Các tổng quan

- [1. HA Proxy - High Availability Proxy](docs/ha-overview.md)
- [1.1 Mục đích sử dụng của HA Proxy](docs/ha-overview.md#about)
- [1.2 Cài đặt HA Proxy](docs/ha-overview.md#install)
- [1.3 Tổng quan về cấu trúc file cấu hình của HA Proxy](docs/ha-overview.md#instruc)

- [2. Tổng quan về Keep Alived](docs/ka-overview.md)
- [2.1 Vấn đề hướng tới của Keep Alived](docs/ka-overview.md#issue)
- [2.2 Mô hình sơ khai của một hệ thống sử dụng KeepAlived](docs/ka-overview.md#models)
- [2.3 Cài đặt KeepAlived](docs/ka-overview.md#install)
- [2.4 Cấu hình kết hợp với HA Proxy để kiểm tra kết quả](docs/ka-overview.md#config)

- [3. Cơ bản về các dòng cấu hình trong file cấu hình của KeepAlived](docs/ka-configure-introduce.md)
- [3.1 Các block cấu hình trong keepalived](docs/ka-configure-introduce.md#about)
- [3.2 Nội dung cấu hình trong block `global_defs`](docs/ka-configure-introduce.md#global_defs)
- [3.3 Nội dung cấu hình trong block `static_ipaddress static_routes`](docs/ka-configure-introduce.md#static_ipaddress)
- [3.4 Nội dung cấu hình trong block `vrrp_instance` (đang hoàn thiện)](docs/ka-configure-introduce.md#vrrp_instance)


## B. Thực hành

- [1 Giới thiệu về LVS](docs/lvs-direct-routing.md#about)
- [1.2 Cài đặtt LVS trên Ubuntu](docs/lvs-direct-routing.md#install)
- [1.3 Cấu hình Network Direct Routing](docs/lvs-direct-routing.md#config)
- [1.4 Kiểm tra kết quả](docs/lvs-direct-routing.md#test)
- [2.1 Cài đặtt LVS trên Ubuntu (đang hoàn thiện)](docs/lvs-direct-routing.md#install)
- [2.3 Cấu hình Network Direct Routing (đang hoàn thiện)](docs/lvs-direct-routing.md#config)
- [2.4 Kiểm tra kết quả (đang hoàn thiện)](docs/lvs-direct-routing.md#test)
Empty file added docs/ha-configuration.md
Empty file.
4 changes: 1 addition & 3 deletions docs/ka-configure-introduce.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ ____
- [3.2 Nội dung cấu hình trong block `global_defs`](#global_defs)
- [3.3 Nội dung cấu hình trong block `static_ipaddress static_routes`](#static_ipaddress)
- [3.4 Nội dung cấu hình trong block `vrrp_instance`](#vrrp_instance)
- [](#)
- [Các nội dung khác](#content-others)

____
Expand Down Expand Up @@ -121,8 +120,7 @@ ____

+ Trong block `vrrp_instance` có thể khai báo các cấu hình sau:


- ### <a name=""></a>
sẽ cập nhật sau:


____
Expand Down
1 change: 1 addition & 0 deletions docs/ka-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ ____
trong đó: 172.16.69.254/24 là địa chỉ Virtual IP với subnet mask là 32 và ens33 là interface cho phép chạy VIP.

- Cấp phép và khởi động lại keepalived:

echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# cho phép gán địa chỉ IP mức kernel và forward packet to other nodes
Expand Down
117 changes: 117 additions & 0 deletions docs/lvs-direct-routing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# Báo cáo Cài đặtt LVS sử dụng Direct Routing Mode
____

# Mục lục
- [.1 Giới thiệu về LVS](#about)
- [A.2 Cài đặtt LVS trên Ubuntu](#install)
- [A.3 Cấu hình Network Direct Routing](#config)
- [A.4 Kiểm tra kết quả](#test)
- [B.2 Cài đặtt LVS trên Ubuntu](#install)
- [B.3 Cấu hình Network Direct Routing](#config)
- [B.4 Kiểm tra kết quả](#test)

____

- ### <a name="about"></a>

- LVS là viết tắt của Linux Virtual Server được hình thành từ cluster của nhiều server thật
- Mục đích:
+ Xây dựng một hệ thống server đảm bảo tính sẵn sàng cao (High Availability ) và hiệu năng cao (High performance ) sử dụng kỹ thuật cluster
+ Cung cấp khả năng mở rộng (Scalability ), đáng tin cậy (Reliability ) tốt và có thể sử dụng được (Serviceable )
+ LVS biết đến như một Load Balancer Cluster.
- LVS có thể chia sẻ dữ liệu giống nhau giữa các server thật với 2 tùy chọn
+ Đồng bộ dữ liệu thông qua real server pool
+ Sử dụng công nghệ của các phần mềm thứ 3 hỗ trợ (Galera )

- ### <a name="install"></a>

- Môi trường cài đặt
+ LVS server sử dụng Ubuntu.
+ Real server sử dụng Centos (Ubuntu, ...)

- Mô hình dựng:

![img](../images/lvs-mod-install-dr.png)

- Để cài đặt LVS, trên máy đảm nhiệm chức năng, ta thực hiện chạy câu lệnh sau:

apt-get install -y ipvsadm

- Tiếp theo, ta cần sửa đổi cấu hình cho LVS tại file cấu hình `/etc/default/ipvsadm ` sao cho có nội dung như sau:

# ipvsadm

# if you want to start ipvsadm on boot set this to true
AUTO="true"

# daemon method (none|master|backup)
DAEMON="master"

# use interface (eth0,eth1...)
IFACE="ens33:0"

# syncid to use
# (0 means no filtering of syncids happen, that is the default)
# SYNCID="0"

- Khởi động LVS:

systemctl start ipvsadm
systemctl enable ipvsadm

- ### <a name="config">Cấu hình tạo virtual ip trên LVS server</a>

- Đầu tiên, để tạo ra một ip ảo (VIP ) cho LVS server. Trên LVS server, ta làm như sau:

vi /etc/network/interfaces

thêm nội dung sau vào file:

auto ens33:0
iface ens33:0 inet static
address 172.16.69.254
network 172.16.69.0
netmask 255.255.255.255

lưu lại file, và khởi động lại interface đã tạo:

ifup ens33:0

- Tiếp theo, ta sẽ cấu hình network cho LVS để chuyển tiếp gói tin theo kiểu Direct Routing. Trên LVS server, ta chạy các câu lệnh sau:

tạo server pool, rr là chế độ cấu hình cho load balancing là round robin

ipvsadm -A -t 172.16.69.254:80 -s rr

add real server backend, -g chỉ chế độ mạng sử dụng cho LVS chuyển tiếp gói tin là Direct Routing, -m tương đương với NAT.

ipvsadm -a -t 172.16.69.254:80 -r 172.16.69.20:80 -g
ipvsadm -a -t 172.16.69.254:80 -r 172.16.69.30:80 -g

xác nhận cấu hình, kiểm tra kết quả cấu hình đã đúng hay chưa

ipvsadm -l

kết quả sẽ hiển thị tương tự như sau:

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.69.254:80 rr
-> 172.16.69.20:80 Route 1 0 0
-> 172.16.69.30:80 Route 1 0 0

- Trên cả 2 backend phía sau. Ta cần chạy câu lệnh sau để chuyển tiếp gói tin:

iptables -t nat -A PREROUTING -d 172.16.69.254 -j REDIRECT


- ### <a name="test">Kiểm tra kết quả</a>

- Để kiểm tra kết quả, từ trình duyệt của client, ta truy cập tới địa chỉ 172.16.69.254 (ta cần khởi động lại LVS server trước khi thực hiện bước này ). Kết quả như sau:

![img](../images/lvs-rr-01.png)


![img](../images/lvs-rr-02.png)
Binary file added images/lvs-mod-install-dr.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/lvs-rr-01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/lvs-rr-02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.