7/20/09

Máy chủ Linux có độ sẵn sàng cao (High Availability Server)

High Availability có nghĩa là "Độ sẵn sàng cao", những máy chủ, thiết bị loại này luôn luôn sẵn sàng phục vụ, người sử dụng không cảm thấy nó bị trục trặc, hỏng hóc gây gián đoạn. Để đảm bảo được điều đó, tối thiểu có một cặp máy, thiết bị chạy song song, liên tục liên lạc với nhau, cái chính hỏng, cái phụ sẽ lập tức biết và tự động thay thế. Một ví dụ đơn giản nhất là một số máy chủ có hai bộ nguồn, tự động thay thế nóng cho nhau.

Đối với các máy chủ phần mềm (Mail server, File server, web server, database server,...) vấn đề phức tạp hơn thiết bị phần cứng một chút vì để thay thế tự động được cho nhau, dữ liệu giữa hai máy chủ phải được liên tục đồng bộ đến từng lần ghi dữ liệu dù nhỏ nhất vào ổ cứng.

Phần mềm DRBD (Distributed Replicated Block Device) đảm nhận việc đồng bộ này. Khi được cài đặt trên hai hay nhiều máy chủ trong một nhóm (cluster), drbd thực hiện việc liên tục đồng bộ giữa các partition ổ cứng được chỉ định thông qua mạng. Một lệnh ghi ổ cứng trên máy chủ chính chỉ được coi là hoàn thành khi lệnh ghi đó cũng được thực hiện xong ở các máy chủ khác trong cùng cluster. Nói cách khác, drbd thực hiện việc tạo các nhóm ổ cứng RAID-1 qua mạng, còn gọi là net-raid.

Heartbeat đảm nhận các công việc còn lại (trước năm 2007). Heartbeat chạy thường trú (daemon) trên các máy trong một cluster, thông tin liên tục cho máy phụ biết về trạng thái dịch vụ cần high availability trên máy chính (tôi còn sống và đang làm việc!). Một khi dịch vụ đó "chết", heartbeat lập tức khởi động các dịch vụ thay thế trên máy phụ để chuyển máy đó thành máy chính. Việc thay thế này thực hiện được vì partition ổ cứng trên hai máy đã được drbd đồng bộ như nói ở trên.

Khi một cặp máy chủ Mail server, File server, Web server sẵn sàng cao chạy, nếu máy chính bị shutdown, hỏng card mạng, phần mềm mail server, ... bị treo, v.v... máy chính sẽ bị loại ra ngoài hệ thống, máy phụ lập tức khởi động dịch vụ thay thế và được chuyển thành máy chính.  Quá trình đó hoàn toàn tự động và trong suốt với người dùng. Người dùng chỉ cảm thấy bị gián đoạn lúc máy phụ đang khởi động dịch vụ.

DRBD và Heartbeat đều là phần mềm nguồn mở chạy trên các máy chủ Linux (trong các kho phần mềm của RedHat, SUSE, Ubuntu, CentOS, ... đều có sẵn hai phần mềm này). Dự án Linux HighAvailability (Linux-HA) đã được ứng dụng ổn định trong thực tiễn từ năm 1999 cho những phần mềm quan trọng (The Linux-HA project has been in production in mission-critical applications since about 1999) tại hàng nghìn site trong rất nhiều lĩnh vực khác nhau. Một số ví dụ thành công (success stories) xem ở đây.

Cách giải thích như trên chỉ là cách nói đơn giản nhất về khái niệm high availability trong thế giới nguồn mở. Đi sâu vào đương nhiên còn nhiều chi tiết hơn (drbd có thể thực hiện ba kiểu mirror, cluster có thể gồm nhiều máy và tất cả các máy đều là chính, v.v...). Nguồn mở có cái hay là nếu bạn định tìm hiểu hãy đăng ký vào trường đại học Internet, thụ giáo giáo sư Gúc, lấy hai cái máy để bàn có nối mạng ở cơ quan, tải phần mềm về thử luôn. Điều kiện để được nhập học: chỉ số IQ trên trung bình + khả năng đọc tiếng Anh tốt+ lòng say mê, không ngại khó. Bù lại khi tốt nghiệp bạn sẽ hiểu sâu thêm khá nhiều điều. Sau khoảng 2 tháng qua nhiều thử nghiệm, cuối cùng tôi dừng lại ở một cặp cluster Ubuntu Server 8.04, drbd, heartbeat, Zimbra mail server chẳng kém gì Win Server 2003, Exchange, Outlook. Cài được chỉ là một bước, quản trị được, tinh chỉnh (fine tuning), khắc phục sự cố còn cả một quãng đường dài. Linux desktop tạm coi là đủ và cày mãi cũng chán. Đi thám hiểm vùng đất mới! Một lý do nữa: cặp mail server đang dùng do công ty tin học hàng đầu VN cài chán quá!

Nếu không đủ ba điều kiện nhập học trên, tốt nhất là nấp sau lưng Bill Gate, lén kiếm ba bộ đĩa crack trên về và theo cái wizard của nó. Tôi rất ủng hộ wizard cho máy để bàn (như Mandriva) nhưng với máy chủ thì ... ta sẽ bàn vấn đề này trong một post sau.

2 comments:

Joe said...

Hay quá,đúng là sức mạnh của nguồn mở và sức mạnh của sự yêu thích khám phá.Cảm ơn bạn vì bài viêt hay

Zimbra – bộ phần mềm cộng tác nguồn mở « Phần mềm nguồn mở – Linux said...

[...] đang chạy thử trên một cặp máy chủ clustering bằng drbd và heartbeat và chưa chê được điểm gì. Hoàn toàn có thể thay được cặp Exchange + Outlook [...]