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
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
Referensi dari Konfigurasi Network yang terdapat pada Ceph Storage Cluster :
Penjelasan Sedikit Tentang Topologi
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.
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 :
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
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 Network
Sesuai Topologi yang saya buat saya mempunyai Node yang masing-masing mempunyai 2 NICs, 1 NIC digunakan untuk Public Network dan 1 sisanya untuk digunakan di Private Network. Namun bila anda hanya mempunyai 1 NIC tidak apa-apa, Ceph Storage Cluster masih bisa berjalan dengan baik.
Untuk Performa yang lebih disarankan untuk membedakan Switch yang untuk Cluster dan Switch yang untuk Public.
Pada saat mengkonfigurasi Network, saya sarankan untuk memakai IP Static daripada memakai IP Dynamic (DHCP).
Untuk Ubuntu 16.04 Lakukan konfigurasi seperti berikut pada file /etc/network/interfaces
Sesuai Topologi yang saya buat saya mempunyai Node yang masing-masing mempunyai 2 NICs, 1 NIC digunakan untuk Public Network dan 1 sisanya untuk digunakan di Private Network. Namun bila anda hanya mempunyai 1 NIC tidak apa-apa, Ceph Storage Cluster masih bisa berjalan dengan baik.
Untuk Performa yang lebih disarankan untuk membedakan Switch yang untuk Cluster dan Switch yang untuk Public.
Pada saat mengkonfigurasi Network, saya sarankan untuk memakai IP Static daripada memakai IP Dynamic (DHCP).
Untuk Ubuntu 16.04 Lakukan konfigurasi seperti berikut pada file /etc/network/interfaces
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.
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
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 :
Tambahan
Rekomendasi Referensi dan Dokumentasi Terkait Tutorial Setup Ceph Storage Cluster :
- Ceph Jewel Docs
- Tutorial-CEPH.pdf
- The New Stack Makers: Dreamhost Co-Founder Sage Weil on Ceph, The New Storage and Getting Back to Open Source
- Understanding Software-Defined Storage, Part One
- Software-Defined Storage with an Understandable Interface, the Ceph Way, Part Three
- Deploy Ceph and start using it: end to end tutorial – Installation (part 1/3)
- Storage Clustering : Ceph vs Gluster
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 😀
0 komentar
Berkomentarlah sesuai dengan topik yang sedang dibahas. Komentar yang berisi Link aktif akan di hapus oleh Admin. Terima Kasih.