Terjemahan artikel telah disediakan pada malam permulaan kursus
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
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,
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
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 /dev/sdb1
:
# lsblk
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
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
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
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
# cd /mnt/DRDB_PRI/
# ls -l
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
Menyemak persediaan DRBD yang berjalan pada nod kedua.
Untuk mendapatkan maklumat lanjut, lihat halaman bantuan alat pentadbiran:
# man drbdadm
# man drbdsetup
# man drbdmeta
Bantuan:
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.
Sumber: www.habr.com