Tải bản đầy đủ (.doc) (28 trang)

Đồ án Linux Cân bằng tải

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (663.21 KB, 28 trang )

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN MÔN HỌC

HỆ ĐIỀU HÀNH LINUX
Đề tài: Tìm hiểu về cân bằng tải (Load Balaning)
Sinh viên thực hiện:
Nguyễn Hoài Sơn, D6CNTT
Nguyễn Thị Kiều Trang, D6CNTT
Nguyễn Tuấn Đạt, D6CNTT
Giáo viên hướng dẫn:
ThS. CÙ VIỆT DŨNG

HÀ NỘI, THÁNG 12-2014
1


TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN MÔN HỌC

HỆ ĐIỀU HÀNH LINUX
Đề tài: Tìm hiểu về cân bằng tải (Load Balancing)
Sinh viên thực hiện:
Nguyễn Hoài Sơn, D6CNTT
Nguyễn Thị Kiều Trang, D6CNTT
Nguyễn Tuấn Đạt, D6CNTT
Giáo viên hướng dẫn:
ThS. CÙ VIỆT DŨNG



HÀ NỘI, THÁNG 12-2014


LỜI NÓI ĐẦU
Hiện nay, cơ sở hạ tầng CNTT đang đóng một vai trò ngày càng quan trọng
trong sự thành công của một doanh nghiệp. Thị phần, khách hàng hài lòng với sản
phẩm của công ty và hình ảnh công ty tất cả những yếu tố này có thể do website của
doanh nghiệp đó chiếm một phần quan trọng. Mạng lưới các máy chủ hiện nay thường
xuyên được sử dụng để lưu trữ ERP, thương mại điện tử và vô số các ứng dụng khác.
Nền tảng của các trang web này, các chiến lược kinh doanh, cơ sở hạ tầng tốt sẽ cung
cấp hiệu suất cao, tính sẵn sàng cao, và các giải pháp an toàn và khả năng mở rộng để
hỗ trợ tất cả các ứng dụng.
Với một doanh nghiệp lớn hoặc một dự án thương mại điện tử mà website có
lượng truy cập lớn trong cùng một thời điểm thì việc yêu cầu và xử lý yêu cầu của
người dùng nhanh/chậm thực sự quan trọng. Nó góp phần làm cho hệ thống của chúng
ta vận hành trơn chu hơn, đảm bảo yêu cầu của khách hàng và giảm những rủi ro
không nên có cho hệ thống, hạn chế tối đa mất mát của doanh nghiệp. Do vậy, cân
bằng tải (Load Balancing) chính là một sự lựa chọn phù hợp để giúp chúng ta có thể
giải quyết được những vấn đề trên.
Nhóm chúng em xin chọn đề tài “Tìm hiểu về cân bằng tải (Load
Balancing)” với mục đích tìm hiểu bài toán này và cách áp dụng nó để giải quyết các
bài toán trong thực tế thường gặp.
Chúng em xin chân thành cảm ơn các thầy giáo Cù Việt Dũng, giảng viên bộ
môn “Hệ Điều Hành Linux” đã tận tình giảng dạy chúng em trong suốt thời gian học
tập vừa qua để giúp chúng em hoàn thiện đề tài này.
Chúng em xin chân thành cảm ơn thầy.

Hà Nội, ngày 15 tháng 12 năm 2014




MỤC LỤC


DANH MỤC HÌNH ẢNH
CHƯƠNG 1: TỔNG QUAN VỀ HIỆU ĐIỀU HÀNH MÃ NGUỒN MỞ

CHƯƠNG 2: CÂN BẰNG TẢI (LOAD BALANCING)

CHƯƠNG 3: TRIỂN KHAI CÂN BẰNG TẢI

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 1


CHƯƠNG 1: TỔNG QUAN VỀ HIỆU ĐIỀU HÀNH MÃ NGUỒN MỞ
1.1. Giới thiệu hệ điều hành mã nguồn mở
Mã nguồn mở là một thuật ngữ chuyên dụng với dân IT trong ngành nhưng còn
có vẻ khá xa lạ với một nguồi bắt đầu tìm hiểu về tin học. Với ai có hầu bao rủng rỉnh
thì họ chẳng phải quan tâm đến vấn đề giá cả hay bản quyền. Nhưng đối với những
người chú ý nhiều tới vấn đề chi phí thì phần mềm hay mã nguồn mở là vấn đề họ rất
quan tâm.

Hình 1.1: Mã nguồn mở - xu thế của ngành IT

Mã nguồn mở được biết đến dưới thuật ngữ Free And Open Source Software
(FOSS) là những phần mềm mà người dùng có thể sửa đổi, cải tiến, phát triển và nâng
cấp theo một số nguyên tắc chung đã được quy định từ trước. Ngoài ưu điểm về giá
thành sản phẩm thì mã nguồn mở còn có rất nhiều điểm hấp dẫn khác. Sau đây chúng
ta sẽ cùng tìm hiểu những ưu điểm “độc đáo” mà chỉ có thể bắt gặp ở một FOSS.

An ninh mã nguồn mở
Hãy thử hình dung một sản phẩm được hàng triệu người cùng chung tay góp
sức xây dựng và một sản phẩm do một nhóm người thiết kế ra. Nếu bỏ qua động lực
làm việc thì chúng ta có thể thấy, nếu như có vấn đề về an ninh xảy ra thì sản phẩm
đầu tiên chắc chắn sẽ được phát hiện và sửa chữa nhanh hơn.
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 2


Hình 1.2: Đối tượng trong hệ điều hành mã nguồn mở

Đó là câu chuyện về HĐH Android trên các thiết bị điện thoại di động ngày
nay. Tuy không hoàn toàn là mã nguồn mở nhưng HĐH này đã chứng tỏ cho người ta
thấy rằng, khi số đông cùng bắt tay vào sửa lỗi an ninh thì kết quả thu được sẽ hiệu
quả và nhanh chóng hơn. Rất nhiều các thống kê đã chỉ ra tính ưu điểm đó, điều mà
bạn sẽ rất khó có thể bắt gặp trên một chiếc iPhone hay di dộng sử dụng HĐH
Windows.

Hình 1.3: Hệ điều hành mã nguồn mở FOSS

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 3


Ngoài ra, khi được số đông cùng phát triển thì sản phẩm sẽ dễ thích hợp với số
đông hơn và ít chịu sự chi phối của một nhóm các nhà thiết kế trong một công ty nào
đó. Xác xuất để “lọt” lỗi của FOSS cũng sẽ ít hơn rất nhiều.
Chất lượng của các sản phẩm nguồn mở
Tất nhiên, chất lượng luôn là điều mà chúng ta cần quan tâm. Giữa một sản
phẩm được tạo ra bởi những nhà thiết kế hay một gói phần mềm do hàng nghìn người
chung tay góp sức làm việc, bạn sẽ cảm giác an tâm nhiều hơn với lựa chọn nào? Mã
nguồn mở không những có số người đóng góp công sức nhiều hơn mà tương đương

với đó còn là những đóng góp về sáng tạo tính năng mới cũng như hoàn thiện hơn sản
phẩm.

Hình 1.4: Các phần mềm mã nguồn mở phổ biến

Về mặt tổng quát, những phần mềm mã nguồn mở gần gũi với người dùng hơn
bởi chính những người sử dụng là những người làm ra phần mềm đó. Người phát triển
lúc này cũng chính là người sử dụng, do vậy những sai khác hay thừa thãi là điều rất
hiếm khi bắt gặp. Đặc biệt, một cuộc khảo sát gần đây còn chỉ ra rằng chính những
vượt trội về mặt kỹ thuật là lý do chính mà rất nhiều doanh nghiệp đã tìm đến mã
nguồn mở.

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 4


Tính tùy biến của các sản phẩm mã nguồn mở
Không những có nhiều ưu điểm về mặt an ninh và chất lượng, mã nguồn mở
còn đa dạng trong tùy biến nguồn dữ liệu. Doanh nghiệp có thể sử dụng mã nguồn mở
và tinh chỉnh để phù hợp với nhu cầu của riêng mình. Những đoạn mã được công khai
cũng sẽ dễ dàng được chỉnh sửa để thêm thắt các chức năng mà người dùng muốn có.
Tất cả những điều này bạn sẽ không thể tìm thấy ở một phần mềm có mã nguồn…
đóng. Tính cộng đồng chính là một điểm nhấn tạo nên điểm mạnh cho mã nguồn mở
nói riêng và các sản phẩm từ mã nguồn mở nói chung.
Tính tự do trong các sản phẩm mã nguồn mở

Hình 1.5: Tự do người dùng

Với FOSS, người dùng có thể kiểm soát mọi quyết định cũng như hành động
của mình mà không phải phụ thuộc vào bất cứ luật lệ hay tổ chức nào cả. Nói cách
khác, tính tự do là những điều mà người dùng FOSS được hưởng nhiều hơn. Không

những vậy, giả sử bạn dùng Microsoft Windows và Office thì yêu cầu phần cứng sẽ
nâng lên theo thời gian, trong khi ở FOSS, những yêu cần đó là rất nhỏ. Bạn sẽ có
thừa thời gian để nâng cấp phần cứng của mình sao cho thích hợp với yêu cầu của
phần mềm mã nguồn mở.
Chi phí xây dựng và vận hành các sản phẩm mã nguồn mở
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 5


Hình 1.6: Tiết kiệm chi phí vì nó là miễn phí

Tất nhiên, chi phí luôn là những gì mà người ta quan tâm đến nhiều nhất. Bạn
có thể trả hàng trăm USD để sử dụng một phần mềm tiện ích. Điều đó hoàn toàn
không có gì sai cả. Nhưng nếu sử dụng một mã nguồn mở có chức năng tương tự thì
bạn đã tiết kiệm được một số tiền “nho nhỏ” có thể dùng để trang trải vào nhiều việc
cần kíp hơn khác.
Các sản phẩm mã nguồn mở được dùng thử
Có nhiều hãng phát triển phần mềm cũng cho phép khách hàng của mình có
quyền được dùng thử trước khi ra quyết định mua sản phẩm của họ. Nhưng với FOSS,
dùng thử ở đây mang một ý nghĩa rộng lớn hơn: bạn hoàn toàn có quyền dùng đến khi
nào “phát chán” thì thôi chứ không bị giới hạn trong số ngày nhất định mà mã nguồn
đóng quy định.
Linux là HĐH mã nguồn mở mà bạn có thể dùng thử cả đời. OpenOffice cũng
là một phần mềm mã nguồn mở cho phép bạn dùng thử cả đời. Nhưng chúng ta không
thể nói Microsoft Windows hay Microsoft Office cũng có tinh năng tương tự.
Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của hệ
điều hành. Nó có lẽ là một ví dụ nổi tiếng nhất củaphần mềm tự do và của việc phát
triển mã nguồn mở.

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 6



Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là
một sinh viên của Đại học Helsinki tại Phần Lan. Ông làm việc một cách hăng say
trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994. Bộ phận
chủ yếu này được phát triển và tung ra trên thị trường dưới bản quyền GNU General
Public License. Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của Linux.
Một cách chính xác, thuật ngữ "Linux" được sử dụng để chỉ Nhân Linux,
nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều
hành giống Unix (còn được biết đến dưới tên GNU/Linux) được tạo ra bởi việc đóng
gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như là các bản phân phối
Linux. Thực tế thì đó là tập hợp một số lượng lớn các phần mềm nhưmáy chủ web,
các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trường làm việc
desktop như GNOME và KDE, và các ứng dụng thích hợp cho công việc văn phòng
như OpenOffice, LibreOffice.
Khởi đầu, Linux được phát triển cho dòng vi xử lý 386, hiện tại hệ điều hành
này hỗ trợ một số lượng lớn các kiến trúc vi xử lý, và được sử dụng trong nhiều ứng
dụng khác nhau từ máy tính cá nhân cho tới các siêu máy tính và các thiết bị nhúng ví
dụ như các máy điện thoại di động.
Ban đầu, Linux được phát triển và sử dụng bởi những người say mê. Tuy
nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và HewlettPackard, đồng thời nó cũng bắt kịp được các phiên bản Unix độc quyền và thậm chí là
một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực. Sở
dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc tính
nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với
các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh
với Windows) cũng như là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà
cung cấp. Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát
triển phần mềm nguồn mở hiệu quả.
Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất
khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows
nhiều hơn là Linux. Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho Linux

sẽ tăng lên.
Nguồn gốc của Linux
Vào năm 1991 trong khi đang học tại University of Helsinki, Torvalds bắt đầu
có ý tưởng về một hệ điều hành, hơn nữa ông cũng nhận thấy hạn chế trong giấy phép
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 7


của MINIX. Nó chỉ cho phép việc sử dụng MINIX trong giáo dục mà thôi. Ông bắt
đầu viết nên hệ điều hành riêng của mình.
Torvalds phát triển Linux kernel trên môi trường MINIX, các ứng dụng viết
cho MINIX có thể sử dụng trên Linux. Sau đó khi Linux đã "trưởng thành" thì việc
phát triển Linux diễn ra ngay trên hệ thống Linux. Các ứng dụng GNU cũng thay thế
các thành phần của MINIX, do các lợi ích sử dụng mã nguồn có sẵn một cách tự do từ
dự án GNU với một hệ điều hành còn "non nớt".
Tính tương mại và sự phổ biến
Ngày nay, hệ thống Linux đã được sử dụng một cách rộng rãi, từ các hệ thống
nhúng đến các siêu máy tính, đã có một chỗ đứng lớn trong thị trường máy chủ. Việc
sử dụng các bản phân phối linux ở nhà và doanh nghiệp đang phát triển, kể cả trong
các tổ chức địa phương và các tổ chức chính phủ. Chính phủ liên bang Brazill nổi
tiếng về những hỗ trợ của họ cho Linux. Có tin tức là quân đội Nga đang xây dựng
một bản phân phối Linux cho riêng họ, điều đó đã trở thành hiện thực như dự án
G.H.ost. Bang Kerala của Ấn Độ đã buộc tất cả các trường trung học chạy Linux trên
máy tính. Trung Quốc sử dụng Linux một cách riêng biệt như một hệ điều hành cho
dòng xử lí mang tên Loongson, với mục đích thoát khỏi sự phụ thuộc về công nghệ. Ở
Tây Ban Nha, một vài khu vực đã phát triển các bản phân phối Linux cho riêng họ, và
được sử dụng rộng rãi trong trường học và các tổ chức. Bồ Đào Nha sử dụng bảng
phân phối Caixa Mágica cuả họ. Pháp và Đức cũng có những bước thực hiện cho việc
chấp nhận Linux.
Các bản phân phối Linux đã được cài đặt mặc định trong các dòng máy tính
DELL, ASUS,...

1.2.

Giới thiệu hệ điều hành Centos

CentOS là một bản phân phối hệ điều hành tự do dựa trên Linux kernel. Nó có
nguồn gốc hoàn toàn từ bản phân phối Red Hat Enterprise Linux (RHEL). CentOS tồn
tại để cung cấp một nền tảng điện toán doanh nghiệp tự do và phấn đấu để duy trì khả
năngtương thích nhị phân 100% với nguồn thượng nguồn của nó, Red Hat. CentOS là
viết tắt của Community ENTerprise OperatingSystem.
Trong tháng 7/2010 CentOS đã vượt qua Debian trở thành bản phân phối
Linux phổ biến nhất cho máy chủ web, với gần 30% của tất cả máy chủ web Linux sử
dụng nó. Tuy nhiên vào tháng 1/2012, sau một cuộc đua đối đầu, nó bị mất vị trí dẫn
đầu vào tay Debian.
Cơ cấu tổ chức
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 8


Red Hat Enterprise Linux chỉ có sẵn thông qua một dịch vụ thuê bao trả tiền,
cung cấp truy cập để cập nhật phần mềm và mức độ hỗ trợ kỹ thuật khác nhau. Sản
phẩm chủ yếu bao gồm các gói phần mềm được phân phối theo nguồn mở hoặc
một giấy phép phần mềm tự do và mã nguồn những gói này được công bố bởi Red
Hat. Các nhà phát triển CentOS sử dụng mã nguồn của Red Hat để tạo ra một sản
phẩm cuối cùng rất tương tự như Red Hat Enterprise Linux. Thương hiệu và logo của
Red Hat đã bị thay đổi bởi vì Red Hat không cho phép họ được phân phối lại.
CentOS là miễn phí. Hỗ trợ kỹ thuật chủ yếu được cung cấp bởi cộng đồng
thông qua mailing lists chính thức, diễn đàn, và các chat room. Dự án không liên kết
với Red Hat do đó không nhận được hỗ trợ tài chính hoặc hậu cần từ công ty; thay vào
đó, dự án CentOS dựa vào sự đóng góp từ người dùng và các nhà tài trợ tổ chức.
Đánh số phiên bản
Số phiên bản của CentOS có hai phần, một phiên bản chính và một phiên bản

nhỏ, tương ứng với phiên bản chính và cập nhật của Red Hat Enterprise Linux được
sử dụng để xây dựng là phiên bản của CentOS. Ví dụ, CentOS 4.4 được xây dựng từ
các gói nguồn từ Red Hat Enterprise Linux 4 cập nhật 4.
Từ giữa 2006, bắt đầu với phiên bản 4.4 (chính thức được gọi là Red Hat
Enterprise Linux 4.0 cập nhật 4), Red Hat đã thông qua một quy ước phiên bản giống
hệt của CentOS, ví dụ như, Red Hat Enterprise Linux 4.5.

1.3. Hướng phát triển của hệ điều hành mã nguồn mở

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 9


CHƯƠNG 2: CÂN BẰNG TẢI (LOAD BALANCING)
2.1.

Mô hình bài toán

Cơ sở hạ tầng CNTT đang đóng một vai trò ngày càng quan trọng trong sự
thành công của một doanh nghiệp. Thị phần, khách hàng hài lòng với sản phẩm của
công ty và hình ảnh công ty tất cả những yếu tố này có thể do website của doanh
nghiệp đó chiếm một phần quan trọng. Mạng lưới các máy chủ hiện nay thường xuyên
được sử dụng để lưu trữ ERP, thương mại điện tử và vô số các ứng dụng khác. Nền
tảng của các trang web này, các chiến lược kinh doanh, cơ sở hạ tầng tốt sẽ cung cấp
hiệu suất cao, tính sẵn sàng cao, và các giải pháp an toàn và khả năng mở rộng để hỗ
trợ tất cả các ứng dụng.

Hình 2.1: Mô hình giải pháp cân bằng tải (Load Balancing)

Vì vậy một yêu cầu đặt ra cho hệ thống web server của các doanh nghiệp hiện
nay là phải đảm bảo cho hệ thông luôn luôn hoạt động thông suốt. Tuy nhiên đối với

những website lớn hiện nay yêu cầu này đang bị đe dọa nghiêm trọng, bởi số lượng
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 10


người dùng kết nối vào hệ thống trên cùng một thời điểm ngày càng lớn. Năng lực xử
lý của một server đơn thuần không còn khả năng đáp ứng yêu cầu của tất cả người
dùng. Vì vậy, người ta phải tính đến xây dựng từng cụm server chia tải để đảm bảo
đáp ứng được yêu cầu của người dùng.
2.2.

Lợi ích của cân bằng tải

Server Load Balancing (máy chủ cân bằng tải) là một quá trình phân phối các
yêu cầu dịch vụ trên một nhóm các máy chủ. Server Load Balancing (máy chủ cân
bằng tải) ngày càng trở nên quan trọng trong hệ thống cơ sở hạ tầng mạng trong doanh
nghiệp:
 Tăng cường khả năng mở rộng.
 Nâng cao hiệu suất.
 Tính sẵn sàng cao và khắc phục sự cố.
Nhiều ứng dụng chuyên sâu có quy mô lớn, vì vậy đòi hỏi các máy chủ phải có
sự cân bằng tải cho nhau mới có thể chạy tốt các ứng dụng như vậy. Cả doanh nghiệp
và nhà cung cấp dịch vụ cần sự linh hoạt để triển khai thêm các máy chủ một cách
nhanh chóng để đáp ứng được nhu cầu xử lý công việc trong doanh nghiệp. Server
Load Balancing làm cho nhiều máy chủ xuất hiện như là một máy chủ duy nhất, một
dịch vụ đơn ảo, phân phối các yêu cầu người sử dụng trong các máy chủ.
Hãy tượng tượng máy chủ xử lý 1 yêu cầu của client mất khoảng 3s, vậy sẽ
như thế nào nếu có khoảng 10.000 yêu cầu được gửi đến đồng thời tới một máy chủ?
Load Balancing sẽ chịu trách nhiệm phân phối 10.000 yêu cầu này cho một nhóm máy
chủ cùng xử lý. Mỗi máy chủ sẽ nhận được số lượng yêu cầu dựa vào khả năng xử lý
của nó vào thời điểm đó. Qua đó giúp việc xử lý các yêu cầu đồng thời của nhiều

client được nhanh chóng và không gây nên hiện tượng quá tải cho một máy chủ riêng
biệt.
Lợi ích thứ ba của cân bằng tải máy chủ là khả năng cải thiện tính sẵn sàng ứng
dụng. Nếu một ứng dụng hoặc máy chủ không thành công, cân bằng tải có thể tự động
phân phối lại yêu cầu dịch vụ người dùng cuối đến các máy chủ khác trong một nhóm
xử lý. Khi một máy chủ nào trong nhóm có vấn đề thì các session đang được nó xử lý
sẽ tự động chuyển qua cho các máy chủ khác thực hiện mà client không bị mất
session. Ngoài ra việc xây dựng mô hình load balancing giúp cho công tác bảo trì của
nhân viên kỹ thuật thuận lợi hơn, họ có thể tiến hành bào trì từng bước mà không gây
gián đoán đến dịch vụ của mình.

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 11


CHƯƠNG 3: TRIỂN KHAI CÂN BẰNG TẢI
3.1.

Phương pháp luân chuyển DNS

Hầu hết trong số các bạn có lẽ đều đã biết rằng, cơ sở dữ liệu DNS (Domain
Name Server) bản đồ hóa tên host thành các địa chỉ IP.

Hình 3.1: Mô hình luân chuyển DNS

Khi nhập một URL vào trong trình duyệt, ví dụ như www.quantrimang.com)
thì trình duyệt sẽ gửi một yêu cầu đến DNS yêu cầu nó trả về địa chỉ IP của site. Đây
được gọi là việc tra cứu DNS. Sau khi trình duyệt Web có được địa chỉ IP cho site thì
nó sẽ liên hệ với site bằng địa chỉ IP, và hiển thị trang mà bạn vừa yêu cầu. Máy chủ
DNS thường có một địa chỉ IP được bản đồ hóa với một tên site nào đó. Trong ví dụ
riêng của chúng tôi thì site là www.quantrimang.com bản đồ hóa thành địa chỉ IP

là 222.255.31.160.

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 12


Để cân bằng tải bằng DNS, máy chủ DNS phải duy trình một số địa chỉ IP khác
nhau cho cùng một tên site. Nhiều địa chỉ IP thể hiện nhiều máy trong một cluster, tất
cả trong số chúng đều bản đồ hóa đến một tên site logic. Trong ví dụ của chúng ta,
www.quantrimang.com có thể được cấu hình trên ba máy chủ trong một cluster với
các địa chỉ IP dưới đây:
222.255.31.160
222.255.31.161
222.255.31.162
Trong trường hợp này, máy chủ DNS được bản đồ hóa như sau:
www.quantrimang.com 222.255.31.160
www.quantrimang.com 222.255.31.161
www.quantrimang.com 222.255.31.162

Hình 3.2: Cluster duy trì một địa chỉ website

Khi yêu cầu đầu tiên đến được máy chủ DNS, nó sẽ trả về địa chỉ IP
222.255.31.160, máy đầu tiên. Khi có yêu cầu thứ hau, nó sẽ trả về địa chỉ IP thứ hai:
222.255.31.161. Tiếp tục như vậy, với yêu cầu thứ tư, địa chỉ IP đầu tiên lại được lặp
lại.

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 13


Bằng cách sử dụng luân chuyển vòng DNS như ở trên, tất cả các yêu cầu đối với một
site nào đó đều được phân phối đều đến tất cả các máy trong cluster. Chính vì vậy, với

phương pháp cân bằng tải này, tất cả các nút trong cluster đều được sử dụng.
Ưu điểm của phương pháp luân chuyển vòng DNS
Các ưu điểm chính của phương pháp này nằm ở chỗ rẻ và dễ dàng:
• Không đắt và dễ dàng thiết lập: Các quản trị viên hệ thống chỉ cần tạo một
số thay đổi trong máy chủ DNS để hỗ trợ được việc luân chuyển vòng, và
nhiều máy chủ DNS đã có sự hỗ trợ này. Nó không yêu cầu đến sự thay đổi mã
của ứng dụng Web; trong thực tế, các ứng dụng Web không hề biết về cơ chế
cân bằng tải mà nó bị thực hiện.
• Đơn giản: Phương pháp này không yêu cầu đến các chuyên gia về mạng
trong việc thiết lập hoặc giỡ rối hệ thống trong trường hợp có vấn đề nào đó
xay ra.
Nhược điểm của phương pháp này
Có hai nhược điểm chính của phương pháp dựa trên phần mềm này là nó không cung
cấp sự hỗ trợ mối quan hệ thời gian thực giữa các máy chủ với nhau và không hỗ trợ
khả năng có sẵn cao.
- Không hỗ trợ mối quan hệ thời gian thực giữa các máy chủ. Mối quan hệ thời
gian thực giữa các máy chủ là khả năng của hệ thống trong việc quản lý các yêu cầu
của người dùng, máy chủ này hoặc bất kỳ máy chủ nào, phụ thuộc vào thông tin
session được duy trì trên máy chủ hoặc tại mức cơ sở bản, mức cơ sở dữ liệu.
Không có được khả năng hỗ trợ mối quan hệ giữa các máy chủ, phương pháp
luân chuyển vòng DNS dựa vào một trong ba phương pháp đã được đưa ra để duy trì
sự kiểm soát session hoặc sự nhận dạng người dùng đối với các yêu cầu đang đến trên
HTTP.



Các cookie
Các trường ẩn




Viết lại URL

Khi một người dùng thực hiện một yêu cầu đầu tiên, máy chủ Web sẽ trả một
thẻ bằng văn bản duy nhất để phân biệt người dùng đó. Các yêu cầu tiếp theo có thẻ
này để sử dụng cookie, viết lại URL hoặc các trường ẩn, cho phép máy chủ xuất hiện
để duy trì một session giữa máy khách và máy chủ. Khi người dùng thiết lập một
session với một máy chủ, thì tất cả các yêu cầu đến sau thường đều đi đến cùng một
máy chủ.
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 14


Vấn đề ở đây là trình duyệt lưu địa chỉ IP của máy chủ đó. Khi Cache hết hạn,
trình duyệt sẽ thực hiện một yêu cầu khác đối với máy chủ DNS để có được địa chỉ IP
có liên kết với tên miền. Nếu máy chủ DNS trả về một địa chỉ IP khác, một máy chủ
khác trong cluster, thì các thông tin về session sẽ bị mất.
- Không hỗ trợ cho khả năng có sẵn cao. Xem xét một cluster có n nút. Nếu một nút
nào đó gặp vấn đề thì cứ yêu cầu thứ n đến máy chủ DNS đều hướng bạn đến một nút
hỏng này. Một router thông minh có thể giải quyết được vấn đề này bằng cách kiểm
tra các nút ở các khoảng thời gian nào đó, phát hiện ra các nút bị hỏng và gỡ bỏ chúng
ra khỏi danh sách, chính vì vậy sẽ không có yêu cầu nào được gửi đến chúng nữa. Tuy
vậy, vấn đề ở đây vẫn tồn tại nếu nút vẫn có nhưng ứng dụng Web đang chạy trên nút
đã bị hỏng.
Thay đổi cluster sẽ mất nhiều thời gian để truyền bá đến toàn bộ phần còn lại
của Internet. Một lý do ở đây là trong nhiều tổ chức lớn – các ISP, các công ty, hay
đại lý – lưu các yêu cầu DNS của họ để giảm lưu lượng mạng và thời gian request.
Khi người dùng bên trong các tổ chức như vậy thực hiện một request thì hệ thống sẽ
được kiểm tra danh sách các tên DNS của Cache đã được bản đồ hóa địa chỉ IP. Nếu
hệ thống phát hiện thấy một entry nào thì nó sẽ trả địa chỉ IP về cho người dùng. Nếu
nó không phát hiện thấy entry nào trong Cache nội bộ thì ISP sẽ gửi request DNS này

đến máy chủ DNS và lưu sự đáp trả.
Khi một entry đã được lưu hết hạn, ISP sẽ nâng cấp cơ sở dữ liệu nội bộ của nó
bằng cách liên hệ với các máy chủ DNS khác. Khi danh sách các máy chủ của bạn
thay đổi, nó có thể cần đến một khoảng thời gian ngắn cho các entry đã được lưu trên
mạng của các tổ chức khác hết hạn và tìm kiếm danh sách các máy chủ đã được cập
nhật. Trong suốt chu trình này, máy khách vẫn có thể thực hiện hành động “hit” nút
máy chủ bị hỏng, nếu ISP của máy khách đó vẫn có một entry trỏ đến nó. Trong
trường hợp như vậy, một số người dùng của ISP đó không thể truy cập vào site của
bạn từ những lần truy cập ban đầu, thậm trí nếu cluster của bạn có các máy chủ dư
thừa vẫn đang hoạt động.
Một vấn đề còn lớn hơn xuất hiên khi gỡ bỏ (removing) một nút so với việc bổ
sung. Khi bạn bớt đi một nút, người dùng có thể đang thực hiện “hit” một máy chủ
không tồn tại. Còn khi bạn thêm một nút thì máy chủ đó vẫn chưa được sử dụng cho
tới khi địa chỉ IP của nó đến được tất cả các máy chủ DNS.
Mặc dù phương pháp này có thể cân bằng được một số lượng người dùng trên
mỗi máy chủ, nhưng nó không hoàn toàn cân bằng tải máy chủ. Một số người dùng có
thể yêu cầu mức tải cao hơn trong suốt một session của họ so với những người dùng
khác ở trên máy chủ khác, và phương pháp này không thể bảo đảm chống lại được sự
bất công bằng đó.
3.2.

Sử dụng các bộ cân bằng tải bằng phân cứng

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 15


Các bộ cân bằng tải phần cứng giải quyết được nhiều vấn đề mà chúng ta vừa
phải đối mặt trong phương pháp phần mềm luân chuyển vòng DNS ở trên thông qua
các địa chỉ IP ảo. Bộ cân bằng tải sẽ thể hiện một địa chỉ IP ảo đối với mạng bên
ngoài, địa chỉ này bản đồ hóa đến các địa chỉ của mỗi máy trong một cluster. Chính vì

vậy bộ cân băng tải này cần phải đưa ra một địa chỉ IP của toàn bộ các máy tính trong
cluster đối với thế giới bên ngoài.

Hình 3.3: Mô hình cân bằng tải bằng phần cứng

Khi một request đến bộ cân bằng tải, nó sẽ ghi lại header của request để trỏ đến
các máy khác trong cluster. Nếu một máy nào đó bị gỡ bỏ từ cluster thì request sẽ
không chạy một cách rủi ro việc “hit” vào máy chủ đã chết này, vì tất cả các máy chủ
khác trong cluster xuất hiện đều có cùng địa chỉ IP. Địa chỉ này duy trì giống nhau
thậm chí nếu một nút nào đó trong cluster bị hỏng. Khi một đáp trả được trả về, máy
khách sẽ xem đáp trả đang đến từ bộ cân bằng tải phần cứng. Hay nói theo cách khác
thì máy khách sẽ xử lý với một máy tính đó là bộ cân bằng phần cứng.
Ưu điểm
• Mối quan hệ giữa các máy chủ. Bộ cân bằng tải phần cứng đọc cookie hoặc
các URL đang được đọc trên mỗi một request bởi máy khách. Dựa trên các thông tin
này, nó có thể ghi lại các thông tin header và gửi request đến nút thích hợp trong
cluster, nơi session của nó được duy trì.

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 16


Các bộ cân bằng tải này có thể cung cấp mối quan hệ giữa các máy chủ trong
truyền thông HTTP, nhưng không thông qua kênh an toàn như HTTPS. Trong kênh an
toàn, các thông báo được mã hóa SSL và có thể tránh được bộ cân bằng tải từ việc đọc
các thông tin session.
• Khả năng có sẵn cao thông qua hệ thống tự động chuyển đổi dự phòng.
Việc chuyển đổi dự phòng xảy ra khi một nút trong cluster không thể xử lý một
request và chuyển hướng nó đến một nút khác. Có hai kiểu tự động chuyển đổi dự
phòng:





Yêu cầu mức chuyển đổi dự phòng. Khi một nút trong cluster không thể
xử lý một request (thường là vì bị hỏng) thì nó sẽ chuyển request này
sang một nút khác.
Chuyển đổi dự phòng session một cách trong suốt. Khi một lời triệu gọi
thất bại, nó sẽ được định tuyến một cách trong suốt đến một nút khác
trong cluster để hoàn tất sự thực thi.

Bộ cân bằng kiểu này cung cấp chuyển đổi dự phòng mức request; tức là khi nó
phát hiện có một nút nào đó bị sự cố thì bộ cân bằng này sẽ chuyển hướng tất cả các
request theo sau được gửi đến nút này sang một nút tích cực khác trong cluster. Mặc
dù vậy, bất kỳ một thông tin session nào trên nút chết sẽ bị mất khi các request được
chuyển hướng đến một nút mới.
Chuyển đổi dự phòng session trong suốt yêu cầu một số kiến thức về sự thực
thi cho một quá trình trong một nút, vì bộ cân bằng tải phần cứng chỉ có thể phát hiện
các vấn đề mức mạng, không có lỗi. Để thực thi một cách trong suốt về vấn đề chuyển
đổi dự phòng, các nút trong cluster phải kết hợp với các nút khác và có vùng bộ nhớ
chia sẻ hoặc cơ sở dữ liệu chung để lưu tất cả các dữ liệu session. Cũng chính vì vậy
nếu một nút trong cluster có vấn đề thì một session có thể tiếp tục trong một nút khác.
• Metrics. Vì tất cả các yêu cầu tới một ứng dụng web đều phải qua hệ thống cân bằng
tải, hệ thống có thể quyết định số lượng session hoạt động, số lượng session hoạt động
được kết nối trong các trường hợp khác nhau, các khoảng thời gian đáp ứng, thời gian
tối đa điện áp, số lượng session trong suốt khoảng tối đa điện áp, số lượng session
trong suốt khoảng tối thiểu điện áp… Tất cả các thông tin kiểm định này được sử
dụng để tinh chỉnh toàn bộ hệ thống nhằm tối ưu hiệu suất.
Nhược điểm

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 17



Nhược điểm đối với định tuyến phần cứng là giá thành của nó, sự phức tạp
trong vấn đề thiết lập và khả năng hổng ở một vấn đề nào đó trong tương lai. Vì tất cả
request đều được chuyển qua một bộ cân bằng tải phần cứng nên lỗi yêu cầu của phần
cứng đó ảnh hưởng đến toàn bộ site.
Việc cân bằng các request HTTPS
Như đã đề cập ở trên, rất khó khăn trong vấn đề cân bằng tải và duy trì các
thông tin session của request sử dụng giao thức HTTPS, vì chúng đã được mã hóa. Bộ
cân bằng tải phần cứng không thể chuyển tiếp các request dựa trên thông tin trong
header, cookie hay URL. Có hai cách để giải quyết vấn đề này:



Proxy của Web Server
Bộ giải mã SSL phần cứng

Bổ sung các proxy của Web Server
Một Web server proxy nằm trước một cluster của các máy chủ Web lấy tất cả
các request và mã hóa chúng. Sau đó nó chuyển hướng chúng đến một nút thích hợp,
dựa trên các thông tin header trong phần header, cookie và URL.

Hình 3.4: Quá trình xử lý

Ưu điểm của Web server proxy là chúng cung cấp cách để có được mối liên hệ
giữa các máy chủ cho các thông báo được mã hóa SSL, không cần bất cứ một phần
cứng mở rộng. Nhưng quá trình SSL mở rộng cần đến một tải mở rộng trên proxy.
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 18



Apache và Tomcat. Trong nhiều hệ thống phục vụ, các máy chủ Apache và
Tomcat làm việc cùng với nhau để quản lý tất cả request HTTP cho các trang động
(JSSP hoặc servlets). Các máy chủ Tomcat cũng quản lý các trang tĩnh, nhưng trong
các hệ thống phối hợp, chúng thường được thiết lập để quản lý các request động.

Hình 3.5: Hoạt động của Apache và Tomcat

Bạn cũng có thể cấu hình Apache và Tomcat để điều khiển các yêu cầu HTTPS
và trong các tải cân bằng. Để thực hiện điều này, bạn chạy trường hợp đa máy chủ
Tomcat trên một hoặc nhiều máy. Nếu tất cả máy chủ Tomcat đều chạy trên một máy,
chúng nên được cấu hình để nghe trên các cổng khác nhau. Để thực thi cân bằng tải,
bạn tạo một mẫu Tomcat đặc biệt gọi là Tomcat Worker.

Hình 3.6: Quá trình điều khiển

Như những gì bạn có thể thấy trên hình trên, Web server Apache nhận request
HTTP và HTTPS từ các máy khách. Nếu request là HTTPS, thì Web server Apache sẽ
mã hóa request và gửi nó đến adapter máy chủ Web, máy chủ sẽ gửi request đến
Tomcat Worker, gồm có cả thuật toán cân bằng tải. Tương tự với Web server proxy,
thuật toán này cũng cân bằng tải giữa các máy như Tomcat.
Bộ giải mã SSL bằng phần cứng
GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 19


Cuối cùng, chúng ta nên đề cập đến ở đây rằng có một số thiết bị phần cứng có
khả năng giải mã các request SSL. Hướng dẫn chi tiết về chúng không nằm trong
phạm vi bài này, nhưng có thể nói một cách vắn tắt, chúng được đặt trước bộ cân bằng
tải phần cứng và cho phép giải mã thông tin trong các cookie, header và URL.

Hình 3.7: Giải mã request


Các bộ giải mã SSL phần cứng này thường hoạt động nhanh hơn các proxy
máy chủ Web và có khả năng mở rộng cao. Tuy nhiên như hầu hết các giải pháp phần
cứng, chúng vẫn gây ra nhiều vấn đề phức tạp trong việc thiết lập và cấu hình.

GVHD: Ths. Cù Việt Dũng – SVTH: SonNH, DatNT, TrangNTK – trang 20


×