xây dựng hệ thống cluster trên linux
Trang 1Chươ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ừngbở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 naynê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ìmhiể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,emmuố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ệuthô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
Trang 2+ 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
+ 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
Trang 3nó, 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à
Đề tài còn được chia làm những phần như sau:
Chương I: TỔNG QUAN VỀ ĐỀ TÀI
Trang 4Chương V: TRIỂN KHAI HỆ THỐNG
Chương VI: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trang 5Chươ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 độ
Trang 6o Tính sẳn sàng cao
o Khả năng chịu lỗi
o Khả năng chịu tải
o í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
- 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
Trang 7Hì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.
Yêu cầu hiên tại của công ty là đáp ứng được những vấn đề sau:
Tính chịu tải.
Tương thích với nhiều loại phần cứng.
Trang 8 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ê.
Trang 9Chương III: CƠ SỞ LÝ THUYẾT
1. Giới thiệu về hệ điều hành.
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 (back- end) 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.
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ừ
Trang 10Theo 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
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.
Trang 11-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ự
Trang 12nà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
Trang 13dự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.
Trang 14Hì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
Trang 15cá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
Trang 16Chươ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.
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.
+ 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ư:
Trang 17• 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 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.
Trang 18Hình 4.1: mô hình triển khai
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ở
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ả
Trang 19cá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ể
Trang 20hữ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 đó.
Trang 21- 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
Trang 22Manager 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
- 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
- Trên public network, chỉ có sự giao tiếp giữa client với node, heartbeat
Trang 23đượ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
Trang 24 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
Trang 25bá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,
• 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.