zoukankan      html  css  js  c++  java
  • ansible进行ceph-rgw部署

    用户管理

    用户创建

    执行下面的命令新建一个用户 (S3 接口):

    radosgw-admin user create —uid={username} —display-name=”{display-name}” [—email={email}]

     

    实例如下:

    radosgw-admin user create —uid=johndoe —display-name=”John Doe” —email=john@example.com

     

    获取用户信息

    要获取一个用户的信息,你必须使用 user info 子命令并且制定一个用户 ID(—uid={username}) .

    radosgw-admin user info —uid=johndoe

     

    修改用户信息

    要修改一个用户的信息,你必须指定用户的 ID (—uid={username}),还有 你想要修改的属性值。典型的修改项主要是 access 和secret 密钥,邮件地址,显 示名称和访问级别。举例如下:

    radosgw-admin user modify —uid=johndoe —display-name=”John E. Doe” //修改的是display-name

     

    用户启用/停用

    当你创建了一个用户,用户默认情况下是处于启用状态的。然而,你可以暂停用户权 限并在以后随时重新启用它们。暂停一个用户,使用 user suspend 子命令 然后哦指定用户的 ID:

    radosgw-admin user suspend —uid=johndoe
    要重新启用已经被停用的用户,使用 user enable 子命令并指明用户的 ID.

    radosgw-admin user enable —uid=johndoe

     

    新建一个密钥

    要为用户新建一个密钥,你需要使用 key create 子命令。对于用户来说,需要指明用户的 ID 以及新建的密钥类型为 s3 。要为子用户新建一个密钥,则需要指明子用户的 ID以及密钥类型为 swift 。实例如下:

    radosgw-admin key create —subuser=johndoe:swift —key-type=swift —gen-secret

     

    新建/删除 ACCESS 密钥

    用户和子用户要能使用 S3 和Swift 接口,必须有 access 密钥。在你新 建用户或者子用户的时候,如果没有指明 access 和 secret 密钥,这两 个密钥会自动生成。你可能需要新建 access 和/或 secret 密钥,不管是 手动指定还是自动生成的方式。你也可能需要删除一个 access 和 secret 。可用的选项有:

    secret= 指明一个 secret 密钥 (e.即手动生成).

    —gen-access-key 生成一个随机的 access 密钥 (新建 S3 用户的默认选项).

    —gen-secret 生成一个随机的 secret 密钥.

    —key-type= 指定密钥类型. 这个选项的值可以是: swift, s3

     

    删除用户

    删除用户时,这个用户以及他的子用户都会被删除。当然,如果你愿意,可以只删除子用户。要删除用户(及其子用户),可使用 user rm 子命令并指明用户 ID :

    radosgw-admin user rm —uid=johndoe
    只想删除子用户时,可使用 subuser rm 子命令并指明子用户 ID 。

    radosgw-admin subuser rm —subuser=johndoe:swift

     

    添加/删除 管理权限

    Ceph 存储集群提供了一个管理API,它允许用户通过 REST API 执行管理功能。默认情况下,用户没有访问 这个 API 的权限。要启用用户的管理功能,需要为用 户提供管理权限。

    执行下面的命令为一个用户添加管理权限:

    radosgw-admin caps add —uid={uid} —caps={caps}

    你可以给一个用户添加对用户、bucket、元数据和用量(存储使用信息)等数据的 读、写或者所有权限。举例如下:

    —caps=”[users|buckets|metadata|usage|zone]=[*|read|write|read, write]”

    实例如下:

    radosgw-admin caps add —uid=johndoe —caps=”users=*”

    要删除某用户的管理权限,可用下面的命令:

    radosgw-admin caps rm —uid=johndoe —caps={caps}

     

    展示用户列表

    radosgw-admin user list

     

    配额管理

    设置用户配额

    在你启用用户的配额前 ,你需要先设置配额参数。 例如:

    radosgw-admin quota set —quota-scope=user —uid= [—max-objects=] [—max-size=]
    实例如下:

    radosgw-admin quota set —quota-scope=user —uid=johndoe —max-objects=1024 —max-size=1024

    最大对象数和最大存储用量的值是负数则表示不启用指定的 配额参数。

     

    设置 BUCKET 配额

    Bucket 配额作用于用户的某一个 bucket,通过 uid 指定用户。这些配额设置是独立于用户之外的。:

    radosgw-admin quota set —uid= —quota-scope=bucket [—max-objects=] [—max-size=]

    最大对象数和最大存储用量的值是负数则表示不启用指定的 配额参数。

    启用/禁用用户配额

    在你设置了用户配额之后,你可以启用这个配额。实例如下:

    radosgw-admin quota enable —quota-scope=user —uid=

    你也可以禁用已经启用了配额的用户的配额。 举例如下:

    radosgw-admin quota-disable —quota-scope=user —uid=

     

    读取/写入全局配额¶

    你可以在 period 配置中读取或写入全局配额设置,查看全局配额配置可以用:

    radosgw-admin global quota get

    全局配额选项可以用 global quota 系列命令修改,如 quota set 、 quota enable 和 quota disable 命令。

    radosgw-admin global quota set —quota-scope bucket —max-objects 1024
    radosgw-admin global quota enable —quota-scope bucket

    需要重启集群才能生效

     

    部署方法

    本文档使用ceph nautilus 作环境。

    使用ansible部署

    1.复制group_vars目录下的rgw.yml.sample到该目录下,并修改名字为rgw.yml。

    2.rgw.yml中 rgw_create_pools项 取消注释,ansible会根据配置文件创建对应的池,ceph集群若缺少当中某一个池,rgw进程将无法正常运行。

    3.修改池的副本模式、pg_num、size。

    rgw_create_pools:
      "{{ rgw_zone }}.rgw.buckets.data":
        pg_num: 8
      "{{ rgw_zone }}.rgw.buckets.index":
        pg_num: 8
        size: 1
      "{{ rgw_zone }}.rgw.meta":
        pg_num: 8
        size: 1
      "{{ rgw_zone }}.rgw.log":
        pg_num: 8
        size: 1
      "{{ rgw_zone }}.rgw.control":
        pg_num: 8
        size: 1
    
    
     #rgw_create_pools:
    #  "{{ rgw_zone }}.rgw.buckets.data":
    #    pg_num: 64
    #    type: ec
    #    ec_profile: myecprofile
    #    ec_k: 5
    #    ec_m: 3
    #  "{{ rgw_zone }}.rgw.buckets.index":
    #    pg_num: 16
    #    size: 3
    #    type: replicated
    #  "{{ rgw_zone }}.rgw.meta":
    #    pg_num: 8
    #    size: 3
    #    type: replicated
    #  "{{ rgw_zone }}.rgw.log":
    #    pg_num: 8
    #    size: 3
    #    type: replicated
    #  "{{ rgw_zone }}.rgw.control":
    #    pg_num: 8
    #    size: 3
    #    type: replicated
    #    rule_name: foo
    

    1.修改all.yml文件,增加以下条目:

    radosgw_frontend_port: 7480
    radosgw_frontend_type: civetweb
    radosgw_interface: "{{monitor_interface}}"
    radosgw_num_instances: 1
    

    2.修改ini部署文件,增加[rgws]项

    [mgrs]
    mgr-001 ansible_ssh_host=192.168.224.48 ansible_ssh_port=22
    
    [rgws]
    rgw-001 ansible_ssh_host=192.168.216.145 ansible_ssh_port=22 radosgw_address=192.168.216.145
    rgw-002 ansible_ssh_host=192.168.215.178 ansible_ssh_port=22 radosgw_address=192.168.215.178
    
    [osds]
    osd-001 ansible_ssh_host=192.168.230.196 ansible_ssh_port=22
    osd-002 ansible_ssh_host=192.168.226.21 ansible_ssh_port=22
    osd-003 ansible_ssh_host=192.168.176.118 ansible_ssh_port=22
    
    [mons]
    mon-001 ansible_ssh_host=192.168.210.155 ansible_ssh_port=22 monitor_address=192.168.210.155
    mon-002 ansible_ssh_host=192.168.179.111 ansible_ssh_port=22 monitor_address=192.168.179.111
    
    这样就能在192.168.216.145 、 192.168.215.178 上部署rgw

     

    结束语

    从上述步骤可以看出ansible部署方法仅需要修改ini文件以及yml即可,部署流程比使用ceph-deploy简单。

  • 相关阅读:
    String.trim()这个细节不能忘记
    Integer.parseInt(f.trim())中String f要加trim()
    类属性不能写在try{}catch(){}里面
    011--TypeScript泛型
    010--TypeScript里面的this和重载
    009--函数(基本实例和函数类型)
    007--TypeScript之类的修饰符
    008--TypeScript存储器和静态属性
    006--TypeScript之类
    005--TypeScript接口
  • 原文地址:https://www.cnblogs.com/eflypro/p/14848318.html
Copyright © 2011-2022 走看看