Saturday, June 6, 2015

Ceph Cluster Di CentOS - Part 1

Topologi

Untuk mempermudah dalam mengkonfigurasi ceph pada CentOS, kita akan menggunakan topologi berikut ini.


Tabel Address

Implementasi yang digunakan kali ini adalah dengan menggunakan switch untuk menghubungkan seluruh perangkat. Sehingga kita bisa menggunakan network yang sama disetiap perangkat agar dapat terhubung. Selain itu, setiap fitur dan aplikasi di setiap perangkat (yang berkaitan dengan ceph), harus di dapatkan dari internet.

Agar setiap perangkat dapat terhubung ke internet. Maka, Settingan address yang digunakan adalah address yang satu network dengan internet yang diberikan ISP kita. Karena address ISP adalah 172.16.11.1/24, maka susunan address yang dapat kita setting adalah sebagai berikut.

InternetAddress172.16.11.1Node2Address172.16.11.4
Netmask255.255.255.0Netmask 255.255.255.0
Gateway-Gateway172.16.11.1
DNS-DNS172.16.11.1
Admin-NodeAddress172.16.11.2Node3Address172.16.11.5
Netmask255.255.255.0Netmask 255.255.255.0
Gateway172.16.11.1Gateway172.16.11.1
DNS172.16.11.1DNS172.16.11.1
Node1Address172.16.11.3ClientAddress172.16.11.6
Netmask255.255.255.0Netmask 255.255.255.0
Gateway172.16.11.1Gateway172.16.11.1
DNS172.16.11.1DNS172.16.11.1

Tujuan

  • Memahami konsep dari Ceph Cluster
  • Mengetahui cara mengkonfigurasi Ceph Cluster
  • Meningkatkan skill di bidang Storage Area Network

Konsep Dasar

Ceph Cluster adalah suatu software yang berbasis opensource yang berfungsi sebagai storage server seperti server penyimpanan milik google drive. Dalam hal ini, Ceph cluster memiliki 2 jenis daemon yaitu :
  • Ceph OSD Daemon (OSD) : berfungsi sebagai media penyimpanan data yang merupakan objek dari server penyimpanannya.
  • Ceph Monitor (MON) : berfungsi untuk memonitoring data master pada server cluster.
Minimal pembuatan Ceph Storage adalah Satu Ceph Monitor (MON) dan dua Ceph OSD Daemon (OSD). Namun, implementasi kita kali ini adalah menggunakan :
  • 1 Ceph Monitor (MON) : Untuk monitoring data
  • 1 Ceph Metadata Server (MDS) : Untuk File System Ceph-nya
  • 3 Ceph OSD Daemon (OSD) : Untuk server penyimpanan data

Review Settingan

Sesuai dengan implementasi kita, maka saya akan membuat struktur yang nantinya akan seperti ringkasan berikut ini.
  • Yang dibutuhkan disini adalah 4 server dan 1 client yang semuanya menggunakan OS CentOS. 4 server tersebut adalah admin-node, node1, node2, dan node3.
  • Admin-Node dibutuhkan untuk menyetting ceph ke node1, node2 dan node3 menggunakan fitur ssh. Sehingga kita hanya akan menggunakan Admin-Node sebagai pusat konfigurasi.
  • Admin-Node juga berfungsi sebagai tempat instalasi keyring di setiap node. Agar disetiap node memiliki keyring yang sama. Keyring yang berbeda disetiap node akan membuat ceph tidak bisa saling sinkronisasi.
  • Untuk Ceph OSDnya, akan diletakkan di server node1, node2 dan node3. Dimana disetiap node ditambah harddisk tambahan.
  • MON dan MDS kita setting pada node1 saja.
  • Sedangkan pada client, kernel harus diupgrade. 

Konfigurasi

Mematikan Firewall Dan Selinux Di Setiap Perangkat

Langkah pertama yang harus dilakukan adalah mematikan firewall dan selinux disetiap perangkat server maupun client (admin-node, node1, node2, node3 dan client). Caranya, pertama kita edit file config di direktori /etc/selinux. Gunakan perintah berikut ini untuk mengedit file tersebut.

# vi /etc/selinux/config

Setelah di disabled, kita harus menjalankan perintah setenforce 0 dan juga kita harus mematikan firewall iptablesnya. Perintah yang harus digunakan adalah sebagai berikut.

# setenforce 0
# iptables -F
# chkconfig iptables off 

Install Paket SSH Client Di Admin-Node

Ingat, untuk memudahkan kita dalam mengkonfigurasi ceph, kita bisa menjadikan admin-node sebagai pusat konfigurasi. Sehingga, kita bisa mengkonfigurasi node-node lainnya termasuk client pada admin-node ini. Salah satu caranya adalah dengan mengunakan fitur ssh. 

Ssh server memang sudah terpasang semua pada server dan clientnya.  Sisanya tinggal menginstall ssh client pada admin-node agar admin-node bisa meremote ssh ke server node atau client. Perintah menginstall ssh client adalah sebagai berikut.

# yum -y install openssh-clients

Merubah Hostname Di Setiap Perangkat

Hostname setiap perangkat CentOS memiliki keadaan default "localhost". Hal ini akan mempersulit kita dalam mengetahui "server apa yang sedang digunakan" saat kita sedang meremote ssh ke node1, node2, node3 atau client di admin-node. Untuk itu, agar mempermudah kita mengetahui server mana yang sedang diremote kita bisa menyetting hostname di setiap perangkat.

Selain itu, mengganti hostname ini juga bertujuan agar saat meremote ssh kita tidak perlu lagi meremote menggunakan ip servernya. Tetapi langsung bisa meremote ssh dengan menggunakan nama hostnamenya. Seperti contoh berikut ini.

# ssh 172.16.11.3    | meremote ssh menggunakan ip si node3  
# ssh node3 | meremote ssh menggunakan hostname si node3 
Untuk menyetting hostname, kita bisa merubah file hosts pada file /etc/. Gunakan perintah berikut ini untuk merubah settingan hostname.

#vi /etc/hosts
Setelah masuk kedalam file tersebut. Hapus seluruh konfigurasi yang ada sampai benar-benar kosong. Setelah itu, tambakan beberapa hostname seperti gambar dibawah ini. Settingan hostname dibawah ini disesuaikan address perangkat yang tersedia.


Ingat, settingan hostname harus dilakukan disetiap perangkat. Konfigurasinya juga sama seperti yang sudah dijelaskan. Setelah hostname disetting jangan lupa untuk di reboot. Tujuannya agar hostname di perangkat tersebut berubah menjadi hostname yang sudah disetting sebelumnya.

# reboot

Setting SSH Keygen dan Ssh Copy Id Di Admin-Node

Sebelum ssh client pada admin-node bisa digunakan, kita harus menjalankan perintah ssh-keygen. Hal ini bertujuan untuk memberikan password pada koneksi ssh yang sedang kita lakukan. Untuk menyetting ssh-keygen tinggal menggunakan perintah sebagai berikut.

# ssh-keygen
Untuk direktori keynya biarkan default, jadi tinggal klik enter. Untuk melanjutkan klik y. Dan terakhir isikan passwordnya (bebas). Dalam hal ini saya tidak memberikan password untuk keygennya. 


Langkah terakhir agar kita bisa melakukan remote ssh ke setiap perangkat dari admin-node adalah menyetting Ssh Copy ID. Perintah ini digunakan untuk mempercepat remote ssh. Sehingga kita tidak perlu lagi memasukan password si server yang kita remote saat hendak melakukan koneksi ssh. Gunakan perintah dibawah ini untuk mengaktifkan ssh copy ID di setiap perangkat.

# ssh-copy-id -i .ssh/id_rsa.pub node1
# ssh-copy-id -i .ssh/id_rsa.pub node2
# ssh-copy-id -i .ssh/id_rsa.pub node3
# ssh-copy-id -i .ssh/id_rsa.pub client 
Contoh cara yang harus dilakukan saat melakukan perintah Ssh Copy ID adalah sebagai berikut. Jika semua konfigurasi ssh client sudah dijalankan, maka sekarang kita sudah bisa mengkonfigurasi node1, node2 node3 dan client menggunakan admin-node. Untuk meremote ssh,  kita tinggal meremote menggunakan hostname dari perangkatnya seperti contoh berikut ini.

root@admin-node ~]# ssh node1    | meremote ssh ke node1
root@node1 ~]# exit                     | keluar dari remote ssh server node1
root@admin-node ~]# ssh node2    | meremote ssh ke node2

Menginstall Fitur Wget di Admin-Node

Paket-paket yang berisi fitur untuk ceph nantinya akan kita download dari salah satu situs penyedia paket ceph. Untuk dapat mendownload paket tersebut, kita harus menginstall paket wget. Paket wget adalah paket yang berfungsi sebagai pendownload paket-paket dari situs-situs di internet. Untuk menginstall paket wget, kita bisa menggunakan perintah dibawah ini.

# yum -y install wget

Download dan Install Paket Ceph Di Admin Node

Setelah itu, kita download paketnya dari beberapa situs penyedia paket ceph dengan menggunakan perintah berikut ini.

# wget -c http://ceph.com/rpm-firefly/el6/noarch/ceph-release-1-0.el6.noarch.rpm http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
Pastikan setelah didownload, terdapat nama paket yang sudah di download tersebut. Berikut nama paket yang sudah saya download.


Jika paket yang di download ada pada direktori, maka tinggal kita install paketnya. Gunakan perintah berikut ini untuk menginstall paket ceph yang sudah di download tadi.

# rpm -ivh ceph-release-1-0.e16.noarch.rpm 
# rpm -ivh epel-release-6-8.noarch.rpm

Install Ceph Di Admin-Node

Sebelum menginstall, hal yang harus dilakukan terlebih dahulu adalah menambahkan priority dan enablednya pada repositori ceph. Setelah itu install paket yum-plugin-priorities

# sed -i -e "s/enabled=1/enabled=1\npriority=1/g" /etc/yum.repos.d/ceph.repo
# yum -y install yum-plugin-priorities
Setelah itu, baru kita install paket ceph dan paket ceph deploynya. Gunakan perintah berikut ini untuk menginstall kedua paket tersebut.

# yum -y install ceph ceph-deploy

Membuat Ceph MON, Menginstall Setiap Node Ke Ceph-Deploy dan Membuat File admin-keyring di Admin-Node

Pertama-tama, kita buat direktori yang nantinya akan dijadikan tempat file konfigurasi ceph-deploy. Ketika, konfigurasi mengenai ceph-deploy dijalankan. Maka, konfigurasi ceph-deploy tersebut akan masuk kedalam direktori yang sedang kita gunakan. Karena hal tersebut, setiap kita ingin mengkonfigurasi ceph-deploy, kita harus selalu berada di direktori yang akan kita buat ini. Berikut, perintah membuat direktori dan masuk ke direktori tersebut.

# mkdir /etc/ceph-cluster
# cd /etc/ceph-cluster
Jika sudah berada didirektori yang kita buat (/etc/ceph-cluster), sekarang kita gunakan konfigurasi ceph-deploynya. Yang pertama disetting disini adalah membuat ceph MON ke Node1 (seperti implementasi). Gunakan perintah berikut ini untuk membuat ceph MON dengan perintah ceph-deploy.

# ceph-deploy new node1
Jika sudah, selanjutnya kita install ceph ke setiap node (node1, node2, node3) termasuk admin-node. Gunakan perintah berikut ini untuk menginstall ceph kesetiap nodenya. 

# ceph-deploy install admin-node node1 node2 node3
Dan terakhir adalah membuat admin-keyringnya. Perintah yang digunakan adalah sebagai berikut.

# ceph-deploy mon create-initial

Memformat Harddisk Untuk Object Storage Menjadi Tipe Ceph OSD Di Node1, Node2 dan Node3

Sebelumnya, kita harus menambahkan harddisk terlebih dahulu pada setiap server node yang ada (node1, node2, node3). Untuk memformatnya, kita bisa menggunakan parted karena lebih simple. Partisi yang diformat harus menjadi tipe xfs dan labelnya adalah gpt. Maka perintah yang dapat digunakan adalah sebagai berikut.


Setelah itu, buat direktori untuk tempat mounting ke harddisk tambahannya yang sudah disetting. Gunakan perintah sebagai berikut untuk mountingnya.

# mkdir /ceph-osd
# mount -t xfs /dev/sbd1 /ceph-osd
Jika sudah, kita edit file fstab di direktori /etc/. Fungsinya untuk menjaga keutuhan mountingan harddsik tambahan yang sudah disetting. Sehingga saat direstart, konfigurasi mounting akan langsung dijalankan sistem. Yang diedit disini adalah pada baris paling bawah di file fstab.


Untuk part1 cukup sekian, bertemu lagi di part2 yang sudah saya sediakan pada link berikut ini. Sekian dari saya, terima kasih sudah berkunjung. Jangan lupa, saran dan pertanyaan silahkan masukan di komentar, terima kasih. 
 

0 komentar:

Post a Comment

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment