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