Questa è la seconda parte di OpenStack Kilo su Ubuntu 14.04.2 – Configure Cinder, in questo tutorial installeremo e configureremo Storage Node per il servizio Cinder. A scopo dimostrativo, configureremo questo nodo di archiviazione con un dispositivo di archiviazione a blocchi /dev/sdb che contiene la partizione /dev/sdb1 che occupa l'intero disco.
Prerequisiti:
Quella che segue è la configurazione di rete del nodo di archiviazione. Il nodo di archiviazione avrà un'interfaccia di rete sulla rete di gestione.
Ruolo | Carta NO 1 | Carta NW 2 | Carta NW 3 |
---|---|---|---|
Nodo di archiviazione | 192.168.12.24 / 24, GW=192.168.12.2 (Rete di gestione) | NA | NA |
Imposta il nome host del nodo da bloccare.
Copiare la voce host dal nodo controller al nodo di archiviazione e aggiungere quanto segue. L'output finale sarà simile al seguente.
192.168.12.21 controller 192.168.12.22 network 192.168.12.23 compute 192.168.12.24 block
Installa il pacchetto NTP su Storage Node.
# apt-get install ntp
Modifica il file di configurazione seguente.
# nano /etc/ntp.conf
Rimuovi altri server NTP dal file, elimina semplicemente le righe che iniziano con la parola "server". Aggiungi la voce di seguito per sincronizzare i nostri nodi con il nodo controller.
server controller
Riavvia il servizio NTP.
# service ntp restart
Pacchetti OpenStack:
Installa il portachiavi e il repository dell'archivio Ubuntu Cloud.
# apt-get install ubuntu-cloud-keyring # echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list
Aggiorna i repository sul tuo sistema.
# apt-get update
Installa i pacchetti lvm2, se necessario.
# apt-get install lvm2
Crea il volume fisico /dev/sdb1
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
Crea il gruppo di volumi vg_cinder.
# vgcreate vg_cinder /dev/sdb1 Volume group "vg_cinder" successfully created
Modifica il file /etc/lvm/lvm.conf e aggiungi un filtro che accetti il dispositivo /dev/sdb e rifiuti tutti gli altri dispositivi.
# nano /etc/lvm/lvm.conf
Nella sezione dispositivi, cambia
Da
filter = [ "a/.*/ " ]
A
filter = [ "a/sdb/", "r/.*/" ]
Installa e configura i componenti di Cinder:
Installa i pacchetti sul nodo di archiviazione.
# apt-get install cinder-volume python-mysqldb
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. A volte potrebbe essere necessario aggiungere sezioni se non esiste e anche aggiungere alcune voci che mancano nel file, non tutte.
[DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone my_ip = 192.168.12.24 ## Management IP of Storage Node enabled_backends = lvm glance_host = controller verbose = True [database] connection = mysql://cinder:password@controller/cinder ## Replace "password" with the password you chose for cinder database [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 [lvm] volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = vg_cinder iscsi_protocol = iscsi iscsi_helper = tgtadm ## Replace vg_cinder with your volume group. [oslo_concurrency] lock_path = /var/lock/cinder ## Comment out the lock_path in (DEFAULT) section.
Riavvia il servizio di archiviazione a blocchi.
# service tgt restart # service cinder-volume restart
Rimuovere il file del database SQLite.
# rm -f /var/lib/cinder/cinder.sqlite
Risoluzione dei problemi:
Esamina il registro per eventuali errori.
# cat /var/log/cinder/cinder-volume.log
Per errori come di seguito.
"Unknown column 'volumes.instance_uuid' in 'field list'") "Unknown column 'volumes.attach_time' in 'field list "Unknown column 'volumes.mountpoint' in 'field list'" "Unknown column 'volumes.attached_host' in 'field list'")
Visita:Colonna sconosciuta
Per errori come di seguito.
AMQP server on controller:5672 is unreachable: Too many heartbeats missed. Trying again in 1 seconds.
Visita:troppi battiti del cuore persi.
Verifica:
Eseguire il comando seguente per configurare il client Block Storage per l'utilizzo dell'API versione 2.0.
# echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
Carica le credenziali.
# source admin-openrc.sh
Elenca i componenti del servizio.
# cinder service-list +------------------+------------+------+---------+-------+----------------------------+-----------------+ | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +------------------+------------+------+---------+-------+----------------------------+-----------------+ | cinder-scheduler | controller | nova | enabled | up | 2015-07-07T20:11:21.000000 | None | | cinder-volume | block@lvm | nova | enabled | up | 2015-07-07T20:11:18.000000 | None | +------------------+------------+------+---------+-------+----------------------------+-----------------+
Collega un volume a un'istanza:
Crea un disco virtuale "disk01" con 5 GB, esegui il seguente comando sul nodo controller.
# cinder create --name disk01 5 +---------------------------------------+--------------------------------------+ | Property | Value | +---------------------------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2015-07-07T20:18:34.000000 | | description | None | | encrypted | False | | id | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | | metadata | {} | | multiattach | False | | name | disk01 | | os-vol-host-attr:host | None | | os-vol-mig-status-attr:migstat | None | | os-vol-mig-status-attr:name_id | None | | os-vol-tenant-attr:tenant_id | 9b05e6bffdb94c8081d665561d05e31e | | os-volume-replication:driver_data | None | | os-volume-replication:extended_status | None | | replication_status | disabled | | size | 5 | | snapshot_id | None | | source_volid | None | | status | creating | | user_id | 127a9a6b822a4e3eba69fa54128873cd | | volume_type | None | +---------------------------------------+--------------------------------------+
Elenca i volumi disponibili e lo stato dovrebbe essere disponibile.
# cinder list +--------------------------------------+-----------+--------+------+-------------+----------+-------------+ | ID | Status | Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+-----------+--------+------+-------------+----------+-------------+ | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | available | disk01 | 5 | None | false | | +--------------------------------------+-----------+--------+------+-------------+----------+-------------+
Collega il volume disk01 alla nostra istanza in esecuzione "My-Fedora"
# nova volume-attach MY-Fedora dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 +----------+--------------------------------------+ | Property | Value | +----------+--------------------------------------+ | device | /dev/vdb | | id | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | | serverId | 7432030a-3cbe-49c6-956a-3e725e22196d | | volumeId | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | +----------+--------------------------------------+
Elenca i volumi, puoi vedere lo stato come in uso e dovrebbe essere allegato all'ID istanza di My-Fedora.
# cinder list +--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+ | ID | Status | Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+ | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | in-use | disk01 | 5 | None | false | 7432030a-3cbe-49c6-956a-3e725e22196d | +--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+
Accedi all'istanza MY-Fedora utilizzando SSH ed esegui il comando fdisk -l per elencare i dischi.
# ssh -i mykey [email protected] Last login: Mon Jul 6 17:59:46 2015 from 192.168.0.103 [fedora@my-fedora ~]$ sudo su - [root@my-fedora ~]# fdisk -l Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xf1cc8d9d Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 41943039 41940992 20G 83 Linux Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Da quanto sopra puoi vedere, il nuovo disco /dev/vdb aggiunto con 5 GB. Questo è quello che abbiamo allegato in precedenza e ora è visibile nel SO guest.
È tutto. Hai configurato correttamente il servizio di archiviazione a blocchi (Cinder) su Ubuntu 14.04.2