cn:ccr:cloud:cloudstorage:installazione_swift
Table of Contents
Installazione Swift
- Autore originale: Giacinto Donvito
- Formattazione: Matteo Panella
Installazione pacchetti
# apt-get install swift openssh-server rsync memcached python-netifaces python-xattr python-memcache # apt-get install swift-account swift-container swift-object xfsprogs # apt-get install swift-proxy memcached python-keystoneclient python-swiftclient python-webob
Configurazione dello storage locale
# mkfs.xfs /dev/vdb1 # echo "/dev/vdb1 /srv/node/vdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab # mkdir -p /srv/node/vdb1 # mount /srv/node/vdb1 # chown -R swift:swift /srv/node
Creare il file /etc/rsyncd.conf con il seguente contenuto:
uid = swift gid = swift log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid address = <STORAGE_LOCAL_NET_IP> [account] max connections = 2 path = /srv/node/ read only = false lock file = /var/lock/account.lock [container] max connections = 2 path = /srv/node/ read only = false lock file = /var/lock/container.lock [object] max connections = 2 path = /srv/node/ read only = false lock file = /var/lock/object.lock
Modificare il file /etc/default/rsync:
RSYNC_ENABLE = true
Generazione dei certificati (self-signed) per SSL:
# cd /etc/swift # openssl req -new -x509 -nodes -out cert.crt -keyout cert.key
Modificare il file /etc/memcached.conf apportando il seguente cambiamento:
-l 127.0.0.1 to -l <PROXY_LOCAL_NET_IP>
Riavviare memcached:
# service memcached restart
Creare il file di configurazione /etc/swift/proxy-server.conf come dettagliato sotto.
Creare la signing_dir:
# mkdir -p /home/swift/keystone-signing # chown -R swift:swift /home/swift/keystone-signing
Configurazione dei servizi di storage
Creazione dei ring
# swift-ring-builder account.builder add z1-$SWIFT_NODE_IP:6002/vdb1 100 # swift-ring-builder container.builder add z1-$SWIFT_NODE_IP:6001/vdb1 100 # swift-ring-builder object.builder add z1-$SWIFT_NODE_IP:6000/vdb1 100
Files di configurazione dei servizi
/etc/swift/object-server.conf:
[DEFAULT] bind_ip = 0.0.0.0 workers = 2 [pipeline:main] pipeline = object-server [app:object-server] use = egg:swift#object [object-replicator] [object-updater] [object-auditor]
/etc/swift/account-server.conf:
[DEFAULT] bind_ip = 0.0.0.0 workers = 2 [pipeline:main] pipeline = account-server [app:account-server] use = egg:swift#account [account-replicator] [account-auditor] [account-reaper]
/etc/swift/container-server.conf:
[DEFAULT] bind_ip = 0.0.0.0 workers = 2 [pipeline:main] pipeline = container-server [app:container-server] use = egg:swift#container [container-replicator] [container-updater] [container-auditor]
/etc/swift/proxy-server.conf:
[DEFAULT]
bind_port = 8080
user = swift
[pipeline:main]
pipeline = healthcheck cache authtoken keystoneauth proxy-server
[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
account_autocreate = true
[filter:keystoneauth]
use = egg:swift#keystoneauth
operator_roles = Member,admin,swiftoperator
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
# Delaying the auth decision is required to support token-less
# usage for anonymous referrers ('.r:*').
delay_auth_decision = true
# cache directory for signing certificate
signing_dir = /home/swift/keystone-signing
# auth_* settings refer to the Keystone server
auth_protocol = http
auth_host = $CONTROLLER_NODE_PUBLIC_IP
auth_port = 35357
# the same admin_token as provided in keystone.conf
admin_token = openstack
# the service tenant and swift userid and password created in Keystone
admin_tenant_name = service
admin_user = swift
admin_password = $SWIFT_USER_PASSWORD
[filter:cache]
use = egg:swift#memcache
[filter:catch_errors]
use = egg:swift#catch_errors
[filter:healthcheck]
use = egg:swift#healthcheck
Lista dei files in /etc/swift/:
root@swift:/etc/swift# ls -ltr total 6216 -rw-r--r-- 1 swift swift 183 Apr 9 09:02 object-server.conf -rw-r--r-- 1 swift swift 201 Apr 9 09:02 container-server.conf -rw-r--r-- 1 swift swift 188 Apr 9 09:02 account-server.conf -rw-r--r-- 1 swift swift 113 Jun 12 13:52 swift.conf -rw-r--r-- 1 root root 916 Jun 12 14:00 cert.key -rw-r--r-- 1 root root 1131 Jun 12 14:00 cert.crt lrwxrwxrwx 1 root root 28 Jun 12 14:53 swift-proxy.conf -> /etc/swift/proxy-server.conf -rw-r--r-- 1 root root 1150 Jun 12 15:32 proxy-server.conf -rw-r--r-- 1 root root 1724 Jun 13 14:05 account.ring.gz -rw-r--r-- 1 root root 2099711 Jun 13 14:05 account.builder -rw-r--r-- 1 root root 1725 Jun 13 14:05 container.ring.gz -rw-r--r-- 1 root root 2099709 Jun 13 14:05 container.builder -rw-r--r-- 1 root root 1722 Jun 13 14:06 object.ring.gz -rw-r--r-- 1 root root 2099709 Jun 13 14:06 object.builder drwxr-xr-x 2 root root 4096 Jun 13 14:06 backups -rw-r--r-- 1 root root 222 Jun 13 14:58 novarc
Test della configurazione
Configurazione variabili di autenticazione
# export OS_TENANT_NAME=admin # export OS_USERNAME=admin # export OS_PASSWORD=$SWIFT_USER_PASSWORD # export OS_AUTH_URL="http://$CONTROLLER_NODE_PUBLIC_IP:5000/v2.0/"
Test lato client
root@swift:/etc/swift# swift stat giacinto prova_big_file
Account: AUTH_d9e5b6880a444d2986c691652e53674f
Container: giacinto
Object: prova_big_file
Content Type: application/octet-stream
Content Length: 480247808
Last Modified: Fri, 14 Jun 2013 07:46:13 GMT
ETag: 19882d2dce6140c6033c514e91e49e37
Meta Orig-Filename: proxmox-ve_3.0-f8f25665-10.iso
Accept-Ranges: bytes
X-Timestamp: 1371195973.28637
cn/ccr/cloud/cloudstorage/installazione_swift.txt · Last modified: 2014/11/18 16:37 by stalio@infn.it
