openstack essex版安装(4)——swift
来源:互联网 发布:换书软件 编辑:程序博客网 时间:2024/04/28 14:09
swift是openstack的存储项目。这里我用了2台机子
Swift
Host:swift1
ip:192.168.0.110
Proxy-server, account-server, container-server, object-server
Host:swift2
ip:192.168.0.111
account-server, container-server, object-server
1、主控点安装(swift1)sudo apt-get install –y keystone // 如果要和keystone做集成,swift需要使用到keystone里提供的swift_auth和auth_token的功能,不过只需在有proxy-server的服务器上装就可以了。
sudo apt-get install –y swift swift-proxy memcached swift-account swift-container swift-object
sudo groupadd swift
sudo useradd -g swift swift //为每台机器都创建swift用户
在/etc/swift下面创建一个swift.conf文件,每个节点都应该一样。内容如下:
[swift-hash]swift_hash_path_suffix =123456789
openssl version //确定有没有openssl,如果出现版本就说明装了
配置memcached。Swift自己是没有cache机制的,所以会用到memcached,一个高性能的分布式内存对象缓存系统。proxy server需要用到memcache来作为token的临时存储, 所以需要安装和配置一下memcached。sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/memcached.conf
sudo service memcached restart
在/etc/swift/下创建proxy-server.conf文件配置swift的proxy-server
[DEFAULT]bind_port = 8080swift_dir = /etc/swiftworkers = 1user = swiftlog_level = DEBUG[pipeline:main]pipeline = catch_errors healthcheck cache ratelimit authtoken keystone proxy-server[app:proxy-server]account_autocreate = trueuse = egg:swift#proxy[filter:healthcheck]use = egg:swift#healthcheck[filter:cache]use = egg:swift#memcache[filter:ratelimit]use = egg:swift#ratelimit[filter:domain_remap]use = egg:swift#domain_remap[filter:catch_errors]use = egg:swift#catch_errors#[filter:proxy-logging]#use = egg:swift#proxy_logging[filter:keystone]paste.filter_factory = keystone.middleware.swift_auth:filter_factoryoperator_roles = admin,swiftoperator[filter:authtoken]paste.filter_factory = keystone.middleware.auth_token:filter_factoryauth_host = 192.168.0.106auth_port = 35357auth_protocol = httpauth_uri = http://192.168.0.106:5000/admin_tenant_name = adminTenantadmin_user = adminadmin_password = openstackadmin_token=ADMINdelay_auth_decision = 1
配置映射信息(Ring)。ring决定数据在集群中的位置。帐号数据库、容器数据库和单个对象的环都有独立的环管理,这段配置一定要在/etc/swift/目录下完成。
创建account、container、object的ring信息
cd /etc/swiftsudo swift-ring-builder account.builder create 18 1 1sudo swift-ring-builder container.builder create 18 1 1sudo swift-ring-builder object.builder create 18 1 1
创建好后,会在/etc/swift下出现account.builder、contaier.builder和object.builder三个builder文件,同时还会有个backups目录,该目录下也会有三个相应的builder文件。
为存储节点添加物理映射信息
sudo swift-ring-builder account.builder add z1-192.168.0.110:6002/sdb1 100sudo swift-ring-builder container.builder add z1-192.168. 0.110:6001/sdb1 100sudo swift-ring-builder object.builder add z1-192.168. 0.110:6000/sdb1 100sudo swift-ring-builder account.builder add z2-192.168. 0.111:6002/sdb1 100sudo swift-ring-builder container.builder add z2-192.168. 0.111:6001/sdb1 100sudo swift-ring-builder object.builder add z2-192.168. 0.111:6000/sdb1 100
生成最终的Ring
sudo swift-ring-builder account.builder rebalancesudo swift-ring-builder container.builder rebalancesudo swift-ring-builder object.builder rebalance
当创建好了Ring文件, 可以通过下面的命令来验证刚才添加的内容是否正确。
swift-ring-builder account.builderswift-ring-builder container.builderswift-ring-builder object.builder
我们的存储节点在/dev/sdb/上,先对这块盘进行分区并格式化为xfs格式, 然后挂载在/srv/node/sdb1这个目录上。Swift的设计是可以使用最普通的文件系统,只要支持扩展属性就可以。一些文件系统,像ext3默认的xattrs属性是关闭着的,Openstack项目组推荐xfs。
sudo apt-get install xfsprogs //安装xfs文件系统
sudo fdisk /dev/sdb //#然后一次选择 n, p, 1, 默认, 默认, w
sudo mkfs.xfs -i size=1024 /dev/sdb1
sudo –s //切换到root
echo "/dev/sdb1 /srv/node/sdb1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab
exit
sudo mkdir -p /srv/node/sdb1
sudo mount /srv/node/sdb1
sudo chown -R swift:swift /srv/node
在/etc下创建rsyncd.conf文件uid = swiftgid = swiftlog file = /var/log/rsyncd.logpid file = /var/run/rsyncd.pidaddress = 192.168.0.110[account]max connections = 2path = /srv/node/read only = falselock file = /var/lock/account.lock[container]max connections = 2path = /srv/node/read only = falselock file = /var/lock/container.lock[object]max connections = 2path = /srv/node/read only = falselock file = /var/lock/object.lock
sudo sed -i 's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/g'/etc/default/rsync //设置rsync开机启动
sudo service rsync start //启动rsync
配置account-server.conf
sudo vi /etc/swift/account-server.conf
[DEFAULT]bind_port = 6002#workers = 2user = swiftswift_dir = /etc/swiftdevices = /srv/nodemount_check = falselog_facility = LOG_LOCAL2[pipeline:main]pipeline = recon account-server[app:account-server]use = egg:swift#account[filter:recon]use = egg:swift#recon[account-replicator]vm_test_mode = yes[account-auditor][account-reaper]
配置/etc/swift/container-server.conf
[DEFAULT]bind_port = 6001user = swiftswift_dir = /etc/swiftdevices = /srv/nodemount_check = falselog_facility = LOG_LOCAL2[pipeline:main]pipeline = recon container-server[app:container-server]use = egg:swift#container[filter:recon]use = egg:swift#recon[container-replicator]vm_test_mode = yes[container-updater][container-auditor][container-sync]
配置/etc/swift/object-server.conf
[DEFAULT]bind_port = 6000user = swiftswift_dir = /etc/swiftdevices = /srv/nodemount_check = falselog_facility = LOG_LOCAL2[pipeline:main]pipeline = recon object-server[app:object-server]use = egg:swift#object[filter:recon]use = egg:swift#recon[object-replicator]vm_test_mode = yes[object-updater][object-auditor]
(每个存储节点都是这么配置,只需改动/etc/rsyncd.conf的存储节点ip)
2、第二个存储节点配置(swift2)
存储节点无需安装proxy-server和memcached。
sudo apt-get install –y openssh-server
sudo apt-get install –y swift-accountswift-container swift-object
sudo groupadd swift
sudo useradd -g swift swift //为每台机器都创建swift用户
在/etc/swift下面创建一个swift.conf文件,每个节点都应该一样。内容如下:[swift-hash]swift_hash_path_suffix =123456789
将存储磁盘格式成xfs格式
sudo apt-get install xfsprogs //安装xfs文件系统
sudo fdisk /dev/sdb //#然后一次选择 n, p, 1, 默认, 默认, w
sudo mkfs.xfs -i size=1024 /dev/sdb1
sudo –s //切换到root
echo "/dev/sdb1 /srv/node/sdb1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab
exit
sudo mkdir -p /srv/node/sdb1
sudo mount /srv/node/sdb1
sudo chown -R swift:swift /srv/node
然后将第一个存储节点的/etc/swift目录下的swift.conf、account-server.conf、container-server.conf、object-server.conf、account.ring.gz、container.ring.gz、object.ring.gz这些文件都copy到该节点的/etc/swift目录下, 如果文件夹不存在, 可以创建一下 mkdir /etc/swift。
创建/etc/rsyncd.conf文件。将adress的值改成该存储节点的ip。uid = swiftgid = swiftlog file = /var/log/rsyncd.logpid file = /var/run/rsyncd.pidaddress = 192.168.0.111[account]max connections = 2path = /srv/node/read only = falselock file = /var/lock/account.lock[container]max connections = 2path = /srv/node/read only = falselock file = /var/lock/container.lock[object]max connections = 2path = /srv/node/read only = falselock file = /var/lock/object.lock
sudo sed -i's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/g' /etc/default/rsync //设置rsync开机启动
sudo service rsync start //启动rsync
启动swift2节点的服务sudo swift-init object-server startsudo swift-init object-replicator startsudo swift-init object-updater startsudo swift-init object-auditor startsudo swift-init container-server startsudo swift-init container-replicator startsudo swift-init container-updater startsudo swift-init container-auditor startsudo swift-init account-server startsudo swift-init account-replicator startsudo swift-init account-auditor start
启动swift1节点服务:
sudo swift-init all start
启动后,用ps命令可以看到所有服务的进程。3、使用swift
1)注册swift服务到keystone上
Ø 创建一个object-store服务
keystone service-create --name=Swift --type=object-store --description="Swift Object Store Service"
得到swift服务的id。
Ø 创建服务的endpoint
(IP地址是proxy-server所在服务器地址)
keystone endpoint-create --service_id = <swift-service-id> --region RegionOne --publicurlhttp://192.168.0.110:8080/v1/AUTH_72a95ab302cc42d59e6f414769dcfec7 --adminurlhttp://192.168.0.110:8080 --internalurlhttp://192.168.0.110:8080/v1/AUTH_72a95ab302cc42d59e6f414769dcfec7
2)使用swift
Ø swift -V 2 -A http://192.168.74.130:5000/v2.0 -UadminTenant:admin -K openstack stat //在swift主控点使用该命令,看一下文件的统计结果
- openstack essex版安装(4)——swift
- openstack essex版安装(5)——dashboard安装
- openstack essex版安装(1)——服务器分配
- openstack essex版安装(2)——keystone
- openstack essex版安装(3)——glance
- Ubuntu12.04 Openstack Essex 安装(单节点)Swift 篇
- Ubuntu 12.04 Openstack Essex 安装(单节点)Swift篇
- 【openstack】openstack网络详解(Essex版)
- centos openstack essex安装
- openstack网络详解(Essex版)
- openstack 网络详解(Essex版)
- OpenStack 入门学习:openstack网络详解(Essex版)
- Ubuntu 12.04 Openstack Essex 安装步骤(单节点)
- Ubuntu 12.04 Openstack Essex 安装(单节点)
- Ubuntu 12.04 Openstack Essex 安装(多节点)
- Ubuntu 12.04 Openstack Essex 安装(多节点,控制结点)
- Ubuntu 12.04 Openstack Essex 安装(多节点)
- Ubuntu 12.04 ("Precise Pangolin") 安装 OpenStack Essex
- [Android]在游戏的SurfaceView中获取输入与使用EditText,Spinner等控件的方法
- asp.net 缓存
- DELPHI高性能大容量SOCKET并发(三):接收、发送、缓存
- xml Web Service
- 小知识
- openstack essex版安装(4)——swift
- richviewedit支持png
- C# List<T>基本用法
- OracleDBConsoleorcl无法启动 错误代码2
- 【树形DP】 hdu2196 Computer
- ScrollView
- 对 三种常见的循环结构的理解
- usaco The Tamworth Two
- 一些ios中高效的开源类库