Cấu hình Apache High Availability Cluster trên CentOS 7 - P1
FASTER - STRONGER - SAVER
sales@vietdata.com.vn   0914 83 55 22
Trang Chủ > Kiến thức dịch vụ > Cài đặt và cấu hình >Cấu hình Apache High Availability Cluster trên CentOS 7 – P1

Cấu hình Apache High Availability Cluster trên CentOS 7 – P1

High Availability (HA) là gì?

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ẻ.

Mô hình của nó như sau: 

Pacemaker là gì?

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à gì?

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.

Cấu hình Apache High Availability

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ộ.

Sơ đồ như sau:system-design

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

Bước 1: Edit Host File

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.

Bước 2: Remove NetworkManager

Để 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

Bước 3: Setup iSCSI storage server

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

disk-for-iscsi-storage

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 ~]#

Bước 4: Tạo iSCSI targets

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

Bước 5: Cấu hình Initiators

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

Node1:

vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-10.com.broexperts:node1

Node2:

vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-10.com.broexperts:node2

Node3:

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

Bước 6:  Add iscsi targets trên các nodes

Để 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