Storage Tiering pada OpenStack menggunakan Ceph

Dalam dunia cloud computing yang terus berkembang, manajemen penyimpanan yang efisien menjadi sangat penting. Salah satu teknik yang efektif untuk mengoptimalkan kinerja dan biaya penyimpanan adalah storage tiering. Pada artikel ini, kita akan membahas bagaimana melakukan storage tiering pada OpenStack menggunakan Ceph, sebuah solusi penyimpanan open-source yang sangat populer.

Apa Itu Storage Tiering?

Storage tiering adalah teknik manajemen data yang melibatkan pengaturan data di berbagai tingkat penyimpanan berdasarkan kinerja, biaya, dan kebutuhan aksesibilitas. Data yang sering diakses (hot data) ditempatkan pada penyimpanan yang cepat dan mahal, sedangkan data yang jarang diakses (cold data) disimpan pada media yang lebih lambat dan murah.

Mengapa Menggunakan Ceph dengan OpenStack?

Ceph adalah sistem penyimpanan terdistribusi yang menawarkan skalabilitas tinggi, kinerja yang handal, dan fleksibilitas yang besar. Ketika diintegrasikan dengan OpenStack, Ceph dapat menyediakan solusi penyimpanan yang efisien dan andal untuk berbagai kebutuhan penyimpanan, termasuk storage tiering.

Berikut adalah langkah-Langkah Melakukan Storage Tiering pada OpenStack Menggunakan Ceph

  1. Install Docker
    # curl -fsSL https://get.docker.com -o get-docker.sh
    # sh get-docker.sh
                
  2. Download Installer Cephadm
    # CEPH_RELEASE=18.2.2
    # curl --silent --remote-name --location https://download.ceph.com/rpm-${CEPH_RELEASE}/el9/noarch/cephadm
    # chmod +x cephadm
                
  3. Instal paket
    # ./cephadm add-repo --release reef
    # ./cephadm install
                
  4. Bootstrap cluster baru
    # cephadm bootstrap --mon-ip 10.10.10.91 --allow-fqdn-hostname
    # cephadm install ceph-common
                
  5. Instal ceph-common
    # cephadm install ceph-common
    # ceph health
                
  6. Menambahkan host tambahan ke cluster
    # ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2
    # ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3
    # ceph orch host add ceph2 10.10.10.92 --labels _admin
    # ceph orch host add ceph3 10.10.10.93 --labels _admin
                
  7. Menambahkan OSD
    # ceph orch daemon add osd ceph1:/dev/sdb
    # ceph orch daemon add osd ceph1:/dev/sdc
    # ceph orch daemon add osd ceph1:/dev/sdd
    # ceph orch daemon add osd ceph1:/dev/sde
    # ceph orch daemon add osd ceph2:/dev/sdb
    # ceph orch daemon add osd ceph2:/dev/sdc
    # ceph orch daemon add osd ceph2:/dev/sdd
    # ceph orch daemon add osd ceph2:/dev/sde
    # ceph orch daemon add osd ceph3:/dev/sdb
    # ceph orch daemon add osd ceph3:/dev/sdc
    # ceph orch daemon add osd ceph3:/dev/sdd
    # ceph orch daemon add osd ceph3:/dev/sde
                
  8. Periksa OSD
    # ceph osd stat
    # ceph osd tree
                
  9. Setel kelas perangkat OSD
    # ceph osd crush set-device-class ssd osd.12
                
  10. Buat ruleset untuk mendefinisikan kelas penyimpanan
    # ceph osd crush rule create-replicated ssd-rule default osd ssd
    # ceph osd crush rule create-replicated hdd-rule default osd hdd
                
  11. Buat RBD Pool
    # ceph osd pool create --pool_type=replicated --size=3 --rule=ssd-rule vms
    # ceph osd pool create --pool_type=replicated --size=3 --rule=ssd-rule volumes-ssd
    # ceph osd pool create --pool_type=replicated --size=3 --rule=hdd-rule volumes-hdd
    # ceph osd pool create --pool_type=replicated --size=3 --rule=hdd-rule images
    # ceph osd pool create --pool_type=replicated --size=3 --rule=hdd-rule backups
    # for pool_name in volumes-ssd volumes-hdd images backups vms
      do
        rbd pool init $pool_name
      done
                
  12. Buat otentikasi Ceph Keyring
    # ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes-hdd, allow rwx pool=volumes-ssd, allow rwx pool=images' -o '/etc/ceph/ceph.client.cinder.keyring'
    # ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images' -o '/etc/ceph/ceph.client.glance.keyring'
    # ceph auth get-or-create client.nova mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rx pool=images' -o '/etc/ceph/ceph.client.nova.keyring'
    # ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups' -o '/etc/ceph/ceph.client.cinder-backup.keyring'
                
  13. Hapus TAB di ceph.conf
  14. Kompres ceph.conf dan semua keyring yang dihasilkan ke dalam zip
    # cd /etc/ceph
    # apt install zip -y
    # zip -r ceph.zip ceph.conf ceph.client.glance.keyring ceph.client.nova.keyring ceph.client.cinder.keyring ceph.client.cinder-backup.keyring
                
  15. Salin ceph.zip ke Node controller OpenStack
    # scp ceph.zip root@controller:/root/
                
  16. Buat direktori konfigurasi Kolla Ansible untuk mengintegrasikan ceph ke beberapa layanan
    # mkdir /etc/kolla/config
    # mkdir /etc/kolla/config/nova
    # mkdir /etc/kolla/config/glance
    # mkdir -p /etc/kolla/config/cinder/cinder-volume
    # mkdir /etc/kolla/config/cinder/cinder-backup
                
  17. Salin ceph.conf dan keyring lainnya ke direktori konfigurasi kolla
    # cp /etc/ceph/ceph.conf /etc/kolla/config/cinder/
    # cp /etc/ceph/ceph.conf /etc/kolla/config/nova/
    # cp /etc/ceph/ceph.conf /etc/kolla/config/glance/
    # cp /etc/ceph/ceph.client.glance.keyring /etc/kolla/config/glance/
    # cp /etc/ceph/ceph.client.nova.keyring /etc/kolla/config/nova/
    # cp /etc/ceph/ceph.client.cinder.keyring /etc/kolla/config/nova/
    # cp /etc/ceph/ceph.client.cinder.keyring /etc/kolla/config/cinder/cinder-volume/
    # cp /etc/ceph/ceph.client.cinder.keyring /etc/kolla/config/cinder/cinder-backup/
    # cp /etc/ceph/ceph.client.cinder-backup.keyring /etc/kolla/config/cinder/cinder-backup/
                
  18. Atur konfigurasi global Kolla Ansible untuk menggunakan Ceph sebagai platform penyimpanan:
    **grep -v "#" /etc/kolla/globals.yml | tr -s [:space:]**
    ---
    workaround_ansible_issue_8743: yes
    kolla_base_distro: "ubuntu"
    openstack_release: "master"
    kolla_internal_vip_address: "10.10.10.100"
    kolla_external_vip_address: "10.10.10.101"
    network_interface: "ens33"
    kolla_external_vip_interface: "ens33"
    neutron_external_interface: "ens38"
    enable_openstack_core: "yes"
    enable_cinder: "yes"
    enable_cinder_backup: "yes"
    enable_fluentd: "no"
    enable_neutron_provider_networks: "yes"
    external_ceph_cephx_enabled: "yes"
    ceph_glance_user: "glance"
    ceph_glance_keyring: "client.glance.keyring"
    ceph_glance_pool_name: "images"
    ceph_cinder_user: "cinder"
    ceph_cinder_keyring: "client.cinder.keyring"
    ceph_cinder_pool_name: "volumes-ssd"
    ceph_cinder_backup_user: "cinder-backup"
    ceph_cinder_backup_keyring: "client.cinder-backup.keyring"
    ceph_cinder_backup_pool_name: "backups"
    ceph_nova_keyring: "client.nova.keyring"
    ceph_nova_user: "nova"
    ceph_nova_pool_name: "vms"
    glance_backend_ceph: "yes"
    cinder_backend_ceph: "yes"
    nova_backend_ceph: "yes"
                
  19. Re-deploy OpenStack dengan konfigurasi tambahan
    # kolla-ansible -i all-in-one deploy
                
  20. Tunggu hingga OpenStack siap digunakan.
  21. Periksa semua layanan aktif di OpenStack.
  22. Atur cinder untuk menambahkan storage pool baru dari Ceph
    # nano /etc/kolla/cinder-volumes/cinder.conf
    [DEFAULT]
    …
    enabled_backends = rbd-1,rbd-2
    …
    [rbd-1]
    volume_driver = cinder.volume.drivers.rbd.RBDDriver
    volume_backend_name = rbd-1
    rbd_pool = volumes-ssd
    rbd_ceph_conf = /etc/ceph/ceph.conf
    rados_connect_timeout = 5
    rbd_user = cinder
    rbd_cluster_name = ceph
    rbd_keyring_conf = /etc/ceph/ceph.client.cinder.keyring
    rbd_secret_uuid = ee5c01a9-806a-4c4d-afea-6c7b056b66d3
    report_discard_supported = True
    [rbd-2]
    volume_driver = cinder.volume.drivers.rbd.RBDDriver
    volume_backend_name = rbd-2
    rbd_pool = volumes-hdd
    rbd_ceph_conf = /etc/ceph/ceph.conf
    rados_connect_timeout = 5
    rbd_user = cinder
    rbd_cluster_name = ceph
    rbd_keyring_conf = /etc/ceph/ceph.client.cinder.keyring
    rbd_secret_uuid = ee5c01a9-806a-4c4d-afea-6c7b056b66d3
    report_discard_supported = True
                
  23. Restart layanan cinder dengan merestart kontainer Docker
    # docker restart cinder_volume
                
  24. Tambahkan tipe volume baru untuk memisahkan tipe disk
    # source /etc/kolla/admin-openrc.sh
    # openstack volume type create volumes-ssd
    # openstack volume type create volumes-hdd
    # openstack volume type set volumes-ssd --property volume_backend_name=rbd-1
    # openstack volume type set volumes-hdd --property volume_backend_name=rbd-2
                
  25. Sekarang coba buat image, volume, dan VM. Pastikan Anda bisa membuat menggunakan kelas disk volumes-ssd atau volumes-hdd.

Selamat telah berhasil dan sampai jumpa.

Related Articles

Responses

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