Ceph Swift Api 配置与使用(三)(上)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 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 存储结构 :


image.png


五、Ceph Swift Api 服务端的配置



1、确保集群正常安装并启动:


image.png


如果rgw没有显示, 检查服务状态:


systemctl list-unit-files|grep enabled|grep ceph

image.png


重启RGW服务:


ceph-deploy --overwrite-conf --ceph-conf ceph.conf rgw create CENTOS7-1
systemctl restart ceph-radosgw@*.service

image.png


2、验证网关是否正常


访问地址, http://192.168.88.161:7480

出现以下提示代表正常


image.png


3、创建Swift用户, 用于接口请求认证


sudo radosgw-admin user create --subuser="cephtester:subtester" --uid="cephtester" --display-name="cephtester" --key-type=swift --secret="654321" --access=full


uid 为主用户, subuser 为子用户信息, secret 指定密钥, 不指定则随机生成, access 拥有权限设定。

返回结果:


[root@CENTOS7-1 ceph-cluster]# sudo radosgw-admin user create --subuser="cephtester:subtester" --uid="cephtester" --display-name="cephtester" --key-type=swift --secret="654321" --access=full
{
    "user_id": "cephtester",
    "display_name": "cephtester",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [
        {
            "id": "cephtester:subtester",
            "permissions": "full-control"
        }
    ],
    "keys": [],
    "swift_keys": [
        {
            "user": "cephtester:subtester",
            "secret_key": "654321"
        }
    ],
    "caps": [],
    "op_mask": "read, write, delete",
    "default_placement": "",
    "placement_tags": [],
    "bucket_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "user_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "temp_url_keys": [],
    "type": "rgw",
    "mfa_ids": []
}


记住swift_keys下面的user和secret_key信息, 代码中需使用。


4、激活管理后台的对象存储模块:


5、创建一个管理用户:


radosgw-admin user create --uid=mgruser --display-name=mgruser --system


返回结果:


[root@CENTOS7-1 ceph-cluster]# radosgw-admin user create --uid=mgruser --display-name=mgruser --system
{
    "user_id": "mgruser",
    "display_name": "mgruser",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "mgruser",
            "access_key": "W462B8SE31NDCOQR4E6I",
            "secret_key": "XPZcugMWRhYccFlEPIHKcyFVr73grVuiJgFD4rDR"
        }
    ],
    "swift_keys": [],
    "caps": [],
    "op_mask": "read, write, delete",
    "system": "true",
    "default_placement": "",
    "placement_tags": [],
    "bucket_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "user_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "temp_url_keys": [],
    "type": "rgw",
    "mfa_ids": []
}


根据生成的access_key与secret_key, 执行:


ceph dashboard set-rgw-api-access-key W462B8SE31NDCOQR4E6I 
ceph dashboard set-rgw-api-secret-key XPZcugMWRhYccFlEPIHKcyFVr73grVuiJgFD4rDR

image.png


打开管理界面,https://192.168.88.161:18843 可以查看到我们刚才创建的两个用户:


image.png

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
3月前
|
JSON API 数据处理
【Swift开发专栏】Swift中的RESTful API集成实战
【4月更文挑战第30天】本文探讨了在Swift中集成RESTful API的方法,涉及RESTful API的基础概念,如HTTP方法和设计原则,以及Swift的网络请求技术,如`URLSession`、`Alamofire`和`SwiftyJSON`。此外,还强调了数据处理、错误管理和异步操作的重要性。通过合理利用这些工具和策略,开发者能实现高效、稳定的API集成,提升应用性能和用户体验。
68 0
|
20天前
|
API 数据库 数据安全/隐私保护
Django配置api、管理系统和视图
Django配置api、管理系统和视图
27 1
|
23天前
|
API
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
28 2
|
15天前
|
应用服务中间件 Linux API
Linux 利用 Cloudflare API 配置 acme.sh 自动续签 SSL (Apache、Nginx适用)
安装acme.sh工具,命令为`curl https://get.acme.sh | sh -s email=你的邮箱`。接着配置Cloudflare API,创建并记录API令牌及Zone ID。最后通过`acme.sh --issue -d 你的域名 --dns dns_cf`签发SSL证书,对于Nginx可使用`acme.sh --install-cert`命令安装证书,并设置自动重载Nginx服务。
|
2月前
|
SQL DataWorks NoSQL
DataWorks产品使用合集之如何配置API以使用专用域名
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
38 1
|
3月前
|
Kubernetes 安全 API
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
|
2月前
|
Java API Spring
Spring Boot中配置Swagger用于API文档
Spring Boot中配置Swagger用于API文档
|
2月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之调用API是否需要配置环境变量
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
3月前
|
监控 安全 API
邮件推送API建议操作方法?AOKSend配置步骤
邮件推送API在数字营销中至关重要,本文介绍了其操作建议和AOKSend配置步骤。选择可靠服务如AOKSend、SendGrid、Mailgun,管理API密钥,使用SSL/TLS加密,实现错误处理和重试机制,以及监控邮件发送效果。AOKSend配置包括:注册登录、获取API密钥、配置SMTP设置、测试发送和创建API请求。正确配置能提升营销和沟通效率。
|
3月前
|
API
getmail邮箱API发送邮件怎么配置
getmail是一款强大的邮箱客户端,支持通过API发送邮件。要使用AokSend的邮箱API,需遵循以下步骤:1) 安装getmail;2) 获取API密钥;3) 配置getmail的配置文件,添加API密钥信息;4) 使用getmail发送测试邮件;5) 验证邮件是否成功发送。AokSend提供稳定高效的邮件发送服务,包括SMTP/API接口和触发式发信。确保安全,记得定期更新API密钥。

相关课程

更多