Cara Setup DRBD dan membuat Replika Storage Dua Server CentOS 7

DRBD (kependekan dari Distributed Replicated Block Device) adalah solusi penyimpanan yang direplikasi, fleksibel dan serbaguna untuk Linux. Ini mencerminkan konten perangkat blok seperti hard disk, partisi, volume logis, dll. Antara server. Ini melibatkan salinan data pada dua perangkat penyimpanan, sehingga jika salah satu gagal, data di sisi lain dapat digunakan.

Anda dapat menganggapnya agak seperti konfigurasi RAID 1 jaringan dengan disk yang dipantulkan ke seluruh server. Namun, ini beroperasi dengan cara yang sangat berbeda dari RAID dan bahkan Network RAID.

Awalnya, DRBD digunakan dalam cluster komputer high availability (HA), namun, mulai dari versi 9, dapat digunakan untuk menggunakan solusi penyimpanan cloud.

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

Lingkungan Pengujian

Pada artikel ini, kami menggunakan dua node cluster.

  • Node1: 192.168.56.101 – tecmint.hostnic.id
  • Node2: 192.168.10.102 – server1.hostnic.id

Step 1: Installing DRBD Packages

DRBD diimplementasikan sebagai modul kernel Linux. Ini justru merupakan driver untuk perangkat blok virtual, jadi didirikan tepat di dekat bagian bawah tumpukan I / O sistem.

DRBD dapat diinstal dari repositori ELRepo atau EPEL. Mari kita mulai dengan mengimpor kunci penandatanganan paket ELRepo, dan aktifkan repositori seperti yang ditunjukkan pada kedua node.

# 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 kita dapat menginstal modul dan utilitas kernel DRBD di kedua node dengan menjalankan:

# yum install -y kmod-drbd84 drbd84-utils

Jika Anda mengaktifkan SELinux, Anda perlu memodifikasi kebijakan untuk mengecualikan proses DRBD dari kontrol SELinux.

# semanage permissive -a drbd_t

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

Jalankan perintah ini pada server 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 di server 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

Step 2: Preparing Lower-level Storage


Untuk tujuan artikel ini, kami akan membuat perangkat blok dummy ukuran 2GB menggunakan perintah dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Kami akan menganggap bahwa ini adalah partisi yang tidak digunakan (/dev/sdb1) pada perangkat blok kedua (/dev/sdb) yang terpasang pada kedua node.

Step 3: Configuring DRBD

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

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

Mari buat cadangan file asli di kedua node, lalu buka file baru untuk diedit (gunakan editor teks sesuai keinginan 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 di dalam kedua file:

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

Simpan file, lalu tutup editor.

Mari kita beri sedikit penjelasan pada protocol C. DRBD mendukung tiga mode replikasi yang berbeda yaitu:

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

Penting: Pilihan protokol replikasi memengaruhi dua faktor penyebaran Data, perlindungan dan latensi. Dan throughput, sebaliknya, sebagian besar independen dari protokol replikasi yang dipilih.

Step 4: Adding a Resource

Sumber daya adalah istilah yang mengacu pada semua aspek dari set data yang direplikasi. Kami akan mendefinisikan sumber daya kami dalam file bernama /etc/drbd.d/test.res.

Tambahkan konten berikut ke file, pada kedua node (ingat untuk mengganti variabel dalam konten dengan nilai aktual untuk server Anda).

Perhatikan nama host, kita perlu menentukan nama hostname yang dapat diperoleh dengan menjalankan perintah uname -n.

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

Dimana:

  • on hostname: the on section states which host the enclosed configuration statements apply to.
  • test: is the name of the new resource.
  • device /dev/drbd0: specifies the new virtual block device managed by DRBD.
  • disk /dev/sdb1: is the block device partition which is the backing device for the DRBD device.
  • meta-disk: Defines where DRBD stores its metadata. Using Internal means that DRBD stores its meta data on the same physical lower-level device as the actual production data.
  • address: specifies the IP address and port number of the respective node.

Perhatikan juga bahwa jika opsi memiliki nilai yang sama pada kedua host, Anda dapat menentukannya secara 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.hostnic.id {
 		address 192.168.56.101:7789;
        	}
        	on server1.hostnic.id  {
		address 192.168.56.102:7789;
        	}
}

Step 4: Initializing and Enabling Resource

Untuk berinteraksi dengan DRBD, kami akan menggunakan alat administrasi berikut yang berkomunikasi dengan modul kernel untuk mengkonfigurasi dan mengelola sumber daya DRBD:

  • drbdadm: a high-level administration tool of the DRBD.
  • drbdsetup: a lower-level administration tool for to attach DRBD devices with their backing block devices, to set up DRBD device pairs to mirror their backing block devices, and to inspect the configuration of running DRBD devices.
  • Drbdmeta:is the meta data management tool.

Setelah menambahkan semua konfigurasi sumber daya awal, kita harus membuka sumber daya pada kedua node.

# drbdadm create-md test

Initialize Meta Data Storage

Initialize Meta Data Storage

Selanjutnya, kita harus mengaktifkan sumber daya, yang akan melampirkan sumber daya dengan perangkat pendukungnya, lalu menetapkan 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 pendukung /dev/sdb1:

# lsblk

List Block Devices

List Block Devices

Untuk menonaktifkan sumber daya, jalankan:

# drbdadm down test

Untuk memeriksa status sumber daya, jalankan perintah berikut (perhatikan bahwa kondisi Inconsistent/Inconsistent diharapkan pada saat ini):

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

Check Resource Status on Nodes

Check Resource Status on Nodes

Step 5: Set Primary Resource/Source of Initial Device Synchronization

Pada tahap ini, DRBD sekarang siap untuk beroperasi. Kita sekarang perlu memberi tahu node mana yang harus digunakan sebagai sumber sinkronisasi perangkat awal.

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

# drbdadm primary --force test
# drbdadm status test

Set Primary Node for Initial Device

Set Primary Node for Initial Device

Setelah sinkronisasi selesai, status kedua disk harus UpToDate.

Step 6: Testing DRBD Setup

Akhirnya, kita perlu menguji apakah perangkat DRBD akan bekerja dengan baik untuk penyimpanan data yang direplikasi. Ingat, kami menggunakan volume disk kosong, oleh karena itu kami harus membuat sistem file pada perangkat, dan memasangnya, untuk menguji apakah kami dapat menggunakannya untuk penyimpanan data yang direplikasi.

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

# mkfs -t ext4 /dev/drbd0 

Make Filesystem on Drbd Volume

Make Filesystem on Drbd Volume

Kemudian pasang seperti yang ditunjukkan (Anda dapat memberikan nama yang sesuai pada titik mount):

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

Sekarang salin atau buat beberapa file ke folder /mnt/DRDB_PRI/ dan lihat daftar file menggunakan perintah ls:

# cd /mnt/DRDB_PRI/
# ls -l 

List Contents of Drbd Primary Volume

List Contents of Drbd Primary Volume

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

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

Di server lain (yang memiliki sumber daya dengan peran sekunder), buatlah primer, lalu pasang perangkat di atasnya dan lihat daftar file nya. Jika pengaturan bekerja dengan baik, semua file yang disimpan dalam volume harus ada di sana:

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

Test DRBD Setup Working on Secondary Node

Test DRBD Setup Working on Secondary Node

Untuk informasi lebih lanjut, lihat halaman manual alat administrasi ruang pengguna:

# man drbdadm
# man drbdsetup
# man drbdmeta

Referensi: The DRBD User’s Guide


Di tulis oleh: