1. High Availability - Hướng dẫn triển khai Rabbit Cluster trên CentOS 7
High Availability - Hướng dẫn triển khai Rabbit Cluster trên CentOS 7
Nơi chứa các tài liệu tham khảo của dịch vụ Cloud365.
Resource hay tài nguyên là dịch vụ được pacemaker bảo đảm sự sẵn sàng. Resource có nhiều loại, bảo gồm các dịch vụ cơ bản (http, ssh, …) tới những dịch vụ phức tạp như các group resource, clone resource.
Tất cả dịch vụ cơ bản như ssh, .. đề sở hữu resource agent
. resource agent
là module mở rộng, trừ tượng hóa dịch vụ cung cấp thành đối tượng cho phép cluster pacemaker có thể quản trị. Các hoạt động quản trị cơ bản bao gồm start
, stop
, monitor
.
Pacemaker hỗ trợ nhiều loại resource khác nhau
Tiểu chuẩn quy ước của Linux Standard Base cho các script. Quy chuẩn các đối số đầu vào (support parameters
), các tham số tự định nghĩa ( self-describing), khả năng tùy biến, mở rổng (extensible). Các quy ước của OCF tập trung vào các exit code
trả lại bởi các thao tác (start
, stop
, monitor
, …). Các đối số của OCF được truyền vào thông qua môi trường thực thì với khóa OCF_RESKEY_
.
Tiêu chuẩn được cung cấp, hỗ trợ trong nhiều bản phân phối Linux, các tài nguyên thường được tìm thấy trong /etc/init.d
.
Tiêu chuẩn mới trong các bản phân phối Linux, thay thế cho SysV
.
Pacemaker có thể quản trị tất các dịch vụ Systemd
nếu chúng tồn tại. systemd
quản trị dịch vụ thông qua unit files
Lưu ý:
systemd
thì bảo đảm không cấu hình dịch vụ tự động khởi tạo khi boot (start service at boot time
).Tiêu chuẩn mới trong các bản phân phối Linux, thay thế cho SysV
.
Pacemaker có thể quản trị tất các dịch vụ Upstart
nếu chúng tồn tại. Upstart
quản trị dịch vụ thông qua jobs
Vì hệ thống có nhiều loại tiến trình quản trị dịch vụ, (systemd, upstart, lsb). Pacemaker hỗ trợ kiểu service
, cho phép tự động phát hiện kiểu dữ liệu của dịch vụ (systemd, upstart, lsb) để quản trị dễ dàng hơn
STONITH/ Fencing: STONITH là viết tắt của cụm từ Shoot Other Node In The Head đây là một kỹ thuật dành cho fencing. Fencing là kỹ thuật cô lập tài nguyên tại từng node trong Cluster. Mục tiêu STONITH là tắt hoặc khởi động lại node trong trường hợp Node trong trường hợp dịch vụ không thể khôi phục (Thực hiện thông qua vật chủ hoặc thông qua phần cứng).
Xem thêm tại chuyên mục High Availability
Giảm sát tài nguyên từ xa thông qua Nagios Plugins
trong trường hợp các dịch vụ là các máy ảo, các dịch vụ bên trong máy ảo.
Các tham số cơ bản:
Ví dụ minh họa:
[root@node1 ~]# crm_resource --resource Web_Cluster-clone --query-xml
Clone Set: Web_Cluster-clone [Web_Cluster] (unique)
Web_Cluster:0 (ocf::heartbeat:apache): Started node3
Web_Cluster:1 (ocf::heartbeat:apache): Started node2
Web_Cluster:2 (ocf::heartbeat:apache): Started node1
xml:
<clone id="Web_Cluster-clone">
<primitive class="ocf" id="Web_Cluster" provider="heartbeat" type="apache">
<instance_attributes id="Web_Cluster-instance_attributes">
<nvpair id="Web_Cluster-instance_attributes-configfile" name="configfile" value="/etc/httpd/conf/httpd.conf"/>
</instance_attributes>
<operations>
<op id="Web_Cluster-monitor-interval-20s" interval="20s" name="monitor"/>
<op id="Web_Cluster-start-interval-0s" interval="0s" name="start" timeout="40s"/>
<op id="Web_Cluster-stop-interval-0s" interval="0s" name="stop" timeout="60s"/>
</operations>
</primitive>
<meta_attributes id="Web_Cluster-clone-meta_attributes">
<nvpair id="Web_Cluster-clone-meta_attributes-globally-unique" name="globally-unique" value="true"/>
</meta_attributes>
</clone>
Sử dụng tùy chọn mở rộng cho phép định nghĩa cách cluster quản lý các resource. Bổ sung tham số thông qua tùy chọn --meta
thuộc crm_resource
command
Các tham số cần lưu ý:
priority
(default = 0
): Nếu tất cả resource không thể sẵn sàng, cluster sẽ ngừng các resource có độ ưu tiên thấp, bảo đảm resource có độ ưu tiên cao sẵn sàngtarget-role
(default = Started
): Trạng trái mong muốn, cluster sẽ cố gắng giữ trạng thái này trên resource
Stopped
: Buộc tài nguyên ngừng hoạt độngStarted
: Cho phép tài nguyên hoạt động (Trong trường hợp cấu hình multistate (Dạng Active Passive))Master
: Cho phép tài nguyên hoạt động nếu trong trạng thái thích hợpis-managed
(default = TRUE
): Cluster cố gắng start
hoặc stop
dịch vụ (Mặc định tự động start
)resource-stickiness
(default = 0
): Ràng buộc vị trí tài nguyênmigration-threshold
(default = INFINITY
(disabled)): Nếu quá nhiều lỗi xảy ra trên 1 node, tài nguyên sẽ di chuyển sang node khácmultiple-active
(default = stop_start
): Phản ứng khi phát nhiều một resource tương ứng đang chạy trên node khác
block
: Quy định resource không được quản lý. Sẽ tạm dừng hoạt động resource. Đưa ra cảnh báostop_only
: Dừng tất cả các trường hợp hoạt độngstop_start
: Dừng tất cả các trường hợp hoạt động và thử khởi động lạiCác tham số cần lưu ý trong quá trình vận hành Resource:
id
: Định danh resourcename
: Hành động thực hiện (monitor, start, stop)interval
: Tần số thực hiện hành động (Mặc đinh = 0)timeout
: Thời gian chờ tối đa nếu xảy ra sự cốon-fail
: Thao tác nếu phát hiện sự cố
ignore
: Không phản ứng, bỏ qua lỗiblock
: Không thực hiện thêm bất kỳ hoạt động nào khác trên resourcestop
: Dừng hoạt động resource, không khởi động resource trên bất kỳ node nào khácrestart
: Khởi động lại resourcefence
: STONITH trên node mà resource đó bị lỗistandby
: Di chuyển tất cả các resource ra khỏi node xảy ra sự cốenable
: Nếu thiết lập false
, bỏ qua giám sát tài nguyênCấu trúc
pcs resource create <Tên resource> <Tham số 1> <Tham số 2 ..> op <tham số vận hành>
Ví dụ minh họa
pcs resource create Virtual_IP IPaddr2 ip=10.10.10.89 cidr_netmask=24 op monitor interval=30s
# Mô tả
[root@node1 ~]# pcs resource show Web_Cluster-clone
Clone: Web_Cluster-clone
Meta Attrs: globally-unique=true # Metadata
Resource: Web_Cluster (class=ocf provider=heartbeat type=apache)
Attributes: configfile=/etc/httpd/conf/httpd.conf # Tham số tài nguyên
Operations: monitor interval=20s (Web_Cluster-monitor-interval-20s) # Tham số vận hình
start interval=0s timeout=40s (Web_Cluster-start-interval-0s)
stop interval=0s timeout=60s (Web_Cluster-stop-interval-0s)
https://github.com/hocchudong/ghichep-pacemaker-corosync
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/high_availability_add-on_overview/s1-fencing-haao
Thực hiện bởi cloud365.vn
Chuồi các bài viết về High Availability cho các thành phần trong Web Server
High Availability - Hướng dẫn triển khai Rabbit Cluster trên CentOS 7
Hướng dẫn triển khai Haproxy Pacemaker cho Cluster Galera 3 node trên CentOS 7
Tổng quan về Resource trong Pacemaker
Tổng quan về Quorum, STONITH/Fencing
Tổng quan về Pacemaker Corosync
Tổng quan về Cluster