Bagian ini menjelaskan cara menginstal dan mengkonfigurasi layanan Block Storage, code-named cinder, pada controller node. Layanan ini memerlukan setidaknya satu node storage tambahan yang memberikan volume untuk instance.
Sebelum Anda menginstal dan mengkonfigurasi layanan Block Storage, Anda harus membuat database, layanan credentials, dan endpoints API.
Untuk membuat database, lakukan langkah-langkah berikut:
Gunakan klien akses database untuk berhubung ke server database sebagai root user:
$ mysql -u root -p
Membuat database cinder:
CREATE DATABASE cinder;
Memberikan akses yang tepat untuk 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';
Ganti CINDER_DBPASS dengan password yang sesuai.
Keluarlah dari client untuk mengakses database.
Dapatkan sumber mandat admin untuk mendapatkan akses ke command CLI ‘admin-only’:
$ . admin-openrc
Untuk membuat kredensial layanan, selesaikanlah langkah-langkah ini:
Membuat user cinder:
$ openstack user create --domain default --password-prompt cinder
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | e0353a670a9e496da891347c589539e9 |
| enabled | True |
| id | bb279f8ffc444637af38811a5e1f0562 |
| name | cinder |
+-----------+----------------------------------+
Tambahkan peran admin ke user cinder:
$ openstack role add --project service --user cinder admin
Catatan
Command ini tidak memberikan output.
Membuat entitas layanan cinder dan cinderv2:
$ openstack service create --name cinder \
--description "OpenStack Block Storage" volume
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | ab3bbbef780845a1a283490d281e7fda |
| name | cinder |
| type | volume |
+-------------+----------------------------------+
$ openstack service create --name cinderv2 \
--description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | eb9fd245bdbc414695952e93f29fe3ac |
| name | cinderv2 |
| type | volumev2 |
+-------------+----------------------------------+
Catatan
Layanan Block Storage memerlukan dua entitas layanan.
Membuat endpoint API layanan Block Storage:
$ openstack endpoint create --region RegionOne \
volume public http://controller:8776/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 03fa2c90153546c295bf30ca86b1344b |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | ab3bbbef780845a1a283490d281e7fda |
| service_name | cinder |
| service_type | volume |
| url | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volume internal http://controller:8776/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 94f684395d1b41068c70e4ecb11364b2 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | ab3bbbef780845a1a283490d281e7fda |
| service_name | cinder |
| service_type | volume |
| url | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volume admin http://controller:8776/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 4511c28a0f9840c78bacb25f10f62c98 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | ab3bbbef780845a1a283490d281e7fda |
| service_name | cinder |
| service_type | volume |
| url | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volumev2 public http://controller:8776/v2/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 513e73819e14460fb904163f41ef3759 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | eb9fd245bdbc414695952e93f29fe3ac |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | 6436a8a23d014cfdb69c586eff146a32 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | eb9fd245bdbc414695952e93f29fe3ac |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
$ openstack endpoint create --region RegionOne \
volumev2 admin http://controller:8776/v2/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field | Value |
+--------------+-----------------------------------------+
| enabled | True |
| id | e652cf84dd334f359ae9b045a2c91d96 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | eb9fd245bdbc414695952e93f29fe3ac |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
Catatan
Layanan Block Storage memerlukan endpoint untuk setiap entitas layanan.
Instal paket:
# zypper install openstack-cinder-api openstack-cinder-scheduler
Edit file /etc/cinder/cinder.conf dan menyelesaikan tindakan berikut:
Dalam bagian ``[Database] ``, konfigurlah akses database:
[database]
...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
Mengganti CINDER_DBPASS dengan password yang Anda pilih untuk database Block Storage.
Dalam bagian ``[DEFAULT] `` dan `` [oslo_messaging_rabbit] ``, konfigurlah akses antrian pesan (message queue) “RabbitMQ”:
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
Ganti `` RABBIT_PASS`` dengan password yang Anda pilih akun openstack di RabbitMQ.
Dalam bagian ``[DEFAULT] `` dan ``[keystone_authtoken] ``, konfigurlah akses layanan Identity:
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS
Mengganti CINDER_PASS dengan password yang Anda pilih untuk user cinder dalam pelayanan Identity.
Catatan
Menghilangkan komentar atau bahkan hapus opsi lain dalam bagian ``[keystone_authtoken] `` .
Dalam bagian [DEFAULT] ``, konfigurasi opsi ``my_ip menggunakan manajemen antarmuka alamat IP dari ‘controller node’:
[DEFAULT]
...
my_ip = 10.0.0.11
Editlah file ``/etc/nova/nova.conf``dan tambahkan berikut untuk itu:
[cinder]
os_region_name = RegionOne
Restart layanan Compute API:
# systemctl restart openstack-nova-api.service
Mulailah layanan Block Storage dan konfigurasikan mereka untuk mulai saat booting:
# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.