Swift AKA OpenStack Object Storage è un sistema di storage di oggetti multi-tenant, fornisce un object store a scalabilità orizzontale distribuito tra i nodi di storage che si trovano nel cluster. Questa guida ti aiuta a configurare Swift su Ubuntu 14.04.2.
Ci sono due componenti principali in Swift:
Proxy rapido:
Accetta API e richieste http grezze per caricare file, modificare metadati e creare contenitori. Poiché le richieste vengono eseguite tramite l'API REST, utilizza i verbi HTTP con comandi semplici come PUT e GET. Quando l'utente invia un dato da scrivere, la richiesta andrà al server proxy e sceglierà il nodo di archiviazione perfetto per archiviare i dati. È possibile disporre di più server proxy per prestazioni e ridondanza. Nel nostro caso, utilizzeremo il controller node come server proxy rapido.
Nodo di archiviazione:
È qui che vengono archiviati i dati dell'utente, puoi avere più nodi di archiviazione nel tuo ambiente. Swift è un sistema basato sulla replica, tutti i dati archiviati al suo interno verranno archiviati più volte (repliche) per garantire un'elevata disponibilità dei dati.
Prerequisiti:
Quella che segue è la configurazione di rete del proxy e del nodo di archiviazione, il nodo di archiviazione avrà un'interfaccia di rete sulla rete di gestione.
Ruolo | Carta NO 1 |
---|---|
Server proxy (nodo controller) | 192.168.12.21 / 24, GW=192.168.12.2 (Rete di gestione) |
Nodo di archiviazione oggetti 1 | 192.168.12.25 / 24, GW=192.168.12.2 (Rete di gestione) |
Nodo di archiviazione oggetti 1 | 192.168.12.26 / 24, GW=192.168.12.2 (Rete di gestione) |
Nodo di archiviazione oggetti 1 | 192.168.12.27 / 24, GW=192.168.12.2 (Rete di gestione) |
Installa e configura swift proxy sul nodo controller:
Carica le tue credenziali di amministratore dallo script dell'ambiente.
# source admin-openrc.sh
Crea l'utente swift per la creazione delle credenziali del servizio.
# openstack user create --password-prompt swift User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | 023c019a62f3476d986627e8615b034f | | name | swift | | username | swift | +----------+----------------------------------+
Aggiungi il ruolo di amministratore all'utente swift.
# openstack role add --project service --user swift admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Crea l'entità del servizio Swift.
# 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 | +-------------+----------------------------------+
Crea l'endpoint dell'API del servizio Object Storage.
# 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 | +--------------+----------------------------------------------+
Installa i pacchetti sul nodo Controller.
# apt-get install swift swift-proxy python-swiftclient python-keystoneclient python-keystonemiddleware memcached
Crea la directory /etc/swift.
# mkdir /etc/swift
Ottieni il file di configurazione del proxy dal repository di origine.
# curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/kilo
Modifica il file /etc/swift/proxy-server.conf.
# nano /etc/swift/proxy-server.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.
[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
Questo è tutto!!!, nel nostro prossimo tutorial configureremo i nodi di archiviazione.