€ tạo ra một địa chỉ IP ảo, khi các users gửi yêu cầu truy cap vio LVS server được phân chia cho các real server xử lý có nhiều như: Round-Robin, Weighted Round-Robin, Least- Mặc dù h
Trang 1NGHIÊN CỨU VÀ XÂY DỰNG
HE THONG SERVER CLUSTER BANG MA NGUON MO
GVHD: THS NINH XUAN HUONG
SVTH: NGUYEN TRI THUC
MSSV: 106H1093
Thanh phé H6 Chi Minh - Naim 2009
Trang 2"Trưởng Đại Học Mở! Mã Nguồn Mở
"Trong quá trình làm đề tài khóa luận, mặc dù đã có nhiều cố gắng song do hạn chế
về thời øian và kinh nghiệm nên không tránh khởi những thiếu sót nhất định Em rất mong,
được tiếp thu những ý kiến đóng góp chân thành, những nhận xét, đánh giá, phê bình của
Khơa Công Nghệ Thông Tín và Ban Giám Hiệu nhà trường để kiến thức chuyên môn ngày
1g hoan thiện hơn Mỗi lần như thể l ần em rút ra được những kinh nghị
m quý báo cho bản thân
Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn Quý Thầy, Cô Trưởng Đại Học
TP.Hồ Chí Minh, ngày tháng năm2009
Sinh viên thực hiện
GVHD: Ths Ninh Xuan Huong ‘Trang 1/108
Trang 3
HIEU HE THONG SERVER CLUS Linux Virtual Server()
II ‘Tai sto can str dung LV:
II Nguyên lý hoạt động của LVS:
IV IP load balan
Direct Routin
IP-IP Encapsulation (Tunnding):
e thuật toán phân chia request trén load balan
Round-Robin Schedulin
Weighted Round-Robin Schedulin
Least-Connection Schedulin;
Weighted Least-Connedion Schedulin;
Destination Hasing Scheduling
Source Hashing Schedulin
Shortest Expected Delay Scheduling:
8 Never Queue Scheduliny
VI Kiến trúc của LVS cluster:
VIL High Availability cia LV!
1 Hoat ding high availabi
20 CHƯƠNG H: DỊCH VỤ DNS
€ bản ghỉ thôi
1 Ban ghi SOA (Start Of Authority):
2 Ban ghi NS (Name Server
3 Ban ghi A (Address) va bin ghi CNAME
Trang 4
PHÂN B: XÂY DỰNG HỆ THÓNG -
“DNS SERVER CLUSTER BANG MA NGUON MO”
CHUONG I: GIOL THIẾU
L_ Môhình hệ thống:
II Nguyên Lý Hoạt Đội
II yêu cầu hệ thốn;
6 Script /ete/ha, Presource Warplables init oe „100
7 File câu hình /etdsysconig/arptabl 100
CHUONG IV: KIEM TRA HOAT BQ
I Các buốc khởi tạo DNS Server Clu
II Chay script int_virtual_init:
IL Chay heartbe:
SERVER CLUSTER
IV Kiểm tra tính năng failover:
1 Giả sử dịch vu DNS trén load balane
2 Gia strload balancer master dow
3 Khi load balancer master hoat dong trở la
CHƯƠNG IV: NHAN XET VA KET LUAN
Trang 5“Trường Đại Học Mở TP.HCM
DANH MỤC CÁC CHỮ VIÉT TAT
Domain Name System
Linux Virtual Server
DANH MỤC CÁC HÌNH VẼ
[09 ho M6 hinh Piranha
i hid M6 hinh UltraMonkey
14 hl.1.14 Ipfail trong m6 hinh LVS st dung heartbeat + Idirectord
18 h1.2.4 Reaursive query
21 h1.2.7 Cau tric phan cap cia reverse DNS
Trang 6
hét sire quan trọng trong cuộc sóng của chúng ta Lưu lượng truy cập internet tăng lên một
cách đáng kể, và tốc độ ting trưởng trên 100% hàng năm Điều này đời hỏi khả năng xử lý của các server ngày càng cao với tốc độ nhanh Để giải quyết vấn dề này, cần xây dựng hệ thống server có khả năng chịu tải và sin sàng cao Xây dmmg hệ thống server cluster là một giải pháp, khi nhu cầu xử lý tăng, ta có thẻ mở rộng cluster bằng cách tăng thêm sœver, việc làm này hoàn toàn trong suốt với người dùng và dễ dàng thực hiện
Đề tài khoá luận này, tìm hiểu về hệ théng server cluster bằng mã nguồn mở (Linux
Virtual Server), nhằm thiết kế hệ thống server co khả năng chịu tải cao “load balancing” va khả năng sẵn sàng cao “high availability”
Linux Virtual Server là một phần mềm load balandng chạy trên nền Linux, Uhix cho
phép xây dụng một server rất mạnh bao gồm tập hợp của nhiều server thực Cầu trúc của Linux Vintual Server (hường gọi tắt là LVS) thông suốt đối với người dùng nên phía người dùng chỉ
nhận thấy LVS là một server mạnh chứ không biết được cấu trúc thực bên trong, Linux Virtual Server cung cấp cơ chế cluslering tức là hệ thống có khả năng high availability (kha nang sàng cao), bảo mật tốt và chịu được số lượng truy cập lớn vvv
LYS server qua địa chỉ IP ảo này Sau dé requests
thuật toán để phân chia reque:
Connection, Weighted Least-Connection, Néu mot real server nao bi down thi s
luster, khi real server hoạt động lại sẽ được phân chia request tré lai
€ tạo ra một địa chỉ IP ảo, khi các users gửi yêu cầu truy cap vio LVS server
được phân chia cho các real server xử lý (có nhiều
như: Round-Robin, Weighted Round-Robin, Least-
Mặc dù hệ thống server cluster có thể triển khai cho rất nhiều hệ thống mạng như:
DNS, HTTP, HTTPS, FTP, IMAP, POP, SMTP, LDAP, NNTP, nhung do thoi gian có hạn, nền đề tài khóa luận này chỉ đi sâu vào phân tìm hiểu và xây dựng hệ thống mạng DNS server cluster Hệ thống DNS server cluser được thử nghiệm chạy trong môi trường Linux
Báo cáo khóa luận bao gồm 2 phần chính như sau:
> ChươngL : Giới thiệu mô hình DNS sœver duster và nguyên lý hoạt
động của DNS server cluster
ver cluster bang ma nguon m
>_ Chương HI: Cách cài đặt và cấu hình hé thong DNS server duster
>_ ChươngIV : Kiểm tra hoạt động của hệ thống DNS sever duster
Mặc dù đã có nhiều có găng để hoàn thành đề tài này, tuy nhiên trong qá trình thiết
kế hệ thống, cũng như trong quá trình viết báo cáo không sao tránh khỏi những sơ xuất, thiếu sót nhất định Rất mong sự phê bình, góp ý chân thành tử Quý Thầy, Cô dễ dề tài này ngày càng hoàn thiện hon và thật sự hữu dụng trong thực tế
GVHD: Ths Ninh Xuân Hương, Trang 5/108 Nguyễn Trí Thức
Trang 7“Trường Đại Học Mở TP.HCM XD Hệ Thống Server Cluster Bằng Mã Nguồn Mở
ĐÈ TÀI:
XÂY DỰNG HỆ THONG SERVER CLUSTER BẰNG MÃ NGUÒN MỞ
MO PHONG “HE THONG DNS SERVER CLUSTER”
Response Internet/intranet
Trang 8“Trường E XD Hệ Th ng Server Cluster
Trang 9
“Trường Đại Học Mở TP.HCM
CHUONG I: GIỚI THIỆU HỆ THÔNG —
SERVER CLUSTER BANG MA NGUON MO
I Linux Virtual Server(LVS):
- Linux Virtual Server (LVS): kim
ây dựng trên một hệ thống server cluster bao 2
Hệ thống server cluster này hoàn toàn trong s
t tác với hệ thống cluster như một server don có khả
với người ding, người dù
năng chịu tải và khả năng
ác real server và load balancer được kết nói với nhau thông qua hệ thống mạng LAN
dùng tương tác với duster thông qua một địa chi IP ảo, đến load
ch vụ chạy trén real cluster sé tur động loại bỏ real srver đó ra khởi
erver Vio duster trong trường hợp
le real server hoàn toàn trong suốt
Trang 10Đại Học Mở TP.HCM ng Mã Nguồn Mở
“Trường,
HH ‘Tai sao cin sir dung LVS ?
- _ Với sự phát triển rit manh mé ciia internet, và vai trò aia intemet ngay càng trở nên
hết sức quan trọng trong cuộc sống của chúng ta Laru lượng truy cập internet tăng lên một cách đáng kể, và tốc độ tăng trưởng trên 100% hàng năm Điều này đòi hỏi khả
năng xử lý của các server ngày càng cao với tốc độ nhanh Để giải quyết vấn đề này, có2 giải pháp dược đưa ra
>_ Thứ I: Nếu sử dụng một saver, dé đíp ứng khả năng xử lý ngày càng cao thi cần phải năng cấp server Tuy nhiên việc năng cấp mày thực hiện khá phức tạp,
đổi khi không thể nâng, cấp được và chỉ phí cho việc nâng cáp khá cao so với khả
năng xử lý sau khi nâng cấp
>_ Thứ 2: Nếu sử dụng nhiều server và xây dựng hệ thống cluster, khi nhu cầu xử
lý tăng, ta có thể tăng thêm server vào cluster hoàn toàn trong suốt với người
ding va dé ding thực hiện
- _ Có nhiều giải pháp hiệu quả để xây dung hé thong duster: -
> DNS based load balancing cluster: 1a giai phap don gidn nhat dé xay dung hé thong cluster cho mét dich vu mang nhu: DNS, WWW, MAIL, FPT, No ait ding hé théng tén mién dé diéu phdi cic requests dén cic servers khitc nhau
thông qua việc phân giải một lên miền thành nhiều địa chi IP khác nhau tương,
ứng với địa chỉ IP của các servers Khi có một request đến DNS server yêu cầu phân giải tên miền, DNS saver sẽ trả về một trong số các địa chỉ IP của các
server tuy theo thuật toán phân chia requets được quỉ đnh trong thuộc tinh mset-
order của DNS Tuy nhiên do cơ chế cadhing DNS tử phía người dùng nên giải
pháp này không cân bằng tải một cách tuyệt đối
>_ Dispafcher basedl load balaneing elwter: Dispatdher còn được biết đến với tên load balancer, Dispatcher durge str dung dé diéu phoi cic requests đến các real
server trong cluster Người dùng tương tác với hệ thống duster như là một server đơn có khả năng chịu tải và khả năng sẵn sàng cao So sánh với giải pháp DNS based thi Dispatcher phan chia requests mét cach higu quả hơn, Dispatcher phân chia requests dya trén sé connedon dén nén kil phuc duge nhuge diém caching phia người dùng của giải pháp DNS based, Ngoai ra Dispatcher cin c6 thể phát hiện được real server fail, c6 thé thém va loai bd cic real server mot cách để dàng
II Nguyên lý hoạt động của LVS:
phép load balance cic TCP va UDP sessions gitta nhiều real servers Chính vì thế nó
cé kha ming mé rong cic dich vu mang nhu: DNS Server, Web Server, Mail Server, FTP Server bing cich tăng thiêm real server
ni tử người dùng dầu cuối đang chạy bất kỷ HĐIH nào đến các real server đăng chạy
Trang 11“Trường Đại Học Mở TP.HCM XD Hệ Thống Server Cluster Bằng Mã Naui
> Linux director (hay load balancer): La sever linux duoc cai cit phan mém LVS,
server này sẽ nhan packet tir cdc end users và forward chung den các real servers
End User: May tinh khdi tao két noi, thudng 1a cac PC cia ngudi ding,
Real server: Server nhận và xử lý các request tir end users
Virtual IP Address (VIP): Dia chi IP ảo được sinh ra từ cluster, thường địa chỉ
Vitual IP này nằm trên load balancer master End users sé giti requess đến IP ảo
này, sau d6 requests sé phân chia cho các real servers
> Layer 4 switching croc thuc hiện bằng cách forwarding cic TCP/P connections
và UDP/IP dalagrams tử ngoài vào đến các real servers, Các packet được dĩ vào linux redor (hay còn gọi là load balanea), sau đó sẽ được quyết định forward điến một rel server nào tuỷ theo từng thuật toán phân chỉa reqesL Khi phân chia
requests, cic subrequest packet (các bộ packct con) của dìng một connedion sẽ
được gửi đến cùng một real server để bảo đảm tính toàn vẹn cửa connection,
IV IP load balancing:
Có 3 kỹ thuật có thể triển khai trên linux director (load balancer) dé chuyén tiép packet tit
load balancer dén cic real server d6 La Virtual server qua NAT (VS/NAT), Virtual server
qua Dired Routing (VS/DR), va Virtual server qua IP Tunneling (VS/TUN)
Trang 12“Trường Đại Học Mở TP.HCM
1
ia chi IP public ngoai internet có giới hạn, và vì một vài lý do bảo mật,
máy tinh sử dụng địa chi IP private, Những dia chi private này không thể
sử dụng trên intemet Chính vi thé người ta đưa ra khái niệm NAT
>» Network Address Translation (NAT):
IP (thudng ding dé anh xạ một dia chi IP private thinh mét dia chi IP public
> Port Address Translation (PAT): anh xa mot cy da chi IP thanh một địa chỉ
IP (thuong dùng để ánh xạ một đấy dia chi IP pivate thành một dia chi IP public)
- _ Khi người dùng truy cập dịch vụ, được cung cấp béi server cluster, reques
đến load balancer (linux director) thông qua Virtual IP Load balancer s
chi destination (IP va port) cia packet, sti dụng thuật toán phân chia reqiest để chỉ dinh real server sẽ xử lý packet, déng thai sé anh xa da chi destination (IP va port) của
nh dia chi IP va port aia real server tong tng Khi packet tra vé tir real load balancer, sé duge anh xa nguge lai dla chi source (IP va port) cla packet thành địa chỉ ctia load balancer (Virtual IP va port) sau do chuyén tigp packet
Trang 13XD Hệ Thống suồn Mở
202.103.106.5
- _ Ưu điểm của kỹ thuật này là các real server c6 thé sit dung dia chi IP Privat
load balancer 1a cần có địa chi IP Public => tiét kiệm được dia chi IP Public
- Tuy nhiên, nhược điểm lớn nhất aia LVS qua NAT đó là sẽ xảy ra tình trạng
“bottleneck” (thit nut c6 chai) tại load balancer vì mọi requesis và responses điều đ
qua load balancer va nêu dùng kỹ thuật NAThì load balancœ chỉ có thê phân chia tối
đa cho 22 real servers
GVHD: Ths Ninh Xuan Huong ‘Trang 12/108 SV TH: Nguyen Trí Thức
Trang 14
via Direct Routing
Hinh 1.1.5: K¥ thuat Direct Routing
-_ "Trong kỹ thuật Virtual server qia NAT, tat ca cac requests va responses dicu
phải đi xuyên qua load balancer dẫn đến tinh trang load balancer bi “bottleneck”
“Trong Virtual server qua Direct routing, load balancer chi phin chia requests
den cic real servers, cic real server xir ly requests va trả về trục tiếp cho người dùng Vì thế load balancer có thể handle số lượng requests lớn và có thể phân
chia requests cho hon 100 real servers - -
- _ Việc điều phối các requests của cơ chế này giống với cơ chế NelDispatdher của IBM Virtual IP được khỏi load balancer và tại cic real servers, nhưng tại các real server sé được cấu hình chặn không cho packel đ vào real server thong qua Virtual IP (chặn ARP reply) Đồng thời cho phép các packet từ ngoài vào load balancer thong qua Virtual IP, load balancer sẽ kiểm tra đa chi destination (IP va port) cia packet, sử dụng thuật todn phan chia request để chỉ định real
server sé xtr ly packet d6, dong thoi dinh tuyén truc tiép packet dén real server
tương ứng (load balancer chỉ làm nhiện vụ thay đổi dia chi MAC destination cửa packet thinh MAC của real server tương ng) Packet trả VỀ tir real server sé được trả lời trực tiếp cho ngươi dùng không đi qua load balancer
ú ý: việc sứ dụng Lirect lotding thì yêu câu load balancer và các redl server" phải nằm cùng tron mOt doan mang
Trang 15
- _ 8ựkhác bi nhất giữa LVS qua Tunneling va LVS qua NAT do la load balancer
sẽ gửi requ server thông qua việc đóng gói IP tumnel và reply packet
c reil server sẽ được trả lời trực tiếp cho người dùng
Requests
Server
via IP Tunneling
Hinh 1.1.6: Ky thudt Tunneling,
ly request va tra Idi trực tiếp cho người dùng
- Chữ ý: Cơ chế này không đòi hỏi load balancer va cdc real server phải nằm cùng chung tên mội đoạn mạng, nhưng buộc hộ thông mạng phải hỖ tro IP encapsulate/decapsulate protocol
Trang 16xem khả năng xử lý của các real server như nhau, không có server
0 xt bằng nhau LVS cung cấp một vài đặt tính thuận lợi hơn kiểu roundrobin DNS truyền thống, Round-robin DNS truyền thống sẽ phân giải một tên miền thành nhiều địa chỉ IP Khi một host truy cập đến một tên miền nào đó, sẽ gủi query đến DNS
Server, yêu cầu phân giải tên miền thành địa chỉ IP, và khi đó DNS sẽ phân giải
tên miền này thành một địa chỉ IP Khi oó một host khác øửi yêu cầu phân giải
dùng tên miền này, khi đó DNS sẽ phân giải thành một địa chi IP khác, như vậy
sẽ tạo thành load balance Đây còn gọi là load balance dang Host-Based, Tuy nhiên, giải pháp này sẽ gặp trở ngại đổi với caching trên DNS, dẫn đến tinh trang, load imbalance LVS thy hién load balance theo dang, Connection-Based tức là
load balance dita vao s6 connection dén va vì thề sẽ cân bằng tải hơn
2 Weighted Round- Robin Scheduling,
Weighted Round-Robin được thiết kế để áp dụng tốt hơn trong trường hợp khả
năng xử lý của các real server không bằng nhau, Tite ki sé có server mạnh hơn và
server yếu hơn Khi đó, load balance sẽ round robin theo một trọng số được qui định sẵn Server với trọng số cao hon sé get nhiều connedions hơn Ví dị có các
la số request theo trong, SỐ như sau: AABABCABC
khi khả nà ic real server khong ing nhan, bởi vi server manh sé
ge được nhiều conneclion hơn Nhưng thực tế, nó còn phụ thuộc vào trạng thá
dụ một server A manh gap 2 lần server B, server A đã xử lý vài ngàn requests và
đang giữt chúng trong TCP TIMIS WAIT, nhưng server B cũng đã xử lý vài
ngàn requess, nhưng không giữ: chúng trong TCP TTMI-WAIT, Vì thế khi có
mat can bing trong thud
Trang 17Vi
-Comection Schedulin;
+ Giéng nhw Leas-Connection, Weighted Leaá-Connedion cũng phân chia
request dua vào số connection dang được thiết lập ít nhất, ngoài ra nó còn dựa
vào trọng số Real server nào có số connection đang được thiết lập ít nhất và có
trọng số lớn nhất sẽ dược ưu tiên forward request nhat
Destination Hasing Scheduling:
- Request duc chia cho real server phụ thuộc vào kết qua tim kiém destination IP
address va hash table Hash table chứa danh sách các comection đã được chia
cho các real server
6 Source Hashing Scheduling:
-_ Reqiest được chia cho real server phụ thuộc vào kết quả tìm kiém source IP
address va hash table Hash table chứa danh sách các comection đã được chia
cho các real server
7 Shortest Expected Delay Scheduling:
- _ Reqiest được chia cho real server dựa vio thoi gian delay tại real server ít nhất
Never Queue Scheduling:
~ _ Khi có một idle server trong cluster, thi request sé ckrgc chia cho idle server đó,
nhưng khi khéng con idle server trong cluster thi request sé chia cho real server
theo thuat toan “Shortest Expected Delay”
- _ Nhằm mục dich xay dụng hệ thống trong suốt đối với người dùng, khả năng sẵn sàng,
is cao, dễ quản lý và nâng cấp, nên LVS được xây dựng theo kiến trite three-tie (3 16p)
IHs Ninh Xuân Hương, “Trang 16/108 'VTH: Nguyễn Trí Thức
Trang 18
Load Balancer Server Cluster Storage
Hình 1.1.7: Kiến trúc three-tie trong LVS
oad balancer, xti ly req
> Shared Storage: Cine ci
- Load balancer (entry-point) duy nhat cia toan b6 hé théng cluster No
có thẻ triển khai kỹ thuit IP load balancing hay application-level load balancing
bên trong linux kemd Khi IP load balancing durge str dung thi tit ci cic real server phải dhạy cùng một dich vụ và cung cáp Load balancer chuyển tiếp các requests đến các real server theo mộ chia request Khi sử dụng, application level load King thì các real server có thể cung cấp các nội dung khác
Trang 19
thường độc lập và cĩ thể chạy song song trên các server khác nhau Vì thế, số node
cia cluster cĩ thể tăng lên để đáp ứng khả năng truy cập web và khả năng xử lý của hệ
thống
distributed file systems, Nhiing dlr ligu nay cin cho các real server dẻ tra cứu và cập nhật một cách tự động, Khi các real server ghi dữ liệu song song thì hệ thống dữ liệu
b đảm tính kiên định, khơng xảy m tranh chấp dữ liệu trong trường hợp truy
cd balancer, server cluster và shared storàe thường, đrọc kết nĩi bằng được truyền
tốc độ cao nhu 100Mbps Ethernet network va Gigabit Ethernet network Vi the vé
phin network bén trong cluster sé khéng xiy ra tinh trạng “nghến” trong trường hợp lưu lượng lăng cao
I Hish Availability của LV
1, Hoạt dong high availability:
Naty cing 06 nig ding dng “mission-ai
ical” cay trên mang infemet Vigo aang
ng việc © din kỷ Hiên mm tra, xác ảnh na ¡I, dịch vụ Bái trên mẫ
ai bỏ node nếu node fail va thém node néu node hoạt động trở
mà real server khơng cĩ trả lời thì load balancer sẽ xem như real server đĩ fail va sé
loại bỏ real server đĩ ra khỏi cluster Và nếu real server fail hoạt động trở lại, tiến trình
‘im sit trén Load balancer sé phat hiện và thêm real server 6 vao cluser
Trang 20Distributed File System
Load Balancer Server Cluster Storage
Hinh 1.1.8: High Availability cla LVS
- Tuy nhiên, néu nhu load balancer chỉ chạy trên một server đơn thì khi load balancer
fail toàn bộ hệ thống sẽ ngưng hoạt động, Để ngăn chặn điều này, ta nên cầu hình một
server load balancer master và một server load balancer dave (backup) Tiến trình heartbeat chạy trên cd load balancer master và load balancer slave, chang dinh kỳ gửi heartbeat message “I’m alive” cho nhau thông qua cổng serial hay ethernet Khi tiền trình heartbeat trén load balancer siave không thể nhận được heattbeat meassage gửi
tt load balancer master sing trong một khoảng thời gian được xác định trước, nó sẽ xem như load balancer master fail và tự động *takeover” thành master để nhận và phân chia các requests Khi load balancer master hoat d6
một là nó tự động tré thinh load balancer slave, hai Lin
balancer master tuy thuộc va
- _ Khi người đìng gửi reque r, thì load balancer mas
lại trạng thái và các thông tin của kết n iệc lưu lại các thông tin và trạng thí nối này nhằm hai mục đích: thứ 1 lưu giữ các hưa được forward dén cic real server để xử lý, thứ 2 nhờ lưu lại trạng thái kết nối nên các sub connedions của
Trang 21
keover” thành master để nhận và phân chia cic request Khi dé load balancer slave
không có thông tin và trạng thái của các kết nối, đấn đến tình trạng người dùng phải
gửi requests lại để có thê truy cập được dịch vụ Đề khắc phục nhược điểm này, LVS
hỗ trợ khả năng đồng bộ các kết nối trong IPVS giữa load balancer master và load balancer slave thông qua giao thức UDP multicast Nhờ được đồng bộ các kế nổi nên
khi load balancer dave *takeover” thành madter trong trường hợp load balancer master
fail, load balancer slave sẽ có đầy đủ các thông tin và trạng thái kết nối của hầu hết các connections, vi thé hau hé các connections sẽ tiếp tục truy cập thông qua load
balancer dave ma không ảnh hưởng gì đến người dùng
Có nhiều giải pháp phần mềm có khả năng, aing cấp hinh availabilily trên LVS như: Red Hat Piranha, Keepalived, UltraMonkey, heartbeat + Idirectord, and heartbeat +
mon Mỗi phần mềm có những đặc tính khác nhau
~ _ Công cụ giám sắt cluster có hai chức năng chính:
> Redundancy giữa các load balancer Server
> Dinh ky kiém tra dich vụ chay trên cic real servers
- _ Công cu giám sát load balane của Piranha sử dụng một tiến trình đẻ ánh kỳ
Trang 22
Real Server N
Load Balancer Server Cluster Storage
Hinh 1.1.9: M6 hinh Piranha
-_ Trong ví dự này virtual IP address va gateway IP address lan lượt là 10.23.8.80
va 172.18.1.254, hai load balancers 1 LDI và LD2 với địa chỉ IP lần lượt là 10.23.8.1 va 10.23.8.2, chi IP cia 3 real server lần lượt là 172.18.1.11, 172.18.1.12 và 172.18.1.13
- Fil 1 hình cho Piranha
ông nhau cho ci LD1 va LD2 nhu sau:
primary = 10.23.81 service = ls
Trang 23scheduler =wle i Stedung thuat todn weighted least connection
weight = 100
} }
server webserver? { # Real server 2
address = 172.18.1.12 active = 1
weight = 100 ) }
server webserver3 { # Real server 3
address = 172.18.1.13 active = 1
triển khai một framework dho phép kiểm tra đa tầng các sœver fiál Keepalived
hỗ trợ giao thức VRRPv2 để điều khiển failover
VRRPv2 (Virtual Router Redundancy Protocol Version 2) 14 mét giao thức chuẩn, được đính nghĩa trong RFC2338 dùng để xây dựng hệ thống có khả năng,
redundancy
Ví dụ sử dụng phần mềm Keepalived dé cau hình hệ thống web cluster sir dung
kỹ thuật VS/NAT (Virtual Server/ Network Address Translation) Hé théng gdm:
06 2 load balancer (mot load balancer master va mot load balancer slave), 3 real server chạy dịch vụ web
Keepalived cung cấp một giải pháp kỉ
Trang 24Virtuarte= Address ‘System
Distributed File System
~ ˆ "Trong ví dụ này virtual IP addres và øaleway IP addres lần lượt là 10.23.8.80
va 172.18.1.254, hai load balancers là LDI và LD2 với dịa chi IP lần lượt là 10.23.8.1 va 10.23.8.2, dia chỉ IP của 3 real server lần lượt là 172.18.1.11,
Trang 25
real_server 172.18,1.11 80 {
weight 100 TCP_CHECK {
connect timeout 3 } }
} }
real_server 172.18,1.12 80 {
weight 100 TCP_CHECK { connect timeout 3 )
Trang 26~_ Uamonkey là một dự án để tạo ra một hệ thống, cluster với chức năng load
banalced va high available cic dịch vụ mạng LAN, Utramonkey sử dụng các
thành phần open source trên hệ điều hành linux bao gồm heartbeat va Idirectord
từ dự án Linux-HA
-_ Ví dụ sử dụng giải pháp UraMonkey để cấu hình hệ thống web d
kỹ thuật VS/NAT (Virtual Server/ Network Adlress Translation) I
có 2 load balancer (một load balancer master và một load balancer s
server chay dich vu web
ster sir dung thống gồm ave), 3 real
Hình 1.1.11: Mô hình UltraMonkey
s Ninh Xuân Hương, ‘Trang 25/108
Trang 27
- _ Trong ví dụ nay virtual IP address An lượt là 10.23.8:80
va 172.18.1.254, hai load balanoers dia chỉ IP lần lượt là
10/23/82, địa chỉ IP của 3 real server lần lượt là 172.18.1.11, 172.18.1.12 và 172.18.1.13
~ File cầu hình cho UtraMonkey giống nhau cho cả LDI và LD2 như sau:
service=hitp
request="index.himl"
receive="Test Page"
scheduler=wle rsistent=600
protocol=tep checktype=negotiate
Trang 28
- _ High availability cho LVS 06 thé duge cung cấp bằng việc s
mon, heartbeat Phan mém “mon” c6 chtre ning chinh 1a giam nguyên của hệ thống, “mon” có thể được sử dụng cho việc
mạng chạy trên các real servers Phầm mềm “hieartbeat'
balancer bằng việc định ký gửi UDP hearbeat mesage giữa load balancer master vaload balancer slave théng qua cổng ethemet hay serial
- Cấu hình Rilover cho các real serves: "mon” được sử dụng để giám sát các dịch
vụ chạy trên các real server trong cluster Vi dy: fping monitor có thể dùng để giám sát cic nodes server, http.monitor ding dé giám sát dich vu web hitp, fip.monitor dé giám sát dich vu fip,
- Ví dị xây dựng hệ théng web cluster sir dung ky thudt Direct Routing
Internet/Intranet
Coda distributed fault-tolerant filesystem
Real Server N
Load Balancer ‘Server Cluster File Servers Hinh 1.1.12: M6 hinh heartbeat + mon + coda
ần lượt 1a 10.23.8.80
= “Trong ví dụ này virtual IP address vi gateway IP addres
fia chi IP lần lượt là
va 172.18.1.254, hai load balancers la LD1 va LD2 vi
Trang 29alert mailalert wensong upalert mailalert wensong alert Ivs.alert-P tp -V 10.0.0.3:80-R 192.168.0.1 -W 5-F dr upalert lws.alert -P tep -V 10.0.0.3:80-R 192.168.0.1 -W 5 -F dr
Trang 30Cấu hình failover cho các load balancer để đề phòng trường họp load balancer
fiil sẽ ảnh hưởng, đến toàn bộ hệ thống, người ta ding hai load balanc
và dav©) và dùng chương trình heartbeat de giá load balancer này
Câu hình hai load balancer như sau:
Ivs L.domain.com (load balancer Masrter) 10.0.0.1
Ivs2.domain.com (load balancer slave) 10.0.0.2,
Dia chi IP ao cho load balancer 10.0.0.3,
Trang 31echo 1 > /proc/sys/neVipv4ip forward SIPVSADM -A-t 10.0.0.3:80
SIPVSADM -a -t 10.0.0.3:80-r 192.168.0.1 -w 5-g SIPVSADM -a -t 10.0.0.3:80- 192.168.0.2 -w 5-g
exit 0
GVHD: Ths Ninh Xuan Huong “Trang 30/108
Trang 32+ Đô sẵn sang cao (high availabili
> LVS [a mot gidi phap higu quả, ding dé load balanee cho các cách vụ mạng
ver load balancer (hay linux director),
LVS thực hiện load balance qua một s
saul do requests sẽ được phân chia dho các real server bên trong, Tuy nhiên, hệ
thống sẽ down hoàn toàn nếu như server load balancer ngưng hoạt động Một
giải pháp được đưa ra là làm cách nào xây dựng một hệ thống vừa có khả năng
“Load Balance” vita “High Availability” Heattbeat được sinh ra đề đáp ứng,
yêu cầu đó
Hearlbeat là một chương trình cho phép xây dụng hệ thống øồm 2 hay nhiều
servers load balancer (mot server I master vat cic server con lại là slave), bảo đăm rằng một server load balancer luôn luôn duy trì Virtual IP tại moi thoi điểm và phân chỉa các request cho các real server bên trong
Load balancer master sé chiém giữ Virtual IP và phân chia cic requests cio
cic real server bên trong Load balancer slave sé dur phong cho load balancer master
Load balancer master sé dinh ky 2 gidy giti mét hearbeat mes age cho load balancer slave, Heartbeat message mic dinh I UDP port 694 Nếu trơng một khoảng thời gian, mặc dịnh là 30 gidy ma load balancer dave không nhận được hearbeat message thi né xem nhw load balancer master down va n6 tw dong takeover tr thnh load balancer master Khi load balancer master fail hoat
động trở lại, nó lấy lại quyền master (failover)
Hình 1.1.13: M6 hinh heartbeat + Idirectord
Ths Ninh Xuân Hương Trang 31/108 iguyen Tri Thit
Trang 33Nguồn Mở
> ‘Theo mé hinh trén, load balancer master sẽ định kỳ 2 giây sẽ gửi một heartbea message cho load balancer slave qua card mang ethl (c4p chéo), hay 06 thé
ding cong serial thay cho ethernet
> Vi du cau hình heartbeat nhu sau: /etcfha.dha.cF
Đgfic Ararfog/hatog #Ghi log file
bogfcility — tocalo # Xúc định dồi lượng sinh ra log, local tắc là
xử dụng dồi lượng do người dùng tụ định nghĩa
Chúc năng này chỉ xử dụng trong trường hợp
Có xử dụng syslog server
kè
keepative it Heartbeat message s& duve giti 2 gidy mot
lân từ Load Balancer Master
ceadtime 30 #t Saw 30 giây mà Load Balancer Stave khong
han duce heartbeat message tie Load Balancer Master thi xem Load Balancer Master down, Khi dé Load Balancer Staves “takeover” thành Load Balancer Masler và chịu trách nhiệm quản lý và phân chia requests
initkad 120 # Khi một node được boot thì nó phải chờ
khởi động các dich vụ mạng Thuờng thời gian chờ này lớn hơn tới gian deadtime Chink vì
vậy khi mội nodb mới khói động lần đâu liền nó
SẼ chờ nhận hearlbeal messdge Một khoảng thời gian lt initdead chứ không dùng deadtime Load Balancer Slave mới khói động lôn sau 120 giậy mà không nhận được hearlhedl message thi xem nw Load Balancer Master down, và nó
tw dong “takeover” thành load Balancer Master
ulpport 694 # Port ding dé gi heartbeat message tr Load
Balancer Master sang Load Balancer Slave beast eth Ht Interface giti heartbeat message vet str dung
gi broadcast heartbeat message tr Load
Balancer Master (C6 thé cdu hinh chon gửi heartbeat message từ Load Balancer Master
theo dang unicast)
auito_faitback on # Khi load Balancer Master down, Load
Balancer Slave sé “takeover” thank Master Trong tnuing hop Load Balancer Master hoat
GVHD: Ths Ninh Xuan Huong ‘Trang 32/108 : Nguyễn Trí Thức
Trang 34động tỞ lại thì nó tự động chiếm lại quyền
auto_fuilback duce set "on ”
# Khai báo lên nodel
# Khai báo lên node2
it Cau hink ping node Pink Kỳ gửi lomp
message dén IP address 192.168.1.254 dé kiém
tra Nou khong thé ping duge dén IP address nay thi te dong remove node này ra khỏi Cluster var khOng phan chi request cho node này, LỄ phòng trường hợp real server mất kết nổi (card mạng ethO down) ver khOng thổ phân chia requests cho cdc real servers
it Sau 30 gidy néu ping node không thành công
s€ remove node ra khoi Cluster
> Thiét ké ata m6 hinh heartbeat chi có thẻ kiểm tra được trong trường hop host
Trang 35Hinh 1.1.14: ipf fail trong mô hình LVS sử dụng heartbeat +Idirectord
@ ethO down, din dén tinh trang load balancer
đến các real servers, nhưng heartbeat không ver thong aa card mang eth
“rong trường hợp này, card ma
switch tyer3 (he!
Định kỳ 2 giây load balaices mater $8 ati in higu ping dén “Ping Node”, néu ping khéng thanh cong (trong trưởng hợp này có thể do card mang ethO down) thi load balancer master sé tự động giải phóng các tài nguyên (Viriual IP và bing phan chia requests cho cic real server) vi load balancer slave sé argc takeover én thanh master
‘Theo mô hình heartbeat, nếu một real sœver down thì hệ thống sẽ không thẻ
phát hiện ra (heartbcat chỉ giám sát cho load balancer server) Khi một real servœ down mà hệ thống không phát hiện ra thì request vẫn được phân chia cho real server đó Để khắc phục nhược di mì này, người la dưa ra chương trình Ldirectord Nếu nhu Heartbeat duge ding dé fc load balancer server thi Leirectord duge ding để giám sát các re: ers, Láắrectord được
trên load balancer d
Trang 36
> Ldirectord thudng được dùng kèm với Heartbeat để thiết kế nên một hệ thống,
“High Availability LVS luster” Ldirectord kiém tra dich vụ chạy trên các real
‘ing việc ánh kỷ kết nối đến chúng, tạo ra mot request và kiểm tra kết
>_ Ví dụ Idrectord như su: /etc/ha.d/confldrectord.cF
vũtal=203 113.1.1:53 real=192.168.1.1:53 real=192.168.1.2:53 request="wwwouedusn"
receive="192, 1681.1"
heduler=r servicedns protoco=udp
request Pinh kì Ldireclord sỡ gửi mot request phan gidi tn mién
“www.oueduyn” dén cdc real servers Neu két qua tra ve the
cdc real server bang ding receive “192.168.1.1” thi xem nbe dich vu DNS tren real server dé hoat dong binh thường, nếu
không có kết quả trả về hay kết quả phân giải không trùng với receive thi xem nhw dich vu DNS tren real server do fail Neu
Ldirectord phit hien dich vu tren real server fail thì nó tự Ông loại trừ roal server đÓ ra khởi he thong cluster và số
1g chía requost nữa cho đốn khi dịch vụ trên node đó hoạt
động trở lại bình thường
scheduler: ‘Thudt todn phan chia requests (rr: round robin)
service + Tịch vụ cần kiém tra trén cae real server
Trang 37Mạng máy tính toàn cầu (Internet) bao gdm hang ngàn máy tính nói với nhau, mối
máy tính trên mạng cần phải có một địa chỉ xác ánh Địa chỉ Intemet (IP) đang được
đương 1 byte) cách đếm đều từ trái qua phải từ bít 1 cho đến bit 32, cic Octet tach bic nhau bằng đấu chấm (.) và biểu hiện ở dạng thập phân đầy đi là 12 chữ số Ví dụ một
bịt, đài gấp 4 lần của IDv4 Vesion IPv4 có khả = 4294 967 296 địa
chi, con Version IPv6 c6 khả năng cung cấp 2!” địa chỉ) Mỗi một máy tính trên mạng Intemet cần có một đấa chỉ IP duy nh:
máy tính trong mạng muốn liên lạc trao đổi thông tin, dữ liệu cho nhau cần phải
biết rõ địa chỉ IP của nhau Nếu số lượng máy tính lớn, thì việc nhớ địa chi IP này là
thay thế địa chỉ IP thành một cái tên Đối với con
ø dễ hơn nhớ đa chỉ IP Vì vậy người ta nghĩ ra
nhớ thành tên Cứ một địa chỉ
người dùng muốn liên lạc với tên A, máy tính sẽ tìm
địa ch ö, tiền hành liên lạc với máy tính
người nghĩ đến
dang git dia chi IP da
Khi số lượng máy tính ngày một lớn hơn nữ, việc lưu nh file trở nên khó m
là địch vụ phân gỉ
Dịch vụ DNS hoạt động theo mô hình
còn gọi là Name Server Name Sœver chứa thông tin về một phần cơ sở dữ liệu trong phạm vi qiản lí của n lào không thuộc phạm vỉ quản lí, thì nó sẽ chỉ đến các Name Servers khac dé Client có thể truy vấn tiếp
“Tiến trình server của DNS trên daemon named "Trong quá trình khởi động,
nanwed đạp các sp lún di liệu chờ yêu cầu phân giải qua port được xác
) Khi nhận được yêu cầu phân giải tên
ng 512 bytes thi named dùng giao thúc
quản Wy mức cao nhất của hệ
c tên miền mức dưới
thống tên miền (mức rool) dodônó có quyền cấp phát cá
Trang 38
Hinh 1.2.2: Top Level Domain
> Generic Top-Level Domains (gTLD) như: com, net, org, mil, edu,
> Country Code Top-Leva Dom:
te nước trên thế giới tham gia vào r quốc gia này được qui định bải lọ hai chữ cái theo tiêu chuẩn ISO-
3166 ( vi du vir Viet Nam
o Đối với các quốc gia, tên m do giốc gia đó quản lý Tại Việt Nam, Trung tả tâm thông tin mạng Internet
Trang 39net.vn, gov.vn, edu.vn, org.vn, ac.vn, intvn) v: ie á
“Tránh đăng ký các tén miền ¡ đa du, danh nhân, nh ụ, tổ
hính phủ, tổ chức chính trị ên chung của một ngành
'Tên miền ‘ding ký được chứa các ký tur tir A dén Z; 0 dén 9 va cde ky tự ti
iệt trong bảng chữ cái tiếng Việt Các ký tự này không phân biệt viết hoa hay
ký được chứa ký tự "-" nhưng không được bắt đầu hoặc kết thúc
ly
> Ten mién đăng ký không dư
> _ Tần miền đăng ký phải chứa ít nh
Trang 40
- DNS Local (DNS Server) sé query đến tất
về cho client (Resolver) cac Name Servers khác lấy kết quả và trả
Root Servers Referral | Query ' PC
<< Query = ONS | Resolver < Browser
Hinh 1.2.4: Recursive query
© Métngudi ding nhap URL hitp:/Awww.example.com vao trong trinh duyét
© Trinh duyệt sẽ gửi yêu cầu dẻ tim a chi IP của tên miền www.example.com
đến resolver của nó
sửi yêu cầu phân giải tên miền www.example.com đến local DNS
ợc cầu hình khai báo trên PC)
lookup tên miền www.example.com trong CSDL của nó, nhưng, không tìm thấy