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