Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7

Terjemahan artikel telah disediakan pada malam permulaan kursus "Pentadbir Linux. Maya dan pengelompokan".

DRBD (Distributed Replicated Block Device) ialah penyelesaian storan yang diedarkan, fleksibel dan boleh ditiru secara universal untuk Linux. Ia mencerminkan kandungan peranti blok seperti cakera keras, sekatan, volum logik, dll. antara pelayan. Ia mencipta salinan data pada dua peranti storan supaya jika salah satu daripadanya gagal, data pada peranti kedua boleh digunakan.

Anda boleh mengatakan ia adalah sesuatu seperti konfigurasi RAID rangkaian 1 dengan cakera dipetakan ke pelayan yang berbeza. Walau bagaimanapun, ia berfungsi sama sekali berbeza daripada RAID (malah RAID rangkaian).

Pada mulanya, DRBD digunakan terutamanya dalam kelompok komputer ketersediaan tinggi (HA), namun, bermula dengan versi XNUMX, ia boleh digunakan untuk menggunakan penyelesaian storan awan.

Dalam artikel ini, kami akan menerangkan cara memasang DRBD pada CentOS dan menunjukkan secara ringkas cara menggunakannya untuk mereplikasi storan (partition) merentas dua pelayan. Ini adalah artikel yang sesuai untuk bermula dengan DRBD di Linux.

Persekitaran Ujian

Kami akan menggunakan kluster dua nod untuk persediaan ini.

  • Nod 1: 192.168.56.101 – tecmint.tecmint.lan
  • Nod 2: 192.168.56.102 – server1.tecmint.lan

Langkah 1: Pasang pakej DRBD

DRBD dilaksanakan sebagai modul kernel Linux. Ia adalah pemacu untuk peranti blok maya, jadi ia terletak di bahagian paling bawah tindanan I/O sistem.

DRBD boleh dipasang dari ELRepo atau EPEL. Mari kita mulakan dengan mengimport kunci tandatangan pakej ELRepo dan menyambungkan repositori pada kedua-dua nod seperti yang ditunjukkan di bawah.

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

Kemudian anda perlu memasang modul dan utiliti kernel DRBD pada kedua-dua nod menggunakan:

# yum install -y kmod-drbd84 drbd84-utils

Jika anda telah mendayakan SELinux, anda perlu mengkonfigurasi dasar untuk mengecualikan proses DRBD daripada kawalan SELinux.

# semanage permissive -a drbd_t

Selain itu, jika sistem anda menjalankan firewall (firewalld), anda perlu menambah port DRBD 7789 untuk membenarkan penyegerakan data antara kedua-dua nod.

Jalankan arahan ini untuk nod pertama:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Kemudian jalankan arahan ini untuk nod kedua:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Langkah 2: Sediakan Storan Tahap Rendah

Memandangkan kami telah memasang DRBD pada kedua-dua nod kluster, kami mesti menyediakan kawasan storan yang lebih kurang sama saiznya. Ini boleh menjadi partition cakera keras (atau keseluruhan cakera keras fizikal), peranti RAID perisian, Jumlah logik LVM atau sebarang jenis peranti blok lain yang terdapat pada sistem anda.

Untuk artikel ini, kami akan mencipta peranti blok ujian 2GB menggunakan arahan dd.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Mari kita anggap ini ialah partition yang tidak digunakan (/dev/sdb1) pada peranti blok kedua (/dev/sdb) yang disambungkan kepada kedua-dua nod.

Langkah 3. Mengkonfigurasi DRBD

Fail konfigurasi utama DRBD βˆ’ /etc/drbd.conf, dan fail konfigurasi tambahan boleh didapati dalam direktori /etc/drbd.d.

Untuk meniru storan, kami perlu menambah konfigurasi yang diperlukan pada fail /etc/drbd.d/global_common.conf, yang mengandungi bahagian global dan umum konfigurasi DRBD, dan kita perlu menentukan sumber dalam .res fail.

Mari buat salinan sandaran fail asal pada kedua-dua nod, dan kemudian buka fail baharu untuk diedit (gunakan editor teks pilihan anda).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Tambahkan baris berikut pada kedua-dua fail:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Simpan fail dan kemudian tutup editor.

Mari kita lihat baris protokol C seketika. DRBD menyokong tiga mod replikasi yang berbeza (iaitu, tiga darjah penyegerakan replikasi), iaitu:

  • protokol A: protokol replikasi tak segerak; paling kerap digunakan dalam senario replikasi jarak jauh.
  • protokol B: Protokol replikasi separa segerak atau protokol ingatan segerak.
  • protokol C: biasanya digunakan untuk nod dalam rangkaian dengan jarak pendek; ini adalah protokol replikasi yang paling biasa digunakan dalam tetapan DRBD.

Ia adalah penting: Pilihan protokol replikasi mempengaruhi dua faktor penggunaan: keselamatan dan kependaman. Sebaliknya, daya tampung tidak banyak bergantung pada protokol replikasi yang dipilih.

Langkah 4: Tambahkan sumber

Sumber ialah istilah umum yang merujuk kepada semua aspek set data yang direplikasi. Kami akan menentukan sumber kami dalam fail /etc/drbd.d/test.res.

Tambahkan yang berikut pada fail pada kedua-dua nod (ingat untuk menggantikan pembolehubah dengan nilai sebenar untuk persekitaran anda).

Beri perhatian kepada nama hos, kita perlu menentukan nama hos rangkaian, yang boleh diperolehi menggunakan arahan uname -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

di mana:

  • pada nama hos: Bahagian pada yang digunakan pernyataan konfigurasi bersarang.
  • ujian: Ini adalah nama sumber baharu.
  • peranti /dev/drbd0: Menunjukkan peranti blok maya baharu yang diuruskan oleh DRBD.
  • cakera /dev/sdb1: Ini ialah partition peranti blok yang merupakan peranti sandaran untuk peranti DRBD.
  • cakera meta: Mentakrifkan tempat DRBD menyimpan metadatanya. Dalaman bermakna DRBD menyimpan metadatanya pada peranti tahap rendah fizikal yang sama dengan data sebenar dalam pengeluaran.
  • alamat: Menunjukkan alamat IP dan nombor port nod yang sepadan.

Juga ambil perhatian bahawa jika parameter mempunyai nilai yang sama pada kedua-dua hos, anda boleh menentukannya secara langsung dalam bahagian sumber.

Sebagai contoh, konfigurasi di atas boleh disusun semula kepada:

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

Langkah 5. Mulakan dan lancarkan sumber

Untuk berinteraksi dengan DRBD kami akan menggunakan alat pentadbiran berikut (yang berinteraksi dengan modul kernel untuk mengkonfigurasi dan mentadbir sumber DRBD):

  • drbdadm: Alat pentadbiran peringkat tinggi DRBD.
  • drbdsetup: Alat pentadbiran peringkat rendah untuk menyambungkan peranti DRBD ke peranti sandaran mereka, mengkonfigurasi pasangan peranti DRBD untuk mencerminkan peranti sandaran mereka dan untuk mengesahkan konfigurasi menjalankan peranti DRBD.
  • Drbdmeta: Alat pengurusan metadata.

Selepas menambah semua konfigurasi sumber awal, kita mesti menggunakan sumber pada kedua-dua nod.

# drbdadm create-md test

Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7
Memulakan Kedai Metadata

Seterusnya kita perlu menjalankannya, yang akan menyambungkan sumber ke peranti sandarannya, kemudian menetapkan parameter replikasi dan menyambungkan sumber kepada rakan sebayanya:

# drbdadm up test

Sekarang jika anda menjalankan arahan lsblk, anda akan perasan bahawa peranti/volume DRBD drbd0 dikaitkan dengan peranti sandaran /dev/sdb1:

# lsblk

Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7
Senarai peranti blok

Untuk melumpuhkan sumber, jalankan:

# drbdadm down test

Untuk menyemak status sumber, jalankan arahan berikut (perhatikan bahawa status cakera dijangka pada ketika ini Tidak konsisten/Tidak konsisten):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7
Menyemak status sumber dihidupkan
jahat

Langkah 6: Tetapkan sumber utama/sumber penyegerakan peranti awal

Pada peringkat ini, DRBD sudah bersedia untuk digunakan. Sekarang kita perlu menentukan nod mana yang harus digunakan sebagai sumber penyegerakan peranti awal.

Jalankan arahan berikut pada hanya satu nod untuk memulakan penyegerakan penuh awal:

# drbdadm primary --force test
# drbdadm status test

Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7
Menetapkan nod utama sebagai peranti awal
Setelah penyegerakan selesai, keadaan kedua-dua pemacu hendaklah UpToDate.

Langkah 7: Menguji persediaan DRBD

Akhir sekali, kita perlu menyemak sama ada peranti DRBD akan berfungsi seperti yang diperlukan untuk menyimpan data yang direplikasi. Ingat bahawa kami menggunakan volum cakera kosong, jadi kami mesti mencipta sistem fail pada peranti dan melekapkannya untuk memeriksa sama ada kami boleh menggunakannya untuk menyimpan data yang direplikasi.

Kita perlu mencipta sistem fail pada peranti menggunakan arahan berikut pada nod tempat kita memulakan penyegerakan penuh awal (yang mempunyai sumber dengan peranan utama):

# mkfs -t ext4 /dev/drbd0

Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7
Mencipta sistem fail pada volum Drbd

Kemudian lekapkannya seperti yang ditunjukkan (anda boleh memberikan titik pelekap nama yang sesuai):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Sekarang salin atau buat beberapa fail dalam titik pelekap di atas dan buat senarai panjang dengan arahan ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7
Senaraikan kandungan jilid utama Drbd

Seterusnya, nyahlekap peranti (pastikan pelekap tidak dibuka, tukar direktori selepas dinyahlekap untuk mengelakkan ralat) dan tukar peranan nod daripada primer kepada sekunder:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

Jadikan nod lain (yang mempunyai sumber dengan peranan sekunder) utama, kemudian lampirkan peranti padanya dan keluarkan senarai panjang titik lekap. Jika persediaan berfungsi dengan baik, semua fail yang disimpan pada kelantangan harus ada di sana:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

Menyediakan DRBD untuk replikasi storan pada dua pelayan CentOS 7
Menyemak persediaan DRBD yang berjalan pada nod kedua.

Untuk mendapatkan maklumat lanjut, lihat halaman bantuan alat pentadbiran:

# man drbdadm
# man drbdsetup
# man drbdmeta

Bantuan: Manual Pengguna DRBD.

Ringkasan

DRBD sangat fleksibel dan serba boleh, menjadikannya penyelesaian replikasi storan yang sesuai untuk menambah HA kepada hampir mana-mana aplikasi. Dalam artikel ini, kami menunjukkan cara memasang DRBD pada CentOS 7 dan secara ringkas menunjukkan cara menggunakannya untuk replikasi storan. Jangan ragu untuk berkongsi pendapat anda dengan kami menggunakan borang maklum balas di bawah.

Ketahui lebih lanjut tentang kursus.

Sumber: www.habr.com

Tambah komen