Apa itu DRBD?
DRBD (Distributed Replicated Block Device) adalah paket perangkat lunak untuk sistem berbasis Linux. Ini digunakan untuk mereplikasi perangkat penyimpanan dari satu node ke node lain melalui jaringan.
Ini dapat memberikan bantuan untuk menangani Pemulihan Bencana dan Kegagalan. DRBD dapat dipahami sebagai ketersediaan tinggi untuk perangkat keras dan dapat dilihat sebagai pengganti penyimpanan bersama jaringan.
Bagaimana cara kerja DRBD?
Misalkan kita ingin mengelompokkan partisi penyimpanan pada dua sistem CentOS, kita memerlukan perangkat blok (seperti /dev/sdb1) pada kedua sistem. Sistem tersebut didefinisikan sebagai node Primer dan node Sekunder (dapat beralih node Primer dan Sekunder).
DRBD menggunakan perangkat blok virtual (seperti drbd0) untuk berbagi perangkat blok /dev/sdb1 dari kedua sistem. Node utama adalah node tempat drive virtual drbd0 dipasang untuk tujuan membaca/menulis.
Pertama kita perlu menginstal paket DRBD yang digunakan untuk membuat drbd0 disk virtual. Kita dapat memformatnya sebagai sistem file xfs atau ext3 untuk menggunakan perangkat /dev/drbd0. Perangkat drbd0 dikonfigurasi untuk menggunakan perangkat blok /dev/sdb1 pada kedua sistem. Kami sekarang hanya bekerja pada perangkat drbd0.
Karena drbd0 hanya dapat dipasang pada node Primer, konten hanya dapat diakses dari node utama pada satu waktu. Bagaimanapun jika sistem utama mogok, kami mungkin kehilangan file sistem, tetapi perangkat virtual drbd0 akan tersedia. Kita dapat mengganti node sekunder yang awalnya menjadi node primer, dan dapat mengakses kontennya lagi.
Menggunakan DRBD di CentOS
Tutorial ini dilakukan pada CentOS 7 tetapi harus bekerja untuk versi CentOS lainnya juga. Baca ini untuk mempelajari cara memeriksa versi CentOS.
Persyaratan
- Sistem terinstal dua CentOS
- Perangkat blok gratis seperti /dev/sdb1 di kedua sistem (lebih disukai dengan ukuran yang sama)
- Selinux Permisif atau dinonaktifkan
- port 7788 diizinkan di firewall
- Node harus berada dalam jaringan yang sama.
Instalasi
Di sini kita mengikuti instalasi dengan menambahkan repositori epel karena paket drbd tidak tersedia di distribusi CentOS.
$ rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Tambahkan juga kunci GPG di kedua node. GPG-key adalah kunci publik yang digunakan untuk mengenkripsi komunikasi antar node.
$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
Sekarang kita dapat menggunakan yum untuk menginstal paket drbd. Kita harus mengidentifikasi versi drbd yang didukung oleh kernel kita. Periksa versi drbd yang tersedia untuk kernel Anda:
$ yum info *drbd* | grep Name
Outputnya seperti:
Sekarang instal versi drbd yang diperlukan bersama dengan modul kernel yang diperlukan.
$ yum -y install drbd84-utils kmod-drbd84
Verifikasi apakah modul kernel dimuat atau tidak.
$ lsmod | grep -i drbd
Jika respons dari perintah di atas memberikan output kosong, maka modul kernel tidak dimuat. Anda perlu me-reboot sistem dan mencoba:
$ modprobe drbd
modprobe adalah perintah yang secara cerdas menambah atau menghapus modul dari kernel Linux. Untuk membuat modul dimuat selama setiap boot, systemd-modules-load layanan digunakan. Jadi, buat file bernama drbd.conf di dalam /etc/modulesload.d.
$ echo drbd > /etc/modules-load.d/drbd.conf
Mengonfigurasi DRBD
File konfigurasi DRBD terletak di /etc/drbd.d/
Secara default, /etc/drbd.d/global_common.conf tersedia secara global yang berisi konfigurasi global atau utama. File konfigurasi lainnya disebut file resource dengan ekstensi *.res.
Sekarang kita membuat file konfigurasi sumber daya di kedua node untuk menggunakan drbd untuk perangkat blok yang kita tentukan.
Mari kita buat file sumber daya bernama linuxhandbook.res
$ vi /etc/drbd.d/linuxhandbook.res
salin dan tempel konten di bawah ini ke file sumber daya
resource linuxhandbook {
protocol C;
on node1 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.20.222.14:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.20.222.15:7788;
meta-disk internal;
}
}
Di sini,
- linuxhandbook adalah nama sumber daya. Nama sumber daya harus selalu unik.
- protokol C digunakan untuk komunikasi sinkron. Ini adalah protokol replikasi yang sepenuhnya sinkron. Protokol lain yang tersedia adalah protokol A dan protokol B.
- protokol A :Protokol replikasi asinkron. Umumnya lebih disukai untuk node dalam jaringan jarak jauh.
- protokol B :Protokol replikasi semi-sinkron. Disebut juga sebagai protokol sinkron Memori.
- protokol C :lebih disukai untuk node dalam jaringan jarak pendek.
- node 1 dan node2 adalah nama host dari masing-masing node. Gunakan hanya untuk mengidentifikasi blok.
- perangkat /dev/drbd0 adalah perangkat logis yang dibuat untuk digunakan sebagai perangkat.
- disk /dev/sdb1 adalah perangkat blok fisik yang akan ditempati drbd0.
- alamat 10.20.222.14:7788 dan alamat 10.20.222.15:7788 adalah alamat ip dari dua node masing-masing dengan port tcp terbuka 7788.
- meta-internal disk digunakan untuk mendefinisikan penggunaan Meta data internal disk.
Konfigurasi harus sama pada kedua node.
Sekarang, kita perlu menginisialisasi penyimpanan meta data pada setiap node:
$ drbdadm create-md linuxhandbook
Jika ini memberikan pesan kesalahan, maka Anda harus membuat file data dummy secara manual, dan coba perintah di atas setelahnya.
$ dd if=/dev/zero of=/dev/sdb1 bs=1024k count=1024
Perintah dd digunakan untuk membuat file acak dari memori yang ditentukan. Perintah create-md harus berhasil setelahnya.
Setelah perangkat logis dapat digunakan, pasang perangkat drbd0 ke disk sdb1 di kedua node. Lihat keluaran lsblk
$ lsblk
outputnya harus seperti ini
Jika tidak, lampirkan perangkat drbd0 ke disk sdb1 melalui file sumber daya.
$ drbdadm attach linuxhandbook
or
$ drbdadm up linuxhandbook
Once again try,
$ lsblk
Mulai dan aktifkan layanan drbd di kedua node.
$ systemctl start drbd
$ systemctl enable drbd
Jika drbd start mungkin cepat untuk satu node dan membutuhkan waktu untuk node lain .
Menyiapkan node Primer dan Sekunder
DRDB hanya menggunakan satu node pada satu waktu sebagai node utama di mana membaca dan menulis dapat dibentuk sebelumnya.
Kami pertama-tama akan menentukan node 1 sebagai node utama.
$ drbdadm primary linuxhandbook --force
Periksa status proses drbd:
$ cat /proc/drbd
or
$ drbd-overview
Outputnya seperti:
Berikut informasi yang kami dapat :
- saat ini simpul mana yang utama dan mana yang sekunder.
- proses sinkronisasi data.
- status perangkat drbd seperti:Tidak Konsisten, Terbaru, Tanpa Disk.
Node lain, node2 secara otomatis disetel sebagai node sekunder. Lihat status proses ikhtisar drbd.
Langkah utama yang belum kami lakukan adalah memformat perangkat drbd0. Ini hanya dapat dilakukan pada salah satu node.
Di sini, kami memformat drbd0 sebagai ext3 dengan perintah mkfs. sistem file xfs juga berfungsi. Sebaiknya kita menggunakan jenis disk yang sama dengan /dev/sdb1.
$ mkfs -t ext3 /dev/drbd0
Sekarang, lagi di node utama, (misalnya, ini adalah node1 dalam tutorial ini) kita harus memasang perangkat drbd0 agar dapat bekerja di dalamnya.
$ mount /dev/drbd0 /mnt
you can select your required mount point instead of /mnt. for example, I can mount the /dev/drbd0 device to /var/lib/mysql to use it for mysql database drbd.
CATATAN :Selalu ingat prosesnya. Pertama, Anda harus menjadikan node sebagai yang utama untuk DRBD. Dan kemudian pasang perangkat drbd0 ke sistem Anda dan Anda diizinkan untuk melakukan tindakan pada perangkat. Tanpa menjadikan node sebagai yang utama, Anda tidak dapat memasang perangkat drb0 tidak dapat menggunakan konten perangkat itu.
Menguji proses DRBD
Setelah drbd diatur di kedua node dan satu node dijadikan primer. Kami memasang perangkat ke /mnt lokasi. Sekarang buat file untuk menguji sinkronisasi node drbd.
$ touch /mnt/drbdtest.txt
$ ll /mnt/
Setelah ini, kita akan menetapkan node1 sebagai sekunder dan node2 sebagai primer. Proses ini serupa dicerminkan. Pada node 1 (misalnya node utama), unmount perangkat /dev/drbd0, menjadikannya sekunder. Pada node2 (misalnya node sekunder), jadikan node utama, dan mount ke lokasi yang diperlukan.
di simpul 1
$ umount /mnt
$ drbdadm secondary linuxhandbook
di simpul 2:
$ drbdadm primary linuxhandbook
$ mount /dev/drbd0 /mnt
Setelah berhasil mount di node2, cek file di folder /mnt. Anda harus melihat file drbdtest.txt (dibuat di node1).
$ ll /mnt/
Jika Anda ingin memiliki antarmuka GUI untuk mengelola dan memvisualisasikan node cluster drbd, Anda dapat menggunakan LCMC (Linux Cluster Management Console).
Itu dia! Anda telah berhasil mengimplementasikan DRBD di sistem Anda. Jika masih ada pertanyaan, Anda dapat berkomentar di bawah di bagian komentar.
Penulis :Rishi Raj Gautam adalah pecinta Linux dan aktivis open-source.