Tutorial Setup Ceph Storage Cluster, Bagian 1 : Mempersiapkan Node

January 23, 2019

Ceph dibaca Cef merupakan Software-Define Storage (SDS) yang Open-Source, Out-Scalable dan Reliable. Ceph Storage Cluster menawarkan penyimpanan berupa Ceph Object Storage, Ceph Block Storage, dan CephFS. Ketiga nya memiliki kelebihan dan kekurangan nya masing-masing.
Ceph Overview
Inti dari Ceph Storage Cluster adalah RADOS (Reliable Autonomic Distributed Object Store). Ceph menggunan Algoritma CRUSH (Controlled Replication Under Scalable Hashing). Ceph menawarkan pendekatan baru dengan menggunakan Algoritma CRUSH untuk mementukan lokasi objek di Cluster dan tidak menggunakan Node yang menjadi Inti dari Cluster. Ini lah yang membuat Ceph berbeda dan unik dengan Storage Cluster diluar sana.

RESTful interface di sediakan oleh Ceph Object Gateway atau Rados Gateway (RGW), Sedangkan Virtualdisk di sediakan oleh Ceph Block Device. Ceph memungkinkan tidak ada nya Single Point of Failure, artinya tidak ada 1 titik pusat kesalahan. Untuk rekomendasi artikel terkait : Disini


Installasi Ceph Storage Cluster bisa menggunakan ceph-deploy atau secara manual. Pada tutorial ini, saya hanya akan menggunakan ceph-deploy untuk melakukan setup Ceph Storage Cluster.  Ceph Storage Cluster membutuhkan setidaknya 1 Monitor untuk monitoring Cluster dan 3 OSD untuk Replika Data, dan 1 Node untuk Metadata Server (Optional).

Topologi
Topologi yang akan digunakan di Tutorial ini :

Referensi dari Konfigurasi Network yang terdapat pada Ceph Storage Cluster :
Penjelasan Sedikit Tentang Topologi 
Topologi diatas dibagi Network nya menjadi 2. Yakni Network 192.168.40.0/24 digunakan untuk Monitor (MON), Klien (Client), Metadata Server (MDS), dan Manager (MGR). Sedangkan untuk Network 192.168.107.0/24 digunakan OSD untuk Saling Berkomunikasi. Konfigurasikan Network sesuai dengan kebutuhan anda, bisa saja berbeda dengan Topologi yang saya gunakan.

Alokasi IP yang digunakan :
- Node 1 = 192.168.40.101/24 dan 192.168.107.1/24
- Node 2 = 192.168.40.102/24 dan 192.168.107.2/24
- Node 3 = 192.168.40.103/24 dan 192.168.107.3/24
- Ceph Monitor = 192.168.40.10/24

Node OSD Masing-masing memiliki 2 Disk. Disk 1 Untuk OS, dan Disk 2 untuk OSD. Ceph OSD saat ini mendukung installasi pada sebuah Harddisk Cakram, Solid State Drive (SSD), atau sebuah NVMe. Node Ceph Admin yang tidak lain adalah sebuah monitor, mungkin ini agak sedikit membingungkan bagi anda yang pertama mengenal Ceph dan belum bisa membedakan apa itu Ceph Admin dan Ceph Monitor. Ceph Admin sendiri merupakan Node untuk Deploy Ceph Storage Cluster menggunakan software ceph-deploy, Sedangkan Ceph Monitor merupakan Node yang merupakan Monitor dari sebuah Cluster. Sedikit pengertian apa itu Ceph bisa dibaca [Disini].

Topologi yang saya gunakan ini tidak cocok dijalankan pada Production, lebih kepada ke Testing-Testingan. Dan topologi ini sendiri merupakan referensi dari "Single Point of Failure", artinya ada satu titik pusat kesalahan. Kesalahan disini terletak pada Node Monitor yang hanya 1.

Persiapan Sebelum Memulai :
- Koneksi Internet Ada
- Harddisk atau SSD atau NVMe (lebih baik)

Hal yang akan kalian dapat dari Tutorial ini :
- Cara Membuat User di Ubuntu Server
- Cara Menginstall Paket Python dan NTP
- Cara Menginstall OpenSSH Server
- Cara Mengkonfigurasi Passwordless SSH
- Cara Install Ceph-deploy di Ubuntu Server

Persiapan Node dan Ceph-Admin di Ceph Storage Cluster
Untuk Membuat Cluster pada Ceph Node yang ingin dibuatkan Cluster harus di persiapkan terlebih dahulu. Persiapan nya seperti User, Permissions (Sudo), Topologi, SSH Passwordless (Untuk Ceph-Deploy), Paket Ceph, dan Paket Ceph-Deploy.

1. Membuat User Khusus Ceph Cluster (Optional)
Jalankan perintah dibawah ini untuk membuat User Khusus Ceph Cluster. Nama dari user yang akan dibuat bisa disesuaikan sesuai kebutuhan. Penambahan user ini bersifat opsional, kamu bisa menggunakan user yang sudah ada sebelumnya. Untuk menambahkan user perintah nya adalah :

adduser {nama-user}

Pada saat membuat User, saya sarankan untuk tidak memakai nama "Ceph". Gunakan nama lain contohnya "cphadmin". User "Ceph" sudah digunakan oleh Ceph Storage Cluster itu sendiri.

Contohnya nanti seperti di bawah ini pada saat membuat user baru :

Lakukan hal yang sama ini diketiga Node. Node1, Node2, Node3 dan Node Ceph-Admin.

149.154.161.20
2. Mengkonfigurasi Perizinan/Permissions User
Installasi Ceph Storage Cluster membutuhkan Akses Root. Karena kita menggunakan ceph-deploy untuk Installasi Ceph Storage Cluster nya, maka user yang akan digunakan khusus untuk Ceph Cluster haruslah mempunyai akses Root di Node yang di Remote. Jalankan perintah dibawah ini untuk mengedit/mengubah file sudoers.

sudo visudo

Lalu tambahkan beberapa baris kode ini diakhir untuk menambahkan user ke Sudoers. Parameter NOPASSWD: ALL digunakan untuk mematikan fungsi password sudo saat di memasukan oleh user yang dimaksudkan dengan perintah yang berawalan dengan sudo {perintah} ... Selangkapnya tentang ini bisa dilihat Disini.

{User Ceph Storage Cluster} ALL=(ALL) NOPASSWD: ALL

Nanti hasilnya kurang lebih akan terlihat seperti ini : 

Selanjutnya silahkan login menggunakan user Ceph yang sebelumnya anda tentukan , disini saya menggunakan "cephuser". Untuk  cara login ke user ceph bisa menggunakan perintah di bawah ini :

su - cephuser

Maka, otomatis kita akan berpindah dari user lain ke user ceph dan juga langsung berada di folder home user ceph. Lakukan hal yang sama ini pada Ceph-Admin, Node1, Node2 dan Node3.

149.154.161.20
3. Menginstall Paket Python dan NTP
Jalankan perintah dibawah ini untuk menginstall Paket Python dan NTP. Paket Python dibutuhkan oleh Ceph-Admin yang nantinya dijalankan di Node, jadi pastikan kalau paket python sudah terinstall. Paket NTP diperlukan oleh node untuk mensinkronkan waktu nya dengan yang lain. Berikut Perintah untuk menginstall Paket Python dan NTP :

sudo apt-get update
sudo apt-get install python2.7
sudo apt-get install ntpdate ntp


4. Mengkonfigurasi File Hosts
Sebelum menginstall SSH Server, kita harus terlebih dahulu mengkonfigurasi file hosts yang ada Node Ceph-Admin, tujuannya agar Installasi Ceph Storage Cluster menggunakan Domain Name daripada menggunakan IP Address. Jalankan perintah di bawah ini pada Ceph-Admin untuk mengedit file /etc/hosts di Ceph-Admin.

sudo nano /etc/hosts

Lalu tambahkan beberapa deklarasi untuk Hostname (HN) dan IP Address dari masing-masing node, contohnya seperti ini. Bisa dilihat kalau IP 192.168.40.170 di deklarasikan Hostname nya menjadi node1. Jika kita ping Hostname nya, maka yang akan di ping IP 192.168.40.170 tadi.

Lakukan hal yang sama di semua Node yang akan tergabung di Cluster.

5. Menginstall SSH Server
SSH Server digunakan untuk remote Ceph Node yang ada di Ceph Storage Cluster, ini termasuk Node Ceph-Admin, SSH Server yang gunakan disini adalah OpenSSH, Menginstall nya bisa Package Manager berupa APT. Untuk Menginstall OpenSSH Server menggunakan APT, Perintah nya :

sudo apt-get update
sudo apt-get install openssh-server

Lalu pastikan kalau Daemon OpenSSH sudah berjalan dan Listening di semua Node. Biasanya ketika menginstall menggunakan Package Manager, Service yang terkait akan langsung dijalankan ketika selesai menginstall. Untuk Cara mengecek Daemon SSH berjalan atau tidak, bisa dengan mengetikan perintah  sudo ps aux | grep sshd dan sudo netstat -tulpn | grep sshd. Jika sudah berjalan, output dari perintah tersebut akan seperti ini :


6. Membuat Koneksi SSH Passwordless
Koneksi SSH Passwordless digunakan apabila installasi Ceph Storage Cluster menggunakan Ceph-deploy, kalau manual kita bisa melewati step ini. Agar Koneksi SSH ke Ceph Node bisa Password less, caranya dengan menyimpan kredensial login ke Node tersebut. Pertama, jalankan perintah dibawah ini untuk membuat SSH Keys.

ssh-keygen #Untuk generate kunci RSA

Lakukan perintah dibawah untuk menyimpan kredensial yang ada di Host Ceph-Admin, Node1, dan Node2 ke Ceph-Admin. 

ssh-copy-id ceph-admin
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

Catatan : Jangan menjalankan perintah ssh dengan user root, hasilnya kita akan login SSH sebagai root di remote Host 😀. Jika tetap ingin menggunakan root, deklarasikan user yang ada di remote Host sebelum Host/IP. Seperti ini => ssh cephuser@ceph-admin.

Lakukan juga perintah diatas untuk Node1 sampai Node3, Seperti di bawah ini.

Tambahan : Mengetes Koneksi SSH Secara Passwordless
Jalankan perintah ssh ceph-admin, ssh {node} untuk mengetes Passwordless SSH. Jika kredensial yang dimasukan saat menjalankan perintah ssh-copy-id benar, maka kita tidak akan diminta login lagi, langsung bisa remote, Seperti ini :

7. Menginstall Paket Ceph-deploy di Ceph-admin
Ceph-admin membutuhkan paket ceph-deploy untuk mengkonfigurasi Clusternya. Sebelum menginstal ceph-deploy di Node ceph-admin, kita harus membuat direktori terpisah terlebih dahulu untuk file konfigurasi dari Ceph Cluster nantinya, buat dengan menggunakan perintah mkdir -p ~/cluster. Lalu pindah ke direktori yang di buat dengan menggunakan perintah cd ~/cluster.

Untuk menginstall paket ceph-deploy, jalankan perintah ini di Node Ceph-admin :

sudo apt-get install ceph-deploy

GIF cara menginstall ceph-deploy nya, seperti ini :

Menginstall Ceph di Node Menggunakan Ceph-Deploy
Setelah selesai mempersiapkan Node dan Ceph-Admin, saatnya menginstall Ceph pada Node1, Node2 dan Node3. Lanjut di Part-2 : [Link Disini]


Tambahan
Rekomendasi Referensi dan Dokumentasi Terkait Tutorial Setup Ceph Storage Cluster :

Penutup
Cukup sekian dari artikel Tutorial Setup Ceph Storage Cluster Part 1 : Mempersiapkan Node dan Ceph-Admin yang dapat saya sampaikan, untuk kurang-lebihnya saya mohon maaf. Terima kasih telah mengunjungi dan mempercayai Blog ini. Jika ada yang perlu ditanyakan dan ingin menambahkan atau memberi masukan, Jangan sungkan untuk berkomentar di bawah 😉. Semoga Bermanfaat 😀

Related Posts

0 komentar

Berkomentarlah sesuai dengan topik yang sedang dibahas. Komentar yang berisi Link aktif akan di hapus oleh Admin. Terima Kasih.

    # Back to Top