Konfigurasi Manila Pada Openstack Mitaka

Assalamualaikum kawan semua, kembali lagi pada postingan saya yang sempat terbengkalai kosong dari post hehe. Tapi semuanya itu terbayar dengan pengalaman ngerjain sebuah project yang akan saya ceritakan pada postingan yang lain. Disini saya akan kembali memberikan tutorial berupa sedikit ilmu tentang bagaimana caranya mengkonfigurasi service shared file system menggunakan manila pada Openstack Mitaka. Agar memudahkan konfigurasi saya akan menjelaskan sedikit tentang apa itu Manila dan kegunaannya. Jadi, Manila itu adalah service yang berfungsi untuk memberikan layanan sharing file. Contohnya dalam sebuah openstack itu terdapat 2 user guest yang menginginkan adanya 1 buah folder dalam block storage yang dapat di-share untuk masing-masing instance mereka. Nah, dengan Manila inilah maka folder yang terdapat pada sebuah space block storage dapt di-share untuk kedua belah pihak user. Untuk konfigurasinya, disini saya berasumsi telah memiliki sebuah system openstack dengan 1 node controller, 1 node compute, 1 node block storage dan 1 node object storage. Berikut adalah langkah bagaimana melakukan konfigurasinya :

  1. Buatlah sebuah node baru untuk service manila ini.
  2. Selanjutnya konfigurasikan langkah dibawah ini pada node controller :
    1. Buat database terlebih dahulu untuk service.
      $ mysql -u root -p
      CREATE DATABASE manila;
      GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'localhost' \
        IDENTIFIED BY 'MANILA_DBPASS';
      GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'%' \
        IDENTIFIED BY 'MANILA_DBPASS';

      Gantilah MANILA_DBPASS dengan password database manila yang anda inginkan.

    2. Gunakan credentials admin.
      $ . admin-openrc.sh
    3. Buat user credentials untuk manila.
      $ openstack user create --domain default --password-prompt manila
    4. Tambahkan role admin kedalam user manila.
      $ openstack role add --project service --user manila admin
    5. Buat pula service entity manila dan manilav2.
      $ openstack service create --name manila \
        --description "OpenStack Shared File Systems" share
      $ openstack service create --name manilav2 \
        --description "OpenStack Shared File Systems" sharev2
    6. Trus kita buat service API endpoint manila.
      $ openstack endpoint create --region RegionOne \
        share public http://controller:8786/v1/%\(tenant_id\)s
      $ openstack endpoint create --region RegionOne \
        share internal http://controller:8786/v1/%\(tenant_id\)s
      $ openstack endpoint create --region RegionOne \
        share admin http://controller:8786/v1/%\(tenant_id\)s
      $ openstack endpoint create --region RegionOne \
        sharev2 public http://controller:8786/v2/%\(tenant_id\)s
      $ openstack endpoint create --region RegionOne \
        sharev2 internal http://controller:8786/v2/%\(tenant_id\)s
      $ openstack endpoint create --region RegionOne \
        sharev2 internal http://controller:8786/v2/%\(tenant_id\)s
    7. Selanjutnya install paket manila untuk node controller :
      # apt-get install manila-api manila-scheduler \
        python-manilaclient
    8. Jika sudah, konfigurasi manila dengan mengedit file /etc/manila/manila.conf dan lakukan edit seperti langkah dibawah ini :
      • Pada bagian database tambahkan seperti ini.
        [database]
        ...
        connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila

        Ubahlah MANILA_DBPASS dengan password database manila anda masing-masing.

      • Dibagian [DEFAULT] tambahkan seperti ini.
        [DEFAULT]
        ...
        rpc_backend = rabbit
        default_share_type = default_share_type
        rootwrap_config = /etc/manila/rootwrap.conf
        auth_strategy = keystone
        my_ip = IP_CONTROLLER

        Ubahlah IP_CONTROLLER dengan ip management node controller.

      • Pada bagian [oslo_messaging_rabbit], tambahkan konfiguasi RabbitMQ seperti ini.
        [oslo_messaging_rabbit]
        ...
        rabbit_host = controller
        rabbit_userid = openstack
        rabbit_password = RABBIT_PASS
      • Konfigurasikan pula identity access pada bagian [keystone_authtoken], tambahkan seperti ini.
        [keystone_authtoken]
        ...
        memcached_servers = controller:11211
        auth_uri = http://controller:5000
        auth_url = http://controller:35357
        auth_type = password
        project_domain_name = default
        user_domain_name = default
        project_name = service
        username = manila
        password = MANILA_PASS

        Ubahlah MANILA_PASS dengan password identity user manila anda.

      • Tambah pula konfigurasi lock path seperti dibawah [oslo_concurrency], seperti ini.
        [oslo_concurrency]
        ...
        lock_path = /var/lib/manila/tmp
    9. Sinkronisasikan database manila.
      # su -s /bin/sh -c "manila-manage db sync" manila
    10. Selanjutnya silahkan restart service manila pada node controller.
      # service manila-scheduler restart
      # service manila-api restart
  3. Konfigurasi manila pada node shared file :
    1. Install paket-paket yang dibutuhkan.
      # apt-get install manila-share python-pymysql
    2. Kemudian edit file /etc/manila/manila.conf
      • Pada bagian database tambahkan seperti ini.
        [database]
        ...
        connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila

        Ubahlah MANILA_DBPASS dengan password database manila anda masing-masing.

      • Dibagian [DEFAULT] tambahkan seperti ini.
        [DEFAULT]
        ...
        rpc_backend = rabbit
        default_share_type = default_share_type
        rootwrap_config = /etc/manila/rootwrap.conf
        auth_strategy = keystone
        my_ip = IP_CONTROLLER

        Ubahlah IP_CONTROLLER dengan ip management node controller.

      • Dibagian [DEFAULT] tambahkan seperti ini.
        [DEFAULT]
        ...
        rpc_backend = rabbit
        default_share_type = default_share_type
        rootwrap_config = /etc/manila/rootwrap.conf
        auth_strategy = keystone
        my_ip = IP_CONTROLLER

        Ubahlah IP_CONTROLLER dengan ip management node controller.

      • Pada bagian [oslo_messaging_rabbit], tambahkan konfiguasi RabbitMQ seperti ini.
        [oslo_messaging_rabbit]
        ...
        rabbit_host = controller
        rabbit_userid = openstack
        rabbit_password = RABBIT_PASS
      • Konfigurasikan pula identity access pada bagian [keystone_authtoken], tambahkan seperti ini.
        [keystone_authtoken]
        ...
        memcached_servers = controller:11211
        auth_uri = http://controller:5000
        auth_url = http://controller:35357
        auth_type = password
        project_domain_name = default
        user_domain_name = default
        project_name = service
        username = manila
        password = MANILA_PASS

        Ubahlah MANILA_PASS dengan password identity user manila anda.

      • Tambah pula konfigurasi lock path seperti dibawah [oslo_concurrency], seperti ini.
        [oslo_concurrency]
        ...
        lock_path = /var/lib/manila/tmp
  4. Nah, kemudian untuk melanjutkan langkahnya kita membutuhkan sebuah node baru yang nantinya berfungsi sebagai share storage. Jadi silahkan jalankan sebuah node baru dengan nama storage node dan tambahkan sebuah harddisk kosong baru.
    1. Jika sudah jalankan dan install paket-paketnya.
      # apt-get install lvm2 nfs-kernel-server
    2. Disini saya asumsikan disk baru yang telah saya tambahkan memiliki directory /dev/sdc. Kita buat sebuah partisi baru dengan jenis LVM pada /dev/sdc.
      # pvcreate /dev/sdc
      Physical volume "/dev/sdc" successfully created
    3. Trus bikin manila volume group.
      # vgcreate manila-volumes /dev/sdc
      Volume group "manila-volumes" successfully created
    4. Buka file /etc/lvm/lvm.conf dan edit seperti ini.
      1. Dibagian devices tambahkan disk yang udah kita buat ta
        devices {
        ...
        filter = [ "a/sdb/", "a/sdc", "r/.*/"]
      2. Edit file /etc/manila/manila.conf dan ubah seperti ini dibagian DEFAULTdan LVM.
        [DEFAULT]
        ...
        enabled_share_backends = lvm
        enabled_share_protocols = NFS,CIFS
        [lvm]
        share_backend_name = LVM
        share_driver = manila.share.drivers.lvm.LVMShareDriver
        driver_handles_share_servers = False
        lvm_share_volume_group = manila-volumes
        lvm_share_export_ip = IP_MANAGEMENT

        Ubah IP_MANAGEMENT dengan IP address management pada node storage.

    5. Kemudian restart service manila pada node manila.
      $ service manila-share restart
  5. Terakhir adalah verifikasi service.
    1. Pada node controller gunakan admin credentials.
      $ . admin-openrc
    2. Kita lihat manila service list, jika seperti dibawah ini berarti udah benar dan konfigurasi telah selesai.
      $ manila service-list
      +----+------------------+-------------+------+---------+-------+----------------------------+
      | Id | Binary           | Host        | Zone | Status  | State | Updated_at                 |
      +----+------------------+-------------+------+---------+-------+----------------------------+
      | 1  | manila-scheduler | controller  | nova | enabled | up    | 2016-10-06T20:17:28.000000 |
      | 2  | manila-share     | storage@lvm | nova | enabled | up    | 2016-10-06T20:17:29.000000 |
      +----+------------------+-------------+------+---------+-------+----------------------------+

Itulah sedikit ilmu yang dapat saya share, jika ada pertanyaan tanyakan saja pada komentar dibawah ini. Terima kasih. Wassalamualaikum.

Leave a Reply

Your email address will not be published. Required fields are marked *