Ceph Swift Api 配置与使用(三)
Ceph Swift Api 配置与使用
一、Ceph Swift Api 说明
在 ceph 的使用上, 互联网大规模的文件场景下, fs 并不能满足生产的使用要求,rados 本地化操作也不便于服务的接入与使用, 这里我们就要采用 Ceph Swift Api 来实现文件的存储管理。
二、Ceph Swift Api 特点
Swift 是由 Rackspace 开发,用来为云计算提供可扩展存储的项目。专注于对象存储, 并提供一套 REST 风格的 Api 来访问, 与 Ceph 强一致性不同, 它是最终一致性。两者都是优秀的开源项目, 并无明显优劣之分,在使用场景上有所不同, 如果是专注于对象存储, 那么可以选择 swift 即可满足需要, 如果还有块存储要求, 那么选择 Ceph 更为合适。这里选择 Ceph, 因为通过网关可以适配兼容 swift api, 同时在数据访问上具有较强的扩展性:
Ceph 可通过 Rados 网关用兼容 S3 的 RESTful API 访问,对 AWS 云环境下的其他内容也能很好的兼容, 比如 OpenStack Swift 的对象存储访问接口。
CephFS:是一个 POSIX 兼容的文件系统,可以在任何 Linux 发行版上运行,操作系统可直接访问 Ceph 存储。
RBD:RBD 是一个 Linux 内核级的块设备,允许用户像任何其他 Linux 块设备一样访问 Ceph。
ISCSI 网关: 这一增加的功能是 SUSE 加上去的,它允许管理员在 Ceph 之上运行 iSCSI(互联网小型计算机系统接口)网关,从而将其转变为任何操作系统都可以访问的 SAN(Storage Area Network,存储区域网络)文件管理器。
三、Ceph RGW 介绍
Ceph 可以提供块、文件和对象三种形态的存储。RGW 就是提供对象存储的网关,也即对象存储网关。 所谓对象存储网关,也就是对象存储的入口,本质上是一个 HTTP 服务器,与 Nginx 和 Apache 无特殊差别。通过这个网关入口,用户可以采用 HTTP 协议,以 RESTful 的方式访问 Ceph 的对象存储。
四、Ceph 存储结构
在使用对象存储之前, 先要了解桶(container 容器)概念及其存储结构:
Ceph Swift Api 的调用, 需要先创建相应用户进行认证才能操作, 每个用户下面可以创建多个桶, 桶里面可以存储对象,对象就是各种数据文件, 包括文档, 图片等。传统上传文件的使用, 我们往往会指 定路径信息, 在这里, 桶和对象的关系好比文件夹与文件的概念, 不同之处是桶不能再嵌套桶, 也就是没有层级路径的概念。
Ceph 存储结构:
五、Ceph Swift Api 服务端的配置
1、确保集群正常安装并启动:
如果 rgw 没有显示, 检查服务状态:
重启 RGW 服务:
2、验证网关是否正常
访问地址,http://192.168.88.161:7480
出现以下提示代表正常
3、创建 Swift 用户, 用于接口请求认证
uid 为主用户, subuser 为子用户信息, secret 指定密钥, 不指定则随机生成, access 拥有权限设定。
返回结果:
记住 swift_keys 下面的 user 和 secret_key 信息, 代码中需使用。
4、激活管理后台的对象存储模块:
5、创建一个管理用户:
返回结果:
根据生成的 access_key 与 secret_key, 执行:
打开管理界面,https://192.168.88.161:18843 可以查看到我们刚才创建的两个用户:
六、Ceph Swift Api 调用验证
1、创建 ceph-demo 工程
增加 SwiftOperator 接口:
这里的用户名和密码填写上面我们所生成的信息。注意路径地址后缀为: /auth/1.0
CephDemoApplication 启动类,测试验证:
版权声明: 本文为 InfoQ 作者【Lansonli】的原创文章。
原文链接:【http://xie.infoq.cn/article/d1087c12beca7126cea55b48b】。文章转载请联系作者。
评论