Penyimpanan Cluster Pacemaker + DRBD (Dual primer) + ctdb

Selamat siang, Habrovsk. Ada tugas - untuk menyebarkan penyimpanan Tinggi yang toleran terhadap kesalahan menggunakan pacamaker + drbd (dalam mode primer ganda) + clvmd + ctdb, yang akan dipasang di server. Saya akan membuat reservasi bahwa saya menemukan semua alat ini untuk pertama kalinya dan dengan senang hati akan kritik dan penambahan / koreksi. Di Internet, tidak ada instruksi khusus untuk bundel ini, atau informasinya sudah usang. Ini sedang bekerja saat ini, tetapi ada satu masalah yang solusinya, saya harap akan temukan dalam waktu dekat. Semua tindakan harus dilakukan pada kedua node, kecuali dinyatakan sebaliknya.

Mari kita mulai. Kami memiliki dua mesin virtual di CentOS 7.

1) Untuk keandalan, perkenalkan mereka ke / etc / hosts

192.168.0.1 node1 192.168.0.2 node2 

2) Tidak ada DRBD dalam repositori standar, jadi Anda perlu menghubungkan yang pihak ketiga.

 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 

3) Instal drbd versi 8.4 (Saya tidak bisa mendapatkan 9.0 dalam mode primer ganda)

 yum install -y kmod-drbd84 drbd84-utils 

4) Aktifkan dan aktifkan modul drbd kernel di startup

 modprobe drbd echo drbd > /etc/modules-load.d/drbd.conf 

5) Buat file konfigurasi untuk resource drbd /etc/drbd.d/r0.res

 resource r0 { protocol C; device /dev/drbd0; meta-disk internal; disk /dev/sdb; net { allow-two-primaries; } disk { fencing resource-and-stonith; } handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh"; } on node1 { address 192.168.0.1:7788; } on node2 { address 192.168.0.2:7788; } 

6) Nonaktifkan unit drbd (nantinya alat pacu jantung akan bertanggung jawab untuk itu), buat metadata untuk disk drbd, naikkan sumber dayanya

 systemctl disable drbd drbdadm create-md r0 drbdadm up r0 

7) Pada simpul pertama, jadikan sumber utama

 drbdadm primary --force r0 

8) Pasang alat pacu jantung

 yum install -y pacemaker pcs resource-agents 

9) Tetapkan kata sandi untuk hacluster pengguna untuk otorisasi pada node

 echo CHANGEME | passwd --stdin hacluster 

10) Jalankan alat pacu jantung pada kedua node

 systemctl enable pcsd systemctl start pcsd 

11) Masuk ke cluster. Dari tahap ini kami melakukan segalanya pada satu node

 pcs cluster auth node1 node2 -u hacluster 

12) Buat sebuah cluster bernama samba_cluster

 pcs cluster setup --force --name samba_cluster node1 node2 

13) aktifkan node

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

14) Karena kami memiliki mesin virtual sebagai server, kami mematikan mekanisme STONITH

 pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore 

15) Buat VIP

 pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.10 cidr_netmask=24 op monitor interval=60s 

16) Buat sumber daya drbd

 pcs cluster cib drbd_cfg pcs -f drbd_cfg resource create DRBD ocf:linbit:drbd drbd_resource=r0 op monitor interval=60s pcs -f drbd_cfg resource master DRBDClone DRBD master-max=2 master-node-max=1 clone-node-max=1 clone-max=2 notify=true interleave=true pcs cluster cib-push drbd_cfg 

17) Instal paket yang diperlukan untuk clvm dan siapkan clvm

 yum install -y lvm2-cluster gfs2-utils /sbin/lvmconf --enable-cluster 

18) Tambahkan sumber dlm dan clvd ke alat pacu jantung

 pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true pcs constraint colocation add clvmd-clone with dlm-clone 

19) Pada titik ini, memulai clvmd dan dlm seharusnya menghasilkan kesalahan. Kami pergi ke alat pacu jantung antarmuka web 192.168.0.1 : 2224. Jika cluster tidak muncul, kemudian tambahkan ke "Edd existing". Selanjutnya, buka Resources - dlm - argumen opsional dan atur nilainya allow_stonith_disabled = true

20) Kami mengatur antrian pemuatan sumber daya

 pcs constraint order start DRBDClone then dlm-clone pcs constraint order start dlm-clone then clvmd-clone 

21) Melarang LVM untuk menulis cache dan menghapusnya. Di kedua node

 sed -i 's/write_cache_state = 1/write_cache_state = 0/' /etc/lvm/lvm.conf rm /etc/lvm/cache/* 

22) Kami mengedit /etc/lvm/lvm.conf sehingga lvm tidak melihat / dev / sdb. Di kedua node

 # This configuration option has an automatic default value. # filter = [ "a|.*/|" ] filter = [ "r|^/dev/sdb$|" ] 

23) Buat partisi CLVM. Kami hanya membuat satu not

 $ vgcreate -Ay -cy cl_vg /dev/drbd0 Physical volume "/dev/drbd0" successfully created. Clustered volume group "cl_vg" successfully created $ lvcreate -l100%FREE -n r0 cl_vg Logical volume "r0" created. 

24) Kami menandai bagian di gfs2

 mkfs.gfs2 -j2 -p lock_dlm -t drbd-gfs2:r0 /dev/cl_vg/r0 

25) Selanjutnya, tambahkan mount bagian ini di alat pacu jantung dan katakan untuk boot setelah clvmd

 pcs resource create fs ocf:heartbeat:Filesystem device="/dev/cl_vg/r0" directory="/mnt/" fstype="gfs2" --clone pcs constraint order start clvmd-clone then fs-clone 

26) Sekarang giliran ctdb yang akan menjalankan samba

 yum install -y samba ctdb cifs-utils 

27) Edit config /etc/ctdb/ctdbd.conf

 CTDB_RECOVERY_LOCK="/mnt/ctdb/.ctdb.lock" CTDB_NODES=/etc/ctdb/nodes CTDB_MANAGES_SAMBA=yes CTDB_LOGGING=file:/var/log/ctdb.log CTDB_DEBUGLEVEL=NOTICE 

28) Buat file dengan daftar node. PERHATIAN! Setelah setiap IP dalam daftar node, feed baris harus ada. Jika tidak, simpul akan gagal selama inisialisasi.

 cat /etc/ctdb/nodes 192.168.0.1 192.168.0.2 

29) Tambahkan ke config /etc/samba/smb.conf

 [global] clustering = yes private dir = /mnt/ctdb lock directory = /mnt/ctdb idmap backend = tdb2 passdb backend = tdbsam [test] comment = Cluster Share path = /mnt browseable = yes writable = yes 

30) Akhirnya, buat sumber daya ctdb dan tunjukkan bahwa itu harus dimuat setelah

 pcs constraint order start fs-clone then samba 

Dan sekarang tentang masalah yang belum saya putuskan. Jika Anda me-reboot node, maka seluruh kumpulan runtuh, karena drbd membutuhkan waktu untuk mengaktifkan / dev / drbd0. DLM tidak melihat partisi, karena belum diaktifkan dan tidak mulai, dll. Solusinya adalah mengaktifkan partisi secara manual dan memulai kembali sumber daya alat pacu jantung

 vgchage -ay pcs resource refresh 

Source: https://habr.com/ru/post/id435906/


All Articles