集群基础之04(部署ceph实验环境、部署ceph集群、创建Ceph块存储、块存储应用、挂载Ceph文件系统、创建对象存储服务器)

目录

前言:

Ceph简介

 

Ceph特点

 

 Ceph架构

 

 Ceph核心组件及概念介绍

 

 

1、部署ceph实验环境:

2 、部署ceph集群

3、创建Ceph块存储

4、块存储应用

5、挂载Ceph文件系统

 

6、创建对象存储服务器


前言:

Ceph简介

Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。

 

Ceph特点

  • 高性能
    a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
    b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
    c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。

  • 高可用性
    a. 副本数可以灵活控制。
    b. 支持故障域分隔,数据强一致性。
    c. 多种故障场景自动进行修复自愈。
    d. 没有单点故障,自动管理。

  • 高可扩展性
    a. 去中心化。
    b. 扩展灵活。
    c. 随着节点增加而线性增长。

  • 特性丰富
    a. 支持三种存储接口:块存储、文件存储、对象存储。
    b. 支持自定义接口,支持多种语言驱动。

 

 Ceph架构

支持三种接口:

  • Object:有原生的API,而且也兼容Swift和S3的API。

  • Block:支持精简配置、快照、克隆。

  • File:Posix接口,支持快照。

 

 Ceph核心组件及概念介绍

 

  • Monitor
    一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。

  • OSD
    OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。

  • MDS
    MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。

  • Object
    Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。

  • PG
    PG全称Placement Grouops(归置组),是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。

  • RADOS
    RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

  • Libradio
    Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

  • CRUSH
    CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。

  • RBD
    RBD全称RADOS block device,是Ceph对外提供的块设备服务。

  • RGW
    RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

  • CephFS
    CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

 

1、部署ceph实验环境:

准备四台KVM虚拟机,其中三台作为存储集群节点,一台安装为客户端,实现如下功能:

  • 创建1台客户端虚拟机
  • 创建3台存储集群虚拟机
  • 配置主机名、IP地址、YUM源
  • 修改所有主机的主机名
  • 配置无密码SSH连接
  • 配置NTP时间同步
  • 创建虚拟机磁盘

步骤一:安装前准备

1)物理机为所有节点配置yum源,注意所有的虚拟主机均需要挂载安装光盘。

  1. [root@root9pc01 ~]# yum -y install vsftpd
  2. [root@root9pc01 ~]# mkdir /var/ftp/ceph
  3. [root@root9pc01 ~]# mount -o loop \
  4. rhcs2.0-rhosp9-20161113-x86_64.iso /var/ftp/ceph
  5. [root@root9pc01 ~]# systemctl restart vsftpd

2)修改所有节点yum配置(以node1为例)

  1. [root@node1 ~]# cat /etc/yum.repos.d/ceph.repo
  2. [mon]
  3. name=mon
  4. baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MON
  5. gpgcheck=0
  6. [osd]
  7. name=osd
  8. baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSD
  9. gpgcheck=0
  10. [tools]
  11. name=tools
  12. baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Tools
  13. gpgcheck=0

3)修改/etc/hosts并同步到所有主机。

  1. [root@node1 ~]# cat /etc/hosts
  2. ... ...
  3. 192.168.4.10 client
  4. 192.168.4.11    node1
  5. 192.168.4.12    node2
  6. 192.168.4.13    node3
  7. [root@node1 ~]# for i in 10 11 12 13
  8. > do
  9. > scp /etc/hosts 192.168.2.$i:/etc/
  10. > done

3)配置无密码连接。

  1. [root@node1 ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''
  2. [root@node1 ~]# for i in 10 11 12 13
  3. > do
  4. > ssh-copy-id 192.168.4.$i
  5. > done

步骤二:配置NTP时间同步

1)创建NTP服务器。

  1. [root@client ~]# 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

2)其它所有阶段与NTP服务器同步时间(以node1为例)。

  1. [root@node1 ~]# cat /etc/chrony.conf
  2. server 192.168.4.10 iburst
  3. [root@node1 ~]# systemctl restart chronyd

步骤三:准备存储磁盘

使用virt-manager为虚拟机添加磁盘。

[root@root9pc01 ~]# virt-manager

2 、部署ceph集群

步骤一:部署软件

1)在node1安装部署工具,学习工具的语法格式。

  1. [root@node1 ~]# yum -y install ceph-deploy

2)创建目录

  1. [root@node1 ~]# mkdir ceph-cluster
  2. [root@node1 ~]# cd ceph-cluster/

步骤二:部署Ceph集群

1)创建Ceph集群配置。

  1. [root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3

2)给所有节点安装软件包。

  1. [root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3

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

  1. [root@node1 ceph-cluster]# ceph-deploy mon create-initial

步骤三:创建OSD

1)准备磁盘分区lsblk

  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. //这两个分区用来做存储服务器的日志journal盘

2)初始化清空磁盘数据(仅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

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

  1. [root@node1 ~]# ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2
  2. //创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL日志,
  3. //创建osd存储设备,vdd为集群提供存储空间,vdb2提供JOURNAL日志
  4. [root@node1 ~]# ceph-deploy osd create node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
  5. [root@node1 ~]# ceph-deploy osd create node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2

步骤四:验证测试

1) 查看集群状态

  1. [root@node1 ~]# ceph -s
  2. 正常应该显示healthy_ok
  • 若没有显示healthy_ok,则按下面方法处理:

错例:ceph -s

   health HEALTH_WARN

            clock skew detected on mon.node2, mon.node3

            Monitor clock skew detected

 

vim /etc/ceph/ceph.conf

mon clock drift allowed = 2

mon clock drift warn backoff = 30

cp /etc/ceph/ceph.conf    /root/ceph-cluster

cd /root/ceph-cluster

ceph-deploy --overwrite-conf admin node2 node3

systemctl restart ceph-mon@node1-----node1上执行

systemctl restart ceph-mon@node2-----node2上执行

systemctl restart ceph-mon@node3-----node3上执行

若遇到别的错误,则按下面的方法来恢复:

重新部署ceph集群:

在每个节点上执行:

停止服务:

[root@node1 ceph]# systemctl stop ceph-\*

[root@node2 ceph]# systemctl stop ceph-\*

[root@node2 ceph]# systemctl stop ceph-\*

卸载ceph软件:

仅在node1执行下面的命令:

[root@node1 ceph-cluster]# ceph-deploy purge node1 node2 node3

 

卸载OSD

在每个节点上执行:

[root@node1 ceph-cluster]# umount /dev/vdc1

[root@node1 ceph-cluster]# umount /dev/vdd1

 

删除ceph的数据

每个节点都执行:

[root@node1 ceph-cluster]# rm -rf  /var/lib/ceph/

node1上添加规则:

[root@node1 ceph]# cat /etc/udev/rules.d/100-ceph.rules

ACTION=="add", KERNEL=="vdb?",SUBSYSTEM=="block", OWNER=ceph,GROUP=ceph

[root@node2 rules.d]# systemctl restart systemd-udev-trigger.service

 

3、创建Ceph块存储

步骤一:创建镜像

1)查看存储池。

  1. [root@node1 ~]# ceph osd lspools-----------查看存储池(默认为rbd)
  2. 0 rbd,

2)创建镜像、查看镜像

  1. [root@node1 ~]# rbd create demo-image --image-feature layering --size 10G--------原型:rbd create 镜像名 --image-feature layering --size 大小
  2. [root@node1 ~]# rbd create rbd/image --image-feature layering --size 10G
  3. [root@node1 ~]# rbd list-------列出所有镜像
  4. [root@node1 ~]# rbd info demo-image----查看相关镜像的信息
  5. rbd image 'demo-image':
  6.     size 10240 MB in 2560 objects
  7.     order 22 (4096 kB objects)
  8.     block_name_prefix: rbd_data.d3aa2ae8944a
  9.     format: 2
  10.     features: layering

步骤二:动态调整

1)缩小容量

  1. [root@node1 ~]# rbd resize --size 7G image --allow-shrink-------------将镜像名为image的镜像大小缩小为7G
  2. [root@node1 ~]# rbd info image----查看相关镜像的信息

2)扩容容量

  1. [root@node1 ~]# rbd resize --size 15G image-------------将镜像名为image的镜像大小扩展为15G
  2. [root@node1 ~]# rbd info image

步骤三:通过KRBD访问

1)集群内将镜像映射为本地磁盘

  1. [root@node1 ~]# rbd map demo-image----将镜像影射为本地磁盘
  2. /dev/rbd0
  3. [root@node1 ~]# lsblk
  4. … …
  5. rbd0 251:0 0 10G 0 disk
  6. [root@node1 ~]# mkfs.xfs /dev/rbd0
  7. [root@node1 ~]# mount /dev/rbd0 /mnt

2)客户端通过KRBD访问

  1. #客户端需要安装ceph-common软件包
  2. #拷贝配置文件(否则不知道集群在哪)
  3. #拷贝连接密钥(否则无连接权限)
  4. [root@client ~]# yum -y install ceph-common
  5. [root@client ~]# scp 192.168.4.11:/etc/ceph/ceph.conf /etc/ceph/
  6. [root@client ~]# scp 192.168.4.11:/etc/ceph/ceph.client.admin.keyring    /etc/ceph/
  7. [root@client ~]# rbd map image----将镜像影射为本地磁盘
  8. [root@client ~]# lsblk
  9. [root@client ~]# rbd showmapped------查看镜像影射为本地磁盘的信息
  10. id pool image snap device
  11. 0 rbd image - /dev/rbd0

3) 客户端格式化、挂载分区

  1. [root@client ~]# mkfs.xfs /dev/rbd0
  2. [root@client ~]# mount /dev/rbd0 /mnt/
  3. [root@client ~]# echo "test" > /mnt/test.txt

步骤四:创建镜像快照

1) 创建镜像快照

  1. [root@node1 ~]# rbd snap create image --snap image-snap1-----创建镜像快照
  2. [root@node1 ~]# rbd snap ls image-----查看相关快照信息
  3. SNAPID NAME SIZE
  4. 4 image-snap1 15360 MB

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

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

4) 还原快照

  1. [root@node1 ~]# rbd snap rollback image --snap image-snap1-----还原快照
  2. #客户端重新挂载分区
  3. [root@client ~]# mount /dev/rbd0 /mnt/
  4. [root@client ~]# ls /mnt
  5. test.txt

步骤四:创建快照克隆

1)克隆快照

  1. [root@node1 ~]# rbd snap protect image --snap image-snap1-----保护快照(unprotect不保护)
  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镜像

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

  1. [root@node1 ~]# rbd info image-clone
  2. 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. #克隆镜像很多数据都来自于快照链
  11. #如果希望克隆镜像可以独立工作,我们需要将父镜像的信息合并flattern到子镜像,一旦合并完成,RBD镜像和它的父镜像就不会存在任何关系了。
  12. [root@node1 ~]# rbd flatten image-clone
  13. [root@node1 ~]# rbd info image-clone
  14. rbd image 'image-clone':
  15.     size 15360 MB in 3840 objects
  16.     order 22 (4096 kB objects)
  17.     block_name_prefix: rbd_data.d3f53d1b58ba
  18.     format: 2
  19.     features: layering
  20.     flags:
  21. #注意,父快照信息没了!

步骤四:其他操作

1) 客户端撤销磁盘映射

  1. [root@client ~]# umount /mnt
  2. [root@client ~]# rbd showmapped
  3. id pool image snap device
  4. 0 rbd image - /dev/rbd0
  5. //语法格式:
  6. [root@client ~]# rbd unmap /dev/rbd/{poolname}/{imagename}
  7. [root@client ~]# rbd unmap /dev/rbd/rbd/image-----撤销镜像影射

2)删除快照与镜像

  1. [root@node1 ~]# rbd snap rm image --snap image-snap----删除快照
  2. [root@node1 ~]# rbd list
  3. [root@node1 ~]# rbd rm image------删除镜像

 

 

4、块存储应用

  • Ceph创建块存储镜像
  • 客户端安装部署ceph软件
  • 客户端部署虚拟机
  • 客户端创建secret
  • 设置虚拟机配置文件,调用ceph存储

1)创建磁盘镜像。

  1. [root@node1 ~]# rbd create vm1-image --image-feature layering --size 10G-----创建镜像
  2. [r镜像t@node1 ~]# rbd create vm2-image --image-feature layering --size 10G
  3. [root@node1 ~]# rbd list------列出镜像
  4. [root@node1 ~]# rbd info vm1-image
  5. [root@node1 ~]# qemu-img info rbd:rbd/vm1-image
  6. image: rbd:rbd/vm1-image
  7. file format: raw
  8. virtual size: 10G (10737418240 bytes)
  9. disk size: unavailable

2)Ceph认证账户。

Ceph默认开启用户认证,客户端需要账户才可以访问,

默认账户名称为client.admin,key是账户的密钥,

可以使用ceph auth添加新账户(案例我们使用默认账户)。

  1. [root@node1 ~]# cat /etc/ceph/ceph.conf //配置文件
  2. [global]
  3. mon_initial_members = node1, node2, node3
  4. mon_host = 192.168.2.10,192.168.2.20,192.168.2.30
  5. auth_cluster_required = cephx //开启认证
  6. auth_service_required = cephx //开启认证
  7. auth_client_required = cephx //开启认证
  8. [client.admin]-------手动添加
  9.     key = AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg==    -------手动添加

3)部署客户端环境。

注意:这里使用真实机当客户端!!!

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

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

  1. [root@room9pc01 ~]# yum -y install ceph-common
  2. [root@room9pc01 ~]# scp 192.168.4.11:/etc/ceph/ceph.conf /etc/ceph/
  3. [root@room9pc01 ~]# scp 192.168.4.11:/etc/ceph/ceph.client.admin.keyring \
  4. /etc/ceph/

4)创建KVM虚拟机。

使用virt-manager创建2台普通的KVM虚拟机。

5)配置libvirt secret。

编写账户信息文件(真实机操作)

  1. [root@room9pc01 ~]# vim secret.xml //新建临时文件,内容如下---------为下步生成uuid做准备
  2. <secret ephemeral='no' private='no'>
  3. <usage type='ceph'>
  4. <name>client.admin secret</name>
  5. </usage>
  6. </secret>
  7. #使用XML配置文件创建secret
  8. [root@room9pc01 ~]# virsh secret-define --file secret.xml--------生成随机的UUID,这个UUID对应的有账户信息
  9. 733f0fd1-e3d6-4c25-a69f-6681fc19802b

编写账户信息文件(真实机操作)

  1. [root@room9pc01 ~]# ceph auth get-key client.admin
  2. //获取client.admin的key,或者直接查看密钥文件
  3. [root@room9pc01 ~]# cat /etc/ceph/ceph.client.admin.keyring

设置secret,添加账户的密钥

  1. [root@room9pc01] virsh secret-set-value \
  2. --secret 733f0fd1-e3d6-4c25-a69f-6681fc19802b \
  3. --base64 AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg
  4. //这里secret后面是之前创建的secret的UUID
  5. //base64后面是client.admin账户的密码
  6. //现在secret中既有账户信息又有密钥信息

6)虚拟机的XML配置文件。

每个虚拟机都会有一个XML配置文件,包括:

虚拟机的名称、内存、CPU、磁盘、网卡等信息

  1. [root@room9pc01 ~]# vim /etc/libvirt/qemu/vm1.xml
  2. //修改前内容如下
  3. <disk type='file' device='disk'>
  4. <driver name='qemu' type='qcow2'/>
  5. <source file='/var/lib/libvirt/images/vm1.qcow2'/>
  6. <target dev='vda' bus='virtio'/>
  7. <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
  8. </disk>

不推荐直接使用vim修改配置文件,推荐使用virsh edit修改配置文件,效果如下:

  1. [root@room9pc01] virsh edit vm1 //vm1为虚拟机名称
  2. <disk type='network' device='disk'>
  3. <driver name='qemu' type='raw’/>
  4. <auth username='admin'>
  5. <secret type='ceph' uuid='733f0fd1-e3d6-4c25-a69f-6681fc19802b'/>
  6. </auth>
  7. <source protocol='rbd' name='rbd/vm1'> <host name='192.168.4.11' port='6789'/> </source>
  8. <target dev='vda' bus='virtio'/>
  9. <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
  10. </disk>

5、挂载Ceph文件系统

 

延续前面的实验,实现Ceph文件系统的功能。具体实现有以下功能:

  • 部署MDSs节点
  • 创建Ceph文件系统
  • 客户端挂载文件系统

按照如下步骤进行:

1)添加一台新的虚拟机,要求如下:

IP地址:192.168.4.14

主机名:node4

配置yum源(包括rhel、ceph的源)

与Client主机同步时间

node1允许无密码远程node4

2)部署元数据服务器

登陆node4,安装ceph-mds软件包

  1. [root@node4 ~]# yum -y install ceph-mds

登陆node1部署节点操作

  1. [root@node1 ~]# cd /root/ceph-cluster
  2. //该目录,是最早部署ceph集群时,创建的目录
  3. [root@node1 ceph-cluster]# ceph-deploy mds create node4
  4. //给nod4拷贝配置文件,启动mds服务

同步配置文件和key

  1. [root@node1 ceph-cluster]# ceph-deploy admin node4

3)创建存储池

  1. [root@fdfs_storage1 FastDFS]# mkdir -pv /data/fastdfs

4)修改配置文件。

  1. [root@node4 ~]# ceph osd pool create cephfs_data 128
  2. //创建存储池,对应128个PG
  3.  
  4. [root@node4 ~]# ceph osd pool create cephfs_metadata 128
  5. //创建存储池,对应128个PG

5)创建Ceph文件系统

  1. [root@node4 ~]# ceph mds stat -------------查看mds状态
  2. e2:, 1 up:standby
  3.  
  4. [root@node4 ~]# ceph fs new myfs1 cephfs_metadata cephfs_data
  5. new fs with metadata pool 2 and data pool 1
  6. //注意,先写medadata池,再写data池
  7. //默认,只能创建1个文件系统,多余的会报错
  8.  
  9. [root@node4 ~]# ceph fs ls
  10. name: myfs1, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
  11.  
  12. [root@node4 ~]# ceph mds stat
  13. e4: 1/1/1 up {0=node4=up:creating}

6)客户端挂载

  1. [root@client ~]# mount -t ceph 192.168.4.11:6789:/ /mnt/cephfs/ \
  2. -o name=admin,secret=AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg==
  3. //注意:文件系统类型为ceph
  4. //192.168.4.11为MON节点的IP(不是MDS节点)
  5. //admin是用户名,secret是密钥
  6. //密钥可以在/etc/ceph/ceph.client.admin.keyring中找到

6、创建对象存储服务器

  • 问题

延续前面的实验,实现Ceph对象存储的功能。具体实现有以下功能:

  • 安装部署Rados Gateway
  • 启动RGW服务
  • 设置RGW的前端服务与端口
  • 客户端测试
  • 步骤

步骤一:部署对象存储服务器

1)准备实验环境,要求如下:

IP地址:192.168.4.15

主机名:node5

配置yum源(包括rhel、ceph的源)

与Client主机同步时间

node1允许无密码远程node5

修改node1的/etc/hosts,并同步到所有node主机

2)部署RGW软件包

  1. [root@node1 ~]# ceph-deploy install --rgw node5

同步配置文件与密钥到node5

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

3)新建网关实例

启动一个rgw服务

  1. [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/radosgw -f --cluster ceph --name client.rgw.node4 --setuser ceph --setgroup ceph
  3. [root@node5 ~]# systemctl status ceph-radosgw@\*

4)修改服务端口

登陆node5,RGW默认服务端口为7480,修改为8000或80更方便客户端记忆和使用

  1. [root@node5 ~]# vim /etc/ceph/ceph.conf
  2. [client.rgw.node5]
  3. host = node5--------node5为主机名
  4. rgw_frontends = "civetweb port=8000"---------------civetweb是RGW内置的一个web服务

步骤二:客户端测试

1)curl测试

  1. [root@client ~]# curl 192.168.4.15:8000
  2. <?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>

2)使用第三方软件访问

登陆node5(RGW)创建账户

  1. [root@node5 ~]# radosgw-admin user create \
  2. --uid="testuser" --display-name="First User"--------创建
  3. … …
  4. "keys": [
  5. {
  6. "user": "testuser",
  7. "access_key": "5E42OEGB1M95Y49IBG7B",
  8. "secret_key": "i8YtM8cs7QDCK3rTRopb0TTPBFJVXdEryRbeLGK6"
  9. }
  10. ],
  11. ... ...
  12. #
  13. [root@node5 ~]# radosgw-admin user info --uid=testuser-------查看
  14. //testuser为用户,key是账户访问密钥

3)客户端安装软件

  1. [root@client ~]# yum install s3cmd-2.0.1-1.el7.noarch.rpm

修改软件配置

  1. [root@client ~]# s3cmd --configure
  2. Access Key: 5E42OEGB1M95Y49IBG7BSecret Key: i8YtM8cs7QDCK3rTRopb0TTPBFJVXdEryRbeLGK6
  3. S3 Endpoint [s3.amazonaws.com]: 192.168.4.15:8000
  4. [%(bucket)s.s3.amazonaws.com]: %(bucket)s.192.168.4.15:8000
  5. Use HTTPS protocol [Yes]: No
  6. Test access with supplied credentials? [Y/n] Y
  7. Save settings? [y/N] y
  8. //注意,其他提示都默认回车

4)创建存储数据的bucket(类似于存储数据的目录)

  1. [root@client ~]# s3cmd ls
  2. [root@client ~]# s3cmd mb s3://my_bucket
  3. Bucket 's3://my_bucket/' created
  4.  
  5. [root@client ~]# s3cmd ls
  6. 2018-05-09 08:14 s3://my_bucket
  7. [root@client ~]# s3cmd put /var/log/messages s3://my_bucket/log/
  8. [root@client ~]# s3cmd ls
  9. 2018-05-09 08:14 s3://my_bucket
  10. [root@client ~]# s3cmd ls s3://my_bucket
  11. DIR s3://my_bucket/log/
  12. [root@client ~]# s3cmd ls s3://my_bucket/log/
  13. 2018-05-09 08:19 309034 s3://my_bucket/log/messages

测试下载功能

  1. [root@client ~]# s3cmd get s3://my_bucket/log/messages /tmp/

测试删除功能

  1. [root@client ~]# s3cmd del s3://my_bucket/log/messages

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/Perfect11_1/article/details/81591283