Professional Documents
Culture Documents
Load Balancing & Cluster
Load Balancing & Cluster
MỤC LỤC
Nội dung Trang
Lời mở đầu ---------------------------------------------------------------------------3
Các ký hiệu và chữ viết tắt --------------------------------------------------------4
Danh mục các hình------------------------------------------------------------------5
Phần 1: Tổng quan------------------------------------------------------------------ 6
I. Load Balancing------------------------------------------------------------- 6
1. Load Balancing-------------------------------------------------------- 6
2. Lợi ích của Load Balancing------------------------------------------ 6
3. Các giao thức----------------------------------------------------------- 7
4. Health Checks---------------------------------------------------------- 7
5. Các thuật toán---------------------------------------------------------- 8
6. Cách Load Balancing xử lý trạng thái------------------------------10
7. Load Balancer dự phòng---------------------------------------------10
II. Cluster------------------------------------------------------------------------11
1. Cluster – Nghĩa của từ Cluster---------------------------------------11
2. Phân loại Cluster-------------------------------------------------------12
3. Các loại Cluster máy tính---------------------------------------------12
4. Ưu điểm của việc dùng Cluster--------------------------------------13
5. Thiết kế Cluster--------------------------------------------------------13
6. Tính mở của Cluster---------------------------------------------------14
Phần 2: Cài đặt----------------------------------------------------------------------16
I. Network Load Balancing--------------------------------------------------16
1. Yêu cầu-----------------------------------------------------------------16
2. Cài đặt cấu hình Network Load Balancing------------------------16
3. Kiểm tra kết quả-------------------------------------------------------21
II. Failover Clustering---------------------------------------------------------22
1. Yêu cầu-----------------------------------------------------------------22
2. Cài đặt cấu hình Failover Clustering-------------------------------22
Phần 3: Các tài liệu tham khảo---------------------------------------------------25
Phần 4: Kết luận--------------------------------------------------------------------25
3
LỜI MỞ ĐẦU
Trong những năm gần đây, xã hội ngày càng hiện đại cùng với đó là sự phát
triển vượt bậc của công nghệ điện tử và mạng xã hội. Chúng ta thường xuyên tiếp cận
các thiết bị điện tử và mạng xã hội internet để phục vụ nhu cầu giải trí và làm việc và
học tập. Nó có thể giúp ta kết nối với những bạn bè, người thân thông qua các mạng xã
hội như: Facebook, Twitter, Google+,… Nhờ có mạng xã hội mà bạn có thể giao tiếp
được với mọi người ở mọi nơi trên thế giới từ đó có thể giúp cho ta xây dựng được
những mối quan hệ tốt đẹp. Nó cũng là kho chứa đựng những kiến thức khổng lồ. Có
thể giúp cho chúng ta tìm kiếm những thông tin, tư liệu được nhanh chóng và dễ dàng,
cập nhật những tin tức dù mới hay đã cũ. Chúng ta cũng có thể tìm kiếm một vấn đề
nào đó mà ta quan tâm bằng cách tiềm kiếm trên Google sẽ có rất nhiều trang web hiện
ra chứa đựng những thông tin liên quan. Không những thế đây cũng là một kênh PR
công ty, doanh nghiệp vô cùng hiệu quả, đem lại nhiều lợi ích cho các công ty, doanh
nghiệp có thể tìm kiếm được những khách hàng tiềm năng hay những hợp đồng làm ăn
được nhiều người biết đến và mở rộng không gian kinh doanh. Quan trọng hơn là nhu
cầu làm việc liên quan đến máy tính ngày càng nhiều nên đặc biệt chú trọng vào các
tính năng tiện ích mà hệ thống máy tính mang lại.
Bên cạnh nhiều tiện ích mà nó đem thì còn những vấn đề cần phải giải quyết
như người dùng kết nối trực tiếp đến web server, nếu web server duy nhất này gặp vấn
đề, người dùng sẽ không thể truy cập vào website được nữa. Ngoài ra, nếu có nhiều
người dùng cố gắng truy cập vào server cùng một lúc thì sẽ xảy ra quá tải, không kịp
xử lí, khiến thời gian tải website chậm đi hoặc kết nối bị gián đoạn. Hay những server
riêng lẻ được kết nối với nhau đồng thời hoạt động lại cùng nhau trong 1 hệ thống. Do
đó, ta thêm vào load balacing & cluster để có thể khắc phục những hạn chế này. Vì lý
do trên nên chúng em đã quyết định lựa chọn đề tài đồ án lần này là Load balancing &
Cluster.
4
Khả năng linh hoạt trong việc điều phối giữa các máy chủ cũng là một ưu điểm
khác của Load Balancing. Tự động điều phối giữa các máy chủ cũ và mới để xử lý các
yêu cầu dịch vụ mà không làm gián đoạn các hoạt động chung của hệ thống.
- Bảo mật cho Datacenter:
Bằng cách sử dụng Load Balancing, những yêu cầu từ người dùng sẽ được tiếp
nhận và xử lý trước khi phân chia đến các máy chủ. Đồng thời, quá trình phản hồi
cũng được thông qua Load Balancing, ngăn cản việc người dùng giao tiếp trực tiếp với
máy chủ, ẩn đi thông tin và cấu trúc mạng nội bộ, từ đó chặn đứng những cuộc tấn
công mạng hay truy cập trái phép…
3. Các giao thức mà Load Balancing có thể xử lý
UDP Load Balancer cung cấp độ trễ thấp cho các ứng dụng trực tuyến
Có 4 loại giao thức chính mà quản trị Load Balancer có thể tạo quy định chuyển
tiếp:
- HTTP: dựa trên cơ chế HTTP chuẩn, HTTP Balancing đưa ra yêu cầu tác vụ.
Load Balancer đặt X-Forwarded-For, X-Forwarded-Proto và tiêu đề X-Forwarded-Port
cung cấp các thông tin backends về những yêu cầu ban đầu.
- HTTPS: các chức năng tương tự HTTP Balancing. HTTPS Balancing được bổ
sung mã hóa và nó được xử lý bằng 2 cách: passthrough SSL duy trì mã hóa tất cả con
đường đến backend hoặc: chấm dứt SSL, đặt gánh nặng giải mã vào load balancer và
gửi lưu lượng được mã hóa đến backend.
- TCP: trong một số trường hợp khi ứng dụng không sử dụng giao thức HTTP
hoặc HTTPS, TCP sẽ là một giải pháp để cân bằng lưu lượng. Cụ thể, khi có một
lượng truy cập vào một cụm cơ sở dữ liệu, TCP sẽ giúp lan truyền lưu lượng trên tất cả
các máy chủ
- UDP: trong thời gian gần đây, Load Balancer đã bổ sung thêm hỗ trợ cho cân
bằng tải giao thức internet lõi như DNS và syslogd sử dụng UDP.
Các quy tắc chuyển tiếp sẽ xác định loại giao thức và cổng vào Load
Balancer để di chuyển đến các giao thức. Cổng Load Balancer lúc này được sử dụng
để định tuyến lưu lượng trên backend.
4. Health Checks
Có thể hiểu một cách đơn giản, Health Checks là việc kiểm tra tình trạng của
một Backend Server. Bằng cách kết nối đến Backend Server dùng giao thức và cổng
8
được định nghĩa bởi các quy tắc chuyển tiếp, nó đảm bảo rằng các máy chủ vẫn đang
hoạt động ổn định.
Trong trường hợp máy chủ không hoạt động, Health Checks sẽ loại chúng ra
khỏi vùng chứa. Điều này đồng nghĩa với việc các request sẽ không được chuyển tiếp
đến máy chủ này nữa cho đến khi chúng vượt qua “Bài kiểm tra” Health Checks sau.
Qua quá trình này, Load Balancing có thể chuyển tiếp trực tiếp lưu lượng đến
các Backend Server đang thật sự hoạt động nhằm giải quyết mọi tác vụ của người
dùng.
5. Các thuật toán Load Balancing
Tùy thuộc công nghệ Load Balancing mà các thuật toán khác nhau sẽ được sử
dụng để định tình trạng của máy chủ có hoạt động hay không. Có các loại thuật toán
thường thấy là:
+ Round Robin
+ Weighted Round Robin
+ Dynamic Round Robin
+ Fastest
+ Least Connections
- Thuật toán Load Balancing – Round Robin
Round Robin là thuật toán lựa chọn các máy chủ theo trình tự. Theo đó, Load
Balancer sẽ bắt đầu đi từ máy chủ số 1 trong danh sách của nó ứng với yêu cầu đầu
tiên. Tiếp đó, nó sẽ di chuyển dần xuống trong danh sách theo thứ tự và bắt đầu lại ở
đầu trang khi đến máy chủ cuối cùng.
Nhược điểm thuật toán Load Balancing – Round Robin
Khi có 2 yêu cầu liên tục từ phía người dùng sẽ có thể được gửi vào 2 server
khác nhau. Điều này làm tốn thời gian tạo thêm kết nối với server thứ 2 trong khi đó
server thứ nhất cũng có thể trả lời được thông tin mà người dùng đang cần. Để giải
quyết điều này, round robin thường được cài đặt cùng với các phương pháp duy trì
session như sử dụng cookie.
- Thuật toán Load Balancing – Weighted Round Robin
Tương tự như kỹ thuật Round Robin nhưng WRR còn có khả năng xử lý theo
cấu hình của từng server đích. Mỗi máy chủ được đánh giá bằng một số nguyên (Giá
trị trọng số Weight – mặc định giá trị là 1). Một server có khả năng xử lý gấp đôi
9
server khác sẽ được đánh số lớn hơn và nhận được số request gấp đôi từ bộ cân bằng
tải.
Nhược điểm thuật toán Load Balancing – Weighted Round Robin
Weighted Round Robin gây mất cân bằng tải động nếu như tải của các request
liên tục thay đổi trong một khoảng thời gian rộng.
- Thuật toán Load Balancing – Dynamic Round Robin (DRR)
Thuật toán DRR hoạt động gần giống với thuật toán WRR. Điểm khác biệt là
trọng số ở đây dựa trên sự kiểm tra server một cách liên tục. Do đó trọng số liên tục
thay đổi.
Việc chọn server sẽ dựa trên rất nhiều khía cạnh trong việc phân tích hiệu năng
của server trên thời gia thực. Ví dụ: số kết nối hiện đang có trên các server hoặc server
trả lời nhanh nhất, …
Thuật toán này thường không được cài đặt trong các bộ cân bằng tài đơn giản.
Nó thường được sử dụng trong các sản phẩm cân bằng tải của F5 Network.
- Thuật toán Load Balancing – Fastest
Đây là thuật toán dựa trên tính toán thời gian đáp ứng của mỗi server (Response
time). Thuật toán này sẽ chọn server nào có thời gian đáp ứng nhanh nhất. Thời gian
đáp ứng được xác định bởi khoảng thời gian giữa thời điểm gửi một gói tin đến server
và thời điểm nhận được gói tin trả lời.
Việc gửi và nhận này sẽ được bộ cân bằng tải đảm nhiệm. Dựa trên thời gian
đáp ứng, bộ cân bằng tải sẽ biết chuyển yêu cầu tiếp theo đến server nào.
Thuật toán Fastest thường được dùng khi các server ở các vị trí địa lý khác
nhau. Như vậy người dùng ở gần server nào thì thời gian đáp ứng của server đó sẽ
nhanh nhất. Cuối cùng server đó sẽ được chọn để phục vụ.
- Thuật toán Load Balancing – Least Connections
Các request sẽ được chuyển vào server có ít kết nối nhất trong hệ thống. Thuật
toán này được coi như thuật toán động, vì nó phải đếm số kết nối đang hoạt động của
server.
Least Connections có khả năng hoạt động tốt. Ngay cả khi tải của các kết nối
biến thiên trong một khoảng lớn. Do đó nếu sử dụng RC sẽ khắc phục được nhược
điểm của Round Robin.
10
Balancer ban đầu. Mục đích để mỗi Load Balancer đều có khả năng phát hiện lỗi và
phục hồi.
Sẽ ra sao khi xảy ra trường hợp Load Balancer chính bị lỗi? Balancer thứ hai sẽ
nhận trách nhiệm thay thế, do DNS di chuyển người dùng đến. Tuy nhiên, việc thay
đổi DNS có thể mất nhiều thời gian trên internet. Và để chuyển đổi dự phòng được tự
động, các quản trị viên sẽ cho phép linh hoạt địa chỉ IP Remapping. Chẳng hạn như
trường hợp này là floating IPs.
IP Remapping giúp loại bỏ các vấn đề bộ nhớ đệm vốn có trong những thay đổi
DNS. IP Remapping sẽ cung cấp một địa chỉ IP tĩnh. Địa chỉ IP này có thể được dễ
dàng ánh xạ lại khi cần thiết. Tên miền có thể duy trì liên kết với các địa chỉ IP. Trong
khi các địa chỉ IP của chính nó được di chuyển giữa các máy chủ.
II. CLUSTER
1. Cluster – Nghĩa của từ cluster
Khái niệm Cluster đã xuất hiện cách đây rất lâu hệ thống sản xuất đầu tiên được
thiết kế thành một Cluster vào giữa những năm 1960.
– Điều này cho phép tối đa bốn máy tính, mỗi máy tính có một hoặc hai bộ xử
lý được kết hợp chặt chẽ với một hệ thống con lưu trữ ổ cứng chung để phân phối khối
lượng công việc.
– Cluster là cụm máy tính hiệu năng cao là một dạng máy điện toán được kết
nối qua mạng LAN (mạng cục bộ) để chúng có thể hoạt động như một máy đơn lẻ.
– Cluster còn bao gồm nhiều những server riêng lẻ đã được liên kết sẵn và có
thể hoạt động tích hợp trong cùng một hệ thống.
– Những server nhỏ lẻ này sẽ giao tiếp với nhau với bên ngoài thông qua những
thông tin đã được yêu cầu từ người dùng.
– Một cụm máy tính giúp giải quyết các hoạt động phức tạp hiệu quả hơn với
tốc độ xử lý nhanh hơn nhiều.
Tính toàn vẹn dữ liệu tốt hơn so với một máy tính duy nhất và chúng chỉ được
sử dụng cho các ứng dụng quan trọng.
– Các phương pháp Clustering đã xác định là HPC IAAS, HPC PAAS, đắt hơn
và khó thiết lập và khó bảo trì hơn so với một máy tính.
– Tất nhiên là chi phí của nó cũng đắt hơn rất nhiều, không phải ai cũng có thể
sở hữu được một cụm máy tính.
12
– Một cụm máy tính được định nghĩa là việc bổ sung các quy trình để cung cấp
xử lý quy mô lớn để giảm thời gian chết và dung lượng lưu trữ lớn hơn so với các máy
trạm hoặc máy tính để bàn khác.
– Một số ứng dụng quan trọng của Máy tính cụm là Công cụ tìm kiếm Google, Mô
phỏng động đất, Dự báo thời tiết…
2. Phân loại cluster
Cụm có thể được phân thành hai loại đó là Open Cluster và Close Cluster.
a. Open Cluster:
– Tất cả các node trong Open Cluster đều là các IP cần thiết và có thể truy cập
thông qua internet / web, điều này gây ra nhiều lo ngại về bảo mật hơn.
b. Close Cluster:
– Mặt khác, Đóng cụm được ẩn đằng sau node cổng và cung cấp bảo mật tốt
hơn.
3. Các loại cluster máy tính
– Các cụm máy tính có lịch sử chạy trên các máy tính vật lý riêng biệt có cùng
hệ điều hành.
– Với sự ra đời của sự ảo hóa máy tính, các nút cluster có thể chạy trên các máy
tính vật lý riêng biệt với các hệ điều hành khác nhau được vẽ ở trên với một lớp ảo hóa
để mọi thứ mô phỏng giống nhau.
– Cluster cũng có thể được ảo hóa trên các cấu hình khác nhau khi bảo trì diễn
ra.
6. Tính mở của cluster
Một vấn đề mà các nhà đầu tư xây dựng hệ thống cần quan tâm là khả năng mở
rộng của hệ thống Clustering:
– Tuỳ theo yêu cầu cụ thể các cluster có thể cần phải thêm các máy chủ vào
Cluster, hoặc thêm CPU và RAM cho các máy chủ để tăng khả năng – đảm nhận công
việc cho các máy chủ đã có.
a. Yêu cầu về tính sẵn sàng cao (High availability)
– Các tài nguyên mạng phải luôn sẵn sàng trong khả năng cao nhất để cung cấp
và phục vụ các người dùng cuối và giảm thiểu sự ngưng hoạt động hệ thống ngoài ý
muốn.
b. Yêu cầu về độ tin cậy cao (Reliability)
– Độ tin cậy cao của cluster được hiểu là khả năng giảm thiểu tần số xảy ra các
sự cố, và nâng cao khả năng chịu đựng sai sót của hệ thống.
c. Yêu cầu về khả năng mở rộng được (Scalability)
– Hệ thống phải có khả năng dễ dàng cho việc nâng cấp, mở rộng trong tương
lai.
d. Việc nâng cấp mở rộng bao hàm cả việc thêm các thiết bị
– Máy tính vào hệ thống để nâng cao chất lượng dịch vụ, cũng như việc thêm số
lượng người dùng, thêm ứng dụng, dịch vụ và thêm các tài nguyên mạng khác.
Note:
– Cũng cần chú ý rằng hiệu quả hoạt động của hệ thống Clustering phụ thuộc
vào sự tương thích giữa các ứng dụng và dịch vụ, giữa phần cứng và phần mềm.
– Ta không thể triển khai cluster hay network load balancing khi các node sử
dụng hệ điều hành (HĐH) khác nhau dù cho HĐH đó có hỗ trợ hay không.
15
– Ngoài ra, kỹ thuật clustering không thể chống lại các sự cố xảy ra do virus, sai
sót của phần mềm hay các sai sót do người sử dụng.
– Để chống lại các sự cố này cần xây dựng một cơ sở dữ liệu được bảo vệ chắc
chắn cũng như có các kế hoạch khôi phục, backup dữ liệu.
* Sự khác nhau:
Network Load Balancing
Các Node có thể lưu trữ cùng một nơi, hoặc lưu trữ riêng biệt.
Cân bằng tải Transmission Control Protocol (TCP) và User Datagram Protocol
(UDP) lưu lượng truy cập.
Không cần phần cứng chuyên dụng (chú ý về Card mạng).
Thường được dùng cho máy chủ Web, Máy chủ ISA, Máy chủ VPS, Máy chủ
Media, Máy chủ, Máy chủ Teminal, di động,...
Chạy ở chế độ Active.
Cluster
Các Node lưu trữ cùng một nơi.
Failover và failback của các ứng dụng.
Phải dùng thiết bị lưu trữ chuyên dụng đắt tiền kiểu SCSI, Fibre Chanel, Seria
Attach SCSI, ISCSI.
Thường được chạy cho các máy chủ MS SQL Server, MS Exchange Server,
File Server,...
Chạy ở 2 chế độ Active và Passive.
16
(Hình 2.1)
Bước 2: Bảng Add Roles and Features Wizard xuất hiện. Ở Before You
Begin chọn Next.
(Hình 2.2)
17
18
(Hình 2.3)
Bước 4: Ở Features chọn Network Load Balancing.
(Hình 2.4)
Bước 5: Ở Confirmation chọn install.
(Hình 2.5)
19
(Hình 2.6)
Bước 7: Click Add, hộp thoại Add IP Address xuất hiện, nhập TPv4 address
192.18.18.50 và Subnet mask 255.255.255.0, click OK, click Next.
(Hình 2.7)
20
(Hình 2.8)
Bước 9: Click Edit, chỉnh Port from 80 to 80, chọn None bên dưới. Click OK,
Finish.
(Hình 2.9)
21
Bước 10: Click chuột phải vào www.doan.com (192.18.18.50), hộp thoại Add
Host to Cluster: Connect xuất hiện. Nhập địa chỉ ip của server 2 là 192.18.18.2, click
Connect, click Next, click Finish.
(Hình 2.10)
Giao diện sau khi hoàn thành cấu hình Network Load Balancing:
(Hình 2.11)
22
(Hình 2.12)
Vào server 3 tắt mạng. Quay lại server 1 gõ địa chỉ 192.18.18.50.
Trình duyệt web hiện lên web của server 2.
(Hình 2.13)
23
(Hình 2.14)
Bước 2: Sau khi cài đặt hoàn tất, vào Tools, mở Failover Cluster Manager.
(Hình 2.15)
24
Bước 3: Chọn Create Cluster, hộp thoại Create Cluster Wizard xuất hiện, ở giao
diện Select Servers, chọn Browse…, nhập server 1 WIN2012_1 và Check Names,
Tương tự vậy, nhập thêm server 2 WIN2012_2, Check Names, click OK.
(Hình 2.16)
Bước 4: Ở Validation Warning, để ở mặc định là Yes để thực hiện quá trình kiểm tra
xem các server đã đạt yêu cầu để tạo cluster hay chưa.
(Hình 2.17)
25
Bước 5: Ở Testing Options, để ở mặc định là Run all tests, kiểm tra thông tin ở
Confimation. Nếu không có vấn đề gì click Next, Finish để hoàn tất.
(Hình 2.18)
Bước 6: Ở Access Point for Administrating the Cluster, nhập tên của cluster
WIN2012-CLUSTER tại ô Cluster Name, và nhập địa chỉ IP ảo 192.18.18.100 mà
người dùng sẽ kết nối tới.
(Hình 2.19)
26
Bước 7: Kiểm tra thông tin ở Confimation, click Next, Finish để hoàn tất.
(Hình 2.20)
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của nhóm, đồ án này
không thể tránh được những thiếu sót. Nhóm chúng em rất mong nhận được sự nhận
xét và đóng góp ý kiến của thầy để đồ án chúng em có thể hoàn thiện hơn nữa.