GNU/Linux >> Belajar Linux >  >> Debian

Instal dan Konfigurasi GlusterFS di Ubuntu 16.04 / Debian 8

Di dunia teknologi, selalu penting untuk menjaga agar data selalu tersedia untuk memastikannya dapat diakses oleh aplikasi/pengguna. Ketersediaan tinggi dicapai di sini dengan mendistribusikan data ke beberapa volume/node.

Mesin/pengguna klien dapat mengakses penyimpanan seperti penyimpanan lokal. Setiap kali pengguna membuat data di penyimpanan Gluster, data akan dicerminkan/didistribusikan ke node penyimpanan lain.

Apa itu GlusterFS?

GlusterFS adalah sistem file jaringan sumber terbuka dan skalabel yang cocok untuk beban kerja intensif data tinggi seperti streaming media, penyimpanan cloud, dan CDN (Content Delivery Network). GlusterFS awalnya dikembangkan oleh Gluster Inc, dan kemudian oleh Redhat, sebagai hasil akuisisi.

Terminologi:

Berikut adalah terminologi penting yang kami gunakan di seluruh artikel ini.

Bata – adalah penyimpanan dasar (direktori) pada server di kumpulan penyimpanan tepercaya.

Volume – adalah kumpulan batu bata yang logis.

Kelompok – adalah sekelompok komputer yang terhubung, bekerja bersama sebagai satu komputer.

Sistem File Terdistribusi – Sistem file di mana data tersebar di beberapa node penyimpanan dan memungkinkan klien untuk mengaksesnya melalui jaringan.

Klien – adalah mesin yang memasang volume.

Server – adalah mesin tempat sistem file aktual di-host di mana data akan disimpan.

Replikasi – Membuat banyak salinan data untuk mencapai redundansi tinggi.

Sekring – adalah modul kernel yang dapat dimuat yang memungkinkan pengguna yang tidak memiliki hak istimewa membuat sistem file mereka sendiri tanpa mengedit kode kernel.

berkilau – adalah daemon yang berjalan di semua server di kumpulan penyimpanan tepercaya.

RAID – Redundant Array of Inexpensive Disks (RAID) adalah teknologi yang memberikan peningkatan keandalan penyimpanan melalui redundansi.

Volume:

Seperti yang dikatakan sebelumnya, volume adalah kumpulan batu bata, dan sebagian besar operasi kilau seperti membaca dan menulis terjadi pada volume. GlusterFS mendukung berbagai jenis volume berdasarkan persyaratan; cocok untuk menskalakan ukuran penyimpanan atau meningkatkan kinerja atau keduanya.

Pada artikel ini, kami akan mengonfigurasi volume GlusterFS yang direplikasi di Ubuntu 16.04 / Debian 8. Panduan ini juga harus berfungsi pada versi Ubuntu sebelumnya seperti Ubuntu 14.04 / Ubuntu 12.04.

Volume Glusterf yang Direplikasi seperti RAID 1 , dan volume mempertahankan salinan data yang tepat pada semua batu bata. Anda dapat menentukan jumlah replika saat membuat volume, jadi Anda harus memiliki minimal dua batu bata untuk membuat volume dengan dua replika atau tiga batu bata untuk membuat volume 3 replika.

Volume ini memberikan keandalan data dan redundansi data yang lebih baik.

Mengapa tidak membaca tentang jenis volume GlusterFS yang tersisa.

Persyaratan:

Di sini, kita akan mengonfigurasi volume GlusterFS dengan dua replika. Pastikan Anda memiliki dua sistem 64bit (virtual atau fisik) dengan memori 1 GB, dan satu hard disk cadangan di setiap sistem.

Nama Inang Alamat IP OS Memori Disk Tujuan
gluster1.itzgeek.local 192.168.12.16 Ubuntu 16.04 LTS 1GB /dev/sdb (5GB) Node Penyimpanan 1
gluster2.itzgeek.local 192.168.12.17 Debian 8 1GB /dev/sdb (5GB) Simpul Penyimpanan 2
client.itzgeek.local 192.168.12.8 CentOS 7 / Debian TIDAK TIDAK Mesin Klien
Untuk demonstrasi, saya menggunakan distribusi Linux yang berbeda untuk setiap node penyimpanan di sini. Saya menyarankan Anda untuk menggunakan distribusi Linux tunggal di seluruh cluster yang akan lebih mudah bagi Anda untuk memecahkan masalah yang muncul dalam produksi.

Konfigurasikan DNS:

Komponen GlusterFS menggunakan DNS untuk resolusi nama, jadi konfigurasikan DNS atau atur entri host. Jika Anda tidak memiliki DNS di lingkungan Anda, ubah file /etc/hosts dan perbarui sesuai kebutuhan.

sudo vi /etc/hosts

192.168.12.16  gluster1.itzgeek.local  gluster1
192.168.12.17  gluster2.itzgeek.local  gluster2
192.168.12.20 client.itzgeek.local client

Tambahkan Repositori GlusterFS:

Sebelum melanjutkan ke instalasi, kita perlu mengkonfigurasi repositori GlusterFS di kedua node penyimpanan. Ikuti instruksi untuk menambahkan repositori ke sistem Anda.

Debian:

Instal paket dukungan untuk transaksi https.

sudo apt-get install -y lsb-release
sudo apt-get install -y apt-transport-https

Tambahkan kunci publik untuk repositori GlusterFS.

wget -O - http://download.gluster.org/pub/gluster/glusterfs/LATEST/rsa.pub | sudo apt-key add -
echo deb https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/$(lsb_release -sc)/apt $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/gluster.list

Ubuntu 16.04 / 14.04:

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:gluster/glusterfs-3.8

Instal GlusterFS:

Setelah Anda menambahkan repositori di sistem Anda, kami siap untuk menginstal GlusterFS.

Perbarui cache repositori.

sudo apt-get update

Instal paket GlusterFS menggunakan perintah berikut.

sudo apt-get install -y glusterfs-server

Mulai layanan glusterfs-server di semua node gluster.

sudo service glusterfs-server start

Pastikan layanan glusterfs berjalan dengan baik.

raj@gluster1:~$ sudo service glusterfs-server status

● glusterfs-server.service - LSB: GlusterFS server
   Loaded: loaded (/etc/init.d/glusterfs-server; bad; vendor preset: enabled)
   Active: active (running) since Sat 2016-09-24 21:47:20 IST; 1min 6s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1570 ExecStop=/etc/init.d/glusterfs-server stop (code=exited, status=0/SUCCESS)
  Process: 1664 ExecStart=/etc/init.d/glusterfs-server start (code=exited, status=0/SUCCESS)
    Tasks: 7 (limit: 512)
   Memory: 25.5M
      CPU: 3.552s
   CGroup: /system.slice/glusterfs-server.service
           └─1673 /usr/sbin/glusterd -p /var/run/glusterd.pid

Sep 24 21:47:16 gluster1.itzgeek.local systemd[1]: Starting LSB: GlusterFS server...
Sep 24 21:47:16 gluster1.itzgeek.local glusterfs-server[1664]:  * Starting glusterd service glusterd
Sep 24 21:47:20 gluster1.itzgeek.local glusterfs-server[1664]:    ...done.
Sep 24 21:47:20 gluster1.itzgeek.local systemd[1]: Started LSB: GlusterFS server.

Konfigurasikan Firewall:

Anda perlu menonaktifkan firewall atau mengonfigurasi firewall untuk mengizinkan semua koneksi dalam sebuah cluster.

sudo iptables -I INPUT -p all -s <ip-address> -j ACCEPT

Tambahkan Penyimpanan:

Dengan asumsi bahwa Anda memiliki satu hard disk cadangan di mesin Anda, /dev/sdb adalah yang akan saya gunakan di sini untuk batu bata. Buat satu partisi pada hard disk cadangan seperti di bawah ini.

Anda perlu melakukan langkah-langkah di bawah ini pada kedua node.

sudo fdisk /dev/sdb

Format partisi yang dibuat dengan sistem file pilihan Anda.

sudo mkfs.ext4 /dev/sdb1

Pasang disk pada direktori bernama /data/gluster .

sudo mkdir -p /data/gluster
sudo mount /dev/sdb1 /data/gluster

Tambahkan entri ke /etc/fstab untuk menjaga mount tetap ada saat reboot.

echo "/dev/sdb1 /data/gluster ext4 defaults 0 0" | sudo tee --append /etc/fstab

Konfigurasi GlusterFS di Ubuntu 16.04:

Sebelum membuat volume, kita perlu membuat kumpulan penyimpanan tepercaya dengan menambahkan gluster2.itzgeek.local . Anda dapat menjalankan perintah konfigurasi GlusterFS di salah satu server di cluster yang akan menjalankan perintah yang sama di semua server lainnya.

Di sini saya akan menjalankan semua perintah GlusterFS di gluster1.itzgeek.local simpul.

raj@gluster1:~$ sudo gluster peer probe gluster2.itzgeek.local
peer probe: success.

Verifikasi status kumpulan penyimpanan tepercaya.

raj@gluster1:~$ sudo gluster peer status

Number of Peers: 1

Hostname: gluster2.itzgeek.local
Uuid: 51470928-dfa8-42e1-a221-d7bbcb8c13bd
State: Peer in Cluster (Connected)

Buat daftar kumpulan penyimpanan.

raj@gluster1:~$ sudo gluster pool list

UUID                                    Hostname                State
51470928-dfa8-42e1-a221-d7bbcb8c13bd    gluster2.itzgeek.local  Connected
dc7c1639-d21c-4adf-b28f-5150229e6980    localhost               Connected

Mengatur Volume GlusterFS:

Buat bata (direktori) bernama “gvol0 ” di sistem file yang terpasang di kedua node.

sudo mkdir -p /data/gluster/gvol0

Karena kita akan menggunakan volume yang direplikasi, maka buatlah volume dengan nama “gvol0 ” dengan dua replika.

raj@gluster1:~$ sudo gluster volume create gvol0 replica 2 gluster1.itzgeek.local:/data/gluster/gvol0 gluster2.itzgeek.local:/data/gluster/gvol0
volume create: gvol0: success: please start the volume to access data

Mulai volumenya.

raj@gluster1:~$ sudo gluster volume start gvol0
volume start: gvol0: success

Periksa status volume yang dibuat.

raj@gluster1:~$ sudo gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: ca102e4b-6cd1-4d9d-9c5a-03b882c76da0
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1.itzgeek.local:/data/gluster/gvol0
Brick2: gluster2.itzgeek.local:/data/gluster/gvol0
Options Reconfigured:
transport.address-family: inet
performance.readdir-ahead: on
nfs.disable: on

Siapkan Klien GlusterFS:

Instal glusterfs-client paket untuk mendukung pemasangan sistem file GlusterFS. Jalankan semua perintah sebagai root pengguna.

$ su -

### CentOS / RHEL ###
yum install -y glusterfs-client

### Ubuntu / Debian ###
apt-get install -y glusterfs-client

Buat direktori untuk memasang sistem file GlusterFS.

mkdir -p /mnt/glusterfs

Sekarang, pasang sistem file GlusterFS ke /mnt/glusterfs menggunakan perintah berikut.

mount -t glusterfs gluster1.itzgeek.local:/gvol0 /mnt/glusterfs

Anda juga dapat menggunakan gluster2.itzgeek.local bukannya gluster1.itzgeek.com pada perintah di atas.

Verifikasi sistem file GlusterFS yang terpasang.

[root@client ~]# df -hP /mnt/glusterfs
Filesystem                     Size  Used Avail Use% Mounted on
gluster1.itzgeek.local:/gvol0  4.8G   11M  4.6G   1% /mnt/glusterfs

Anda juga dapat menggunakan perintah di bawah ini untuk memverifikasi sistem file GlusterFS.

[root@client ~]# cat /proc/mounts
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=490448k,nr_inodes=122612,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/mapper/centos-root / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
/dev/mapper/centos-home /home xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=100136k,mode=700 0 0
gluster1.itzgeek.local:/gvol0 /mnt/glusterfs fuse.glusterfs rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0

Tambahkan entri di bawah ini ke /etc/fstab untuk dipasang secara otomatis selama boot sistem.

gluster1.itzgeek.local:/gvol0 /mnt/glusterfs glusterfs  defaults,_netdev 0 0

Uji Replikasi GlusterFS dan Ketersediaan Tinggi:

Sisi Server GlusterFS:

Untuk memeriksa replikasi, pasang volume GlusterFS yang dibuat pada node penyimpanan yang sama.

raj@gluster1:~$ sudo mount -t glusterfs gluster1.itzgeek.local:/gvol0 /mnt
raj@gluster2:~$ sudo mount -t glusterfs gluster2.itzgeek.local:/gvol0 /mnt

Data di dalam /mnt direktori kedua node akan selalu sama (replikasi).

Sisi Klien GlusterFS:

Mari buat beberapa file pada sistem file yang terpasang di client.itzgeek.local.

touch /mnt/glusterfs/file1
touch /mnt/glusterfs/file2

Verifikasi file yang dibuat.

[root@client ~]# ll /mnt/glusterfs/
total 0
-rw-r--r--. 1 root root 0 Sep 26 11:22 file1
-rw-r--r--. 1 root root 0 Sep 26 11:22 file2

Uji kedua node GlusterFS apakah keduanya memiliki data yang sama di dalam /mnt .

raj@gluster1:~$ ll /mnt/
total 12
drwxr-xr-x  4 root root 4096 Sep 26 20:52 ./
drwxr-xr-x 24 root root 4096 Sep 25 21:57 ../
-rw-r--r--  1 root root    0 Sep 26 20:52 file1
-rw-r--r--  1 root root    0 Sep 26 20:52 file2


raj@gluster2:~$ ls -al /mnt/
total 12
drwxr-xr-x  4 root root 4096 Sep 26 06:30 .
drwxr-xr-x 23 root root 4096 Sep 24 08:39 ..
-rw-r--r--  1 root root    0 Sep 26  2016 file1
-rw-r--r--  1 root root    0 Sep 26  2016 file2

Seperti yang Anda ketahui, kami telah memasang volume GlusterFS dari gluster1.itzgeek.local di client.itzgeek.local , sekarang saatnya untuk menguji ketersediaan volume yang tinggi dengan mematikan node.

raj@gluster1:~$ sudo poweroff

Sekarang uji ketersediaan file, Anda akan melihat file yang kami buat baru-baru ini meskipun node sedang down.

[root@client ~]# ll /mnt/glusterfs/
total 0
-rw-r--r--. 1 root root 0 Sep 26 11:22 file1
-rw-r--r--. 1 root root 0 Sep 26 11:22 file2
Anda mungkin mengalami kelambatan dalam menjalankan perintah pada sistem file GlusterFS yang dipasang karena peralihan GlusterFS ke gluster2.itzgeek.local ketika client.itzgeek.local tidak dapat menjangkau gluster1.itzgeek.local .

Buat beberapa file lagi di sistem file GlusterFS untuk memeriksa replikasi.

touch /mnt/glusterfs/file3
touch /mnt/glusterfs/file4

Verifikasi jumlah file.

[root@client ~]# ll /mnt/glusterfs/
total 0
-rw-r--r--. 1 root root 0 Sep 26 11:22 file1
-rw-r--r--. 1 root root 0 Sep 26 11:22 file2
-rw-r--r--. 1 root root 0 Sep 26 11:26 file3
-rw-r--r--. 1 root root 0 Sep 26 11:26 file4

Sejak gluster1 tidak aktif, semua data Anda sekarang ditulis di gluster2.itzgeek.local karena Ketersediaan Tinggi. Sekarang nyalakan node1 (gluster1.itzgeek.local ).

Periksa /mnt dari gluster1.itzgeekk.local; Anda akan melihat keempat file di direktori, ini mengonfirmasi bahwa replikasi berfungsi seperti yang diharapkan.

raj@gluster1:~$ sudo mount -t glusterfs gluster1.itzgeek.local:/gvol0 /mnt
[sudo] password for raj:

raj@gluster1:~$ ll /mnt/
total 12
drwxr-xr-x  4 root root 4096 Sep 26 20:59 ./
drwxr-xr-x 24 root root 4096 Sep 25 21:57 ../
-rw-r--r--  1 root root    0 Sep 26 20:52 file1
-rw-r--r--  1 root root    0 Sep 26 20:52 file2
-rw-r--r--  1 root root    0 Sep 26 20:56 file3
-rw-r--r--  1 root root    0 Sep 26 20:56 file4

Itu saja.


Debian
  1. Cara menginstal dan mengkonfigurasi buruh pelabuhan di Debian 11

  2. Cara Menginstal dan Mengkonfigurasi Mariadb 10 di Debian 11

  3. Instal dan konfigurasikan Apache dan PHP dengan cgi di Ubuntu atau Debian

  1. Instal dan Konfigurasi Fail2ban di Debian 10

  2. Cara menginstal dan mengkonfigurasi MongoDB 5 di Debian 11

  3. Cara menginstal dan mengkonfigurasi Redis 6 di Debian 11

  1. Cara Menginstal dan Mengonfigurasi Redis di Debian 9

  2. Cara Menginstal dan Mengkonfigurasi Redmine di Debian 9

  3. Cara Menginstal dan Mengkonfigurasi Webmin di Debian / Ubuntu