====== py-cinder ====== | [[https://www.freshports.org/misc/py-cinder|misc/py-cinder]] | //%%OpenStack%% Block Service// ===== Set up Cinder on FreeBSD ===== ==== Prerequisites ==== * a configured and working instance of [[https://www.freshports.org/security/py-keystone|security/py-keystone]] * [[https://www.freshports.org/net/py-python-openstackclient|net/py-python-openstackclient]] is required for the setup and administration tasks * a configured message queueing service server, e.g. [[https://www.freshports.org/net/rabbitmq|net/rabbitmq]] * a NFS-server running the version 4.1 protocol ==== Prepare the system for Cinder ==== The following commands must be run as the %%OpenStack%% admin user. (It is assumed that the environment (OS_AUTH_URL, OS_PASSWORD, etc.) is already set thus the subsequent commands are listed only with the required parameters for the sake of brevity.) === Create the user, role and service === $ openstack user create --domain default --password-prompt cinder $ openstack role add --project service --user cinder admin $ openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2 $ openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3 === Create the endpoints === Important: Note the difference between the **volumev2** and **volumev3** URLs. $ openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s $ openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s $ openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s $ openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s $ openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s $ openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s ==== Configure the cinder service ==== Cinder works in three different modes: * as controller node for another Cinder storage node * as storage node * as controller/storage node === Controller node === [DEFAULT] # ... auth_strategy = keystone my_ip = 1.2.3.4 transport_url = rabbit://openstack:RABBIT_PASS@controller [keystone_authtoken] # ... auth_uri = http://keystonehost:5000 auth_url = http://keystonehost:5000 auth_type = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = CINDER_PASS [database] # ... # Please make sure that you use an absolute path otherwise Cinder won't work properly. connection = sqlite:////var/lib/cinder/cinder.db [oslo_concurrency] # ... lock_path = /var/lib/cinder/tmp === Storage node === [DEFAULT] # ... auth_strategy = keystone my_ip = 1.2.3.4 transport_url = rabbit://openstack:RABBIT_PASS@controller enabled_backends = nfs glance_api_servers = http://glanceserver:9292 [backend_defaults] volume_driver = cinder.volume.drivers.nfs.NfsDriver [keystone_authtoken] # ... auth_uri = http://keystonehost:5000 auth_url = http://keystonehost:5000 auth_type = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = CINDER_PASS [database] # ... # Please make sure that you use an absolute path otherwise Cinder won't work properly. connection = sqlite:////var/lib/cinder/cinder.db [oslo_concurrency] # ... lock_path = /var/lib/cinder/tmp Create a file **nfs_shares** in **/usr/local/etc/cinder** and enter the shares of the NFS server(s) in form like this: HOSTNAME:/EXPORTNAME Enable the NFS client in the /etc/rc.conf: sysrc nfs_client_enable="YES" Important: The NFS-Server must support the 4.1 protocol! ==== Populate the Storage service database ==== # su -m cinder -c "cinder-manage db sync" ==== Enable the services ==== Enable and start the Cinder services: On the controller node: * cinder-api * cinder-schedule On the storage node: * cinder-volume ==== Verify operation ==== Verify that the services are reachable: $ openstack volume service list Following command can be used to create a volume of 1GB size if the storage node is configured for NFS: $ cinder create --display_name nfsvolume 1 ===== References ===== [[https://docs.openstack.org/cinder/queens/install/index.html]] ---- {{tag>HowTo Ports}}