Der Swift AKA OpenStack Object Storage ist ein mandantenfähiges Objektspeichersystem, das einen verteilten Scale-out-Objektspeicher über Speicherknoten im Cluster bietet. Diese Anleitung hilft Ihnen bei der Konfiguration von Swift unter Ubuntu 14.04.2.
Es gibt zwei Hauptkomponenten in Swift:
Swift-Proxy:
Es akzeptiert API- und Raw-HTTP-Anforderungen, um Dateien hochzuladen, Metadaten zu ändern und Container zu erstellen. Da die Anforderungen über die REST-API erfolgen, werden HTTP-Verben mit einfachen Befehlen wie PUT und GET verwendet. Wenn der Benutzer zu schreibende Daten sendet, wird die Anfrage an den Proxy-Server gesendet und der perfekte Speicherknoten zum Speichern der Daten ausgewählt. Sie können mehrere Proxy-Server für Leistung und Redundanz haben. In unserem Fall verwenden wir den Controller-Knoten als schnellen Proxy-Server.
Speicherknoten:
Hier werden die Benutzerdaten gespeichert, Sie können mehrere Speicherknoten in Ihrer Umgebung haben. Swift ist ein replikationsbasiertes System, alle darin gespeicherten Daten werden mehrfach gespeichert (Replikate), um eine hohe Datenverfügbarkeit zu gewährleisten.
Voraussetzungen:
Das Folgende ist die Netzwerkkonfiguration des Proxy- und Speicherknotens, der Speicherknoten hat eine Netzwerkschnittstelle im Verwaltungsnetzwerk.
Rolle | NW-Karte 1 |
---|---|
Proxy-Server (Controller-Knoten) | 192.168.12.21/24, GW=192.168.12.2 (Verwaltungsnetzwerk) |
Objektspeicherknoten 1 | 192.168.12.25 / 24, GW=192.168.12.2 (Verwaltungsnetzwerk) |
Objektspeicherknoten 1 | 192.168.12.26 / 24, GW=192.168.12.2 (Verwaltungsnetzwerk) |
Objektspeicherknoten 1 | 192.168.12.27 / 24, GW=192.168.12.2 (Verwaltungsnetzwerk) |
Installieren und konfigurieren Sie den Swift-Proxy auf dem Controller-Knoten:
Laden Sie Ihre Admin-Anmeldeinformationen aus dem Umgebungsskript.
# source admin-openrc.sh
Erstellen Sie den Swift-Benutzer zum Erstellen von Service-Anmeldeinformationen.
# openstack user create --password-prompt swift User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | 023c019a62f3476d986627e8615b034f | | name | swift | | username | swift | +----------+----------------------------------+
Fügen Sie dem Swift-Benutzer die Administratorrolle hinzu.
# openstack role add --project service --user swift admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Erstellen Sie die Swift-Service-Entität.
# openstack service create --name swift --description "OpenStack Object Storage" object-store +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Object Storage | | enabled | True | | id | b835a5fbfe3d4a9592f6dbd69ddb148d | | name | swift | | type | object-store | +-------------+----------------------------------+
Erstellen Sie den API-Endpunkt des Object Storage-Dienstes.
# openstack endpoint create --publicurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' --internalurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' --adminurl http://controller:8080 --region RegionOne object-store +--------------+----------------------------------------------+ | Field | Value | +--------------+----------------------------------------------+ | adminurl | http://controller:8080 | | id | d250217af148491abc611e2b72a227b8 | | internalurl | http://controller:8080/v1/AUTH_%(tenant_id)s | | publicurl | http://controller:8080/v1/AUTH_%(tenant_id)s | | region | RegionOne | | service_id | b835a5fbfe3d4a9592f6dbd69ddb148d | | service_name | swift | | service_type | object-store | +--------------+----------------------------------------------+
Installieren Sie die Pakete auf dem Controller-Knoten.
# apt-get install swift swift-proxy python-swiftclient python-keystoneclient python-keystonemiddleware memcached
Erstellen Sie das Verzeichnis /etc/swift.
# mkdir /etc/swift
Holen Sie sich die Proxy-Konfigurationsdatei aus dem Quell-Repository.
# curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/kilo
Bearbeiten Sie die Datei /etc/swift/proxy-server.conf.
# nano /etc/swift/proxy-server.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] ... bind_port = 8080 user = swift swift_dir = /etc/swift [pipeline:main] pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo proxy-logging proxy-server [app:proxy-server] ... account_autocreate = true [filter:keystoneauth] use = egg:swift#keystoneauth ... operator_roles = admin,user [filter:authtoken] paste.filter_factory = keystonemiddleware.auth_token:filter_factory ... 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 = swift password = password ## Replace "password" with the password you chose for swift user in the identity service delay_auth_decision = true ## Comment out or remove any other options in the [filter:authtoken] section [filter:cache] ... memcache_servers = 127.0.0.1:11211
Das ist alles!!!, in unserem nächsten Tutorial werden wir Speicherknoten konfigurieren.