Ubuntu : DRBD Pacemaker HA On Ubuntu 16.04 Server
1. Install ลงทั้ง 2 เครื่อง
2. Set hosts
เครื่อง ha01
127.0.0.1 localhost
192.168.2.111 ha01
192.168.2.112 ha02
เครื่อง ha02
127.0.0.1 localhost
192.168.2.111 ha01
192.168.2.112 ha02
3. ติดตั้ง ntp ให้ sync. เวลาให้ตรงกัน ทำทั้ง 2 เครื่อง
Add ip ntp server
pool 192.168.2.2
4. Formate HDD sdb1 name HDD โดยใช้คำสั่ง fdisk -l ดู ทำทั้ง 2 เครื่อง (size hdd ต้องมีขนาดเท่ากันเพื่อ sync partition)
อาจจะใช้เวลานานขึ้นอยู่กับขนาด HDD ข้อมูลจะหายหมด (ใช้เวลานานถ้า HDD ขนาดใหญ่)
5. Edit drbd.conf (ทำทั้ง 2 เครื่อง ก่อนทำให้ Copy ไฟล์เดิมไว้ก่อนเสมอ)
6. Make sure you use the correct IP Address for your hosts and the correct physical partition.
Still working on both systems we need to load the kernel module with:
7. Create the mirror device:
8. And then bring the mirror device online
9. We can list the new block device with lsblk. Note the major number of 147 for DRBD. To view the status of the mirroring we can use one of the following commands:
show 147 DRBD
show เป็น Secondary ทั้ง 2 เครื่อง
0:r0/0 Connected Secondary/Secondary Inconsistent/Inconsistent
10. We will see both nodes a secondary and the data to be inconsistent. We can correct this by forcing the Primary role on one node. Only do this on one node! (ทำเครื่องเดียวเพื่อให้เป็น Primary) (ใช้เวลานานถ้า HDD ขนาดใหญ่ในการ sync HDD)
11. This can take many hours on large disk, a few minutes on this 1 GB disk. To view the progress:
12. Once complete from the Primary node we can format the disk and mount it.
แล้วสร้างไฟล์ไว้เพื่อทดสอบ
13. Test by.
ใช้คำสั่ง Run ทั้ง 2 เครื่อง เพื่อดูว่าเครื่องไหนเป็นเครื่องหลัก เครื่องรอง
เครื่องหลัก
0:r0/0 Connected Primary/Secondary UpToDate/UpToDate /DATA ext4 20G 44M 19G 1%
เครื่องรอง
0:r0/0 Connected Secondary/Primary UpToDate/UpToDate
ที่เครื่องหลัก
umount DATA ที่ mount ไว้
เปลี่ยนจาก เครื่องหลักให้เป็นเครื่องรอง
ที่เครื่องรอง
เปลี่ยนจาก เครื่องรองให้เป็นเครื่องหลัก
mount DATA
เข้าไปดูข้อมูลข้างในจะมีข้อมูลจากเครื่องหลักมาแสดง
หรือทดสอบด้วยการปิดเครื่องหลัก แล้วทำเครื่องรองให้เป็น primary ก็ได้เช่นกัน
Pacemaker : ทำงาน Auto เมื่อเครื่องหลักเสียไม่สามารถใช้งานได้
1. disable drbd ทั้งสองเครื่อง
2. We should also unsure the the directory is not mounted and the drbd device is not in use on either node: (ทั้ง 2 เครื่อง)
3. Then we can install Pacemaker on both nodes:
4. edit file corosync.conf (สำรองไฟล์เดิมไว้ก่อนเสมอ) ทำทั้ง 2 เครื่องเหมือนกัน
Delete All Code And Replace Code.
5.Use your IP Addresses and make sure it is the Network address used for the bindnetaddr:
We can then restart corosync and start pacemaker on both nodes:
6. On either host we can use the command crm status to see the cluster come online.
- sudo apt-get update
- sudo apt-get install -y drbd8-utils
2. Set hosts
- nano /etc/hosts
เครื่อง ha01
127.0.0.1 localhost
192.168.2.111 ha01
192.168.2.112 ha02
เครื่อง ha02
127.0.0.1 localhost
192.168.2.111 ha01
192.168.2.112 ha02
3. ติดตั้ง ntp ให้ sync. เวลาให้ตรงกัน ทำทั้ง 2 เครื่อง
- sudo apt-get install -y ntp
- nano /etc/ntp.conf
Add ip ntp server
pool 192.168.2.2
4. Formate HDD sdb1 name HDD โดยใช้คำสั่ง fdisk -l ดู ทำทั้ง 2 เครื่อง (size hdd ต้องมีขนาดเท่ากันเพื่อ sync partition)
อาจจะใช้เวลานานขึ้นอยู่กับขนาด HDD ข้อมูลจะหายหมด (ใช้เวลานานถ้า HDD ขนาดใหญ่)
- sudo dd if=/dev/zero of=/dev/sdb1
5. Edit drbd.conf (ทำทั้ง 2 เครื่อง ก่อนทำให้ Copy ไฟล์เดิมไว้ก่อนเสมอ)
- nano /etc/drbd.conf
- global { usage-count no; }
- common { protocol C; }
- resource r0 {
- on ha01 {
- device /dev/drbd0;
- disk /dev/sdb1;
- address 192.168.2.111:7788;
- meta-disk internal;
- }
- on ha02 {
- device /dev/drbd0;
- disk /dev/sdb1;
- address 192.168.2.112:7788;
- meta-disk internal;
- }
- }
6. Make sure you use the correct IP Address for your hosts and the correct physical partition.
Still working on both systems we need to load the kernel module with:
- sudo modprobe drbd
7. Create the mirror device:
- sudo drbdadm create-md r0
8. And then bring the mirror device online
- sudo drbdadm up r0
9. We can list the new block device with lsblk. Note the major number of 147 for DRBD. To view the status of the mirroring we can use one of the following commands:
- lsblk
show 147 DRBD
- sudo drbd-overview
show เป็น Secondary ทั้ง 2 เครื่อง
0:r0/0 Connected Secondary/Secondary Inconsistent/Inconsistent
10. We will see both nodes a secondary and the data to be inconsistent. We can correct this by forcing the Primary role on one node. Only do this on one node! (ทำเครื่องเดียวเพื่อให้เป็น Primary) (ใช้เวลานานถ้า HDD ขนาดใหญ่ในการ sync HDD)
- sudo drbdadm -- --overwrite-data-of-peer primary r0/0
11. This can take many hours on large disk, a few minutes on this 1 GB disk. To view the progress:
- sudo watch cat /proc/drbd
12. Once complete from the Primary node we can format the disk and mount it.
- sudo mkfs.ext4 /dev/drbd0
- sudo mkdir /DATA
- sudo mount /dev/drbd0 /DATA
แล้วสร้างไฟล์ไว้เพื่อทดสอบ
13. Test by.
ใช้คำสั่ง Run ทั้ง 2 เครื่อง เพื่อดูว่าเครื่องไหนเป็นเครื่องหลัก เครื่องรอง
- drbd-overview
เครื่องหลัก
0:r0/0 Connected Primary/Secondary UpToDate/UpToDate /DATA ext4 20G 44M 19G 1%
เครื่องรอง
0:r0/0 Connected Secondary/Primary UpToDate/UpToDate
ที่เครื่องหลัก
umount DATA ที่ mount ไว้
- umount /DATA
เปลี่ยนจาก เครื่องหลักให้เป็นเครื่องรอง
- drbdadm secondary r0
ที่เครื่องรอง
เปลี่ยนจาก เครื่องรองให้เป็นเครื่องหลัก
- drbdadm primary r0
mount DATA
- mount /dev/drbd0 /DATA
เข้าไปดูข้อมูลข้างในจะมีข้อมูลจากเครื่องหลักมาแสดง
หรือทดสอบด้วยการปิดเครื่องหลัก แล้วทำเครื่องรองให้เป็น primary ก็ได้เช่นกัน
Pacemaker : ทำงาน Auto เมื่อเครื่องหลักเสียไม่สามารถใช้งานได้
1. disable drbd ทั้งสองเครื่อง
- sudo systemctl disable drbd
2. We should also unsure the the directory is not mounted and the drbd device is not in use on either node: (ทั้ง 2 เครื่อง)
- sudo umount /DATA
- sudo drbdadm down r0
3. Then we can install Pacemaker on both nodes:
- sudo apt-get install -y pacemaker
4. edit file corosync.conf (สำรองไฟล์เดิมไว้ก่อนเสมอ) ทำทั้ง 2 เครื่องเหมือนกัน
- /etc/corosync/corosync.conf
Delete All Code And Replace Code.
- totem {
- version: 2
- cluster_name: debian
- secauth: off
- transport:udpu
- interface {
- ringnumber: 0
- bindnetaddr: 192.168.2.2
- broadcast: yes
- mcastport: 5405
- }
- }
- nodelist {
- node {
- ring0_addr: 192.168.2.111
- name: ha01
- nodeid: 1
- }
- node {
- ring0_addr: 192.168.2.112
- name: ha02
- nodeid: 2
- }
- }
- quorum {
- provider: corosync_votequorum
- two_node: 1
- wait_for_all: 1
- last_man_standing: 1
- auto_tie_breaker: 0
- }
5.Use your IP Addresses and make sure it is the Network address used for the bindnetaddr:
We can then restart corosync and start pacemaker on both nodes:
- sudo systemctl restart corosync
- sudo systemctl start pacemaker
6. On either host we can use the command crm status to see the cluster come online.
- sudo crm status
7. Now we set some properties and create the cluster
resources. Typing the command crm configure will take is to an
interactive prompt:
(ทำที่เครื่องใดเครื่องหนึ่งที่จะให้เริ่มเป็นเครื่องหลัก)
And Run Code For Config crm.
8. Test Pacemaker By
- Close Or shutdown เครื่องหลัก หรือเครื่องใดเครื่องหนึ่ง ข้อมูลจะ Mount ไปที่เครื่องสำรอง อัตโนมัติ
- sudo crm configure
And Run Code For Config crm.
- property stonith-enabled=false
- property no-quorum-policy=ignore
- primitive drbd_res ocf:linbit:drbd params drbd_resource=r0 op monitor interval=29s role=Master op monitor interval=31s role=Slave
- ms drbd_master_slave drbd_res meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
- primitive fs_res ocf:heartbeat:Filesystem params device=/dev/drbd0 directory=/DATA fstype=ext4
- colocation fs_drbd_colo INFINITY: fs_res drbd_master_slave:Master
- order fs_after_drbd mandatory: drbd_master_slave:promote fs_res:start
- commit
- show
- quit
8. Test Pacemaker By
- Close Or shutdown เครื่องหลัก หรือเครื่องใดเครื่องหนึ่ง ข้อมูลจะ Mount ไปที่เครื่องสำรอง อัตโนมัติ
- crm_mon
show
- crm status
show
การปิดก็เช่นกันถ้าปิดทั้งสองเครื่องเมื่อเปิดเครื่องสำรอง ก็จะ Mount DATA ให้และเปลี่ยนตัวเองเป็นเครื่อง Master ให้อัตโนมัติ
Thank Method This Web :
http://web.theurbanpenguin.com/drbd-pacemaker-ha-cluster-ubuntu-16-04/
ใช้งานใน SCI
1. ติดตั้ง samba ทั้ง 2 server
https://intranet.sci.com/blog.php?u=281&b=654
2. สร้างชื่อ Server เหมือนกันไว้ที่ DNS
เพื่อที่จะให้สามารถเข้าผ่านชื่อได้ตลอด เมื่อเครื่องใดเครื่องหนึ่งเสีย เช่น data แต่คนล่ะ IP
No comments:
Post a Comment