Glusterfs+Swift 对外提供对像存储
虽然Glusterfs本身对外只提供POSIX兼容的文件存储, 它也可以借助OpenStack的Swift对外提供对象存储。
?
?
我的实验环境为Fedora18,其他环境在命令格式上可能略有不同:
1.安装依赖包
?
yum install glusterfs glusterfs-server glusterfs-fuse glusterfs-swift glusterfs-swift-account glusterfs-swift-container glusterfs-swift-object glusterfs-swift-proxy glusterfs-swift-plugin?
新版F19中glusterfs-swift-plugin已经改名为glusterfs-ufo
旧版中glusterfs-swift-*这些包与原生的openstack-swift-*包是冲突的,新版F19已经全部使用openstack-swift-*的包。
?
2. 启动Glusterd服务
?
systemctl start glusterd.service?
3.新建/启动glusterfs卷
?
gluster volume create $myvolname $myhostname:$pathtobrick?
4.生成证书
?
cd /etc/swift?
5. 配置UFO
编辑/etc/swift/proxy-server.conf文件,加入
bind_port = 443?到[DEFAULT]标题下。
?
加入
user_$myvolname_$username=$password .admin?到[filter:tempauth]
注: 自己设用户名和密码,下面会用到。
?
加入
memcache_servers = 127.0.0.1:11211?到[filter:cache]
?
6. 启动memcache服务
?
systemctl start memcached.service?
7.启动Swift
?
swift-init main start?
8. 配置完毕,下面我们开始使用对像存储
?
首先我们需要将用户名和密码发送给proxy-server做认证,它会返回一个token, 就好比一把钥匙。每次操作对象存储都需要提供这把钥匙
?
curl -v -H 'X-Storage-User: $myvolname:$username' -H 'X-Storage-Pass: $password' -k https://$myhostname:443/auth/v1.0?
接下来我们需要创建一个container容器。
Swift 层次结构依次为: account,? 容器container,? 对像object。
对应glusterfs:? 卷volume, 文件夹, 文件
?
curl -v -X PUT -H 'X-Auth-Token: $authtoken' https://$myhostname:443/v1/AUTH_$myvolname/$mycontainername -k?
下面就可以对文件对象进行操作:
?
创建文件?
参考:
http://www.gluster.org/2012/09/howto-using-ufo-swift-a-quick-and-dirty-setup-guide/