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 nhanhchậ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.
Trang 1TRƯỜ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
Trang 2TRƯỜ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
Trang 3LỜ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
Trang 5MỤC LỤC
Trang 6DANH MỤC HÌNH ẢNHCHƯƠ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
Trang 7CHƯƠ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
Trang 8Hì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
Trang 9Ngoà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ở
Trang 10Tí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ở
Trang 11Hì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ở
Trang 12Phiê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à Hewlett-Packard, đồ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
Trang 13củ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
Trang 14Red 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
1.3. Hướng phát triển của hệ điều hành mã nguồn mở
Trang 15CHƯƠ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
Trang 16ngườ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