• ceph详细概述


    目录

    一、什么是分布式文件系统

    二、常用的分布式文件系统

    三、什么是ceph

    3.1 ceph组件

    3.1.1 RADOS Components

    3.2 ceph实验的配置

    3.2.1 部署ceph集群

    3.2.2 开始部署

    3.2.3 验证

    3.3 Ceph块存储

    3.3.1 什么是块存储

    3.3.2 创建镜像

    3.3.3 动态调整大小

    3.3.4 集群内通过KRBD访问

    3.3.5 客户端通过KRBD访问

    3.3.6 创建镜像快照

    3.3.7 使用快照恢复数据

    3.3.8 快照克隆

    3.3.9 客户端撤销磁盘映射

    3.3.10 删除快照与镜像

    3.3.11 实战快存储

    3.4 cephFS

    3.4.1 什么是元数据

    3.4.2 简单部署使用

    3.5 对象存储

    3.5.1 环境配置

    3.5.2 相关部署

    3.5.3 新建网关实例

    3.5.4 修改服务端口

    3.5.5 客户端测试

    3.6 Docker部署ceph集群

    3.6.1 创建ceph专用网络

    3.6.2 创建具体的容器

    3.6.3 创建用户


    一、什么是分布式文件系统

    • 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连
    • 分布式文件系统的设计基于客户机/服务器模式

    存储设备

    • DAS -> IDE SATA SCSI SAS USB
    • NAS(网络附加存储,提供文件存储系统接口) -> NFS/CIFS

    • SAN(存储区局域网络) -> SCSI FC SAN ISCSI

    • 专业存储设备 -> EMC/NetAPP/IBM

    • 分布式存储 – > 有状态的应用的

    • HDFS(Hadoop Distributed Filesystem) -> 山寨谷歌GFS

    二、常用的分布式文件系统

    • Lustre

    • Hadoop

    • FastDFS

    • Ceph

    • GlusterFS

    三、什么是ceph

    Ceph是一个可大规模伸缩的、开放的、软件定义的存储平台,它将Ceph存储系统的最稳定版本与Ceph管理平台、部署实用程序和支持服务相结合。也称为分布式存储系统,其出现是为了解决分布式文件系统元数据成为存储的瓶颈问题的,常规情况下元数据存储服务会成为整个存储的中心节点,而ceph利用了一致性hash计算的方式将查询变成了取膜计算的方式,将查询变成了实时运算

    • Ceph是一个对象(object)式存储系统,它把每一个待管理的数据流(例如一个文件)切分为一到多个固定大小的对象数据,并以其为原子单元完成数据存取

    • 对象数据的底层存储服务是由多个主机(host)组成的存储集群,该集群也被称之为RADOS(Reliable Automatic Distributed Object Store)存储集群,即可靠、自动化、分布式对象存储系统

    • librados是RADOS存储集群的API,它支持C、C++、Java、Python、Ruby和PHP等编程语言

    • ceph可以提供对象存储、块存储、文件系统存储,ceph可以提供PB级别的存储空间,软件定义存储(Software Defined Storage)作为存储,行业的一大发展趋势,已经越来越受到市场的认可

    • 无论您希望向云平台提供Ceph对象存储和/或Ceph块设备服务、部署Ceph文件系统或将Ceph用于其他目的,所有Ceph存储集群部署都是从设置每个Ceph节点、您的网络和Ceph存储集群开始的。

    • Ceph存储集群至少需要一个Ceph监视器、Ceph管理器和Ceph OSD(对象存储守护进程)。

    • 在运行Ceph文件系统客户机时,还需要Ceph元数据服务器。

    3.1 ceph组件

    • OSD

      • 存储设备:用于集群中所有的数据与对象的存储/复制平衡/恢复等
    • Monitors
      • 集群监控组件:维护cluster MAP表,保证集群的数据高一致性
    • MDSs
      • 存放文件系统的元数据(对象存储和块存储不需要该组件):保存文件系统服务的元数据(OBJ/Block不需要该服务)
    • GW
      • 提供与Amazon S3和Swift兼容的Restful API的Gateway服务
    • Client
      • ceph客户端

    3.1.1 RADOS Components

    Ceph osd

    Ceph OSD(对象存储守护进程,Ceph – OSD)存储数据,处理数据复制、恢复、再平衡,并通过检查其他Ceph OSD守护进程的心跳来为Ceph监视器和管理器提供一些监控信息。
    冗余和高可用性通常需要至少三个Ceph OSDs。

    MDSS

    • Ceph元数据服务器(MDS, Ceph – MDS)代表CephFilesystem(即, Ceph块设备和Ceph对象存储不使用MDS)。
    • Ceph元数据服务器允许POSIX文件系统用户执行基本命令(如ls、find等),而不会给Ceph存储集群带来巨大的负担。

    • 简单说就是文件系统的守护进程如果不需要使用是不需要管理的。

    BlueStore

    是Ceph的一个新的存储后端。

    • 具有更好的性能(写操作大约为2倍)、全数据校验和内置压缩。
    • 夜光v12.2是Ceph OSDs新的默认存储后端。在为新的OSDs配置ceph-disk、ceph-deploy和/或ceph-ansible时,默认使用。

    3.2 ceph实验的配置

    主机名IPOS
    client192.168.4.51(client)centos7.2
    ndoe1192.168.4.52(node-1)centos7.2
    node2192.168.4.53(node-2)centos7.2
    node3192.168.4.54(ndoe-3)centos7.3

    3.2.1 部署ceph集群

    1.配置YUM源

    1. mount rhcs2.0-rhosp9-20161113-x86_64.iso /ceph
    2. vim /etc/yum.repos.d/ceph.repo
    3. [ceph]
    4. name=mon
    5. baseurl=http://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MON
    6. gpgcheck=0
    7. enabled=1
    8. [osd]
    9. name=osd
    10. baseurl=http://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSD
    11. gpgcheck=0
    12. enabled=1
    13. [tools]
    14. name=tools
    15. baseurl=http://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Tools
    16. gpgcheck=0
    17. enabled=1
    18. [rhel]
    19. name=centos
    20. baseurl=http://192.168.4.254/cc
    21. enabled=1
    22. gpgcheck=0
    23. yum clean all;yum makecache

    2.配置/etc/hosts

    1. 192.168.4.10 client
    2. 192.168.4.11 node1
    3. 192.168.4.12 node2
    4. 192.168.4.13 node3

    3.配置无密码登入

    非交互生成密钥对

    [root@node1 ~]# ssh-keygen -f /root/.ssh/id_rsa -t rsa -N ''

    分发给每一个节点

    [root@node1 ~]# ssh-copy-id IP

    4.NTP时间同步

    1. yum -y install chrony #安装所有的主机
    2. [root@client ~]# cat /etc/chrony.conf
    3. server 0.centos.pool.ntp.org iburst
    4. allow 192.168.4.0/24
    5. local stratum 10
    6. [root@client ~]# systemctl restart chronyd
    7. [root@node1 ~]# cat /etc/chrony.conf
    8. server 192.168.4.10 iburst
    9. [root@node1 ~]# systemctl restart chronyd

    物理机上为每个虚拟机创建3个磁盘

    每一个磁盘大小20G分别3个

    3.2.2 开始部署

    1.使用client作为部署主机

    yum -y install ceph-deploy 

    2.创建目录

    1. #为了部署工具创建目录,存放密钥与配置文件
    2. mkdir /ceph-cluster
    3. cd /ceph-cluster

    3.创建ceph集群

    ceph-deploy new node1   node2   node3

    4.给所有节点安装ceph软件包

    ceph-deploy install node1   node2   node3

    5.初始化所有节点的mon服务(主机名解析必须对)

    1. ceph-deploy mon create-initial
    2. #这里没有指定主机,是因为第一步创建的配置文件中已经有了,所以要求主机名解析必须对,否则连接不到对应的主机

    6.创建OSD

    1. [root@node1 ~]# parted /dev/vdb mklabel gpt
    2. [root@node1 ~]# parted /dev/vdb mkpart primary 1M 50%
    3. [root@node1 ~]# parted /dev/vdb mkpart primary 50% 100%
    4. [root@node1 ~]#chown ceph.ceph /dev/vdb1
    5. [root@node1 ~]#chown ceph.ceph /dev/vdb2
    6. #简单版
    7. [root@node1 ~]# for i in {1..3};do ssh node$i parted /dev/vdb mklabel gpt;ssh node$i parted /dev/vdb mkpart primary 1M 50%;ssh node$i parted /dev/vdb mkpart primary 50% 100%;done
    8. [root@node1 ~]# for i in {1..3};do ssh node$i chown ceph.ceph /dev/vdb1;done
    9. [root@node1 ~]# for i in {1..3};do ssh node$i chown ceph.ceph /dev/vdb2;done

    初始化清空磁盘数据(仅node1操作即可)

    1. [root@node1 ~]# ceph-deploy disk zap node1:vdc node1:vdd
    2. [root@node1 ~]# ceph-deploy disk zap node2:vdc node2:vdd
    3. [root@node1 ~]# ceph-deploy disk zap node3:vdc node3:vdd
    4. #简单版
    5. for i in {1..3}; do ceph-deploy disk zap node$i:vdc node$i:vdd;done

    创建OSD存储空间(仅node1操作即可)

    1. [root@node1 ~]# ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/ dev/vdb2
    2. #创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL日志,一个存储设备对应一个日志设备,日志需要SSD,不需要很大
    3. [root@node1 ~]# ceph-deploy osd create node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
    4. [root@node1 ~]# ceph-deploy osd create node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2 验证
    5. • 查看集群状态
    6. [root@node1 ~]# ceph -s
    7. • 可能出现的错误
    8. – osd create创建OSD存储空间,如提示run
    9. #简单版
    10. for i in {1..3};do ceph-deploy osd create node$i:vdc:/dev/vdb1 node$i:vdd:/dev/vdb2;done

    3.2.3 验证

    • 查看集群状态

    [root@node1 ~]# ceph -s

    • 可能出现的错误

    1. osd create创建OSD存储空间,如提示run 'gatherkeys’
    2. [root@node1 ~]# ceph-deploy gatherkeys node1 node2 node3

    – ceph -s查看状态,如果失败

    [root@node1 ~]#systemctl restart ceph\*.service ceph\*.target   #在所有节点,或仅在失败的节点重启服务

    3.3 Ceph块存储

    3.3.1 什么是块存储

    • 单机块设备
      • 光盘
      • 磁盘
    • 分布式块存储
      • Ceph
      • Cinder
    • Ceph块设备也叫做RADOS块设备
    • RADOS block device:RBD

    • RBD驱动已经很好的集成在了Linux内核中

    • RBD提供了企业功能,如快照、COW克隆等等

    • RBD还支持内存缓存,从而能够大大提高性能

    • Linux内核可用直接访问Ceph块存储

    • KVM可用借助于librbd访问

    3.3.2 创建镜像

    查看存储池(默认有一个rbd池)

    [root@node1 ~]# ceph osd lspools

    创建镜像、查看镜像

    1. [root@node1 ~]# rbd create demo-image --image-feature layering --size 10G
    2. [root@node1 ~]# rbd create rbd/image --image-feature layering --size 10G
    3. [root@node1 ~]# rbd list
    4. [root@node1 ~]# rbd info demo-image

    3.3.3 动态调整大小

    缩小容量

    1. [root@node1 ~]# rbd resize --size 7G image --allow-shrink
    2. [root@node1 ~]# rbd info image

    扩容容量

    1. [root@node1 ~]# rbd resize --size 15G image
    2. [root@node1 ~]# rbd info image

    3.3.4 集群内通过KRBD访问

    将镜像映射为本地磁盘

    1. [root@node1 ~]# rbd map demo-image
    2. /dev/rbd0
    3. [root@node1 ~]# lsblk
    4. ... ...
    5. rbd0 251:0 0 10G 0 disk
    6. 接下来,格式化了!
    7. [root@node1 ~]# mkfs.xfs /dev/rbd0
    8. [root@node1 ~]# mount /dev/rbd0 /mnt

    3.3.5 客户端通过KRBD访问

    • 客户端需要安装ceph-common软件包
    • 拷贝配置文件(否则不知道集群在哪)

    • 拷贝连接密钥(否则无连接权限)

    1. [root@client ~]# yum -y install ceph-common
    2. [root@client ~]# scp 192.168.4.51:/etc/ceph/ceph.conf /etc/ceph/
    3. [root@client ~]# scp 192.168.4.51:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
    • 映射镜像到本地磁盘
    1. [root@client ~]# rbd map image
    2. [root@client ~]# lsblk
    3. [root@client ~]# rbd showmapped
    4. id pool image snap device
    5. 0 rbd image -/dev/rbd0
    • 客户端格式化、挂载分区
    1. [root@client ~]# mkfs.xfs /dev/rbd0
    2. [root@client ~]# mount /dev/rbd0 /mnt/
    3. [root@client ~]# echo "test" > /mnt/test.txt

    3.3.6 创建镜像快照

    查看镜像快照

    [root@node1 ~]# rbd snap ls image

    创建镜像快照

    1. [root@node1 ~]# rbd snap create image --snap image-snap1
    2. [root@node1 ~]# rbd snap ls image
    3. SNAPID NAME SIZE 4 image-snap1 15360 MB
    • 注意:快照使用COW技术,对大数据快照速度会很快!

    3.3.7 使用快照恢复数据

    删除客户端写入的测试文件

    [root@client    ~]# rm -rf /mnt/test.txt

    还原快照

    [root@node1 ~]# rbd snap rollback image --snap image-snap1

    客户端重新挂载分区

    1. [root@client ~]# umount /mnt
    2. [root@client ~]# mount /dev/rbd0 /mnt/
    3. [root@client ~]# ls /mnt

    3.3.8 快照克隆

    • 如果想从快照恢复出来一个新的镜像,则可以使用克隆
    • 注意,克隆前,需要对快照进行<保护>操作

    • 被保护的快照无法删除,取消保护(unprotect)

    1. [root@node1 ~]# rbd snap protect image --snap image-snap1
    2. [root@node1 ~]# rbd snap rm image --snap image-snap1 ##会失败
    3. [root@node1 ~]# rbd clone \
    4. image --snap image-snap1 image-clone --image-feature layering
    5. #使用image的快照image-snap1克隆一个新的image-clone镜像

    看克隆镜像与父镜像快照的关系

    1. [root@node1 ~]# rbd info image-clone
    2. [root@node1 ~]# rbd image 'image-clone':
    3. size 15360 MB in 3840 objects
    4. order 22 (4096 kB objects)
    5. block_name_prefix: rbd_data.d3f53d1b58ba
    6. format: 2
    7. features: layering
    8. flags:
    9. parent: rbd/image@image-snap1
    10. #注意,父快照信息没了!

    3.3.9 客户端撤销磁盘映射

    umount挂载点

    [root@client    ~]# umount /mnt 

    取消RBD磁盘映射

    1. [root@client ~]# rbd showmapped
    2. id pool image snap device
    3. 0 rbd image - /dev/rbd0

    语法格式

    1. [root@client ~]# rbd unmap /dev/rbd/{poolname}/{imagename}
    2. [root@client ~]# rbd unmap /dev/rbd/rbd/image

    3.3.10 删除快照与镜像

    删除快照(确保快照未被保护)

    [root@node1 ~]# rbd snap rm image --snap image-snap 

    删除镜像

    1. [root@node1 ~]# rbd list
    2. [root@node1 ~]# rbd rm image

    3.3.11 实战快存储

    创建磁盘镜像

    1. [root@node1 ~]# rbd create vm1-image --image-feature layering --size 10G
    2. [root@node1 ~]# rbd create vm2-image --image-feature layering --size 10G

    查看镜像

    1. [root@node1 ~]# rbd list
    2. [root@node1 ~]# rbd info vm1-image
    3. [root@node1 ~]# qemu-img info rbd:rbd/vm1-image

    注意事项

    当我们重起过配置ceph的机器后会无法启动,镜像的创建,原因是无法/dev/下的磁盘的属主和所属组改变了,需要修改回来

    1. vim /etc/udev/rules.d/10.chowndisk.rules
    2. ACTION=="add",KERNEL=="vdb[12]",OWNER="ceph",GROUP="ceph" #开机自动设别修改属组
    3. #或手动去修改
    4. chown ceph.ceph /dev/vdb1 /vdb2

    通过KVM虚拟机快速创建并强制关闭生成secret.xml文件

    virsh dumpxml vm1 >/tmp/vm1.xml

    配置libvirt secret

    [root@room9pc01 ~]# vim secret.xml

    3.4 cephFS

    • 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连
    • CephFS使用Ceph集群提供与POSIX兼容的文件系统

    • 允许Linux直接将Ceph存储mount到本地

    3.4.1 什么是元数据

    • 元数据(Metadata)

      • 任何文件系统中的数据分为数据和元数据。
      • 数据是指普通文件中的实际数据

      • 而元数据指用来描述一个文件的特征的系统数据

      • 比如:访问权限、文件拥有者以及文件数据块的分布信息(inode…)等

    • 所以CephFS必须有MDSs节点

    3.4.2 简单部署使用

    1.部署mds服务器

    配置主机名、NTP、名称解析、node1免密登入mds节点
    [root@node4 ~]# yum  -y  install   ceph-mds

    2.创建元数据服务器,必须在ceph-cluster目录上

    1. [root@node1 ceph-cluster]# pwd
    2. /root/ceph-cluster
    3. [root@node1 ceph-cluster]# ceph-deploy mds create node4

    3.不同配置文件和key

    1. ceph-deploy admin node4
    2. #然后在node4节点上查看
    3. [root@node4 ~]# ceph -s
    4. health HEALTH_OK

    4.为cephFS创建数据池和元数据池,指定每一个OSD有128个pg

    关于PG的说明:在http://www,wzxue.com/ceph-osd-and-pg/

    1. [root@node4 ~]# ceph osd pool create cephfs_data 128
    2. pool 'cephfs_data' created
    3. [root@node4 ~]# ceph osd pool create cephfs_metadata 128
    4. pool 'cephfs_metadata' created

    5.查看mds状态

    1. [root@node4 ~]# ceph mds stat
    2. e2:, 1 up:standby

    6.创建名为myfs1的文件系统

    1. [root@node4 ~]# ceph fs new myfs1 cephfs_metadata cephfs_data
    2. new fs with metadata pool 2 and data pool 1
    3. 默认只能创建1个文件系统,多余的会报错

    7.查看信息

    1. root@node4 ~]# ceph mds stat
    2. e5: 1/1/1 up {0=node4=up:active}
    3. [root@node4 ~]# ceph fs ls
    4. name: myfs1, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

    8.Linux内核已支持cephFS,只要挂载即可

    1. -t 类型
    2. [root@client ~]# mkdir /mnt/ceph_root
    3. [root@client ~]# ceph auth list 查看admin的key
    4. client.admin
    5. key: AQD0vAJby0NiERAAcdzYc//ONLqlyNXO37xlJA==
    6. [root@client ~]# mount -t ceph 192.168.4.11:6789:/ /mnt/ceph_root/ -o name=admin,secret=AQD0vAJby0NiERAAcdzYc//ONLqlyNXO37xlJA==
    7. [root@client ~]# df -h
    8. 文件系统 容量 已用 可用 已用% 挂载点
    9. 192.168.4.11:6789:/ 60G 1008M 59G 2% /mnt/ceph_root

    3.5 对象存储

    • 也就是键值存储,通其接口指令,也就是简单的GET、PUT、DEL和其他扩展,向存储服务上传下载数据
    • 对象存储中所有数据都被认为是一个对象,所以,任何数据都可以存入对象存储服务器,如图片、视频、音频等

    • RGW全称是Rados Gateway

    • RGW是Ceph对象存储网关,用于向客户端应用呈现存储界面,提供RESTful API访问接口

    3.5.1 环境配置

    准备一台新的虚拟机,作为元数据服务器

    主机名IP地址环境要求key要求
    node5192.168.4.56配置yum源,与Manager同步,免密node1修改node1的/etc/hosts,并同步到所有node主机

    3.5.2 相关部署

    • 用户需要通过RGW访问存储集群
      • 通过node1安装ceph-radosgw软件包
    [root@node1 ~]# ceph-deploy install --rgw node5

    同步配置文件与密钥到node5

    1. [root@node1 ~]# cd /root/ceph-cluster
    2. [root@node1 ~]# ceph-deploy admin node5

    3.5.3 新建网关实例

    启动一个rgw服务

    [root@node1 ~]# ceph-deploy rgw create node5

    登陆node5验证服务是否启动

    1. [root@node5 ~]# ps aux |grep radosgw
    2. ceph 4109 0.2 1.4 2289196 14972 ? Ssl 22:53 0:00 /usr/bin/
    3. radosgw -f --cluster ceph --name client.rgw.node4 --setuser ceph --
    4. setgroup ceph
    5. [root@node5 ~]# systemctl restart ceph-radosgw@\*

    3.5.4 修改服务端口

    • 登陆node5,RGW默认服务端口为7480,修改为8081或80更方便客户端使用
    1. [root@node5 ~]# vim /etc/ceph/ceph.conf
    2. [client.rgw.node5]
    3. host = node5
    4. rgw_frontends = "civetweb port=8081“
    5. # node5为主机名
    6. # civetweb是RGW内置的一个web服务
    [root@node5 ~]#systemctl   restart  ceph-radosgw@\*

    3.5.5 客户端测试

    • 这里仅测试RGW是否正常工作
      • 上传、下载数据还需要调用API接口
    [root@client    ~]# curl 192.168.4.15:8081

    3.6 Docker部署ceph集群

    • 单机多节点方式Ubuntu-18版本下
    • mon 3个节点/osd 3个节点/wgnode 1个

    基础部署

    1. apt-get install docker.io #默认最新版本的docker18.09
    2. mkdir -p /etc/docker/ #配置容器加速
    3. vim /etc/docker/deamon.json #具体登入阿里云容器镜像管理即可
    4. systemctl restart docker #重启重载配置文件
    5. docker info #可以查看具体项目

    3.6.1 创建ceph专用网络

    1. docker network create --driver bridge --subnet 172.20.0.0/16 ceph-network
    2. docker network inspect ceph-network #查看网络详情

    3.6.2 创建具体的容器

    1. mkdir -p /www/ceph /var/lib/ceph/osd /www/osd #持续化存储需要的目录
    2. chown -R 64045:64045 /var/lib/ceph/osd/
    3. chown -R 64045:64045 /www/osd/
    4. docker run -itd --name monnode --network ceph-network --ip 172.20.0.10 -e MON_NAME=monnode -e MON_IP=172.20.0.10 -v /www/ceph:/etc/ceph ceph/mon
    5. # 创建需要的osd-3个
    6. docker exec monnode ceph osd create
    7. docker exec monnode ceph osd create
    8. docker exec monnode ceph osd create
    9. # 创建osd容器
    10. docker run -itd --name osdnode0 --network ceph-network -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=monnode -e MON_IP=172.20.0.10 -v /www/ceph:/etc/ceph -v /www/osd/0:/var/lib/ceph/osd/ceph-0 ceph/osd
    11. docker run -itd --name osdnode1 --network ceph-network -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=monnode -e MON_IP=172.20.0.10 -v /www/ceph:/etc/ceph -v /www/osd/1:/var/lib/ceph/osd/ceph-1 ceph/osd
    12. docker run -itd --name osdnode2 --network ceph-network -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=monnode -e MON_IP=172.20.0.10 -v /www/ceph:/etc/ceph -v /www/osd/2:/var/lib/ceph/osd/ceph-2 ceph/osd
    13. # 创健mon控制容器
    14. docker run -itd --name monnode_1 --network ceph-network --ip 172.20.0.11 -e MON_NAME=monnode_1 -e MON_IP=172.20.0.11 -v /www/ceph:/etc/ceph ceph/mon
    15. docker run -itd --name monnode_2 --network ceph-network --ip 172.20.0.12 -e MON_NAME=monnode_2 -e MON_IP=172.20.0.12 -v /www/ceph:/etc/ceph ceph/mon
    16. # 创建radosgw
    17. docker run -itd --name gwnode --network ceph-network --ip 172.20.0.9 -p 9080:80 -e RGW_NAME=gwnode -v /www/ceph:/etc/ceph ceph/radosgw
    18. # 查看容器状态检测集群信息
    19. docker ps -a
    20. docker exec monnode ceph -s

    3.6.3 创建用户

    docker exec -it gwnode radosgw-admin user create --uid=user01 --display-name=user01
  • 相关阅读:
    [FBCTF2019]Event(flask 伪造签名)
    电机控制——高数基础
    python-pdf的合并与拆分
    C++---AVL树
    移动平台助力推进智慧型科研院所信息化建设
    Java刷题面试系列习题(五)
    Java - 工具类参数初始化
    Checkpoint机制和生产配置
    从初级到进阶面试!阿里强推 Java 程序员进阶笔记,金九银十秋招求职先到先得!!
    JavaScript注册页面的前端验证(1+X Web前端开发初级 例题)
  • 原文地址:https://blog.csdn.net/zfw_666666/article/details/125199077