1. Trang chủ
  2. » Tất cả

NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ

109 280 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 109
Dung lượng 19,61 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

€ 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 1

NGHIÊ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 13

XD 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 16

xem 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 17

Vi

-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 20

Distributed 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 23

scheduler =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 24

Virtuarte= 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 29

alert 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 30

Cấ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 31

echo 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 33

Nguồ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

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 35

Hinh 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 37

Mạ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 39

net.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

Ngày đăng: 01/09/2020, 12:00

HÌNH ẢNH LIÊN QUAN

Hình  1.1.1:  Mô  hinh  LVS - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 1.1.1: Mô hinh LVS (Trang 9)
Hình  1.1.7:  Kiến trúc three-tie  trong  LVS - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 1.1.7: Kiến trúc three-tie trong LVS (Trang 18)
-  Fil  1  hình  cho  Piranha - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
il 1 hình cho Piranha (Trang 22)
Hình  heartbeat  nhu  sau: - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh heartbeat nhu sau: (Trang 30)
Hình  1.1.13:  M6  hinh  heartbeat  +  Idirectord - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 1.1.13: M6 hinh heartbeat + Idirectord (Trang 32)
Hình  1.2.1:  Ca - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 1.2.1: Ca (Trang 38)
Hình  1.2.5:  Iterative  query - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 1.2.5: Iterative query (Trang 41)
Hình  2.1.1:  Mô  hình  luậ - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 2.1.1: Mô hình luậ (Trang 58)
Hình  2.1.2:  Mô  hình  đấu  nối  vat  ly  DNS  Server  Cluster - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 2.1.2: Mô hình đấu nối vat ly DNS Server Cluster (Trang 59)
Hình  2.4.1:  khdi  tao  DNS  Server  Cluster - NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG SERVER CLUSTER BẰNG MÃ NGUỒN MỞ
nh 2.4.1: khdi tao DNS Server Cluster (Trang 102)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w