GNU/Linux >> Belajar Linux >  >> Cent OS

Cara membangun Cluster Penyimpanan Terdistribusi Ceph di CentOS 7

Ceph adalah platform penyimpanan sumber terbuka yang banyak digunakan. Ini memberikan kinerja tinggi, keandalan, dan skalabilitas. Sistem penyimpanan terdistribusi gratis Ceph menyediakan antarmuka untuk objek, blok, dan penyimpanan tingkat file. Ceph dibangun untuk menyediakan sistem penyimpanan terdistribusi tanpa satu titik kegagalan.

Dalam tutorial ini, saya akan memandu Anda untuk menginstal dan membangun cluster Ceph di CentOS 7. Sebuah cluster Ceph membutuhkan komponen Ceph ini:

  • OSD Ceph (ceph-osd) - Menangani penyimpanan data, replikasi dan pemulihan data. Sebuah cluster Ceph membutuhkan setidaknya dua server Ceph OSD. Saya akan menggunakan tiga server CentOS 7 OSD di sini.
  • Ceph Monitor (ceph-mon) - Memantau status cluster, peta OSD, dan peta CRUSH. Saya akan menggunakan satu server.
  • Server Data Meta Ceph (ceph-mds) - Ini diperlukan untuk menggunakan Ceph sebagai Sistem File.

Prasyarat

  • 6 node server, semuanya dengan CentOS 7 terinstal.
  • Hak istimewa root pada semua node.

Server dalam tutorial ini akan menggunakan nama host dan alamat IP berikut.

nama host Alamat IP

ceph-admin      10.0.15.10
mon1              10.0.15.11
osd1               10.0.15.21
osd2     . br />klien               10.0.15.15

Semua node OSD membutuhkan dua partisi, satu partisi root (/) dan satu partisi kosong yang nantinya digunakan sebagai penyimpanan data Ceph.

Langkah 1 - Konfigurasikan Semua Node

Pada langkah ini, kita akan mengkonfigurasi semua 6 node untuk mempersiapkan mereka untuk instalasi Ceph Cluster. Anda harus mengikuti dan menjalankan semua perintah di bawah ini di semua node. Dan pastikan ssh-server terinstal di semua node.

Buat Pengguna Ceph

Buat pengguna baru bernama 'cephuser ' di semua node.

useradd -d /home/cephuser -m cephuser
passwd cephuser

Setelah membuat pengguna baru, kita perlu mengkonfigurasi sudo untuk 'cephuser'. Dia harus dapat menjalankan perintah sebagai root dan mendapatkan hak akses root tanpa kata sandi.

Jalankan perintah di bawah ini untuk membuat file sudoers bagi pengguna dan edit file /etc/sudoers dengan sed.

echo "cephuser ALL =(root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

Instal dan Konfigurasi NTP

Instal NTP untuk menyinkronkan tanggal dan waktu di semua node. Jalankan perintah ntpdate untuk menyetel tanggal dan waktu melalui protokol NTP, kita akan menggunakan server NTP us pool. Kemudian mulai dan aktifkan server NTP untuk berjalan saat boot.

yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl aktifkan ntpd.service
systemctl start ntpd .layanan

Instal Open-vm-tools

Jika Anda menjalankan semua node di dalam VMware, Anda perlu menginstal utilitas virtualisasi ini. Jika tidak, lewati langkah ini.

yum install -y open-vm-tools

Nonaktifkan SELinux

Nonaktifkan SELinux di semua node dengan mengedit file konfigurasi SELinux dengan sed stream editor.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Konfigurasikan File Host

Edit file /etc/hosts di semua node dengan editor vim dan tambahkan baris dengan alamat IP dan nama host dari semua node cluster.

vim /etc/hosts

Rekatkan konfigurasi di bawah ini:

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21       osd1
10.0.15.22       osd2
10.0.15       osd1
10.0.15.22       osd2
10.0.15     . /pra>

Simpan file dan keluar dari vim.

Sekarang Anda dapat mencoba melakukan ping antara server dengan nama host mereka untuk menguji konektivitas jaringan. Contoh:

ping -c 5 mon1

Langkah 2 - Konfigurasi Server SSH

Pada langkah ini, saya akan mengonfigurasi node ceph-admin . Node admin digunakan untuk mengkonfigurasi node monitor dan node osd. Masuk ke node ceph-admin dan jadilah 'cephuser '.

ssh [dilindungi email]
su - cephuser

Node admin digunakan untuk menginstal dan mengkonfigurasi semua node cluster, sehingga pengguna di node ceph-admin harus memiliki hak untuk terhubung ke semua node tanpa kata sandi. Kita harus mengonfigurasi akses SSH tanpa kata sandi untuk 'cephuser' di node 'ceph-admin'.

Buat kunci ssh untuk 'cephuser '.

ssh-keygen

biarkan frasa sandi kosong/kosong.

Selanjutnya, buat file konfigurasi untuk konfigurasi ssh.

vim ~/.ssh/config

Tempelkan konfigurasi di bawah ini:

Host ceph-admin
        Hostname ceph-admin
        User cephuser

Host mon1
       Hostname mon1
       User cephuser

Host osd1
        Hostname osd1
       User cephuser

Host osd2
       Hostname osd2
       User cephuser

Host>        Hostname osd3
        User cephuser

Host client
        Hostname client
        User cephuser

Simpan file.

Ubah izin file konfigurasi.

chmod 644 ~/.ssh/config

Sekarang tambahkan kunci SSH ke semua node dengan perintah ssh-copy-id.

ssh-keyscan osd1 osd2 osd3 mon1 client>> ~/.ssh/known_hosts
ssh-copy-id osd1
ssh-copy-id osd2
ssh-copy-id osd3
ssh-copy-id mon1
ssh-copy-id klien

Ketikkan kata sandi 'cephuser' Anda saat diminta.

Setelah selesai, coba akses server osd1 dari node ceph-admin.

ssh osd1

Langkah 3 - Konfigurasi Firewalld

Kami akan menggunakan Firewalld untuk melindungi sistem. Pada langkah ini, kita akan mengaktifkan firewald di semua node, lalu membuka port yang dibutuhkan oleh ceph-admon, ceph-mon dan ceph-osd.

Masuk ke node ceph-admin dan mulai firewalld.

ssh [dilindungi email]
systemctl start firewalld
systemctl aktifkan firewalld

Buka port 80, 2003 dan 4505-4506, lalu muat ulang firewall.

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
sudo firewall-cmd --reload

Dari node ceph-admin, login ke node monitor 'mon1' dan mulai firewalld.

ssh mon1
sudo systemctl start firewalld
sudo systemctl aktifkan firewalld

Buka port baru pada node monitor Ceph dan muat ulang firewall.

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
sudo firewall-cmd --reload

Terakhir, buka port 6800-7300 di setiap node osd - osd1, osd2, dan os3.

Login ke setiap node osd dari node ceph-admin.

ssh osd1
sudo systemctl start firewalld
sudo systemctl aktifkan firewalld

Buka port dan muat ulang firewall.

sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reload

Konfigurasi firewalld selesai.

Langkah 4 - Konfigurasikan Node OSD Ceph

Dalam tutorial ini, kita memiliki 3 node OSD dan setiap node memiliki dua partisi.

  1. /dev/sda untuk partisi root.
  2. /dev/sdb adalah partisi kosong - 30GB dalam kasus saya.

Kami akan menggunakan /dev/sdb untuk cakram Ceph. Dari node ceph-admin, login ke semua node OSD dan format partisi /dev/sdb dengan XFS .

ssh osd1
ssh osd2
ssh osd3

Periksa partisi dengan perintah fdisk.

sudo fdisk -l /dev/sdb

Format partisi /dev/sdb dengan sistem file XFS dan dengan tabel partisi GPT dengan menggunakan perintah parted.

sudo parted -s /dev/sdb mklabel gpt mkpart primer xfs 0% 100%
sudo mkfs.xfs /dev/sdb -f

Sekarang periksa partisi, dan Anda akan mendapatkan partisi xfs /dev/sdb.

sudo blkid -o nilai -s TYPE /dev/sdb

Langkah 5 - Bangun Cluster Ceph

Pada langkah ini, kita akan menginstal Ceph pada semua node dari node ceph-admin.

Masuk ke node ceph-admin.

ssh [dilindungi email]
su - cephuser

Instal ceph-deploy pada node ceph-admin

Tambahkan repositori Ceph dan instal alat penerapan Ceph 'ceph-deploy ' dengan perintah yum.

sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum update -y &&sudo yum instal ceph-deploy -y

Pastikan semua node diperbarui.

Setelah alat ceph-deploy diinstal, buat direktori baru untuk konfigurasi cluster ceph.

Buat Konfigurasi Cluster Baru

Buat direktori cluster baru.

kluster mkdir
cd cluster/

Selanjutnya, buat konfigurasi cluster baru dengan 'ceph-deploy ' perintah, tentukan node monitor menjadi 'mon1 '.

ceph-deploy mon1 baru

Perintah tersebut akan menghasilkan file konfigurasi cluster Ceph 'ceph.conf' di direktori cluster.

Edit file ceph.conf dengan vim.

vim ceph.conf

Di bawah blok [global], rekatkan konfigurasi di bawah.

# Alamat jaringan Anda
jaringan publik =10.0.15.0/24
ukuran default kumpulan osd =2

Simpan file dan keluar dari vim.

Instal Ceph di Semua Node

Sekarang instal Ceph di semua node lain dari node ceph-admin. Ini dapat dilakukan dengan satu perintah.

ceph-deploy install ceph-admin mon1 osd1 osd2 osd3

Perintah tersebut akan menginstal Ceph secara otomatis di semua node:mon1, osd1-3 dan ceph-admin - Instalasi akan memakan waktu.

Sekarang terapkan ceph-mon pada node mon1.

ceph-deploy mon create-initial

Perintah akan membuat kunci monitor, memeriksa dan mendapatkan kunci dengan perintah 'ceph'.

ceph-deploy assemblekeys mon1

Menambahkan OSDS ke Cluster

Ketika Ceph telah terinstal di semua node, maka kita dapat menambahkan daemon OSD ke cluster. Daemon OSD akan membuat partisi data dan jurnal mereka pada disk /dev/sdb.

Pastikan partisi /dev/sdb tersedia di semua node OSD.

ceph-deploy daftar disk osd1 osd2 osd3

Anda akan melihat disk /dev/sdb dengan format XFS.

Selanjutnya, hapus tabel partisi /dev/sdb pada semua node dengan opsi zap.

ceph-deploy disk zap osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb

Perintah tersebut akan menghapus semua data di /dev/sdb pada node Ceph OSD.

Sekarang siapkan semua node OSDS. Pastikan tidak ada kesalahan dalam hasil.

ceph-deploy osd mempersiapkan osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb

Jika Anda melihat hasil osd1-3 siap untuk penggunaan OSD, berarti penerapan telah berhasil.

Aktifkan OSD dengan perintah di bawah ini:

ceph-deploy osd aktifkan osd1:/dev/sdb1 osd2:/dev/sdb1 osd3:/dev/sdb1

Periksa output untuk kesalahan sebelum Anda melanjutkan. Sekarang Anda dapat memeriksa disk sdb pada node OSD dengan perintah list.

ceph-deploy daftar disk osd1 osd2 osd3

Hasilnya adalah bahwa /dev/sdb sekarang memiliki dua partisi:

  1. /dev/sdb1 - Data Ceph
  2. /dev/sdb2 - Jurnal Ceph

Atau Anda dapat memeriksanya langsung di node OSD dengan fdisk.

ssh osd1
sudo fdisk -l /dev/sdb

Selanjutnya, terapkan kunci pengelolaan ke semua node terkait.

ceph-deploy admin ceph-admin mon1 osd1 osd2 osd3

Ubah izin file kunci dengan menjalankan perintah di bawah ini pada semua node.

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Cluster Ceph di CentOS 7 telah dibuat.

Langkah 6 - Menguji penyiapan Ceph

Pada langkah 4, kami telah menginstal dan membuat cluster Ceph baru kami, kemudian kami menambahkan node OSDS ke cluster. Sekarang kita dapat menguji kluster dan memastikan tidak ada kesalahan dalam penyiapan kluster.

Dari node ceph-admin, masuk ke server monitor ceph 'mon1 '.

ssh mon1

Jalankan perintah di bawah untuk memeriksa kondisi cluster.

kesehatan sudo ceph

Sekarang periksa status cluster.

sudo ceph -s

Dan Anda akan melihat hasilnya di bawah ini:

Pastikan kesehatan Ceph OK dan ada node monitor 'mon1 ' dengan alamat IP '10.0.15.11 '. Seharusnya ada 3 OSD server dan semuanya harus aktif dan berjalan, dan harus ada disk yang tersedia sekitar 75 GB - Partisi Ceph Data 3x25GB.

Selamat, Anda telah berhasil membangun Cluster Ceph baru.

Di bagian selanjutnya dari tutorial Ceph, saya akan menunjukkan cara menggunakan Ceph sebagai Block Device atau memasangnya sebagai FileSystem.


Cent OS
  1. Penyimpanan Replika Terdistribusi Di Empat Node Penyimpanan Dengan GlusterFS Pada CentOS 5.4

  2. Penyimpanan Terdistribusi Di Empat Node Penyimpanan Dengan GlusterFS Pada CentOS 5.4

  3. Penyimpanan Terdistribusi Di Empat Node Penyimpanan Dengan GlusterFS 3.2.x Pada CentOS 6.3

  1. Cara Memasang Cluster Kubernetes di CentOS 7

  2. Penyimpanan Replika Terdistribusi Di Empat Node Penyimpanan Dengan GlusterFS 3.2.x Pada CentOS 6.3

  3. Cara Membuat Cluster Penyimpanan Ceph di Ubuntu 16.04

  1. Cara Menginstal Go di CentOS 8

  2. Cara Mengatur Penyimpanan GlusterFS di CentOS 7 / RHEL 7

  3. Panduan Cepat untuk Menginstal dan Mengonfigurasi Ceph Cluster di CentOS 7