GNU/Linux >> Belajar Linux >  >> Linux

Mulailah dengan GlusterFS - pertimbangan dan pemasangan

Artikel ini diperbarui untuk mencakup instalasi GlusterFS® 7 pada CentOS® 7 dan Ubuntu® 18.04. Semua karya asli dalam dokumen ini sama, kecuali langkah di mana Anda membuat volume dengan replika kata kunci.

Sebelum Anda mulai menggunakan GlusterFS, Anda harus memutuskan jenis volume yang Anda butuhkan untuk lingkungan Anda. Metode berikut paling sering digunakan untuk mencapai hasil yang berbeda.

Volume yang direplikasi

Jenis volume ini menyediakan replikasi file di beberapa bata. Ini adalah pilihan terbaik untuk lingkungan yang membutuhkan ketersediaan tinggi, keandalan tinggi, dan penyimpanan skalabel. Jenis volume ini berfungsi dengan baik jika Anda berencana untuk memasang sendiri volume GlusterFS, misalnya, sebagai root dokumen server web (/var/www ) atau serupa di mana semua file harus berada di node itu. Nilai diteruskan ke replika adalah jumlah node yang sama dalam volume.

File disalin ke setiap bata dalam volume, mirip dengan array disk independen yang berlebihan (RAID-1). Namun, Anda dapat memiliki tiga atau lebih batu bata atau jumlah batu bata ganjil. Ruang yang dapat digunakan adalah ukuran satu bata, dan semua file yang ditulis ke satu bata direplikasi ke semua yang lain. Volume jenis ini juga menawarkan peningkatan kinerja baca di sebagian besar lingkungan dan merupakan jenis volume yang paling umum digunakan saat klien berada di luar node GlusterFS itu sendiri.

Volume terdistribusi-replika

Mirip dengan RAID-10, jumlah bata yang genap harus digunakan. Ruang yang dapat digunakan adalah ukuran batu bata gabungan yang diteruskan ke replika nilai. Misalnya, jika ada empat bata berukuran 20 Gigabyte (GB) dan Anda lulus replika 2 untuk pembuatan, file Anda didistribusikan ke dua node (40 GB) dan direplikasi ke dua node. Dengan enam bata 20 GB dan replika 3 , file Anda didistribusikan ke tiga node (60 GB) dan direplikasi ke tiga node. Jika Anda menggunakan replika 2, mereka kemudian didistribusikan ke dua node (40 GB) dan direplikasi ke empat node secara berpasangan. Distribusi dan replikasi ini digunakan saat klien Anda berada di luar cluster, bukan self-mount lokal.

Prasyarat

  • Dua server atau lebih dengan penyimpanan terpisah. Contoh dalam artikel ini didasarkan pada server CentOS 7 dan Ubuntu 18.04.
  • Jaringan pribadi antar server. Contoh dalam artikel ini menggunakan 192.168.0.0/24 .

Build setup

Build yang dijelaskan dalam dokumen ini menggunakan penyiapan berikut:

  • Empat image server Rackspace Cloud dengan /dev/xvde partisi siap pakai untuk setiap bata
  • Satu Jaringan Pribadi Cloud di 192.168.0.0/24 untuk komunikasi GlusterFS
  • GlusterFS 7.1 diinstal dari repositori paket vendor

Menyiapkan server

Lakukan konfigurasi dan instalasi berikut untuk menyiapkan server:

  1. Konfigurasikan /etc/hosts .
  2. Instal pembaruan sistem operasi (OS).
  3. Instal perangkat lunak GlusterFS.
  4. Konfigurasikan akses jaringan.
  5. Hubungkan node GlusterFS.

Konfigurasikan /etc/hosts untuk komunikasi intra-node

Daripada menggunakan DNS, siapkan /etc/hosts pada setiap server dan memastikan bahwa server dapat berkomunikasi satu sama lain. Semua server memiliki nama glusterN sebagai nama host, jadi gunakan glusN untuk lapisan komunikasi pribadi antar server.

# vi /etc/hosts
192.168.0.1  glus-01
192.168.0.2  glus-02
192.168.0.3  glus-03
192.168.0.4  glus-04

# ping -c2 glus-01; ping -c2 glus-02;  ping -c2 glus-03;  ping -c2 glus-04
 

Instal paket

Jalankan perintah di bagian ini untuk melakukan langkah-langkah berikut:

  1. Instal pembaruan OS.
  2. Instal repositori GlusterFS dan paket GlusterFS.

CentOS

yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server
 

Sistem operasi Ubuntu

Repositori Ubuntu default telah menginstal GlusterFS 3.13.2. Gunakan perintah berikut untuk menginstal 7.1:

apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server
 

Konfigurasikan akses jaringan

CentOS

Gunakan perintah berikut untuk mengizinkan lalu lintas Gluster antara node Anda dan mengizinkan pemasangan klien:

firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent
 

Sistem operasi Ubuntu

Gunakan perintah berikut untuk mengizinkan semua lalu lintas melalui segmen jaringan pribadi Anda untuk memfasilitasi komunikasi Gluster:

ufw enable
ufw allow from 192.168.0.0/24
 

Siapkan batu bata

Jalankan perintah di bagian ini untuk melakukan langkah-langkah berikut:

  1. Perangkat blok partisi.
  2. Buat dasar manajer volume logis (LVM).
  3. Siapkan bata volume.

Batu bata yang mendasarinya adalah sistem file standar dan titik pemasangan. Pasang setiap bata sedemikian rupa untuk mencegah pengguna mengubah ke direktori dan menulis ke bata yang mendasarinya sendiri.

Peringatan: Menulis langsung ke batu bata akan merusak volume.

Batu bata harus unik per simpul, dan harus ada direktori di dalam titik pemasangan untuk digunakan dalam pembuatan volume. Mencoba membuat volume yang direplikasi dengan menggunakan level teratas dari titik pemasangan akan menghasilkan kesalahan dengan instruksi untuk menggunakan subdirektori.

Semua node

parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
 
  • glus-01

     mkdir /var/lib/gvol0/brick1
     
  • glus-02

     mkdir /var/lib/gvol0/brick2
     
  • glus-03

     mkdir /var/lib/gvol0/brick3
     
  • glus-04

     mkdir /var/lib/gvol0/brick4
     

Siapkan GlusterFS

Gunakan langkah-langkah di bawah ini untuk menjalankan penyiapan GlusterFS.

Mulai daemon glusterfsd

Anda dapat me-restart daemon pada saat run time dengan menggunakan perintah berikut:

systemctl enable glusterd
systemctl start glusterd
 

Bangun grup sebaya

Grup sejenis dikenal sebagai kolam penyimpanan tepercaya di GlusterFS.

  • glus-01

    gluster peer probe glus-02
    gluster peer probe glus-03
    gluster peer probe glus-04
    gluster peer status
     
  • glus-02

    gluster peer status
     
  • glus-03

    gluster peer status
     
  • glus-04

    gluster peer status
     

Sekarang Anda dapat memverifikasi status node dan kumpulan server gluster:

[root@gluster1 ~]# gluster pool list UUID Hostname State 734aea4c-fc4f-4971-ba3d-37bd5d9c35b8 glus-04 Connected d5c9e064-c06f-44d9-bf60-bae5fc881e16 glus-03 Connected 57027f23-bdf2-4a95-8eb6-ff9f936dc31e glus-02 Connected e64c5148-8942-4065-9654-169e20ed6f20 localhost Connected

Buat volume

Secara default, NFS glusterd memungkinkan baca/tulis global selama pembuatan volume, jadi Anda harus mengatur batasan otorisasi dasar hanya untuk subnet pribadi. glusterd secara otomatis memulai NFSd di setiap server dan mengekspor volume melaluinya dari masing-masing node. Alasan untuk perilaku ini adalah untuk menggunakan Filesystem klien asli di Userspace (FUSE) untuk memasang volume pada klien, klien harus menjalankan versi paket GlusterFS yang persis sama. Jika versinya berbeda, mungkin ada perbedaan dalam algoritme hashing yang digunakan oleh server dan klien, dan klien tidak akan dapat terhubung.

Volume yang direplikasi

Contoh berikut membuat replikasi ke keempat node. Setiap node berisi salinan semua data, dan ukuran volume adalah ukuran satu bata. Perhatikan bahwa output menunjukkan 1 x 4 = 4 .

Hanya satu simpul :

 gluster volume create gvol0 replica 4 transport tcp \
 glus-01:/var/lib/gvol0/brick1 \
 glus-02:/var/lib/gvol0/brick2 \
 glus-03:/var/lib/gvol0/brick3 \
 glus-04:/var/lib/gvol0/brick4
 gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
 

Volume terdistribusi-replika

Contoh ini membuat replikasi terdistribusi ke 2x2 node. Setiap pasangan node berisi data, dan ukuran volume adalah ukuran dua batu bata. Perhatikan bahwa output menunjukkan 2 x 2 = 4 .

Hanya satu simpul :

gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
 

Hapus volume

Setelah Anda memastikan bahwa tidak ada klien (baik lokal atau jarak jauh) yang memasang volume, Anda dapat menghentikan volume dan menghapusnya dengan menggunakan perintah berikut:

gluster volume stop gvol0
gluster volume delete gvol0
 

Membersihkan batu bata

Jika batu bata digunakan dalam jumlah banyak dan harus dibongkar, Anda dapat menggunakan salah satu metode berikut:

GlusterFS menetapkan atribut pada subdirektori bata. Jika Anda menghapus atribut ini, batu bata dapat digunakan kembali.

  • glus-01:

    setfattr -x terpercaya.glusterfs.volume-id /var/lib/gvol0/brick1/setfattr -x terpercaya.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs

  • glus-02:

    setfattr -x terpercaya.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x terpercaya.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs

  • glus-03:

    setfattr -x terpercaya.glusterfs.volume-id /var/lib/gvol0/brick3/setfattr -x terpercaya.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs

  • glus-04:

    setfattr -x terpercaya.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x terpercaya.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs

Atau, Anda dapat menghapus subdirektori lalu membuatnya kembali.

  • glus-01

    rm -rf /var/lib/gvol0/brick1mkdir /var/lib/gvol0/brick1

  • glus-02:

    rm -rf /var/lib/gvol0/brick2mkdir /var/lib/gvol0/brick2

  • glus-03:

    rm -rf /var/lib/gvol0/brick3mkdir /var/lib/gvol0/brick3

  • glus-04:

    rm -rf /var/lib/gvol0/brick4mkdir /var/lib/gvol0/brick4

Tambahkan batu bata

Anda dapat menambahkan lebih banyak batu bata ke volume yang sedang berjalan. Tambahkan batu bata tambahan ke contoh volume yang direplikasi di atas dengan menggunakan perintah berikut:

gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5
 

ANDA dapat menggunakan add-brick perintah untuk mengubah tata letak volume Anda, misalnya, untuk mengubah volume terdistribusi dua simpul menjadi volume terdistribusi terdistribusi empat simpul. Setelah operasi seperti itu, Anda harus menyeimbangkan kembali volume Anda. File baru secara otomatis dibuat di node baru, tetapi yang lama tidak dipindahkan.

gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status

## If needed (something didn't work right)
gluster volume rebalance gvol0 stop
 

Opsi volume

Untuk melihat opsi volume yang dikonfigurasi, jalankan perintah berikut:

gluster volume info gvol0
 

Berikut ini adalah contoh outputnya:

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
 

Untuk menyetel opsi volume, gunakan set kata kunci sebagai berikut:

gluster volume set gvol0 performance.write-behind off
volume set: success
 

Untuk menghapus opsi ke volume kembali ke default, gunakan setel ulang kata kunci sebagai berikut:

gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful
 

Klien dipasang

Metode yang disukai klien untuk memasang volume GlusterFS adalah dengan menggunakan klien FUSE asli. Pemasangan NFS dimungkinkan saat GlusterFS diterapkan bersama-sama dengan NFS-Ganesha®.

klien FUSE

Klien FUSE memungkinkan pemasangan terjadi dengan koneksi gaya "round robin" GlusterFS. Di /etc/fstab , nama satu node digunakan. Namun, mekanisme internal memungkinkan node tersebut gagal, dan klien berpindah ke node lain yang terhubung di kumpulan penyimpanan tepercaya.

CentOS :

yum install -y centos-release-gluster7
yum install -y glusterfs-fuse
 

Ubuntu :

add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client
 

Umum :

vi /etc/hosts
192.168.0.2  glus-01
192.168.0.4  glus-02
192.168.0.1  glus-03
192.168.0.3  glus-04

`modprobe fuse
 echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
 mkdir -p /mnt/gluster/gvol0
 mount /mnt/gluster/gvol0`
 

Referensi

  • https://www.gluster.org/announcing-gluster-7-0/
  • https://docs.gluster.org/en/latest/
  • https://wiki.centos.org/HowTos/GlusterFSonCentOS
  • https://kifarunix.com/install-and-setup-glusterfs-on-ubuntu-18-04/
  • https://launchpad.net/~gluster

Artikel berikutnya

Pemecahan Masalah GlusterFS


Linux
  1. Bagaimana Memulai Dengan Server Cloud FreeBSD

  2. Mulai dengan Server Cloud

  3. Memulai Magento di Debian 10

  1. Memulai NetworkManager di Linux

  2. Bagaimana Anda memulai Linux?

  3. Memulai Tasksel di Debian

  1. Memulai Lumina untuk desktop Linux Anda

  2. 10 cara untuk memulai dengan Linux

  3. Mulailah dengan Lateks di Linux