转自:https://www.ustack.com/blog/civetweb/

优秀的开源项目正在改变传统IT,OpenStack名头最响,已经成为了IaaS的事实标准。Ceph同样颇有建树,通过其三大存储接口满足了企业的多样需求。UnitedStack有云把OpenStack和Ceph等一众开源项目的优势结合,搭建出全球最好用的高性能OpenStack云服务平台。在这个过程中,UnitedStack有云工程师对开源项目有许多的理解和分析,我们将陆续发布这些内容与大家共享,希望能够帮助大家更快的认识这些项目,避免掉进那些我们曾趟过的坑。同时,也希望大家与我们共同探讨,为更优秀的代码和架构努力。

这是我们Ceph系列文章的第四篇,之前推出的三篇Ceph文章由浅入深,受到了广泛好评,我们的Ceph系列将继续深入下去,希望能给感兴趣的人带来帮助。

RGW目前支持直接使用CivetWeb作为WebServer,实现HTTP请求的接受和回复,而不需要配置复杂的FCGI和WebServer了。

1创建存储池
通过ceph -s命令确认你的Ceph集群已经正常运行,并且集群状态是OK。
运行以下命令创建rgw所需的存储池:

ceph osd pool create .rgw 64 64
ceph osd pool create .rgw.root 64 64
ceph osd pool create .rgw.control 64 64
ceph osd pool create .rgw.gc 64 64
ceph osd pool create .rgw.buckets 64 64
ceph osd pool create .rgw.buckets.index 64 64
ceph osd pool create .log 64 64
ceph osd pool create .intent-log 64 64
ceph osd pool create .usage 64 64
ceph osd pool create .users 64 64
ceph osd pool create .users.email 64 64
ceph osd pool create .users.swift 64 64
ceph osd pool create .users.uid 64 64

2配置
使用CivetWeb作为RGW的前端非常简单,只需要在ceph.conf的末尾中加入以下配置项即可:

[client.radosgw.gateway]
host = {your-host-name}
log file = /var/log/radosgw/client.radosgw.ustack.log
这三行定义了一个radosgw实例,名称就叫gateway,运行的主机是{your-hostname},需要将其改成实际的主机名。
“log file”配置项代表了日志路径,需要注意的是需要保证该日志文件的父路径“ /var/log/radosgw/”必须存在,radosgw不会自动创建,你可以使用

mkdir -p /var/log/radosgw/
创建该路径。

3启动
启动命令:

radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway
-c参数表示使用的配置文件路径,-n表示要启动的radosgw实例名称,要与配置文件对应。

4使用
CivetWeb启动的radosgw默认将监听7480端口。你可以直接通过访问http://your-host-ip:7480/来访问该RGW对象存储。
你可以通过radosgw-admin命令以管理员的方式访问所启动的RGW,执行例如创建用户等操作。
你也可以通过s3cmd命令行工具以用户的方式访问RGW,或者通过s3broswer图形界面访问RGW,执行上传/下载文件等操作。

关于作者

​袁冬博士,UnitedStack产品副总裁,负责UnitedStack产品、售前和对外合作工作;云计算专家,在云计算、虚拟化、分布式系统和企业级应用等方面有丰富的经验;对分布式存储、非结构数据存储和存储虚拟化有深刻地理解,在云存储和企业级存储领域有丰富的研发与实践经验;Ceph等开源存储项目的核心代码贡献者。

目前专注于Ceph社区。

有云Ceph课堂:使用CivetWeb快速搭建RGW的更多相关文章

  1. “云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)

    “云中论道”技术课堂第一课开讲啦!微软各路技术咖们齐聚一堂,为大家带来干货不断!作为“云中论道“课堂的开课之作,我们首先邀请到了微软Azure专家级的架构师:槐长清,他为我们带来了关于“使用开源技术和 ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-2.快速搭建SpringBoot项目,采用IDEA

    笔记 2.快速搭建SpringBoot项目,采用IDEA     简介:使用SpringBoot start在线生成项目基本框架并导入到IDEA中 参考资料:         IDEA使用文档    ...

  3. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-1.快速搭建SpringBoot项目,采用Eclipse

    笔记 1.快速搭建SpringBoot项目,采用Eclipse     简介:使用SpringBoot start在线生成项目基本框架并导入到eclipse中 1.站点地址:http://start. ...

  4. Azure 中快速搭建 FTPS 服务

    FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...

  5. 数据库中间件DBLE学习(一) 基础介绍和快速搭建

    dble基本架构简介 dble是上海爱可生信息技术股份有限公司基于mysql的高可用扩展性的分布式中间件.江湖人送外号MyCat Plus.开源地址 我们首先来看架构图,外部应用通过NIO/AIO进行 ...

  6. Nginx学习笔记--001-Nginx快速搭建

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...

  7. Github pages + jekyll 博客快速搭建

    Github pages + jekyll 博客快速搭建 寻找喜欢的模版 https://github.com/jekyll/jekyll/wiki/sites http://jekyllthemes ...

  8. NodeJS 最快速搭建一个HttpServer

    最快速搭建一个HttpServer 在目录里放一个index.html cd D:\Web\InternalWeb start http-server -i -p 8081

  9. 利用yeoman快速搭建React+webpack+es6脚手架

    自从前后端开始分离之后,前端项目工程化也显得越来越重要了,之前写过一篇搭建基于Angular+Requirejs+Grunt的前端项目教程,有兴趣的可以点这里去看 但是有些项目可以使用这种方式,但有些 ...

随机推荐

  1. JavaScript教程3-js深入

    1.JS流程控制语句 (1).if 判断 if 语句是基于条件成立时才执行相应的代码. if...else 语句是在指定的条件成立时执行if后的代码,在条件不成立时执行else后的代码. if...e ...

  2. django_forms组件用ajax发送数据验证注册

    forms组件 -forms是什么? 就是一个类,可以校验字段(前台传过来的字段) -怎么用: -校验字段功能: -先写一个类,继承Form from django.shortcuts import ...

  3. mysql什么情况下使用索引

    表的主关键字 自动建立唯一索引 如zl_yhjbqk(用户基本情况)中的hbs_bh(户标识编号) 表的字段唯一约束 ORACLE利用索引来保证数据的完整性 如lc_hj(流程环节)中的lc_bh+h ...

  4. 初识Locust---认识

    性 能测试工具: 基于Python的性能测试工具-locust 现在性能测试方面有很多测试工具,比如我们熟悉的loadrunner.jmeter.ab等,用过的也就是这几种,如果是学过这些工具的可能对 ...

  5. spawn 和 exec 的区别(转载)

    众所周知,Node.js在child_process模块中提供了spawn和exec这两个方法,用来开启子进程执行指定程序.这两个方法虽然目的一样,但是既然Node.js为我们提供了两个方法,那它们之 ...

  6. c++中的构造函数初始化列表

    三种情况下,必须在构造函数初始化列表中初始化成员: 1.const成员 2.引用成员 3.没有默认构造函数的成员

  7. Longest Palindromic Substring-Dynamic Programing

    Longest Palindromic Substring Given a string S, find the longest palindromic substring in S. Analysi ...

  8. python16_day15【Django入门】

    一.Django基本 1.什么是框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表 ...

  9. jmeter之报告和分析

    转载:http://www.cnblogs.com/miaomiaokaixin/p/6118081.html jmeter -n -t 脚本名字.jmx -l xxx.jtl -e -o 指定目录( ...

  10. How to create a notification with NotificationCompat.Builder?AAAA

    Ask Question up vote 49 down vote favorite 19 I need to create a simple notification which will be s ...