Il servizio di block storage Cinder AKA OpenStack aggiunge lo storage persistente a un'istanza, fornisce anche un'infrastruttura per la gestione dei volumi e interagisce con il servizio di calcolo per fornire, ad esempio, volume. La quantità di spazio di archiviazione fornita e consumata è determinata dai driver di archiviazione a blocchi, sono disponibili una varietà di driver:NAS/SAN, NFS, iSCSI, Ceph e altro.
L'API di archiviazione a blocchi e il servizio di pianificazione in genere vengono eseguiti sui nodi del controller. A seconda dei driver utilizzati, il servizio volume può essere eseguito su controller, nodi di calcolo o nodi di archiviazione autonomi.
Questa guida consente di installare e configurare cenere sul nodo del controller. Questo servizio richiede almeno un nodo di archiviazione aggiuntivo che fornisce volumi alle istanze.
Installa e configura il nodo controller:
Accedi al server MySQL come utente root.
# mysql -u root -p
Crea il database nova.
CREATE DATABASE cinder;
Concedi un'adeguata autorizzazione al database nova.
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'password';
Sostituire "password" con una password adatta. Esci da MySQL.
Carica le tue credenziali di amministratore dallo script dell'ambiente.
# source admin-openrc.sh
Crea l'utente cenere per la creazione delle credenziali del servizio.
# openstack user create --password-prompt cinder User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | f02a9693b5dd4f328e8f1a292f372782 | | name | cinder | | username | cinder | +----------+----------------------------------+
Aggiungi il ruolo di amministratore all'utente Cinder.
# openstack role add --project service --user cinder admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Crea le entità del servizio di cenere.
# openstack service create --name cinder --description "OpenStack Block Storage" volume +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | cc16bd02429842d694ccd4a425513cfc | | name | cinder | | type | volume | +-------------+----------------------------------+
# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | 926e5dcb46654d228987d61978903b27 | | name | cinderv2 | | type | volumev2 | +-------------+----------------------------------+
Crea gli endpoint dell'API del servizio Block Storage.
# openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volume +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | adminurl | http://controller:8776/v2/%(tenant_id)s | | id | 4b38b10d227a48cfaf1d6356d23a6481 | | internalurl | http://controller:8776/v2/%(tenant_id)s | | publicurl | http://controller:8776/v2/%(tenant_id)s | | region | RegionOne | | service_id | cc16bd02429842d694ccd4a425513cfc | | service_name | cinder | | service_type | volume | +--------------+-----------------------------------------+
# openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volumev2 +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | adminurl | http://controller:8776/v2/%(tenant_id)s | | id | dcf45538165b40f2a6736bcf5276b319 | | internalurl | http://controller:8776/v2/%(tenant_id)s | | publicurl | http://controller:8776/v2/%(tenant_id)s | | region | RegionOne | | service_id | 926e5dcb46654d228987d61978903b27 | | service_name | cinderv2 | | service_type | volumev2 | +--------------+-----------------------------------------+
Installa e configura i componenti del controller Cinder (Block Storage):
Installare i seguenti pacchetti sul nodo controller.
# apt-get install cinder-api cinder-scheduler python-cinderclient
Modifica il file /etc/cinder/cinder.conf.
# nano /etc/cinder/cinder.conf
Modifica le impostazioni seguenti e assicurati di inserire le voci nelle sezioni appropriate. Qualche volta potrebbe essere necessario aggiungere sezioni se non esiste e anche aggiungere alcune voci che mancano nel file, non tutte.
[database] connection = mysql://cinder:password@controller/cinder ## Replace "password" with the password you chose for cinder database [DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone verbose = True my_ip = 192.168.12.21 ## Management IP of Controller Node [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [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 = password ## Replace "password" with the password you chose for cinder user in the identity service ## Comment out or remove any other options in the [keystone_authtoken] section [oslo_concurrency] lock_path = /var/lock/cinder ## Comment out the lock_path in (DEFAULT) section.
Popolare il database di cenere.
# su -s /bin/sh -c "cinder-manage db sync" cinder
Riavvia i servizi.
# service cinder-scheduler restart # service cinder-api restart
Rimuovere il file del database SQLite.
# rm -f /var/lib/cinder/cinder.sqlite
Elenca i servizi, puoi ignorare gli avvisi.
# cinder-manage service list Binary Host Zone Status State Updated At cinder-scheduler controller nova enabled :-) 2015-07-06 18:35:55
È tutto!!. Il prossimo passo è configurare un nodo di archiviazione.