-
- Trước tiên, ta cần cài đặt pacemaker và tiến hành tạo cluster và các resource để quản lý theo hướng dẫn tại bài 1. Tổng quan về cài đặt cơ bản cho pacemaker - corosync
-
-
Để tạo ra một resource với chế độ active/active. Ta cần xác định xem resource nào cần thực hiện như vậy? Với mô hình và 2 resource đã tạo ở phần E.1. Ta nhận thấy resource
Virtual_IP
là resource quan trọng nhất. Bởi nó quyết định cho việc client có thể truy cập tới dịch vụ website hay không? Nếu như resourceVirtual_IP
không thực sự hoạt động, client sẽ không biết đâu là địa chỉ để truy cập tới dịch vụ website. Để đảm bảo resourceWeb_Cluster
và resourceVirtual_IP
luôn hoạt động cùng nhau, ta có thế thêm các ràng buộc bắt 2 resource:- Cùng hoạt động tại một node nào đó trong cluster (ràng buộc về vị trí hoặc đưa vào ràng buộc nhóm)
- Resource
Virtual_IP
phải hoạt động thành công trên một node nào đó thì mới cấp phép hoạt động cho resourceWeb_Cluster
(ràng buộc về thứ tự). Xem thêm tại 5. Các ràng buộc resources trong pacemaker
-
Cả 2 hướng giải quyết trên chỉ thực sự có hiệu quả khi và chỉ khi cả 2 resource
Virtual_IP
vàWeb_Cluster
đều có thể hoạt động một ổn định trên bất kỳ node nào có mặt trong cluster. Vậy điều gì sẽ xảy ra khi mà resourceVirtual_IP
đang hoạt động trên nodelb01
và theo cấu hình ràng buộc cho resource trong cluster đối vớiWeb_Cluster
thìWeb_Cluster
cũng phải hoạt động trên nodelb01
nhưng vì một lí do oái ăm nào đó màWeb_Cluster
lại không thể hoạt động được trên nodelb01
? Có khá là nhiều hướng giải quyết lúc này, chẳng hạn:- Tạo lại ràng buộc thứ tự cho phép
Web_Cluster
khởi động trướcVirtual_IP
- Dịch chuyển
Virtual_IP
sang node khác và khởi động lại resourceVirtual_IP
.
- Tạo lại ràng buộc thứ tự cho phép
cả hai hướng giải quyết đều chưa thực sự đảm bảo bởi muốn client có thể sử dụng các dịch vụ mà cluster cung cấp thì
Virtual_IP
có lẽ là nhân tố quyết định tất cả. Nó chính làcửa ngõ
cho phép client truy cập tới cluster trong khiVirtual_IP
không được đảm bảo chắc chắn sẽ được khởi động trước các resource khác.- Vậy hướng giải quyết khả thi nhất ở đây là gì?
Trong pacemaker có cung cấp cho ta một cơ chế cho phép ta thực hiên promte một resource thành resource master. Với cơ chế này, một resource được chỉ định là master sẽ được clone lên tất cả các node trong cluster và hoạt động trên đó. Vậy nên, khi
Web_Cluster
có thể không chạy ở trên một node nào trong đó trong cluster dẫn đến việc hoạt động của cluster không được đảm bảo, ta có thể sử dụng hướng giải quyết này để đảm bảo tối đa chức năng cho cluster. Chi tiết hướng giải quyết này như sau:
-
-
-
Để đưa resource
Virtual_IP
thành resource master. Ta sử dụng câu lệnh:pcs resource master Virtual_IP
hoặc
pcs resource clone Virtual_IP
-
Khi resource
Virtual_IP
hoạt động trên node nào thì interface network node đó sẽ có chứa 2 địa chỉ IP. Một địa chỉ IP là địa chỉ thật, một địa chỉ IP là địa chỉgiả
mà ta cấu hình cho resourceVirtual_IP
. Vậy lên ta có thể kiểm tra bằng việc sử dụng câu lệnh:nmcli
kết quả xem được như sau:
hoặc kiểm tra bằng câu lệnh
pcs status
kết quả hiển thị như sau: -
Để hủy bỏ resource
Virtual_IP
thành resource master. Ta sử dụng câu lệnh:pcs resource unclone Virtual_IP
-
-
-
Bước 1: Truy cập vào trang quản lý cluster. Tại mục
Resource
. Chọn vào resourceVirtual_IP
, ta thấy: -
Bước 2: Muốn thực hiện clone, ta chọn vào
Clone
. Kết quả như sau:hoặc muốn thực hiện chuyển thành master resource. Ta chọn vào
Master/Slave
. Kết quả: -
Bước 3: Kiểm tra kết quả bằng việc chọn vào resource. Chú ý phần đóng khung màu đỏ:
kết quả này giống nhau trong cả 2 trường hợp bạn thực hiện cấu hình cho resource.
-
-
E.2.3 Khởi động lại dịch vụ trong cluster
-
Trong khi đưa một dịch vụ từ hệ thống vào pacemaker để quản lý. Vì một lý do nào đó bạn muốn khởi động lại dịch vụ thì bạn không thể sử dụng phương án theo cách thông thường mà phải khởi động lại resource quản lý dịch vụ đó. Ví dụ, để khởi động lại dịch vụ web trong cluster, bạn sẽ phải chạy câu lệnh như sau:
pcs resource restart Web_Cluster
thay vì:
systemctl restart nginx
hoặc:
service nginx restart
Chỉ có hành động khởi động lại dịch vụ là bắt buộc phải làm như này.
-
- 1. Cài đặt pacemaker
- 1.1 Môi trường cài đặt
- 1.2 Mô hình hệ thống
- 1.3 IP Plan
- 1.4 Cài đặt nginx và modules
- 1.5 Kiểm tra cài đặt nginx
- 1.6 Cài đặt pacemaker và corosync để tạo cluster cho nginx
- 1.7 Cấu hình để thêm các resources vào Cluster
- 1.8 Thêm resource NGINX để pacemaker quản lý.
- 1.9 Quản lý các resource với Web-GUI