zoukankan      html  css  js  c++  java
  • Ceph分布式存储之三-S3接口编程

    目录

    1. 开发环境与基本概念(2018-02)
      1. 搭建RGW环境(2018-2-07)
      2. 安装配置S3 Client(2018-2-07)
      3. 测试S3 Client及常用命令(2018-2-07)
    2. C#语言调用S3接口的实现方式(2018-02)
      1. 基本框架及调用流程(2018-2-07)
      2. 主要调用流程分析(2018-2-07)
      3. S3接口主要的类及方法(2018-2-07)
    3. 自定义特性在程序设计中的应用(2018-02)
      1. 递归调用过程分析(2018-2-07)
      2. 利用尾递归改善递归程序的效率(2018-2-07)
      3. 函数的调用与返回本质(2018-2-07)
    --------------------------------------------------------------------

    (一)开发环境准备
         Ceph提供了三种存储类型:块存储、文件存储和对象存储,本文主要介绍对象存储的RGW基本原理和应用场景。
    对象存储(云存储)是面向对象/文件的、海量的互联网存储。对象存储里的对象是经过封装了的文件,在对象存储系统里,不能直接打开/修改文件,但可以像ftp一样上传文件,下载文件等。另外,对象存储没有像文件系统那样有一个很多层级的文件结构,而是只有一个”桶”的概念(也就是存储空间),“桶”里面全部都是对象,是一种非常扁平化的存储方式。 其最大的特点就是它的对象名称就是一个域名地址,一旦对象被设置为“公开”,所有网民都可以访问到。对象存储最主流的使用场景,就是存储网站、移动app等互联网/移动互联网应用的静态内容(视频、图片、文件、软件安装包等等)。
    什么是RGW
         RGW为Rados Gateway的缩写,ceph通过RGW为互联网云服务提供商提供对象存储服务。RGW在librados之上向应用提供访问ceph集群的RestAPI,支持Amazon S3和openstack swift两种接口。对RGW最直接的理解就是一个协议转换层,把从上层应用符合S3或Swift协议的请求转换成rados的请求,将数据保存在rados集群中。
    基本概念
    zone:包含多个RGW实例的一个逻辑概念。zone不能跨集群。同一个zone的数据保存在同一组pool中。
    zonegroup:一个zonegroup如果包含1个或多个zone。如果一个zonegroup包含多个zone,必须指定一个zone作为master zone,用来处理bucket和用户的创建。一个集群可以创建多个zonegroup,一个zonegroup也可以跨多个集群。
    realm:一个realm包含1个或多个zonegroup。如果realm包含多个zonegroup,必须指定一个zonegroup为master zonegroup, 用来处理系统操作。一个系统中可以包含多个realm,多个realm之间资源完全隔离。
    user:对象存储的使用者,默认情况下,一个用户只能创建1000个存储桶。
    bucket:存储桶,用来管理对象的容器。
    object:对象,泛指一个文档、图片或视频文件等,尽管用户可以直接上传一个目录,但是ceph并不按目录层级结构保存对象,ceph所有的对象扁平化的保存在bucket中。
    基本架构及访问流程
    应用通过RGW访问集群流程如下:
    ● S3或Swift 应用通过http协议发送请求到RGW。
    ● RGW从http请求中解析出s3或swift协议数据,调用librados接口,将对应的请求发送到rados集群中。
    注:图中load balance非必须,只要在存在多个RGW做负荷分担时需要。
    image9

    1.1)搭建RGW环境
    如下图为RGW网关搭建流程图
    image14

    1.2)安装配置S3 Client   (参考指南
    image19

    1.3)S3 Client常用命令

    ❶  创建一个桶

  • 相关阅读:
    算法-回溯法
    算法-动态规划=背包问题
    算法-贪心算法
    算法-KMP模式匹配算法
    算法-两点之间最短路径
    Hibernate学习笔记
    MyBatis一级缓存和二级缓存
    使用MyBatis-Gererator自动生成Dao.Model.Mapping相关文件
    MyBatis中一对多和多对一的学习详解
    MyBatis中使用添加判断进行查询
  • 原文地址:https://www.cnblogs.com/lihuali/p/8572651.html
Copyright © 2011-2022 走看看