Dies ist der zweite Teil von OpenStack Kilo auf Ubuntu 14.04.2 – Cinder konfigurieren, in diesem Tutorial werden wir Storage Node für den Cinder-Dienst installieren und konfigurieren. Zu Demonstrationszwecken wird dieser Speicherknoten mit einem Blockspeichergerät /dev/sdb konfiguriert, das die Partition /dev/sdb1 enthält, die die gesamte Festplatte belegt.
Voraussetzungen:
Das Folgende ist die Netzwerkkonfiguration des Speicherknotens. Storage Node hat eine Netzwerkschnittstelle im Verwaltungsnetzwerk.
Rolle | NW-Karte 1 | NW-Karte 2 | NW-Karte 3 |
---|---|---|---|
Speicherknoten | 192.168.12.24/24, GW=192.168.12.2 (Verwaltungsnetzwerk) | NA | NA |
Legen Sie den Hostnamen des zu blockierenden Knotens fest.
Kopieren Sie den Host-Eintrag vom Controller-Knoten auf den Speicher-Knoten und fügen Sie ihm Folgendes hinzu. Die endgültige Ausgabe sieht wie folgt aus.
192.168.12.21 controller 192.168.12.22 network 192.168.12.23 compute 192.168.12.24 block
Installieren Sie das NTP-Paket auf dem Storage Node.
# apt-get install ntp
Bearbeiten Sie die folgende Konfigurationsdatei.
# nano /etc/ntp.conf
Entfernen Sie andere NTP-Server aus der Datei, hashen Sie einfach die Zeilen, die mit dem Wort „Server“ beginnen. Fügen Sie den folgenden Eintrag hinzu, um unsere Knoten mit dem Controller-Knoten zu synchronisieren.
server controller
Starten Sie den NTP-Dienst neu.
# service ntp restart
OpenStack-Pakete:
Installieren Sie den Schlüsselbund und das Repository des Ubuntu Cloud-Archivs.
# 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
Aktualisieren Sie die Repositorys auf Ihrem System.
# apt-get update
Installieren Sie lvm2-Pakete, falls erforderlich.
# apt-get install lvm2
Erstellen Sie das physische Volume /dev/sdb1
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
Erstellen Sie die Datenträgergruppe vg_cinder.
# vgcreate vg_cinder /dev/sdb1 Volume group "vg_cinder" successfully created
Bearbeiten Sie die Datei /etc/lvm/lvm.conf und fügen Sie einen Filter hinzu, der das Gerät /dev/sdb akzeptiert und alle anderen Geräte ablehnt.
# nano /etc/lvm/lvm.conf
Ändern Sie im Abschnitt "Geräte"
Von
filter = [ "a/.*/ " ]
An
filter = [ "a/sdb/", "r/.*/" ]
Cinder-Komponenten installieren und konfigurieren:
Installieren Sie die Pakete auf dem Speicherknoten.
# apt-get install cinder-volume python-mysqldb
Bearbeiten Sie die Datei /etc/cinder/cinder.conf.
# nano /etc/cinder/cinder.conf
Ändern Sie die folgenden Einstellungen und stellen Sie sicher, dass Sie Einträge in den richtigen Abschnitten platzieren. Manchmal müssen Sie möglicherweise Abschnitte hinzufügen, wenn diese nicht vorhanden sind, und Sie müssen auch einige Einträge hinzufügen, die in der Datei fehlen, nicht alle.
[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.
Starten Sie den Blockspeicherdienst neu.
# service tgt restart # service cinder-volume restart
Entfernen Sie die SQLite-Datenbankdatei.
# rm -f /var/lib/cinder/cinder.sqlite
Fehlerbehebung:
Durchsuchen Sie das Protokoll nach Fehlern.
# cat /var/log/cinder/cinder-volume.log
Für Fehler wie unten.
"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'")
Besuch:Unbekannte Säule
Für Fehler wie unten.
AMQP server on controller:5672 is unreachable: Too many heartbeats missed. Trying again in 1 seconds.
Besuch:Zu viele Herzschläge verpasst.
Verifizierung:
Führen Sie den folgenden Befehl aus, um den Block Storage-Client für die Verwendung der API-Version 2.0 zu konfigurieren.
# echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
Laden Sie die Anmeldeinformationen.
# source admin-openrc.sh
Listen Sie die Dienstkomponenten auf.
# 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 | +------------------+------------+------+---------+-------+----------------------------+-----------------+
Ein Volume an eine Instanz anhängen:
Erstellen Sie eine virtuelle Festplatte „disk01“ mit 5 GB, führen Sie den folgenden Befehl auf dem Controller-Knoten aus.
# 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 | +---------------------------------------+--------------------------------------+
Listen Sie die verfügbaren Volumes auf, und der Status sollte verfügbar sein.
# cinder list +--------------------------------------+-----------+--------+------+-------------+----------+-------------+ | ID | Status | Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+-----------+--------+------+-------------+----------+-------------+ | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | available | disk01 | 5 | None | false | | +--------------------------------------+-----------+--------+------+-------------+----------+-------------+
Verbinden Sie das Volume disk01 mit unserer laufenden Instanz „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 | +----------+--------------------------------------+
Listen Sie die Volumes auf, Sie können den Status als in Gebrauch sehen und er sollte an die Instanz-ID von My-Fedora angehängt werden.
# 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 | +--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+
Melden Sie sich mit SSH bei der MY-Fedora-Instanz an und führen Sie den Befehl fdisk -l aus, um die Festplatten aufzulisten.
# 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
Oben können Sie sehen, dass eine neue Festplatte /dev/vdb mit 5 GB hinzugefügt wurde. Dies ist die Datei, die wir zuvor angehängt haben und die jetzt im Gastbetriebssystem sichtbar ist.
Das ist alles. Sie haben den Blockspeicherdienst (Cinder) auf Ubuntu 14.04.2 erfolgreich konfiguriert