Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 7

Assalamualaikum kawan. Pada post sebelumnya saya telah menuliskan bagaimana caranya konfigurasi Horizon. Nah disini saya akan melanjutkan postingan saya dengan membahas instalasi dan konfigurasi cinder sebagai block storage dalam openstack

Bagi kalian yang belum mengikuti tulisan saya dan ingin ikut belajar silahkan kunjungin postingan sebelumnya terlebih dahulu

Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 1

Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 2

Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 3

Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 4

Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 5

Instalasi & Konfigurasi Openstack Liberty di Ubuntu 14.04 LTS – Part 6

Openstack Block Storage menyediakan penyimpanan block untuk instances. Block storage telah mendukung banyak hardware dalam melakukan pekerjaannya. Contoh driver yang telah tersupport adalah NAS/SAN, NFS, iSCSI, Ceph, dan lain-lain. API block storage secara default berjalan didalam node controller, sesuai dengan driver yang dipilih dan konfigurasikan block storage dapat berjalan pada node compute, controller atau pada sebuah node tersendiri.

Openstack block storage menyediakan infrastruktur dalam memanage sebuah volume dan dalam cara kerjanya ketika menentukn volume untuk sebuah instances. Block storage atau cinder ini berinteraksi dengan compute.

  • cinder-api, untuk menerima API request dan akan di route ke cinder-volume untuk di eksekusi
  • cinder-volume, akan berinteraksi langsung dengan proses dari cinder-scheduler, dan juga dengan proses dari message-queue. cinder-volume akan merespon untuk read dan write request yang di kirim dari cinder ke maintain state. Itu juga dapat berinteraksi dengan banyak variasi tergantung dari provider storage-nya dengan arsitektur dari driver yang digunakan.
  • cinder-scheduler daemon, yaitu untuk membuat volume tetapi dengan memilih storage node yang optimal.
  • cinder-backup daemon, untuk menyediakan volume backup dari tipe apa saja yang di gunakan untuk backup storage.
  • Messaging queue, akan me-route informasi di antara proses dari cinder itu sendiri.

Langsung saja kita konfigurasikan cinder.

LAB 39 – Konfigurasi Database Cinder Pada Node Controller

Kita akan membuat database untuk cinder terlebih dahulu

$ mysql -u root -p
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
  IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
  IDENTIFIED BY 'CINDER_DBPASS';

Ubahlah CINDER_DBPASS dengan password cinder kalian masing-masing.

A21

LAB 40 – Konfigurasi User, Role dan API endpoint Service Cinder

Jika sudah keluar dari mysql akses. Selanjutnya gunakan akses credentials admin

$ source admin-openrc.sh

Kemudian kita akan buat user cinder dan juga akses service

  • Buat user cinder
    $ openstack user create --domain default --password-prompt cinder

    A22

  • Tambahkan role admin kedalam user cinder
    $ openstack role add --project service --user cinder admin
  • Kita buat pula service identity untuk cinder dan cinderv2
    $ openstack service create --name cinder \
      --description "OpenStack Block Storage" volume
    $ openstack service create --name cinderv2 \
      --description "OpenStack Block Storage" volumev2

    A23

  • Selanjutnya buat API endpoint untuk service cinder
    $ openstack endpoint create --region RegionOne \
      volume public http://controller:8776/v1/%\(tenant_id\)s
    $ openstack endpoint create --region RegionOne \
      volume internal http://controller:8776/v1/%\(tenant_id\)s
    $ openstack endpoint create --region RegionOne \
      volume admin http://controller:8776/v1/%\(tenant_id\)s
    $ openstack endpoint create --region RegionOne \
      volumev2 public http://controller:8776/v2/%\(tenant_id\)s
    $ openstack endpoint create --region RegionOne \
      volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
    $ openstack endpoint create --region RegionOne \
      volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

    A24A25A26A27

API endpoint sudah terbuat.

LAB 41 – Instalasi dan Konfigurasi Cinder Pada Node Controller

Selanjutnya kita akan menginstall paket-paket yang dibutuhkan

# apt-get install cinder-api cinder-scheduler python-cinderclient

Bukalah dan edit file /etc/cinder/cinder.conf

  • Pada bagian [database] kita atur untuk koneksi database nya
    [database]
    ...
    connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder

    Ubah CINDER_DBPASS dengan password database cinder anda

  • Pada bagian [DEFAULT] dan [oslo_messaging_rabbit] kita atur untuk menggunakan RabbitMQ serta kita berikan aksesnya
    [DEFAULT]
    ...
    rpc_backend = rabbit
    my_ip = IP_ADD
    verbose = True
    
    [oslo_messaging_rabbit]
    ...
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS

    Ubah pula RABBIT_PASS dengan password RabbitMQ anda serta ubah IP_ADD dengan IP address management andaA28

  • Pada bagian [DEFAULT] dan [keystone_authtoken] kita konfigurasikan akses service identity dan lock path untuk cinder
    [DEFAULT]
    ...
    auth_strategy = keystone
    
    [keystone_authtoken]
    ...
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = cinder
    password = CINDER_PASS
    
    [oslo_concurrency]
    ...
    lock_path = /var/lib/cinder/tmp

    Ganti CINDER_PASS dengan password cinder andaA29

Jika sudah sekarang kita sinkronisasikan database pada block storage

# su -s /bin/sh -c "cinder-manage db sync" cinder

Kemudian kita akan mengkonfigurasikan compute agar dapat menggunakan service block storage. Kita edit file /etc/nova/nova.conf dan tambahkan bagian cinder

[cinder]
os_region_name = RegionOne

Terakhir kita restart service cinder pada node controller.

Restart service Compute-API

# service nova-api restart

Restart service Cinder

# service cinder-scheduler restart
# service cinder-api restart

Kita hapus saja file cinder.sqlite karena file tersebut tidak diperlukan

# rm -f /var/lib/cinder/cinder.sqlite

Konfigurasi cinder pada node controller telah selesai. Selanjutnya saja akan melanjutkan untuk konfigurasi cinder pada node cinder. Untuk itu sebelumnya kita tambahkan dulu harddisk kedalam virtual machine node cinder kita.

LAB 42 – Konfigurasi Host dan Network Node Cinder

Kita edit pada virtual box kita. Caranya klik kanan pada VM kemudian setting.A30

Selanjutnya pilih menu storage dan add harddiskA31

Dan pilih “Create New Disk” dan untuk type disk pilih VDI (Virtual Disk Image)

A32A33

Kemudian berikan nama disk dan atur besaran kapasitas untuk disk kita. Jika sudah sesuai klik create maka nantinya harddisk baru untuk VM telah terbuat.A34

Setelah itu kita bisa menjalankan node cinder dan konfigurasikan NTP serta host dan hostname agar sesuai

A47

Selanjutnya kita install paket tool pendukung yaitu LVM2

# apt-get install lvm2

Sebelum melanjutkan konfigurasi cinder, kita atur terlebih dahulu disk baru yang telah kita buat tadi agar mempunya partisi baru berjenis LVM. Ketik command dibawah ini

# fdisk /dev/sdb

Ikuti langkah ini untuk membuat partisi

  • Pilih n untuk membuat partisi baru
  • Pilih p untuk membuat partisi primary
  • Pilih 1 untuk menjadi partisi yang pertama
  • Tekan ENTER dua kali untuk memilih first sector & last sector secara default
  • Pilih t untuk memilih tipe partisinya
  • Pilih 8e untuk memilih partisi LVM
  • Pilih w untuk write partisi table yang telah di buat.

Setelah itu kita buat pysical volume LVM

# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created

A36

Buat volume group dengan nama cinder-volumes

# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created

A37

Secara default LVM  volume akan men-scan seluruh disk sebagai LVM volume, nah agar hal itu tidak terjadi kita bisa melakukan filtering dan menentukan disk mana saja yang bisa menjadi LVM volume. Maka kita buka dan edit file /etc/lvm/lvm.conf dan silahkan search bagian devices dan setelah itu kita definisikan hanya disk /dev/sdb yang diterima dan menolak semua disk lainnya

devices {
...
filter = [ "a/sdb/", "r/.*/"]

Nah, akan tetapi jika OS kita menggunakan LVM sebagai disk kita juga harus menambahkan filtering disk OS kita tersebut. Contohnya jika disk /dev/sda berupa OS ubuntu didalamnya dan merupakan LVM disk maka filtering menjadi seperti ini :

filter = [ "a/sda/", "a/sdb/", "r/.*/"]

A39

LAB 43 – Instalasi dan Konfigurasi Cinder Pada Node Cinder

Penambahan harddisk baru telah selesai dan kita lanjutkan mengkonfigurasi konfigurasi dengan instalasi paket-paket terlebih dahulu.

# apt-get install cinder-volume python-mysqldb

Kemudian bukalah file /etc/cinder/cinder.conf dan edit seperti dibawah ini

  • Pada bagian [database] atur koneksi database cinder
[database]
...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder

A44

  • Dibagian [DEFAULT] atur RabbitMQ backend, identity service dan IP management, glance api server serta enabled backends
[DEFAULT]
...
rpc_backend = rabbit
auth_strategy = keystone
my_ip = MANAGEMENT_IP
enabled_backends = lvm
glance_host = controller

A40

Setelah itu pada bagian [oslo_messaging_rabbit] tambahkan RabbitMQ akses

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

Jangan lupa ganti RABBIT_PASS dengan password and masing-masing.A41

Dan pada bagian [keystone_authtoken] berikan pula akses identity untuk cinder

[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = CINDER_PASS

Ubahlah CINDER_PASS dengan password cinder anda. A42

Dibagian [lvm], konfigurasikan LVM driver, volume group, dan iSCSI protocol dan servicenya

[lvm]
...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = tgtadm

Serta pada bagian [oslo_concurrency] kita atur lock path nya

[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp

A43

Terakhir kita restart service block storage

# service tgt restart
# service cinder-volume restart

Kita hapus pula cinder.sqlite karena file tersebut tidak dibutuhkan

# rm -f /var/lib/cinder/cinder.sqlite

LAB 44 – Verifikasi keberhasilan konfigurasi.

Ingat! lakukan ini pada node controller

Gunakan akses credential admin

$ source admin-openrc.sh

Nah, kemudian eksekusikan perintah ini

$ cinder service-list

Jika terdapat dua service yaitu cinder-scheduler dan cinder-volume dengan state menunjukan UP maka konfigurasi telah selesai. A46

Untuk verifikasi kita akan mencoba untuk membuat volume baru dengan menambahkan volume melalui dashboard openstack.

  • Masuk dashboard terlebih dahulu, kemudian pilih menu Compute – Volume dan selanjutnya add VolumeA57
  • Nah pada pop-up Create Volume silahkan berikan nama volume serta atur sesuai kebutuhan. Jika sudah klik “Create Volume” A58
  • Jika pembuatan volume baru telah berhasil akan keluar volume yang kita buat tadi dengan status AvailableA59
  • Service cinder telah berjalan normal dan tidak ada masalah.

Oke konfigurasi telah selesai maka selesailah pertemuan kita pada lab dan tulisan ini hehe. Tapi meskipun begitu LAB mengenai Openstack ini masih panjang kawan dan kita akan berjumpa pada postingan selanjutnya. Terima kasih.

Wasallamualaikum Wr. Wb.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s