High Availability Mysql Cluster DRBD

Một phần của tài liệu Tài liệu Linux Advanced (Trang 87 - 93)

Phần 1: Cài đặt và cấu hình Pacemaker và Corosync Chuẩn bị

- Mỗi máy gắn 1 harddisk 5G ( đồng bộ database) - Cấu hình địa chỉ IP

node1.nhatnghe1.com [ens33:192.168.1.11] [ens34:172.16.1.1] node2.nhatnghe1.com [ens33:192.168.1.12] [ens34:172.16.1.2]

- Trong file /etc/hosts , bổ sung thêm tên hostname và địa chỉ IP để hai nút có thể giao tiếp được với nhau.

192.168.1.11 node1.nhatnghe1.com node1 192.168.1.12 node2.nhatnghe1.com node2

b1: Cài đặt Pacemaker và Corosync

# yum install -y pacemaker pcs fence-agents-all psmisc policycoreutils-python Hặc cài từ thư mục pacemaker

b2: Cấu hình Cluster với Pacemaker và Corosync

Active 192.168.1.11 192.168.1.13 ` Web 192.168.1.12 Passive hear tbeat Vi p: 192. 168. 1. 15

Trên cả 2 node, chúng ta đặt password cho user hacluster để xác thực với nhau, 2

mật khẩu phải trùng khớp

# echo "123456" | passwd --stdin hacluster # systemctl start pcsd

# systemctl enable pcsd Tại Node1:

# pcs cluster auth node1.nhatnghe1.com node2.nhatnghe1.com -u hacluster -p 123456 node2.nhatnghe1.com: Authorized

node1.nhatnghe1.com: Authorized

Sau khi xác thực, chúng ta tạo 1 cluster trên node1 có tên là nncluster để chúng có

thể tạo và đồng bộ các file cấu hình với nhau.

# pcs cluster setup --name nncluster node1.nhatnghe1.com node2.nhatnghe1.com

Khởi động và kích hoạt cluster mới tạo trên node 1 bằng lệnh:

# pcs cluster start --all # pcs cluster enable --all

node1.nhatnghe1.com: Starting Cluster... node2.nhatnghe1.com: Starting Cluster...

Xem lại trạng thái của cluster trên các node:

# pcs status # pcs status

Cluster name: nncluster

WARNING: no stonith devices and stonith-enabled is not false Stack: unknown

Current DC: NONE

Last updated: Mon Jan 22 12:15:11 2018

Last change: Mon Jan 22 12:14:54 2018 by hacluster via crmd on node1.nhatnghe1.com 2 nodes configured

0 resources configured

Node node1.nhatnghe1.com: UNCLEAN (offline) Node node2.nhatnghe1.com: UNCLEAN (offline) node1.nhatnghe1.com: Stopping Cluster (pacemaker)... node2.nhatnghe1.com: Stopping Cluster (pacemaker)... node1.nhatnghe1.com: Successfully destroyed cluster node2.nhatnghe1.com: Successfully destroyed cluster

Sending 'pacemaker_remote authkey' to 'node1.nhatnghe1.com', 'node2.nhatnghe1.com' node2.nhatnghe1.com: successful distribution of the file 'pacemaker_remote authkey' node1.nhatnghe1.com: successful distribution of the file 'pacemaker_remote authkey' Sending cluster config files to the nodes...

node1.nhatnghe1.com: Succeeded node2.nhatnghe1.com: Succeeded

Synchronizing pcsd certificates on nodes node1.nhatnghe1.com, node2.nhatnghe1.com... node2.nhatnghe1.com: Success

node1.nhatnghe1.com: Success

Restarting pcsd on the nodes in order to reload the certificates... node2.nhatnghe1.com: Success

# pcs status cluster

Node1:

Tắt Quorum và STONITH, cho các tài nguyên hoạt động trên cùng 1 node Disable STONITH (Shoot The Other Node In The Head) option on here

# pcs property set stonith-enabled=false

Change to "ignore", it does not need for 2 nodes cluster

# pcs property set no-quorum-policy=ignore

Disable auto failbask

# pcs property set default-resource-stickiness="INFINITY"

show settings

B3: Tổ chuc phân khu đĩa

fdisk /dev/sdb

Tạo logical volume (5gb dùng chứa database đồng bộ giữa 2 node) /dev/sdb5 B4: Cài và Cấu hình drbd No resources Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled Cluster Status: Stack: corosync

Current DC: node1.nhatnghe1.com (version 1.1.16-12.el7_4.4-94ff4df) - partition with quorum

Last updated: Tue Nov 28 10:03:45 2017

Last change: Tue Nov 28 10:01:16 2017 by hacluster via crmd on node1.nhatnghe1.com 2 nodes configured 0 resources configured PCSD Status: node1.nhatnghe1.com: Online node2.nhatnghe1.com: Online # pcs property list Cluster Properties: cluster-infrastructure: corosync cluster-name: nncluster dc-version: 1.1.16-12.el7_4.4-94ff4df default-resource-stickiness: INFINITY have-watchdog: false no-quorum-policy: ignore stonith-enabled: false

Trên 2 node thực hiện các bước sau: Cài gói drbd84-utils-9.1.0-1.el7.elrepo.x86_64.rpm kmod-drbd84-8.4.10-1_2.el7_4.elrepo.x86_64.rpm Nạp module và reboot # modprobe drbd Kiểm tra # lsmod | grep drbd Tạo mới file

# vi /etc/drbd.d/testdata1.res

Chú ý: 2 máy đồng bộ thời gian

Khởi tạo DRBD metadata trên cả 2 node # drbdadm create-md testdata1 Trên 2 node bây giờ đã có DRBD metadata # systemctl start drbd

# systemctl enable drbd Xem thông tin bằng lệnh

Quan sát sẽ thấy cả 2 node là secondary,

B5. Chạy lệnh sau trên node1 để gán node này là master: # drbdadm primary testdata1 --force

# drbd-overview resource testdata1 { protocol C; on node1.nhatnghe1.com { device /dev/drbd0; disk /dev/sdb5; address 10.0.0.1:7788; meta-disk internal; } on node2.nhatnghe1.com { device /dev/drbd0; disk /dev/sdb5; address 10.0.0.2:7788; meta-disk internal; } } # drbd-overview

NOTE: drbd-overview will be deprecated soon. Please consider using drbdtop.

Trên cả 2 node, kiểm tra lại: #drbd-overview

Đợi q trình đồng bộ thành cơng Tại node2:

First you should umount drbd device if you can:

B6. Cài các gói:

mariadb mariadb-server

B7.Định dạng và mount (chỉ làm tại node1) Node1:

#mkfs.ext3 /dev/drbd0

#mount /dev/drbd0 /var/lib/mysql/ ; ko phải tạo mount trong /etc/fstab, Mounted point sẽ tự động dược tạo

#df -h /var/lib/mysql # drbd-overview

NOTE: drbd-overview will be deprecated soon. Please consider using drbdtop.

0:testdata1/0 SyncSource Primary/Secondary UpToDate/Inconsistent [=> ................. ] sync'ed: 13.7% (4420/5116)M

# drbd-overview

NOTE: drbd-overview will be deprecated soon. Please consider using drbdtop.

0:testdata1/0 Connected Secondary/Primary UpToDate/UpToDate

Mater:

drbdadm ---- overwrite-data-of-peer primary testdata1 drbdadm connect all

drbd-overview slave:

drbdadm ---- discard-my-data connect all drbd-overview

[root@node1 ~]# df -h /var/lib/mysql

Filesystem Size Used Avail Use% Mounted on /dev/drbd0 ext3 4.8G 11M 4.6G 1% /var/lib/mysql [root@node1 ~]#

B8. Tạo cluster resource và đặt các thuộc tính Tại node1

Set virtual IP address

# pcs resource create VirtIP ocf:heartbeat:IPaddr2 ip=192.168.100.103 cidr_netmask=32 op monitor interval=30

Add resource - Tạo tài nguyên Mariadb cho cluster

# pcs resource create Mariadb systemd:mariadb op monitor interval=5s

Show status

Set that Mariadb and Virtual_IP are always on a same node

# pcs constraint colocation add Mariadb with VirtIP INFINITY

set that the order of starting is Virtual_IP ⇒ Mariadb # pcs constraint order VirtIP then Mariadb

#show status

Node1, 2: #ip add

# systemctl status mariadb

Sẽ thấy ip 192.168.100.103 và mariadb sẽ được đặt trên 1 node Reboot node1, node2

192.168.100.103 và mariadb sẽ được đặt trên node1

B9 Configure the Cluster for the DRBD device Please consider using drbdtop.

0:testdata1/0 Connected Primary/Secondary UpToDate/UpToDate /var/lib/mysql ext3 4.8G 11M 4.6G 1%

# pcs status resources

Mariadb (systemd:mariadb):

VirtIP (ocf::heartbeat:IPaddr2): Started node1.nhatnghe1.com Started node1.nhatnghe1.com

Master/Slave Set: DrbdDataClone [DrbdData] Masters: [ node1.nhatnghe1.com ]

Slaves: [ node2.nhatnghe1.com ]

Adding VirtIP Mariadb (kind: Mandatory) (Options: first-action=start then-action=start)

# pcs constraint Location Constraints: Ordering Constraints:

start VirtIP then start Mariadb (kind:Mandatory) Colocation Constraints:

Mariadb with VirtIP (score:INFINITY)

Tại node1, tạo resource:

One handy feature pcs has is the ability to queue up several changes into a file and commit those changes all at once. To do this, start by populating the file with the current raw XML config from the CIB.

Commit them all at once by pushing the drbd_cfg file into the live CIB

# pcs cluster cib drbd_cfg

Using the pcs -f option, make changes to the configuration saved in the drbd_cfg file. These changes will not be seen by the cluster until the drbd_cfg file is pushed into the live cluster’s CIB later.

Here, we create a cluster resource for the DRBD device

# pcs -f drbd_cfg resource create DrbdData ocf:linbit:drbd drbd_resource=testdata1 op

monitor interval=60s

And additional clone resource to allow the resource to run on both nodes at the same time.

# pcs -f drbd_cfg resource master DrbdDataClone DrbdData master-max=1 master- node-max=1 clone-max=2 clone-node-max=1 notify=true

# pcs -f drbd_cfg resource show

After you are satisfied with all the changes, you can commit them all at once by pushing the drbd_cfg file into the live CIB.

#pcs cluster cib-push drbd_cfg

Let’s see what the cluster did with the new configuration:

[root@node1 ~]# pcs status Cluster name: nncluster Stack: corosync

Current DC: node1.nhatnghe1.com (version 1.1.16-12.el7_4.4-94ff4df) - partition with quorum

Last updated: Mon Jan 22 09:57:31 2018

Last change: Mon Jan 22 09:57:21 2018 by root via cibadmin on node1.nhatnghe1.com

Một phần của tài liệu Tài liệu Linux Advanced (Trang 87 - 93)

Tải bản đầy đủ (PDF)

(175 trang)