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-plugi n

 

新版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
gluster volume start $myvolname

 

4.生成证书

 

cd /etc/swift
openssl req -new -x509 -nodes -out cert.crt -keyout cert.key

 

5. 配置UFO

编辑/etc/swift/proxy-server.conf文件,加入

bind_port = 443
cert_file = /etc/swift/cert.crt
key_file = /etc/swift/cert.key

 到[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

(authtoken similar to AUTH_tk2c69b572dd544383b352d0f0d61c2e6d)

 

接下来我们需要创建一个container容器。

Swift 层次结构依次为: account,  容器container,  对像object。

对应glusterfs:  卷volume, 文件夹, 文件

 

curl -v -X PUT -H 'X-Auth-Token: $authtoken' https://$myhostname:443/v1/AUTH_$myvolname/$mycontainername -k

 

下面就可以对文件对象进行操作:

 

创建文件

curl -v -X PUT -H 'X-Auth-Token: $authtoken' https://$myhostname:443/v1/AUTH_$myvolname/$mycontainername -k

上传文件

curl -v -X PUT -T $filename -H 'X-Auth-Token: $authtoken' -H 'Content-Length: $filelen' https://$myhostname:443/v1/AUTH_$myvolname/$mycontainername/$filename -k

下载文件

curl -v -X GET -H 'X-Auth-Token: $authtoken' https://$myhostname:443/v1/AUTH_$myvolname/$mycontainername/$filename -k > $filename

 

参考:

http://www.gluster.org/2012/09/howto-using-ufo-swift-a-quick-and-dirty-setup-guide/

你可能感兴趣的:(gluster)