Ceph adalah platform penyimpanan open source, menyediakan kinerja tinggi, keandalan, dan skalabilitas. Ini adalah sistem penyimpanan terdistribusi gratis yang menyediakan antarmuka untuk objek, blok, dan penyimpanan tingkat file dan dapat beroperasi tanpa satu titik kegagalan.
Dalam tutorial ini, saya akan memandu Anda untuk menginstal dan membangun cluster Ceph di server Ubuntu 16.04. Sebuah cluster Ceph terdiri dari komponen-komponen ini:
- OSD Ceph (ceph-osd) - Menangani penyimpanan data, replikasi data, dan pemulihan. Sebuah cluster Ceph membutuhkan setidaknya dua server Ceph OSD. Kami akan menggunakan tiga server Ubuntu 16.04 dalam pengaturan ini.
- Ceph Monitor (ceph-mon) - Memantau status cluster dan menjalankan peta OSD dan peta CRUSH. Kami akan menggunakan satu server di sini.
- Server Data Meta Ceph (ceph-mds) - ini diperlukan jika Anda ingin menggunakan Ceph sebagai Sistem File.
Prasyarat
- 6 node server dengan server Ubuntu 16.04 terinstal
- Hak istimewa root pada semua node
Saya akan menggunakan nama host / pengaturan IP berikut:
nama host Alamat IP
ceph-admin 10.0.15.10
mon1 10.0.15.11
osd1 10.0.15.21
. br />klien 10.0.15.15
Langkah 1 - Konfigurasikan Semua Node
Pada langkah ini, kami akan mengonfigurasi 6 node untuk mempersiapkannya untuk instalasi perangkat lunak Ceph Cluster. Jadi Anda harus mengikuti dan menjalankan 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 -m -s /bin/bash cephuser
passwd cephuser
Setelah membuat pengguna baru, kita perlu mengkonfigurasi cephuser untuk hak sudo tanpa kata sandi. Artinya 'cephuser' dapat berjalan dan mendapatkan hak sudo tanpa harus memasukkan password terlebih dahulu.
Jalankan perintah di bawah ini untuk mencapainya.
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 mengatur tanggal dan waktu melalui NTP. Kami akan menggunakan server NTP pool AS. Kemudian mulai dan aktifkan server NTP untuk berjalan saat boot.
sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl aktifkan ntp
systemctl start ntp
Instal Open-vm-tools
Jika Anda menjalankan semua node di dalam VMware, Anda perlu menginstal utilitas virtualisasi ini.
sudo apt-get install -y open-vm-tools
Instal Python dan parted
Dalam tutorial ini, kita membutuhkan paket python untuk membangun ceph-cluster. Instal python dan python-pip.
sudo apt-get install -y python python-pip parted
Konfigurasikan File Host
Edit file host di semua node dengan editor vim.
vim /etc/hosts
Rekatkan konfigurasi di bawah ini:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 ceph-osd1
10.0.15.22 ceph-osd2
.15.d>10.0.15.15 ceph-client
Simpan file host dan keluar dari editor vim.
Sekarang Anda dapat mencoba melakukan ping antara nama host server untuk menguji konektivitas jaringan.
ping -c 5 mon1
Langkah 2 - Konfigurasi Server SSH
Pada langkah ini, kita akan mengonfigurasi node ceph-admin . Node admin digunakan untuk mengkonfigurasi node monitor dan node osd. Masuk ke node ceph-admin dan akses '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 perlu 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
Rekatkan konfigurasi di bawah ini:
Host ceph-admin
Hostname ceph-admin
User cephuser
Host mon1
Hostname mon1
User cephuser
Host ceph-osd1
Hostname ceph-osd1
User cephuser
Host ceph-osd2
Hostname ceph-osd2
br />Host ceph-osd3
Hostname ceph-osd3
User cephuser
Host ceph-client
Hostname ceph-client
Simpan file dan keluar dari vim.
Ubah izin file konfigurasi menjadi 644.
chmod 644 ~/.ssh/config
Sekarang tambahkan kunci ke semua node dengan perintah ssh-copy-id.
ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1>> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph- osd2
ssh-copy-id ceph-osd3
ssh-copy-id mon1
Ketikkan kata sandi cephuser Anda saat diminta.
Sekarang coba akses server osd1 dari node ceph-admin untuk menguji apakah login tanpa kata sandi berfungsi.
ssh ceph-osd1
Langkah 3 - Konfigurasikan Firewall Ubuntu
Untuk alasan keamanan, kita perlu mengaktifkan firewall di server. Sebaiknya kita menggunakan Ufw (Uncomplicated Firewall), firewall default Ubuntu, untuk melindungi sistem. Pada langkah ini, kita akan mengaktifkan ufw pada semua node, kemudian membuka port yang dibutuhkan oleh ceph-admin, ceph-mon dan ceph-osd.
Masuk ke node ceph-admin dan instal paket ufw.
ssh [dilindungi email]
sudo apt-get install -y ufw
Buka port 80, 2003 dan 4505-4506, lalu muat ulang firewalld.
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp
Mulai dan aktifkan ufw untuk memulai saat boot.
sudo ufw aktifkan
Dari node ceph-admin, login ke node monitor 'mon1' dan instal ufw.
ssh mon1
sudo apt-get install -y ufw
Buka port untuk node monitor ceph dan mulai ufw.
sudo ufw izinkan 22/tcp
sudo ufw izinkan 6789/tcp
sudo ufw aktifkan
Terakhir, buka port berikut pada setiap node osd:ceph-osd1, ceph-osd2 dan ceph-osd3 - port 6800-7300.
Login ke setiap node ceph-osd dari ceph-admin, dan instal ufw.
ssh ceph-osd1
sudo apt-get install -y ufw
Buka port pada node osd dan muat ulang firewalld.
sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable
Konfigurasi firewall ufw selesai.
Langkah 4 - Konfigurasikan Node OSD Ceph
Dalam tutorial ini, kami memiliki 3 node OSD, masing-masing node ini memiliki dua partisi hard disk.
- /dev/sda untuk partisi root
- /dev/sdb adalah partisi kosong - 20GB
Kami akan menggunakan /dev/sdb untuk ceph disk. Dari node ceph-admin, login ke semua node OSD dan format partisi /dev/sdb dengan XFS sistem file.
ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3
Periksa skema partisi dengan perintah fdisk.
sudo fdisk -l /dev/sdb
Format partisi /dev/sdb dengan sistem file XFS dan dengan tabel partisi GPT menggunakan perintah parted.
sudo parted -s /dev/sdb mklabel gpt mkpart primer xfs 0% 100%
Selanjutnya, format partisi dalam format XFS dengan perintah mkfs.
sudo mkfs.xfs -f /dev/sdb
Sekarang periksa partisi, dan Anda akan melihat partisi XFS /dev/sdb.
sudo fdisk -s /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 ceph-admin. Untuk memulai, login ke node ceph-admin.
ssh [dilindungi email]
su - cephuser
Instal ceph-deploy pada node ceph-admin
Pada langkah pertama kami telah menginstal python dan python-pip ke sistem. Sekarang kita perlu menginstal alat penyebaran Ceph 'ceph-deploy ' dari repositori pypi python.
Instal ceph-deploy pada node ceph-admin dengan perintah pip.
sudo pip install ceph-deploy
Catatan:Pastikan semua node diperbarui.
Setelah alat ceph-deploy diinstal, buat direktori baru untuk konfigurasi cluster Ceph.
Buat Cluster baru
Buat direktori cluster baru.
kluster mkdir
cd cluster/
Selanjutnya, buat cluster baru dengan 'ceph-deploy ' perintah dengan mendefinisikan node monitor '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 ini.
# Alamat jaringan Anda
jaringan publik =10.0.15.0/24
ukuran default kumpulan osd =2
Simpan file dan keluar dari editor.
Instal Ceph di Semua Node
Sekarang instal Ceph di semua node dari node ceph-admin dengan satu perintah.
ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1
Perintah tersebut akan menginstal Ceph secara otomatis di semua node:mon1, osd1-3 dan ceph-admin - Instalasi akan memakan waktu.
Sekarang terapkan node monitor di node mon1.
ceph-deploy mon create-initial
Perintah akan membuat kunci monitor, periksa kunci dengan perintah ceph ini.
ceph-deploy assemblekeys mon1
Menambahkan OSDS ke Cluster
Setelah Ceph diinstal di semua node, sekarang kita dapat menambahkan daemon OSD ke cluster. Daemon OSD akan membuat partisi data dan jurnal pada disk /dev/sdb.
Periksa disk /dev/sdb yang tersedia di semua node osd.
daftar disk ceph-deploy ceph-osd1 ceph-osd2 ceph-osd3
Anda akan melihat /dev/sdb dengan format XFS yang telah kita buat sebelumnya.
Selanjutnya, hapus tabel partisi pada semua node dengan opsi zap.
ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
Perintah tersebut akan menghapus semua data di /dev/sdb pada node Ceph OSD.
Sekarang siapkan semua node OSD dan pastikan tidak ada kesalahan dalam hasilnya.
ceph-deploy osd mempersiapkan ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
Saat Anda melihat ceph-osd1-3 siap untuk digunakan OSD di hasilnya, maka perintahnya berhasil.
Aktifkan OSD dengan perintah di bawah ini:
ceph-deploy osd aktifkan ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
Sekarang Anda dapat memeriksa disk sdb pada node OSDS lagi.
daftar disk ceph-deploy ceph-osd1 ceph-osd2 ceph-osd3
Hasilnya adalah bahwa /dev/sdb sekarang memiliki dua partisi:
- /dev/sdb1 - Data Ceph
- /dev/sdb2 - Jurnal Ceph
Atau Anda memeriksanya langsung di node OSD.
ssh ceph-osd1
sudo fdisk -l /dev/sdb
Selanjutnya, terapkan kunci manajemen ke semua node terkait.
ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-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 Ubuntu 16.04 telah dibuat.
Langkah 6 - Menguji Ceph
Pada langkah 4, kami telah menginstal dan membuat cluster Ceph baru, dan menambahkan node OSDS ke cluster. Sekarang kita harus menguji kluster untuk memastikannya berfungsi sebagaimana mestinya.
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
Anda dapat melihat hasilnya di bawah ini:
Pastikan kesehatan Ceph OK dan ada node monitor 'mon1 ' dengan alamat IP '10.0.15.11 '. Ada 3 OSD server dan semuanya siap dan berjalan, dan harus ada ruang disk yang tersedia sebesar 45 GB - Partisi OSD Data Ceph 3x15GB.
Kami berhasil membangun Cluster Ceph baru di Ubuntu 16.04.