Cụm từ HA được sử dụng rộng rãi trong giới tin học có nghĩa là những hệ thống IT với độ sẵn sàng cao, hoạt động liên tục và luôn sẵn sàng cung cấp dịch vụ hay tài nguyên cho người dùng cuối. HA là một phương pháp thiết kế hệ thống để đạt được hiệu suất và tính sẵn sàng cao nhất mà không vướng phải bất cứ gián đoạn nào như hệ thống đơn lẻ.
Pacemaker là một phần mềm mã nguồn mở dành cho HA, còn đc gọi là “Cluster Resource Manager”.
Lớp Cluster Resource Management Layer có những đặc điểm sau:
. Start and Stop cluster Resources
. Monitoring cluster Resources
. Migrating cluster Resources
. Grouping cluster resources
. Location Checks
Corosync là một hệ thống liên lạc bên trong cluster với chức năng xác định node lỗi và chuyển tài nguyên sang những node đang hoạt động khác.
Ta sẽ thực hiện cấu hình một cụm 3 node Apache Web Server sử dụng Pacemaker và Corosync. Ngoài ra ta cần cấu hình filesystem sử dụng iSCSI storage server trên một máy Linux khác và sau đó sử dụng nó trên mạng nội bộ.
Các node và địa chỉ
node1.broexperts.com 10.0.0.10/24
node2.broexperts.com 10.0.0.20/24
node3.broexperts.com 10.0.0.30/24
Virtual IP
10.0.0.100/24
iSCSI Storage Server
storage.broexperts.com 10.0.0.90/24
Client
client.broexperts.com 10.0.0.99/24 (Win-7 client for testing)
Giả sử ta đã cài đặt CentOS 7 trên tất cả các node
Update /etc/hosts file
vi /etc/hosts
Copy dòng sau vào file /etc/hosts
127.0.0.1 localhost 10.0.0.10 node1 node1.broexperts.com 10.0.0.20 node2 node2.broexperts.com 10.0.0.30 node3 node3.broexperts.com 10.0.0.90 storage storage.broexperts.com 10.0.0.99 client client.broexperts.com
Tương tự cho các node khác cũng như storage server.
Để tránh các cấu hình mạng tự động cho các node, ta cần bỏ gói NetworkManager:
yum remove NetworkManager –y systemctl restart network
Shared storage là một thành phần quan trọng trong HA Cluster. Tất cả server trong cluster đều phải có quyền truy nhập vào hệ thống này. Shared storage chứa dữ liệu của ứng dụng nên các node truy xuất vào đều sử dụng dữ liệu như nhau. Ta sẽ cấu hình iSCSI cho storage server:
Cài gói
yum install targetcli -y
Setup LVMs
Giả sử ta có một đĩa 20GB mới gắn vào storage server. Ta sẽ tạo 2 LVMs gồm một cho Fencing and một cho Apache Server data directory.
fdisk -luc | grep sd
Phân vùng
[root@storage ~]# fdisk /dev/sdb
Tạo physical volume
[root@storage ~]# pvcreate /dev/sdb1 Physical volume “/dev/sdb1” successfully created
Tạo volume group cluster_vg
[root@storage ~]# vgcreate cluster_vg /dev/sdb1 Volume group “cluster_vg” successfully created
Tạo logical volume với tên fence_lvsize 1GB
[root@storage ~]# lvcreate -L 1G -n fence_lv cluster_vg Logical volume “fence_lv” created.
Tạo logical volume tên data_lv với full phân vùng còn lại
[root@storage ~]# lvcreate -l 100%FREE -n data_lv cluster_vg Logical volume “data_lv” created. [root@storage ~]#
Trước khi cấu hình iSCSI, hãy làm quen với một và thuật ngữ sau:
. iqn là viết tắt của iSCSI Qualified Name, đó là định dạng đặt tên chính thức, ví dụ: iqn.yyyy.mm.com.domain
. arget: là một vùng storage nằm trên iSCSI server
. LUN: Logical Unit Number, một LUN là một volume được sử dụng như một thiết bị (block device), nó giống như việc gắn 1 ổ cứng vào máy chủ.
Giờ ta sẽ dùng các lệnh targetcli để tạo storage chia sẻ giữa các node trong cluster:
targetcli
command line interface mở ra và gõ vào các lệnh sau:
cd /backstores/block create ap_dir /dev/mapper/cluster_vg-data_lv create fence_dev /dev/mapper/cluster_vg-fence_lv cd /iscsi create iqn.2016-10.com.broexperts:storage cd iqn.2016-10.com.broexperts:storage/tpg1/acls create iqn.2016-10.com.broexperts:node1 create iqn.2016-10.com.broexperts:node2 create iqn.2016-10.com.broexperts:node3 cd /iscsi/iqn.2016-10.com.broexperts:storage/tpg1/ set attribute authentication=0 cd /iscsi/iqn.2016-10.com.broexperts:storage/tpg1/luns create /backstores/block/ap_dir create /backstores/block/fence_dev cd / saveconfig exit
Sau đó:
systemctl start target systemctl enable target
Cấu hình firewall mở port cho iSCSI services
firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload
Initiator là một endpoint tạo một a SCSI session và gửi các lệnh SCSI. Sau khi đã setup storage server, ta cần chuẩn bị các node để kết nối iSCSI target.
Cài gói
yum install iscsi-initiator-utils -y
Discover Server
iscsiadm -m discovery -t st -p 10.0.0.90
Tạo và update các initiatorname trên các node tương ứng
vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-10.com.broexperts:node1
vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-10.com.broexperts:node2
vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-10.com.broexperts:node3
Enable iscsid daemon trên các node
systemctl restart iscsid systemctl enable iscsid
Để add iscsi targets trên cả 3 node, dùng lệnh sau:
iscsiadm -m node -T iqn.2016-10.com.broexperts:storage -p 10.0.0.90 -l
Phần tiếp theo sẽ có tại đây