Tải bản đầy đủ (.docx) (51 trang)

xây dựng hệ thống cluster trên linux

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 (1.87 MB, 51 trang )

Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Chương I: TỔNG QUAN VỀ ĐỀ TÀI
1. Lý do chọn đề tài.

Các hệ thống có khả năng chịu đựng sai sót để cung cấp một môi trường dư
độ tin cậy đảm bảo cho các dịch vụ có thể hoạt động trơn tru mà không bị dừng
bởi một vài lỗi nhỏ. Các hệ thống Linux có khả nǎng phục vụ cao được thiết kế
để chạy trên các phần cứng thông dụng để đạt khả nǎng sẵn sàng cao của các hệ
thống với chi phí thấp hơn vài lần.
Chính vì những lợi ích rất thiết yếu cho nhu cầu phát triển công nghệ hiện nay
nên em chọn đề tài này.mặc dù vẫn còn nhiều khó khăn nhưng em muốn tìm
hiểu sâu hơn để bổ sung kiến thức và nâng cao thêm tầm hiểu biết. phần lớn,em
muốn xây dựng đề tài này để đóng góp một phần vào việc xử lí những dữ liệu
thông tin, khắc phục những sự cố hư hỏng trên máy chủ nhằm đảm bảo cho các
hệ thống hoạt động hiệu quả.

2. Ý nghĩa.

Hiện nay công nghệ cluster được dùng rộng rãi cho các hệ thống cần độ
sẵn sàng phục vụ cao. Các nhà cung cấp lớn đều có các giải pháp cluster của
mình. Các giải pháp cluster trên Linux được đặc biệt quan tâm do tính kinh
tế, khả nǎng dịch vụ cao, và đa dạng. VN là một trong những nước nói chung
là còn rất kém về công nghệ mã nguồn mở, đặt biệt là HDH Linux ít được sử
dụng cũng như ứng dụng rộng rãi trong các hệ thống mạng.
Đề tài “ xây dựng hệ thống mạng trên Linux” giúp em tiếp xúc sâu hơn, hiểu
thêm về công nghệ mã nguồn mở cũng như khả năng hoạt động của HDH
Linux không kém gì so với trên HDH windown .
3. Phương pháp thưc hiên.



Để thực hiện đúng như mục đích nội dung đề tài, cần thực những phương
pháp như:
- Thu thập thông tin cần thiết.
1


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

+ Tìm hiểu cách thức hoạt động của công ty và những hệ thống server

-

công ty
+ Thu thập nhưng thông tin và yêu cầu khách hàng của công ty
+ Thống kê lượng truy cập web site của công ty
+ Xem xét các thông tin cơ sở
+ Thu thập thông tin của công ty từ phía khách hàng
Tài liệu và phần mềm.
+ Sử dụng HDH Linux
+ Phần mềm Vmware Workstation
+ Tài liệu từ các nguồn trên web site

4. Nội dung thực hiên.

Các hệ thống Linux cluster dựa trên các cấu hình dùng hai công nghệ nền
tảng là dùng máy dự phòng khi gặp lỗi (Fail Over Service - FOS) và Server ảo
Linux (Linux Virtual Server-LVS). Việc lựa chọn FOS hay LVS làm công nghệ

nền cho máy chủ Linux có khả nǎng phục vụ cao sẽ làm ảnh hưởng tới các
yêu cầu về phần cứng và các dịch vụ có thể được hỗ trợ. Các cấu hình FOS
Máy chủ Linux có khả nǎng phục vụ cao dựa trên FOS gồm hai hệ thống hoạt
động trên nền hệ điều hành Linux. Mỗi một hệ thống phải được đảm bảo
cung cấp đủ về mặt cấu hình để có thể hỗ trợ đủ tải cho các dịch vụ. Điều này
là cần thiết, bởi vì tại bất kỳ thời điểm nào, chỉ có duy nhất một node ( active
node) là cung cấp dịch vụ cho khách hàng của bạn.
Trong quá trình khởi tạo cấu hình của một cluster FOS, một hệ thống sẽ được
coi là nút chính (Active node), và hệ thống kia sẽ được gọi là nút sao lưu
(Standby node). Sự khác biệt này được tạo ra để xác định hệ thống nào sẽ
được khai báo là active để cả hai hệ thống sẽ tự tìm kiếm trạng thái hoạt
động tại cùng một thời điểm. Trong trường hợp đó, nút chính sẽ "chiến
thắng". Nút đang hoạt động (active node) sẽ đáp lại các yêu cầu về dịch vụ
thông qua một địa chỉ IP ảo (Virtual IP hay VIP). Địa chỉ VIP là một địa chỉ IP
và nó chỉ khác so với địa chỉ IP thông thường của một nút đang hoạt động.
Hệ thống khác (nút không hoạt động) không trực tiếp chạy dịch vụ, thay vào
đó nó quản lí các dịch vụ của nút đang hoạt động, và đảm bảo chắc chắn là
nút đang hoạt động vẫn phải đang còn hoạt động. Nếu nút không hoạt động
phát hiện ra 1 vấn đề nào đó với nút hoạt động hoặc dịch vụ đang chạy trên

2


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

nó, thì một thông báo lỗi sẽ được khởi tạo. Khi có lỗi, các bước sau sẽ được
thực hiện:
 Nút đang hoạt động sẽ trực tiếp ngắt hết các dịch vụ đang chạy (nếu




nó đang chạy và vẫn còn đang kết nối mạng).
Nút không hoạt động sẽ khởi động các dịch vụ .
Nút đang hoạt động sẽ ngắt không sử dụng địa chỉ VIP (nếu nó vẫn

đang chạy hoặc còn đang nối mạng).
 Nút không hoạt động bây giờ lại chuyển thành nút đang hoạt động, và
ở chế độ sử dụng địa chỉ VIP.
5. Bố cục.

Ngoài những phần như:
- Trang cảm ơn
- Trang đánh giá thực tập của khoa (nhận xét GVHD)
- Trang mục lục.
Đề tài còn được chia làm những phần như sau:
Chương I: TỔNG QUAN VỀ ĐỀ TÀI
1.
2.
3.
4.
5.

Lí do chọn đề tài
Ý nghĩa
Phương pháp thực hiện
Nội dung thực hiên
Bố cục đề tài.


Chương II: KHẢO SÁT HIỆN TRẠNG VÀ YÊU CẦU
1. Khảo sát
2. Cơ cấu tổ chức
3. Yêu cầu

Chương III: CƠ SỞ LÝ THUYẾT
1. Giới thiệu
2. Cấu trúc Cluster

Chương IV: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ HỆ THỐNG
1. Yêu cầu và giải pháp
2. Thiết kế hệ thống

3


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Chương V: TRIỂN KHAI HỆ THỐNG
Chương VI: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

4


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan


Chương II: KHẢO SÁT HIỆN TRẠNG VÀ YÊU CẦU
1. Khảo Sát và mục đích khảo sát.

1.1 khảo sát
- Công ty TNHH TRUYỀN THÔNG PHƯỚC TRÍ VIỆT NAM là một công ty
nhỏ chuyên gia công phần mềm, thiết kế web, cho thuê tên miền, các
dịch vụ về viễn thông …, công ty mới thành lập chưa lâu và còn đang
trong quá trình tạo dựng tên tuổi.
 Công ty TNHH TRUYỀN THÔNG PHƯỚC TRÍ VIỆT NAM được
thành lập ngày 8/5/2012
 Giám Đốc: Cao Phước Trí
 Mã số thuế: 0312268235
 Địa chỉ: 1619/15b Phạm Thế Hiển, Phường 6, Quận 8, TP. HCM
- Khách hàng của công ty thường tìm đến công ty hoặc nhân viên công
ty sẽ đến tận nơi mục đích để khảo sát và lấy thông tin và nhu cầu của
khách hàng là gì nhân viên chuyên môn sẽ lấy thông tin khách hàng
cũng như thông tin yêu cầu về sản phẩm mà khách hàng cần đặt hàng,
tư vấn cho khách hàng và ký hợp đồng.
- Công ty hoạt động cũng như mua bán để truyền tải những thông tin
chi tiết đến khách hàng chủ yếu thông qua website, khách hàng của
công ty chủ yếu là những công ty kinh doanh và cá nhân hoạt đông cả
ở những tỉnh lân cận nên viêc tiếp xúc với khách hàng là rất ít cũng
như việc khách hàng lựa chọn thiết bị để lắp đặt cũng gặp khó khăn.
- Khi mỗi khách hàng truy cập vào website đăng ký thì thông tin của
khách hàng được lưu lại và nhân viên cua công ty lấy thông tin của
khách hàng. Nếu cùng lúc có nhiều người truy cập và nhân viên công
ty cũng truy cập để lấy thông tin thì đòi hỏi hệ thống phải thật vững
chắc. Chính vì những lí do đó công ty cần có một hệ thống web server
hoạt động thật trơn tru và đảm bảo luôn luôn hoạt động.
Vấn đề đặt ra ở đây cho hệ thống server là:

- đảm bảo server luôn luôn hoạt động
- đảm bảo tính chịu tải tốt khi lượng truy cập đông
- đảm bảo tính chịu lỗi để công việc luôn luôn theo tiến độ
- tính sẵn sàng cao.
- chi phí ít
Apache Cluster là giải pháp lựa chọn tốt nhất của công ty, đáp ứng
được những nhu cầu sao:
5


Đề tài: xây dựng hệ thống Cluster trên Linux
o
o
o
o

GVHD: Ths Trương Hoài Phan

Tính sẳn sàng cao
Khả năng chịu lỗi
Khả năng chịu tải
ít chi phí

1.2 mục đích
- Là một công ty hoạt động trong lĩnh vực công nghệ thông tin thì vấn
đề tạo nên một hệ thống hoạt động để đáp ứng đầy đủ nhu cầu của
công ty cũng như khách hàng được phục vụ tốt là điều hoàn toàn có
thể.
- Công nghê thông tin thì ngày càng phát triển đi đôi theo đó là những
nhu cầu con người ngày càng cao và những công nghệ mới luôn song

hành cùng với những thiết bị hiện đại thì lúc đó chi phí cho một hệ
thống trở nên đắc đỏ.
- Âm thầm đi theo sự phát triển của công nghệ mới công nghệ mã
nguồn mở cũng được trú trọng, khả năng đem lại hiểu không kém.
- Mục đích của việc khảo sát trên là tận dụng những công nghệ sẵn có
mà không phải bỏ chi phí nhiều cho việc xây dựng một hệ thống
2. Cơ cấu tổ chức.
Cơ cấu tổ chức của công ty được phân định như sau:
- Phòng giám đốc: 1 máy tính.
- Phòng lập trình viên: hiện tại là 4 máy tính dành cho 4 người lập
-

trình viên.
Phòng kế toán: 2 máy tính, 1 máy cho kế toán tính lương và 1 máy

-

cho kế toán khai báo thuế, 2 máy in, 1 máy photo.
Phòng kinh doanh: 2 máy tính dành cho 2 nhân viên kinh doanh.
Phòng máy: đây là nơi đặt máy server

6


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Hình 2.1: mô hình hệ thống hiện tại của công ty


3. Yêu cầu
Với như hiện tại công ty cần phải có một hệ thống webserver hoạt động
thật trơn tru.
o Yêu cầu của công ty.
Yêu cầu hiên tại của công ty là đáp ứng được những vấn đề sau:
 Tính sẵn sàng:
 Khả năng hoạt động xuyên sốt, đáp ứng được trong mỗi thời
điểm, chịu trách nhiệm bắt đàu và kết thúc các dịch vụ trong
hệ thống .
 Tính chịu lỗi:
 Cluster sửa chữa lỗi (failover cluster) được dùng để đảm bảo
tính chịu lỗi cho các dịch vụ và ứng dụng hệ thống khi bị tấn
công, xử lý các lỗi phần cứng và rủi ro do môi trường
Tính chịu tải.
Tương thích với nhiều loại phần cứng.
Khả năng quản lý tốt.
o Yêu cầu chức năng hệ thống.




Các chức năng cần có của hệ thống:

7


Đề tài: xây dựng hệ thống Cluster trên Linux


GVHD: Ths Trương Hoài Phan


An toàn bảo mật, đảm bảo hoạt động tốt phục vụ cho việc truy

cấp lớn, phòng chống sự xâm nhập, bảo vệ tốt dữ liệu.
 Cơ chế backup dữ liệu định kỳ phòng tránh thất thoát dữ liệu do



những yếu tố khách quan gây ra.
Quản lý các user của hệ thống.
Thực hiện các chức năng thống kê.

8


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Chương III: CƠ SỞ LÝ THUYẾT
1. Giới thiệu về hệ điều hành.
• Đôi nét về HDH Windows và Linux:

Windows server: windows là HĐH cao cấp của Microsoft, cung cấp môi
trường 32-bit và 64-bit trên các hệ thống đơn hay đa xử lý. Hệ thống này
được quảng cáo là hỗ trợ mạng tối ưu để thi hành các ứng dụng nền (backend) cho rất nhiều máy khách (client). Đồng thời HĐH Windows server được
thiết kế đặc biệt để phục vụ nhu cầu của người sử dụng mạng và cho hiệu
năng làm việc cùng với độ an toàn cao. Windows 2000, XP và 2003 cũng đều
dựa trên nền công nghệ Windows NT.
Linux: Linux đã là HĐH đa nhiệm, hỗ trợ 32 bit chạy được trên nhiều nền

tảng phần cứng. HĐH này miễn phí và cho phép sao chép mã nguồn. Nhân
Linux 32-bit hỗ trợ nhiều nền tảng hệ thống, nhân 64-bit hỗ trợ SMP
(symmetrical multiprocessing - đa xử lý đối xứng). Linux phù hợp với những
tiêu chuẩn X/Open và POSIX cho HĐH tương tự Unix, chạy được những
chương trình dùng cho SCO và hệ thống Unix SVR4.


Yêu cầu phần cứng:

Linux chạy trên nhiều nền tảng phần cứng khác nhau, nói chung là HĐH này
tỏ ra rất dễ tính. Nó chấp nhận chạy trên cả những máy 386, 486. Windows
thì không thế, Windows server 2003 đòi hỏi cấu hình khá cao. Trong khi
Linux (phiên bản 1.x) chỉ đòi hỏi 2MB RAM (text mode) và 6MB (graphic
mode) thì Windows server 2003 cần tới 128 MB; Linux chỉ cần 15MB ổ cứng
thì Windows 2003 cần tới 1.5GB. (Windows XP đòi hỏi tối thiểu 64MB RAM).
Điều đáng ngạc nhiên là ngoài việc chạy trên những cấu hình siêu lớn và siêu
mạnh như vậy, Linux còn có thể chạy tốt trên những bộ xử lý nhỏ tích hợp
trong các thiết bị điện tử dân dụng như điện thoại di động.
Hiện nay, để kéo dài tuổi thọ của một số máy tính cũ, người ta chuyển từ
dùng Windows sang dùng Linux.



Virus:
9


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan


Theo số liệu của các cơ quan quản lý Internet thì số vụ tấn công vào Microsoft
Windows là nhiều nhất (nguồn Internet Storm Center, www.incidents.org).
So sánh về mặt này, Linux có lợi thế hơn rất nhiều vì nó được coi là HĐH miễn
nhiễm virus. Tuy cũng có sâu (worm) và trojan nhưng số lượng không đáng
kể so với Windows và tác dụng gây hại không lớn



Bảo mật:

Tính chất nguồn mở của Linux cho phép bất cứ người nào có thể xem xét tính
bảo mật của nó, sửa đổi theo ý của họ. Trên thực tế các đoạn code của Linux
bị sửa đổi rất nhanh và nhiều bởi những lập trình viên còn non kinh nghiệm.
Không có một tổ chức hay một quy tắc nào quy định về việc xem xét lại các
đoạn mã đó. Những lập trình viên của HĐH dòng Unix không mấy hứng thú
với vấn đề này. Tuy nhiên Linux có một hệ thống firewall và các công cụ phát
hiện xâm nhập rất đáng nể phục. Microsoft luôn luôn đảm bảo rằng sản
phẩm của họ là an toàn, bảo mật cao. Tuy nhiên thực tế cho thấy điều đó
không lấy gì làm đảm bảo. Các sản phẩm của họ cũng không cho phép những
hội đồng thanh tra có thể xem xét. Vì Windows là một hệ điều hành mã nguồn
đóng cho nên người dùng không có cách nào để sửa chữa hoặc dự báo được
các lỗi


Độ tin cậy

Linux nổi tiếng là một HĐH tin cậy. Các server có thể hoạt động hàng năm
trời mà không vấp phải một vấn đề gì. Tuy nhiên nếu dùng để thực hiện các
giao dịch thì độ tin cậy chưa cao vì mặc định là giao thức đĩa không đồng bộ

(non-synchronous disk I/O). Khi chẳng may hệ thống bị ngắt đột ngột thì dữ
liệu có thể bị mất mát. Tuy nhiên nhìn chung Linux hoàn toàn có thể tin cậy
được.
Người dùng Windows chắc hẳn ai cũng đã từng gặp 'Blue Screen of Death' màn hình xanh chết chóc. Độ tin cậy tồi là một hạn chế rất lớn của HĐH này.
10


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Windows sử dụng rất nhiều tài nguyên hệ thống cho nên các server sử dụng
HĐH này khó có thể chạy liên tục trong vòng vài tháng mà không gặp vấn đề
gì, như lỗi bộ nhớ hoặc phân mảnh đĩa.
Kết luận:
từ những so sánh trên giúp ta hiểu phần nào về khả năng của Linux và
Windows. Để đạt được hiệu quả đáng kể cho hệ thống việc lựa chọn HDH là
bước rất cần thiết
Để triển khai hệ thông Cluter apache Linux là sự lựa chọn phù hợp nhất cho
hệ thống vì nó đáp ứng được tất cả nhu cầu cần thiết của công nghệ này.
2. Giới thiệu về cluster

Kỹ thuật Cluster được chia làm 2 loại gồm Cluster và Network Load
Balancing (NLB)
2.1 Cluster:
Là một nhóm máy chủ riêng biệt được kết nối với nhau nhằm cung cấp
khả năng quản lí và chia sẻ các tài nguyên như một hệ thống duy nhất
nhằm mục đích tăng khả năng hoạt động của toàn hệ thống. các máy chủ
trong Cluster gọi là node.
Là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàng cho các hệ

thống mạng máy tính. Cluster cho phép sử dụng nhiều máy chủ kết hợp
với nhau tạo thành một cụm có khả năng chịu đựng hay chấp nhận sai
sót (fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thống mạng.
Cluster là một hệ thống bao gồm nhiều máy chủ được kết nối với nhau
theo dạng song song hay phân tán và được sử dụng như một tài nguyên
thống nhất. Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nâng
cấp, bảo trì, thì toàn bộ công việc mà máy chủ này đảm nhận sẽ được tự
động chuyển sang cho một máy chủ khác (trong cùng một cluster) mà
không làm cho hoạt động của hệ thống bị ngắt hay gián đoạn. Quá trình

11


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

này gọi là “fail-over”; và việc phục hồi tài nguyên của một máy chủ trong
hệ thống (cluster) được gọi là “fail-back”.
Điểm quan trọng là các client không cần quan tâm tới các hệ thống phần
cứng vật lý của Cluster. Điều này có nghĩa là các client được cô lập và
được bảo vệ khỏi các thay đổi về phần cứng vật lý của Cluster. Giải pháp
Cluster mang lại nhiều lợi điểm như:
-

Khả năng thực thi: Với cluster, ta có thể thực hiện phân tải các công
việc, các dịch vụ tới các node khác nhau trên hệ thống, giúp cho tăng
khả năng phục vụ đối với người sử dụng.

-


Khả năng sẵn sàng cao: Nếu một node trong cluster bị sự cố, toàn bộ
công việc mà nó đang đảm nhiệm lập tức được chuyển tới một hoặc
nhiều node khác trong cluster. Điều này không thể có đối với các hệ
thống riêng lẻ như trước đây. Các giải pháp Cluster cho phép hệ thống
đạt mức sẵn sàng cao đáng kể với chi phí thấp hơn nhiều so với các
giải pháp được xây dựng đặc biệt và có độ dự phòng lớn.

-

Khả năng mở rộng: Khi khối lượng công việc đối với hệ thống tăng
lên đòi hỏi yêu cầu tăng trưởng, với cluster chỉ cần cấu hình và thêm
vào các node mới là có thể đáp ứng được yêu cầu và đạt hiệu quả cao
hơn nhiều so với các hệ thống không dùng cluster (chỉ có thể tăng CPU,
bộ nhớ của hệ thống SMP trong khi các khả năng công nghệ này có
một giới hạn nhất định, ví dụ bộ nhớ chỉ có thể tăng đối đa bằng khả
năng hổ trợ của phần cứng máy chủ và hệ điều hành).

Chú ý: Cũng cần chú ý rằng hiệu quả hoạt động của hệ thống Cluster 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 NLB 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. Ngoài ra, kỹ
thuật cluster 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
12


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan


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.
2.2 NLB (Cân bằng tải mạng):

Là một loại khác của kỹ thuật Cluster có khả năng chia tải và nâng
cao khả năng chịu lỗi của hệ thống được tốt hơn. Được dùng cho các ứng
dụng Stateless applications (các ứng dụng hoạt động mang tính nhất thời)
như Web, File Tranfer Protocol (FTP), Virtual Private Network (VPN),
DHCP…Mỗi node phải dùng riêng một nơi lưu trữ cục bộ (Local Storage)
cho nên cần phải có quá trình đồng bộ hóa (replication) dữ liệu ở mỗi nơi
lưu trữ, số lượng node càng nhiều thì thời gian cho việc replication càng
lâu chính vì điều này nên ta không nên triển khai các ứng dụng Stateful
trên kỹ thuật NLB này nhằm đảm bảo tính chính xác của dữ liệu.
3. Cấu trúc của Cluster

Trong Cluster tùy theo nhu cầu mà chúng ta có thể triển khai nhiều ứng dụng
trên cùng 1 cluster hay cài đặt trên mỗi node 1 ứng dụng, nói chung cấu trúc
của 1 cluster không cố định nhưng chủ yếu chúng ta thấy hữu ích nhất là các
loại cấu trúc sau:
-

Cấu trúc 1: Nếu ta triển khai 2 ứng dụng trên hệ thống cluster thì có
1 phương pháp đơn giản là cài đặt cả 2 ứng dụng ấy vào mỗi node
của cluster (hình 1.2). Ở cấu trúc này thì 2 ứng dụng trên cùng 1
server do đó nếu ứng này bị lỗi thì sẽ ảnh hưởng đến ứng dụng kia,
hiệu quả của hệ thống cluster thấp.

13



Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Hình 3.1: hệ thống cluster có 2 ứng dụng hoạt động song song trên mỗi node

Hình 3.2: 2 cluster độc lập chứa 2 ứng dụng khác nhau
-

Cấu trúc 2: Tạo 2 hệ thống cluster riêng lẻ, trong mỗi cluster cài đặt
duy nhất 1 ứng dụng (Hình 1.3). Ở cấu trúc này thì hệ thống sẽ hiệu
quả hơn nếu có ứng dụng nào đó bị lỗi thì cũng không ảnh hưởng đến

14


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

các ứng dụng khác. Nhưng chi phí đầu tư cho kiểu này rất cao bởi vì
số lượng các node cho mỗi ứng dụng nhiều hơn loại 1.

-

Cấu trúc 3: Triển khai cả 2 ứng dụng trên cùng 1 cluster, mỗi node
cài 1 ứng dụng nhưng khác với loại 1 là sẽ có 1 cluster làm nhiệm vụ
backup. Cụ thể như (hình 1.4) cho ta thấy hệ thống này có 1 node
passive dùng làm backup và cài cả 2 ứng dụng của node 1 và node 2

(2 node Active). Nếu 1 trong 2 node này bị lỗi thì node passive sẽ thay
thế chức năng của node bị lỗi. Hệ thống này có hiệu quả cao hơn 2 loại
trước.

Hình 3.3: 2 node active được d ự phòng bởi node passive

15


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Chương IV: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ HỆ THỐNG
1. Phân tích yêu cầu và giải pháp.

1.1 Yêu cầu và giải pháp
Ta đặt ra giả thiết nếu như là một system admin thì bạn luôn phải quan
tâm đến tính phát triển của hệ thống .Lấy một ví dụ cụ thể “Công ty TNHH
Truyền Thông Phước Trí Việt Nam” có một webserver và mọi người truy cập
vào website đó để lấy thông tin về khách hàng.
Vậy một trường hợp đặt ra là nếu một ngày nào đó server bị lỗi thì không thể
nào truy cập và sử dụng được vậy công việc sẽ bị gián đoạn. Vậy chúng ta có
giải pháp tạo ra 2 máy chủ webserver cùng chức năng nếu một máy chủ nào
đó chẳng may bị hỏng hóc tự động máy chủ còn lại sẽ đóng vai trò thay thế.
Đó chính là giải pháp Cluster Apache High Availability. Cluster sửa chữa lỗi
(failover cluster) được dùng để đảm bảo tính sẵn sàng cho các dịch vụ và ứng
dụng hệ thống khi bị tấn công, xử lý các lỗi phần cứng và rủi ro do môi
trường. Trong đề tài này em sẽ thực hiện cách thức thực hiện một cluster
Apache hai nút, hy vọng đây là công nghê đem lại độ tin cậy và hiệu quả cao

đáp ứng được nhu cầu hiện thời. Cluster này đã được kiểm tra trên Fedora
Core 5, CentOS 4.3, và Ubuntu 6.06.1 LTS server.
1.2 Yêu cầu về phần cứng và phần mềm.

Phần cứng và phần mềm tốt cũng góp phần tạo nên khả năng hoạt động

tốt của hệ thống.
 Phần cứng:
+ Router và switch em sử dụng công nghệ của Cisco như: Cisco router 890
và Cisco switch 6500 đảm bảo kết nối tốc đến Gigabit giữa các thiết bị
trong hệ thống.
+ Card mạng: ở đây hệ thống có 2 máy chủ nên em dùng 4 card mạng cho
2 máy chủ dùng chuẩn Ethernet (NIC) phục vụ cho mục đích như:

16


Đề tài: xây dựng hệ thống Cluster trên Linux


GVHD: Ths Trương Hoài Phan

Một card đảm bảo việc kết nối trực tiếp với máy chủ kia với mục
đích kiểm tra lẫn nhau xem máy còn lại có đang hoạt động bình
thường không cũng như để đồng bộ hoạt động của cả hệ thống
cluster. Kết nối này còn gọi là Heartbeat LAN. Do yêu cầu về khả
năng đáp ứng của cả hệ thống cluster cao, do vậy kết nối

Heartbeat LAN này thường dùng công nghệ Gigabit Ethernet..
• Card mạng còn lại nối với hệ thống mạng LAN chung để phục vụ

cho giao tiếp mạng thông thường (cho các máy trạm truy nhập,
…).
+ Hệ thống lưu trữ ngoài dùng chung: Hệ thống tủ đĩa lưu trữ
ngoài được kết nối với cả hai máy chủ thông hai card điều khiển Host Bus
Adapter nằm trên hai máy chủ. Mục đích của hệ thống lưu trữ ngoài này
là để chia sẻ dữ liệu giữa hai máy để khi một máy có sự cố thì máy kia vẫn
có thể truy xuất dữ liệu, đảm bảo khả năng cung cấp dịch vụ và dữ liệu
của cả hệ thống cluster. Trên hình là khối Shared Storage. Cũng như đối
với Host Bus Adapter, Shared Storage có thể hổ trợ công nghệ SCSI Bus
hoặc Fibre Channel nhưng xu hướng hiện nay là dùng Fibre Channel để
tăng performance. Hệ thống lưu trữ ngoài như vậy ngày nay thường được
chuẩn hoá thành công nghệ SAN (Storage Area Network), các giao tiếp
giữa SAN và Host Bus Adapter gọi là các Storage Controller. Đối với một
số hệ thống, chỉ có 01 Storage Controller, vì vậy phải dùng thêm thiết bị
Hub/Switch để kết nối các máy chủ với SAN.
 Phần mềm.

Phần mềm quản trị điều hành hệ Cluster: (Cluster service trên HDH
Linux) Phần mềm này đảm bảo việc duy trì hoạt động của toàn hệ thống,
thực hiện việc chuyển các tài nguyên giữa các máy node. Ngoài ra nó còn
đảm bảo một số các tính năng khác đảm bảo sự hoạt động ổn định của hệ
thống.

2.

Thiết kế hệ thống.

17



Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Hình 4.1: mô hình triển khai
3. Cơ chế hoạt động.
3.1 các thuật ngữ trong hê thống cluster.

Cluster : Là một hệ thống song song và được phân phối bởi một nhóm
các server dành riêng để chạy những ứng dụng đặc biệt nào đó và kết nối
với nhau để cung cấp khả năng chịu lỗi (faul tolerance) và load balance.
Cluster dùng để cung cấp tính luôn sẵn sàng cho việc truy cập
Node : Là một server thuộc một Cluster nào đó mà trên đó các ứng dụng
và Cluster service được cài đặt
Failover : Quá trình failover có thể xảy ra một cách tự động. Khi một
node trong Cluster bị hỏng, các resource group của nó sẽ được chuyển tới
một hay nhiều node trong Cluster mà còn hoạt động được. Quá trình tự
động failover tương tự như lập kế hoạch cho việc tái chỉ định quyền sở
hữu

các

resource.

Failover yêu cầu xác định các resource group nào đang chạy trên node bị
hỏng và các node nào nên giữ quyền sở hữu các resource group đó. Tất cả
18


Đề tài: xây dựng hệ thống Cluster trên Linux


GVHD: Ths Trương Hoài Phan

các node trong Cluster mà có khả năng giữ các resource group đó tiến
hành đàm phán với nhau để lấy quyền sở hữu. Quá trình đàm phán dựa
trên khả năng của node, tải hiện hành, khả năng phản hồi ứng dụng hay
danh sách node ưu tiên. Danh sách node ưu tiên là một phần của các
thuộc tính trong resource group và được dùng để chỉ định một resource
group tới một node. Khi việc đàm phán quyền sở hữu resource group
được hoàn tất, tất cả các node trong Cluster cập nhật database của
chúng và tiếp tục theo dõi node sở hữu resource group đó
Failback : Khi một node trở lại phục vụ, Cluster trả lại quyền sở hữu tài
nguyên cho nó và nó sẵn sàng để thực hiện yêu cầu
Quorum resource : Trong mỗi Cluster, Quorum resource chứa đựng và
duy trì những thông tin cấu hình cần thiết cho việc phục hồi Cluster
Resource : các Cluster resource bao gồm các phần cứng vật lý như là các
ổ đĩa, các network card và các thực thể logic như là các địa chỉ IP, các ứng
dụng và cơ sở dữ liệu của ứng dụng. Mỗi node trong Cluster sẽ có quyền
sở hữu các resource cục bộ. Tuy nhiên, Cluster cũng có các resource chung
như các thiết bị lưu trữ chung và private network card. Mỗi node trong
Cluster đều có khả năng truy cập tới các resource chung này. Một
resource chung đặc biệt được biết như là Quorum resource – là một ổ đĩa
vật lý trong dãy các ổ đĩa chung của Cluster đóng một vai trò quan trọng
trong các hoạt động của Cluster. Nó phải được dành riêng cho hoạt động
của các node như tạo một Cluster hay thêm node.
Resource group : Resource group là một tập hợp logic của các resource
trong một Cluster. Một resource group tiêu biểu được tạo ra bởi các
resource liên kết logic với nhau như là các ứng dụng và các thiết bị ngoại
vi và dữ liệu kết hợp với các ứng dụng đó. Resource group cũng có thể
chứa đựng các thực thể của cluster và chỉ được liên kết khi cần như là các

server ảo và địa chỉ IP. Một resource group tại một thời điểm chỉ được sở

19


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

hữu bởi một node và các resource riêng lẻ bên trong group đó phải tồn
tại trên node đó. Các node khác trong Cluster không thể sở hữu các
resource group khác nhau trong cùng một resource group.
3.2 cơ chế hoạt động.
 Server 1 và server 2 của hệ thống cluster được gọi là một nút (cluster

node) ở đây server 1 được thiết lập ở chế độ chủ động (active) và server 2
thụ động (passive). Khi nút ở chế độ chủ động, nó sẽ chủ động xử lý các
yêu cầu. Khi một nút là thụ động nó sẽ nằm ở chế độ dự phòng (stanby)
chờ để sẵn sàng thay thế cho một nút ở chế độ chủ động là server 1 nếu
có sự cố.
 Trong một cluster có nhiều nút có thể kết hợp cả nút chủ động và nút thụ
động. Trong những mô hình loại này việc quyết định một nút được cấu
hình là chủ động hay thụ động rất quan trọng. Để hiểu lý do tại sao, hãy
xem xét các tình huống sau:
 Nếu một nút chủ động bị sự cố và có một nút thụ động đang sẵn sàng, các
ứng dụng và dịch vụ đang chạy trên nút hỏng có thể lập tức được chuyển
sang nút thụ động. Vì máy chủ đóng vai trò nút thụ động hiện tại chưa
chạy ứng dụng hay dịch vụ gì cả nên nó có thể gánh toàn bộ công việc của
máy chủ hỏng mà không ảnh hưởng gì đến các ứng dụng và dịch vụ cung
cấp cho người dùng cuối (Ngầm định rằng các các máy chủ trong cluster

có cấu trúc phần cứng giống nhau).
 Dịch vụ heartbeat (trung tâm) cung cấp các tính năng cơ sở cần thiết cho
hệ thống. Heartbeat giám sát "sức khoẻ" của từng dịch vụ cụ thể, thông
thường qua một giao diện Ethernet phân tách vốn chỉ dùng cho hệ thống
(high ability – HA) sử dụng câu lệnh đặc biệt ping. Nếu vì một lý do nào
đó, nút đang thực hiện bị hỏng, heartbeat sẽ chuyển tất cả thành phần HA
sang nút khoẻ mạnh khác. Khi nút cũ phục hồi, nó có thể khôi phục lại


tình trạng cũ trước đó của mình.
Khi một node hay một application trong Cluster bị fail, Server Cluster có
thể phản ứng bằng cách khởi động lại application bị lỗi hay phân tán
công việc từ node bị fail tới các node khác còn hoạt động trong Cluster
đó.
20


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

- Cluster service kiểm tra tình trạng không hoạt động của các resource
riêng biệt hay một node, và tự động di chuyển hay khởi động lại các ứng
dụng, dữ liệu và file resource tới một node còn hoạt động trong Cluster.
Quá trình này cho phép các resource như là database, file share và
application duy trì tính sẵn sàng cao cho các ứng dụng của user và client.
Server Cluster đưa ra 2 cơ chế kiểm tra tình trạng không hoạt động khác
nhau:



Detect Node Failure một cách định kỳ, mỗi node trao đổi các gói message
với những node khác trong Cluster sử dụng private cluster network.
Những message này được gọi là Heartbeat. Sự trao đổi Heartbeat cho
phép mỗi node kiểm tra tính sẵng sàng của các node khác và các ứng
dụng của chúng. Nếu một server bị fail trong việc phản hồi 1 Heartbeat,
các server còn hoạt động bắt đầu một quá trình Failover để đàm phán
quyền sở hữu đối với các tài nguyên và ứng dụng của node bị fail. Việc
đàm phán này sử dụng Challenge và Defense protocol. Việc bị fail trong
quá trình phản hồi Heartbeat có thể xảy ra trong nhiều sự kiện như
là computer failure, network interface failure, network failure, hay trong
lúc hoạt động cao bất thường nào đó. Thông thường khi tất cả các node
giao tiếp với nhau, Configuration Database Manager gửi Global
Configuration Database update tới mỗi node. Tuy nhiên, khi fail trong
quá trình trao đổi heartbeat xảy ra, Log Manager cũng lưu lại cấu hình
database thay đổi tới Quorum Resource. Nó đảm bảo các node còn hoạt
động có thể truy cập thông tin cấu hình Cluster mới nhất và dữ liệu
registry cục bộ trên node trong quá trình phục hồi.



Detect Resource Failure Failover Manager và Resource Monitors làm việc
cùng với nhau để dò tìm và khôi phục resource bị fail. Resource Monitors
theo dõi trạng thái của resource bằng cách kiểm tra định kỳ các resource
sử dụng Resource DLLs. Việc kiểm tra vòng gồm hai bước, một query
LookAlive lướt qua và một query lâu hơn, cuối cùng - IsAlive. Khi
Resource Monitor dò tìm một resource bị fail, nó thông báo cho Failover
21


Đề tài: xây dựng hệ thống Cluster trên Linux


GVHD: Ths Trương Hoài Phan

Manager và tiếp tục giám sát resource này. Failover Manager duy trì
trạng thái của các resource và resource group. Nó cũng chịu trách nhiệm
thực hiện việc phục hồi khi một resource bị fail và sẽ yêu cầu Resource
Monitor phản hồi tới user tình trạng hoạt động hay không hoạt động của
resource. Sau khi resource bị fail được tìm thấy, Failover Manager có thể
thực hiện việc phục hồi bằng cách khởi động lại một resource và các
resource hay di chuyển toàn bộ resource group tới một node khác. Công
việc phục hồi xác định đã được thực hiện bởi resource và resource group
properties và node availability.


Trong quá trình failover, một resource group được coi như là một failover
unit, để đảm bảo resource được phục hồi đúng. Khi một resource được
phục hồi từ trạng thái fail, Resource Monitor thông báo tới Failover
Manager để tự động thực hiện quá trình failback các resource group dựa
trên cấu hình của resource group failback properties



Heartbeat: Là một UDP packet chuyển đổi giữa các node mỗi 1.2 giây một
lần để xác định mỗi node trong Cluster vẫn hoạt động. Nếu một node
thiếu hụt liên tiếp 5 heartbeat, node đó sẽ chuẩn bị một quá trìnhregroup
event để đảm bảo rằng tất cả các node đi tới một sự nhất quán danh sách
các node còn đang hoạt động.
Server Cluster network có thể là private ( chỉ có sự giao tiếp giữa các
node với nhau), public ( giao tiếp giữa client với node), hay mixed (cả sự
giao tiếp giữa các node và sự giao tiếp giữa client với node). Heartbeat

được giao tiếp qua tất cả các loại network, tuy nhiên việc theo dõi
heartbeat và cách mà Cluster thể hiện các heartbeat bị lỗi dựa trên các
kiểu

network

sau

:

- Trên private hay mixed network, cả hai đều có sự giao tiếp giữa các
node, heartbeat được theo dõi để xác định node có hoạt động trong
Cluster

hay

không.

- Trên public network, chỉ có sự giao tiếp giữa client với node, heartbeat
22


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

được theo dõi chỉ để xác định network adapter của node có hoạt động
hay không.



Regroup event:nếu một node thiếu hụt liên tiếp 5 heartbeat, một quá
trình regroup event được xảy ra. Nếu node vẫn duy trì tính trạng không
thể phản hồi, node đó sẽ được loại bỏ khỏi danh sách các node hoạt động.
Nếu node không phản hổi này đang sở hữu một quorum resource, các
node còn lại cũng bắt đầu một quá trình đàm phán quorum. Sau đó, quá
trình failover được bắt đầu.



Quá trình đàm phán quorum: quá trình đàm phán quorum xảy ra khi một
node đang sở hữu một quorum resource bị lỗi hay không hoạt động, và
các node còn lại sẽ xác định node nào sẽ giữ quyền sở hữu quorum
resource. Mục đích của quá trình đàm phán quorum là tại một thời điểm
đảm bảo rằng chỉ một node duy nhất được sở hữu quorum resource.



Việc chỉ cho một node sở hữu quorum resource là rất quan trọng bởi vì
nếu tất cả các giao tiếp giữa 2 hay nhiều node bị lỗi, nó có khả năng chia
Cluster thành 2 hay nhiều phần riêng biệt để giữ cho nó vần tiếp tục hoạt
động (split brain). Server Cluster ngăn ngừa nó bằng cách chỉ cho phép
duy nhất một Cluster tách ra này có chứa node đang sở hữu quorum
resource tiếp tục hoạt động như một Cluster. Bất kỳ node nào không thể
giao tiếp với node đang sở hữu quorum resource, thì node đó sẽ không
còn là node thành viên trong Cluster.



Cách cluster giữ cho các resource group luôn sẵn sàng: Cluster giữ cho
các resource group luôn sẵn sàng bằng cách theo dõi trạng thái của các

resource, mang các resource online, và tiến hành failover.



Theo dõi trạng thái các resource: Resource Monitor đưa ra 2 cách theo
dõi trạng thái các resource trên node mà nó giám sát : Look Alive
(resource xuất hiện là online) và IsAlive (kiểm tra chi tiết trạng thái
online và hoạt động của resource là đúng chức năng).
23


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

Cách Failover xảy ra:quá trình failover xảy ra khi một group hay một



node đang sở hữu resource bị lỗi. Một resource bị lỗi có thể là lý do cho
một group fail nếu ta cấu hình Affect the group cho resource đó.
Failover có hai dạng : Resource failure hay Group failure và Node



failure hay mất sự giao tiếp giữa các node.Resource failure và Group
failure:Khi một resource bị hỏng quá trình sau sẽ xảy ra :


Resource Monitor dò tìm lỗi qua Looks Alive hay Is Alive hoặc

qua một sự kiện được ghi bởi resource đó. Resource Monitor gọi
điểm vào Is Alive của resource DLL để xác định resource đó bị hỏng



Nếu Is Alive bị lỗi, trạng thái resource chuyển thành fail



Nếu ta cấu hình cho resource khởi động lại khi bị lỗi, Failover
Manager cố gắn khởi động lại resource để mang nó online trở lại.
Nếu sự cố gắng mang resource online không đạt được hay vượt qua
ngưỡng hay thời gian cho phép khởi động lại, Resource Monitor
stop resource này.



Thông qua Resource Monitor, Failover Manager gọi Terminal
entry point của resource DLL



Nếu resource này được cấu hình là Affect the group, quá trình
làm việc được tiếp tục, ngược lại, nó sẽ kết thúc mà không có hoạt
động nào khác. Khi cấu hình là Affect the group, Failover Manager
trên các node trong cluster làm việc cùng với nhau để tái chỉ định
quyền sở hữu cho group đó.




Trên node mà resource bị hỏng, Failover Manager kết thúc
resource đó và các resource liên quan với nó



Failover Manager trên node mà resource bị hỏng thông báo cho
Failover Manager trên node sẽ sở hữu resoure đó và cũng thông
24


Đề tài: xây dựng hệ thống Cluster trên Linux

GVHD: Ths Trương Hoài Phan

báo với Failover Manager trên tất cả các node khác cho sự thay đổi
này


Nếu bất kỳ resource nào được cấu hình lưu thông tin cấu hình
trên cục bộ registry, Checkpoint Manager sẽ restore bản sao registry
cho resource đó từ quorum resource



Node mà Failover Manager sẽ chuyển resource tới là duy nhất,
sử dụng danh sách phụ thuộc để xác định thứ tự đúng



Node mới sở hữu group sẽ điều khiển các resource của group đó

thông qua Resource Monitor tương ứng
Node failure và mất sự giao tiếp giữa các node: Failover xảy ra



khi một node bị hỏng khác với Failover xảy ra khi một resource bị hỏng.
Trong Clustering, một node được coi là bị hỏng nếu nó mất sự giao tiếp
với các node khác.


Nếu một node mất liên tiếp 5 heartbeat, nó được coi là bị hỏng
và một quá trình regroup event được xảy ra. Sau khi một node bị
hỏng, các node còn lại tiến hành đàm phán cho việc sở hữu các
resource group. Failover Manager trên các node còn sử dụng được
xác định quyền sở hữu các resource group dựa trên :Các node mà ta
chỉ định có khả năng sở hữu các resouce group đó.





Thứ tự được chỉ định trong danh sách các node ưu tiên
Cách Failback xảy ra:Failback là quá trình Cluster service chuyển các
resource group trả về node thích hợp hơn sau khi node này online trở
lại.
Node mà một group được trả về chuẩn bị một quá trình failback.
Failover Manager trên node đó tương tác với Failover Manager trên
node đang sở hữu group và tiến hành đàm phán sau đó chuyển quyền
sở hữu resource group trở về node thích hợp hơn.
25



×