Swift提供了弹性可伸缩、高可用的分布式对象存储服务,适合存储大规模非结构化数据。请在控制节点和存储节点安装Swift。
source ~/.admin-openrc openstack user create --domain default --password-prompt swift openstack role add --project service --user swift admin openstack service create --name swift --description "OpenStack Object Storage" object-store
密码中请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”
openstack endpoint create --region RegionOne object-store public http://controller:8080/v1/AUTH_%\(project_id\)s openstack endpoint create --region RegionOne object-store internal http://controller:8080/v1/AUTH_%\(project_id\)s openstack endpoint create --region RegionOne object-store admin http://controller:8080/v1
yum install openstack-swift-proxy python3-swiftclient python3-keystoneclient python3-keystonemiddleware memcached
Swift RPM包里已经包含了一个基本可用的proxy-server.conf,只需要手动修改其中的password配置项即可。
vi /etc/swift/proxy-server.conf
[filter:authtoken] password = SWIFT_PASSWORD
将SWIFT_PASSWORD为swift用户的密码,请根据实际需求进行设置。
yum install xfsprogs rsync
mkfs.xfs -f /dev/vdb mkfs.xfs -f /dev/vdc
mkdir -p /srv/node/vdb mkdir -p /srv/node/vdc
blkid
UUID="<UUID-from-output-above>" /srv/node/vdb xfs noatime 0 2 UUID="<UUID-from-output-above>" /srv/node/vdc xfs noatime 0 2
mount /srv/node/vdb mount /srv/node/vdc
vi /etc/rsyncd.conf
[DEFAULT] uid = swift gid = swift log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid address = MANAGEMENT_INTERFACE_IP_ADDRESS [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
将MANAGEMENT_INTERFACE_IP_ADDRESS替换为当前节点上管理网络的IP地址。
systemctl enable rsyncd.service systemctl start rsyncd.service
yum install openstack-swift-account openstack-swift-container openstack-swift-object
chown -R swift:swift /srv/node
mkdir -p /var/cache/swift chown -R root:swift /var/cache/swift chmod -R 775 /var/cache/swift
cd /etc/swift
swift-ring-builder account.builder create 10 1 1
swift-ring-builder account.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6202 --device DEVICE_NAME --weight DEVICE_WEIGHT
swift-ring-builder account.builder
swift-ring-builder account.builder rebalance
cd /etc/swift
swift-ring-builder container.builder create 10 1 1
swift-ring-builder container.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6201 --device DEVICE_NAME --weight DEVICE_WEIGHT
swift-ring-builder container.builder
swift-ring-builder container.builder rebalance
cd /etc/swift
swift-ring-builder object.builder create 10 1 1
swift-ring-builder object.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6200 --device DEVICE_NAME --weight DEVICE_WEIGHT
swift-ring-builder object.builder
swift-ring-builder object.builder rebalance
vi /etc/swift/swift.conf
[swift-hash] swift_hash_path_suffix = test-hash swift_hash_path_prefix = test-hash [storage-policy:0] name = Policy-0 default = yes
chown -R root:swift /etc/swift
systemctl enable openstack-swift-proxy.service memcached.service systemctl start openstack-swift-proxy.service memcached.service
systemctl enable openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service systemctl start openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service systemctl enable openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service systemctl start openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service systemctl enable openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service systemctl start openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service