Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7

Terjemahan artikel disiapkan pada malam dimulainya kursus "Administrator Linux. Virtualisasi dan pengelompokan".

DRBD (Perangkat Blok Replikasi Terdistribusi) adalah solusi penyimpanan terdistribusi, fleksibel, dan dapat direplikasi secara universal untuk Linux. Ini mencerminkan konten perangkat blok seperti hard drive, partisi, volume logis, dll. antar server. Ini membuat salinan data pada dua perangkat penyimpanan sehingga jika salah satu dari mereka gagal, data pada perangkat kedua dapat digunakan.

Bisa dibilang seperti itu konfigurasi RAID jaringan 1 dengan disk yang dipetakan ke server yang berbeda. Namun, cara kerjanya sangat berbeda dari RAID (bahkan RAID jaringan).

Awalnya, DRBD digunakan terutama di cluster komputer ketersediaan tinggi (HA), namun, mulai versi XNUMX, DRBD dapat digunakan untuk menerapkan solusi penyimpanan cloud.

Pada artikel ini, kami akan menjelaskan cara menginstal DRBD di CentOS dan menunjukkan secara singkat cara menggunakannya untuk mereplikasi penyimpanan (partisi) di dua server. Ini adalah artikel yang sempurna untuk memulai DRBD di Linux.

Lingkungan Uji

Kami akan menggunakan cluster dua node untuk pengaturan ini.

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

Langkah 1: Instal paket DRBD

DRBD diimplementasikan sebagai modul kernel Linux. Ini adalah driver untuk perangkat blok virtual, sehingga terletak di bagian paling bawah tumpukan I/O sistem.

DRBD dapat diinstal dari ELRepo atau EPEL. Mari kita mulai dengan mengimpor kunci penandatanganan paket ELRepo dan menghubungkan repositori di kedua node seperti yang ditunjukkan di bawah ini.

# 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

Maka Anda perlu menginstal modul kernel DRBD dan utilitas pada kedua node menggunakan:

# yum install -y kmod-drbd84 drbd84-utils

Jika SELinux diaktifkan, Anda perlu mengonfigurasi kebijakan untuk mengecualikan proses DRBD dari kontrol SELinux.

# semanage permissive -a drbd_t

Selain itu, jika sistem Anda menjalankan firewall (firewalld), Anda perlu menambahkan port DRBD 7789 untuk memungkinkan sinkronisasi data antara dua node.

Jalankan perintah ini untuk node 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 perintah ini untuk node 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: Siapkan Penyimpanan Tingkat Rendah

Sekarang kita telah menginstal DRBD pada kedua node cluster, kita harus menyediakan area penyimpanan dengan ukuran yang kira-kira sama pada kedua node tersebut. Ini bisa berupa partisi hard drive (atau seluruh hard drive fisik), perangkat RAID perangkat lunak, Volume logis LVM atau jenis perangkat blok lainnya yang ditemukan di sistem Anda.

Untuk artikel ini, kami akan membuat perangkat blok uji 2GB menggunakan perintah dd.

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

Mari kita asumsikan ini adalah partisi yang tidak digunakan (/dev/sdb1) pada perangkat blok kedua (/dev/sdb) yang terhubung ke kedua node.

Langkah 3. Mengonfigurasi DRBD

File konfigurasi utama DRBD - /etc/drbd.conf, dan file konfigurasi tambahan dapat ditemukan di direktori /etc/drbd.d.

Untuk mereplikasi penyimpanan, kita perlu menambahkan konfigurasi yang diperlukan ke file /etc/drbd.d/global_common.conf, yang berisi bagian global dan umum dari konfigurasi DRBD, dan kita perlu mendefinisikan sumber daya di dalamnya .res file.

Mari buat salinan cadangan file asli di kedua node, lalu buka file baru 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 ke kedua file:

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

Simpan file lalu tutup editor.

Mari kita lihat sejenak garis protokol C. DRBD mendukung tiga mode replikasi yang berbeda (yaitu, sinkronisasi tiga derajat replikasi), yaitu:

  • protokol A: protokol replikasi asinkron; paling sering digunakan dalam skenario replikasi jarak jauh.
  • protokol B: Protokol replikasi semi-sinkron atau protokol memori sinkron.
  • protokol C: biasanya digunakan untuk node dalam jaringan dengan jarak pendek; sejauh ini merupakan protokol replikasi yang paling umum digunakan dalam pengaturan DRBD.

Ini penting: Pilihan protokol replikasi mempengaruhi dua faktor penerapan: keamanan dan latensi. Sebaliknya, throughput tidak bergantung secara signifikan pada protokol replikasi yang dipilih.

Langkah 4: Tambahkan sumber daya

Sumber daya adalah istilah umum yang mengacu pada semua aspek kumpulan data tertentu yang direplikasi. Kami akan menentukan sumber daya kami di file /etc/drbd.d/test.res.

Tambahkan yang berikut ini ke file di kedua node (ingatlah untuk mengganti variabel dengan nilai sebenarnya untuk lingkungan Anda).

Perhatikan nama host, kita perlu menentukan nama host jaringan, yang dapat diperoleh dengan menggunakan perintah 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 host: Bagian on yang menerapkan pernyataan konfigurasi bertingkat.
  • uji: Ini adalah nama sumber daya baru.
  • perangkat /dev/drbd0: Menunjukkan perangkat blok virtual baru yang dikelola oleh DRBD.
  • disk /dev/sdb1: Ini adalah partisi perangkat blok yang merupakan perangkat cadangan untuk perangkat DRBD.
  • meta-disk: Mendefinisikan di mana DRBD menyimpan metadatanya. Internal berarti DRBD menyimpan metadatanya pada perangkat fisik tingkat rendah yang sama dengan data aktual dalam produksi.
  • alamat: Menunjukkan alamat IP dan nomor port dari node yang bersangkutan.

Perhatikan juga bahwa jika parameter memiliki nilai yang sama di kedua host, Anda dapat menentukannya langsung di bagian sumber daya.

Misalnya, konfigurasi di atas dapat direstrukturisasi menjadi:

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. Inisialisasi dan luncurkan sumber daya

Untuk berinteraksi dengan DRBD kita akan menggunakan alat administrasi berikut (yang berinteraksi dengan modul kernel untuk mengkonfigurasi dan mengelola sumber daya DRBD):

  • drbdadm: Alat administrasi tingkat tinggi DRBD.
  • drbdsetup: Alat administrasi tingkat rendah untuk menghubungkan perangkat DRBD ke perangkat cadangannya, mengonfigurasi pasangan perangkat DRBD untuk mencerminkan perangkat cadangannya, dan untuk memverifikasi konfigurasi perangkat DRBD yang sedang berjalan.
  • Drbdmeta: Alat manajemen metadata.

Setelah menambahkan semua konfigurasi sumber daya awal, kita harus memanggil sumber daya di kedua node.

# drbdadm create-md test

Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7
Menginisialisasi Penyimpanan Metadata

Selanjutnya kita perlu menjalankannya, yang akan menghubungkan sumber daya ke perangkat cadangannya, lalu mengatur parameter replikasi dan menghubungkan sumber daya ke rekannya:

# drbdadm up test

Sekarang jika Anda menjalankan perintah lsblk, Anda akan melihat bahwa perangkat DRBD/volume drbd0 dikaitkan dengan perangkat cadangan /dev/sdb1:

# lsblk

Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7
Daftar perangkat blok

Untuk menonaktifkan sumber daya, jalankan:

# drbdadm down test

Untuk memeriksa status sumber daya, jalankan perintah berikut (perhatikan bahwa status disk diharapkan pada saat ini Tidak Konsisten/Tidak Konsisten):

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

Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7
Memeriksa status sumber daya aktif
kejahatan

Langkah 6: Tetapkan sumber sinkronisasi sumber daya utama/perangkat awal

Pada tahap ini, DRBD siap dijalankan. Sekarang kita perlu menentukan node mana yang harus digunakan sebagai sumber sinkronisasi perangkat awal.

Jalankan perintah berikut hanya pada satu node untuk memulai sinkronisasi penuh awal:

# drbdadm primary --force test
# drbdadm status test

Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7
Menetapkan node utama sebagai perangkat awal
Setelah sinkronisasi selesai, status kedua drive akan menjadi UpToDate.

Langkah 7: Menguji pengaturan DRBD

Terakhir, kita perlu memeriksa apakah perangkat DRBD akan berfungsi sesuai kebutuhan untuk menyimpan data yang direplikasi. Ingatlah bahwa kita menggunakan volume disk yang kosong, jadi kita harus membuat sistem file pada perangkat dan memasangnya untuk memeriksa apakah kita dapat menggunakannya untuk menyimpan data yang direplikasi.

Kita perlu membuat sistem file pada perangkat menggunakan perintah berikut pada node tempat kita memulai sinkronisasi penuh awal (yang memiliki sumber daya dengan peran utama):

# mkfs -t ext4 /dev/drbd0

Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7
Membuat sistem file pada volume Drbd

Kemudian pasang seperti yang ditunjukkan (Anda dapat memberi nama yang sesuai pada titik pemasangan):

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

Sekarang salin atau buat beberapa file di titik mount di atas dan buat daftar panjang perintah ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7
Buat daftar isi volume Drbd utama

Selanjutnya, unmount perangkat (pastikan mount tidak terbuka, ubah direktori setelah unmount untuk menghindari kesalahan) dan ubah peran node dari primer ke sekunder:

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

Jadikan node lain (yang memiliki sumber daya dengan peran sekunder) sebagai node utama, lalu sambungkan perangkat ke node tersebut dan keluarkan daftar panjang titik pemasangan. Jika pengaturan berfungsi dengan baik, semua file yang disimpan di volume seharusnya ada di sana:

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

Menyiapkan DRBD untuk replikasi penyimpanan di dua server CentOS 7
Memeriksa pengaturan DRBD yang berjalan pada node sekunder.

Untuk informasi lebih lanjut, lihat halaman bantuan alat administratif:

# man drbdadm
# man drbdsetup
# man drbdmeta

Bantuan: Panduan Pengguna DRBD.

Ringkasan

DRBD sangat fleksibel dan serbaguna, menjadikannya solusi replikasi penyimpanan yang cocok untuk menambahkan HA ke hampir semua aplikasi. Pada artikel ini, kami menunjukkan cara menginstal DRBD di CentOS 7 dan mendemonstrasikan secara singkat cara menggunakannya untuk replikasi penyimpanan. Jangan ragu untuk menyampaikan pemikiran Anda kepada kami menggunakan formulir umpan balik di bawah.

Pelajari lebih lanjut tentang kursus ini.

Sumber: www.habr.com

Tambah komentar