Penyimpanan kluster Alat pacu jantung + DRBD (Dual primer) + samba

Sebagai kelanjutan dari artikel “Pacemaker Cluster Storage + DRBD (Dual primary) + ctdb”, saya menyajikan versi yang lengkap dan berfungsi dari bola file cluster HA untuk 2-4 node untuk centos 6 dan centos 7. Jika Anda ingin menerapkan ini, Anda bisa menjadi cabul atau Anda Mereka tidak memberikan pilihan, dan perlu untuk mengimplementasikannya entah bagaimana.

Saya hanya akan menjelaskan kue puff yang akan kami kumpulkan:

Pada perangkat blok, buat tabel gpt => satu partisi untuk seluruh ruang di bawah lvm => grup volume lvm untuk seluruh ruang yang tersedia => volume lvm untuk seluruh ruang yang tersedia => perangkat drbd => dlm => tandai sebagai volume fisik dari lvm untuk seluruh ruang yang tersedia => di atasnya sekelompok cluster volume lvm => volume lvm pada semua ruang yang tersedia => mark up fs gfs2 => terhubung ke titik pemasangan.
Dan semua ini akan digerakkan oleh alat pacu jantung dengan alamat ip virtual.


Jika Anda masih ingin melanjutkan, baca terus di bawah potongan.

Dari sumbernya kita membutuhkan yang berikut ini:
Inti CPU 1
Minimum 1 GB memori akses acak
Disk 15 GB + tempat Anda akan menyimpan data
Disk dapat berupa angka apa saja, bahkan satu.

Jika Anda memiliki satu drive, lebih baik untuk mempartisi sebagai berikut:
Tabel partisi gpt => 200 MB partisi untuk efi (opsional) => 1 GB partisi untuk / boot => semua lainnya di bawah lvm.

Pada volume lvm, Anda perlu membuat 2 grup volume. Kelompok volume pertama di bawah OS adalah 10 GB + dua kali ukuran RAM, tetapi tidak lebih dari 4 GB.

Siapa pun yang mengatakan itu, tetapi bertukar kadang-kadang banyak membantu, jadi pada grup lvm kita membuat partisi lvm untuk bertukar sama dengan dua kali ukuran RAM, tetapi tidak lebih dari 4 GB dan sisa ruang dialokasikan untuk root OS.

Kelompok kedua lvm untuk penyimpanan data. Buat bagian lvm untuk ruang yang tersisa.

Di bawah persyaratan kami diberi 2 mesin virtual dan itu saja. Lebih baik untuk menempatkan Ceph untuk operasi yang benar pada 6 node, setidaknya 4, ditambah itu akan menyenangkan untuk memiliki beberapa pengalaman dengannya, jika tidak akan bekerja seperti cloudmouse. Gluster untuk ratusan ribu file kecil tidak akan berfungsi dalam kinerja, itu dilemahkan dalam luasnya Habré berkali-kali. ipfs, luster dan sejenisnya memiliki persyaratan yang sama seperti ceph atau bahkan lebih.

Ayo mulai pertempuran! Saya punya dua mesin virtual pada CentOS 7 dengan 2 disk.


1) Alat pacu jantung versi 1.1 tidak bekerja dengan ip dengan benar, jadi untuk keandalan kami menambahkan entri 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 yum localinstall -y http://ftp.nluug.nl/os/Linux/distr/elrepo/elrepo/el7/x86_64/RPMS/$(curl -s http://ftp.nluug.nl/os/Linux/distr/elrepo/elrepo/el7/x86_64/RPMS/ | grep -oP ">elrepo-release.*rpm" | cut -c 2-) 

3) Instal drbd versi 8.4

 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 partisi disk dan konfigurasikan lvm

 echo -e "g\nn\n\n\n\nt\n8e\nw\n" | fdisk /dev/sdb vgcreate drbd_vg /dev/sdb1 lvcreate -l +100%FREE --name r0 drbd_vg 

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

 resource r0 { protocol C; device /dev/drbd1; meta-disk internal; disk /dev/mapper/drbd_vg-r0; 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"; } startup { become-primary-on both; } on node1 { address 192.168.0.1:7788; } on node2 { address 192.168.0.2:7788; } 

7) Kami menghapus layanan drbd dari autoload (alat pacu jantung nantinya akan bertanggung jawab untuk itu), membuat metadata untuk disk drbd, meningkatkan sumber daya

 systemctl disable drbd drbdadm create-md r0 drbdadm up r0 

8) Pada simpul pertama, buat sumber daya utama

 drbdadm primary --force r0 

9) Pasang alat pacu jantung

 yum install -y pacemaker corosync pcs resource-agents fence-agents-all 

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

 echo CHANGEME | passwd --stdin hacluster 

11) Jalankan pcsd di kedua node

 systemctl enable pcsd systemctl start pcsd 

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

 pcs cluster auth node1 node2 -u hacluster -p CHANGEME --force 

13) Buat sebuah cluster bernama samba_cluster

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

14) mengaktifkan node dan menambahkan layanan ke startup dan memulainya

 pcs cluster enable --all pcs cluster start --all systemctl start corosync pcsd pacemaker systemctl enable corosync pcsd pacemaker 

15) Karena kami memiliki mesin virtual sebagai server, kami mematikan mekanisme STONITH, karena kami tidak memiliki mekanisme untuk mengelola mereka. Kami juga hanya memiliki 2 mobil, jadi kami juga menonaktifkan kuorum, hanya bekerja dengan 3 mesin atau lebih.

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

16) Buat VIP

 pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.10 cidr_netmask=32 nic=eth0 clusterip_hash=sourceip-sourceport op monitor interval=1s 

17) Buat sumber daya drbd

 pcs resource create DRBD1 ocf:linbit:drbd drbd_resource=r0 op monitor interval=60s master master-max=2 master-node-max=1 clone-node-max=1 clone-max=2 notify=true op start interval=0s timeout=240 promote interval=0s timeout=130 monitor interval=150s role=Master monitor interval=155s role=Slave 

18) Instal paket yang diperlukan untuk clvm dan siapkan clvm

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

19) Tambahkan sumber dlm dan clvd ke alat pacu jantung

 pcs resource create dlm ocf:pacemaker:controld allow_stonith_disabled=true clone meta interleave=true pcs resource create clvmd ocf:heartbeat:clvm clone meta interleave=true 

20) Kami melarang LVM dari 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/* 


21) Buat partisi CLVM. Kami hanya membuat satu not
 vgcreate -A y -cy cl_vg /dev/drbd1 lvcreate -l 100%FREE -n r0 cl_vg 

22) Kami menandai bagian dalam gfs2, di sini penting bahwa tabel kunci memiliki nama yang sama dengan cluster kami di pembawa damai. Kami hanya membuat satu not

 mkfs.gfs2 -j 2 -p lock_dlm -t samba_cluster:r0 /dev/cl_vg/r0 

23) 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 interleave=true 

24) Sekarang giliran ctdb yang akan menjalankan samba

 yum install -y samba ctdb cifs-utils 

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

26) Buat file dengan daftar node / etc / ctdb / nodes
PERHATIAN! Setelah setiap alamat dalam daftar harus ada umpan baris. Jika tidak, simpul tidak akan hidup selama inisialisasi.

 192.168.0.1 192.168.0.2 

27) Akhirnya, buat sumber daya ctdb

 pcs resource create samba systemd:ctdb clone meta interleave=true 

28) Kami mengatur antrean beban dan dependensi sumber daya untuk dijalankan

 pcs constraint colocation add dlm-clone with DRBD1-master pcs constraint colocation add clvmd-clone with dlm-clone pcs constraint colocation add fs-clone with clvmd-clone pcs constraint colocation add samba-clone with fs-clone pcs constraint colocation add virtual_ip with samba-clone pcs constraint order promote DRBD1-master then dlm-clone pcs constraint order start dlm-clone then clvmd-clone pcs constraint order start clvmd-clone then fs-clone pcs constraint order start fs-clone then samba-clone 

29) Kami mengatur antrian untuk menghentikan sumber daya, tanpa ini, mesin Anda dapat membeku pada saat shutdown

 pcs constraint order stop fs-clone then stop clvmd-clone pcs constraint order stop clvmd-clone then stop dlm-clone pcs constraint order stop dlm-clone then stop DRBD1-master pcs constraint order stop samba-clone then stop fs-clone 

PS


Bola itu sendiri bisa di nfs, dan di samba, tetapi menghubungkan ke mereka gagal-oleh IP, meskipun penyimpanan HA itu sendiri. Jika Anda ingin HA penuh, maka alih-alih samba dan nfs Anda perlu menginstal iSCSI dan terhubung melalui multipath. Selain itu, Anda bisa mendapatkan otak ganda jika salah satu node mati, dan ketika master naik, itu tidak akan terjadi. Saya memeriksa bahwa jika OS dimatikan dengan benar, maka setelah menaikkan node ketika tidak ada master, ia masuk ke mode out-of-date dan tidak menjadi master untuk menghindari split brain. Varian kuorum (DRBD dan / atau alat pacu jantung) dan setiap distorsi dari cascading konstruksi DRBD setelah konfigurasi Anda tidak dapat dipertahankan karena kompleksitasnya yang tinggi, admin lain akan membutuhkan waktu lama untuk mencari tahu. Meskipun dengan apa yang saya tulis tidak lebih baik, jangan lakukan itu.

Referensi:

Ada instruksi serupa dengan sintaks untuk alat pacu jantung 1.0.

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


All Articles