100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 集群基础之04(部署ceph实验环境 部署ceph集群 创建Ceph块存储 块存储应用 挂载Ce

集群基础之04(部署ceph实验环境 部署ceph集群 创建Ceph块存储 块存储应用 挂载Ce

时间:2020-05-17 00:28:30

相关推荐

集群基础之04(部署ceph实验环境 部署ceph集群 创建Ceph块存储 块存储应用 挂载Ce

目录

前言:

Ceph简介

Ceph特点

Ceph架构

Ceph核心组件及概念介绍

1、部署ceph实验环境:

2 、部署ceph集群

3、创建Ceph块存储

4、块存储应用

5、挂载Ceph文件系统

6、创建对象存储服务器

前言:

Ceph简介

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

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

Ceph特点

高性能

a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。

b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。

c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。

高可用性

a. 副本数可以灵活控制。

b. 支持故障域分隔,数据强一致性。

c. 多种故障场景自动进行修复自愈。

d. 没有单点故障,自动管理。

高可扩展性

a. 去中心化。

b. 扩展灵活。

c. 随着节点增加而线性增长。

特性丰富

a. 支持三种存储接口:块存储(RBD)、文件系统存储(CephFS)、对象存储(RGW全称RADOS gateway)。

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(类似于ISCI的方式提供块存储)

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源,注意所有的虚拟主机均需要挂载安装光盘。

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

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

[root@node1 ~]# cat /etc/yum.repos.d/ceph.repo[mon]name=monbaseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MONgpgcheck=0[osd]name=osdbaseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSDgpgcheck=0[tools]name=toolsbaseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Toolsgpgcheck=0

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

[root@node1 ~]# cat /etc/hosts... ...192.168.4.10 client192.168.4.11node1192.168.4.12node2192.168.4.13node3[root@node1 ~]# for i in 10 11 12 13> do> scp /etc/hosts 192.168.2.$i:/etc/> done

3)配置无密码连接。

[root@node1 ~]#ssh-keyscannode{1..6}>>/root/.ssh/known_hosts------可以让ssh时不需要再yes确认

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

步骤二:配置NTP时间同步

1)创建NTP服务器。

[root@client ~]# yum -y install chrony[root@client ~]# cat /etc/chrony.confserver 0.centos. iburstallow 192.168.4.0/24local stratum 10[root@client ~]# systemctl restart chronyd

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

[root@node1 ~]# cat /etc/chrony.confserver 192.168.4.10 iburst[root@node1 ~]# systemctl restart chronyd

步骤三:准备存储磁盘

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

[root@root9pc01 ~]# virt-manager

2 、部署ceph集群

步骤一:部署软件

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

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

2)创建目录

[root@node1 ~]# mkdir ceph-cluster-----创建工作目录[root@node1 ~]# cd ceph-cluster/------进入工作目录

步骤二:部署Ceph集群

1)创建Ceph集群配置。--------一定要在工作目录,要不然系统找不到

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

2)给所有节点安装软件包。--------一定要在工作目录,要不然系统找不到

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

3)初始化所有节点的mon服务(主机名解析必须对)--------一定要在工作目录,要不然系统找不到

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

步骤三:创建OSD

1)准备磁盘分区lsblk

[root@node1 ~]# for i in {1..3}------对node{1..3}同时进行分区

> do

> ssh node$i parted /dev/vdb mklabel gpt

> done

[root@node1 ~]# for i in {1..3}; do ssh node$i parted /dev/vdb mkpart primary 1M 50%; done

[root@node1 ~]# for i in {1..3}; do ssh node$i parted /dev/vdb mkpart primary 50% 100%; done

[root@node1 ~]# for i in {1..3}--------为分区设置所属组和所属者为ceph

> do

> ssh node$i chown ceph.ceph /dev/vdb1

> done

[root@node1 ~]# for i in {1..3}; do ssh node$i chown ceph.ceph /dev/vdb2; done

也可以:

vim /etc/udev/rules.d/90-cepdisk.rules

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

for i in {2..3}; do scp /etc/udev/rules.d/90-cepdisk.rules node$i:/etc/udev/rules.d/; done

//这两个分区用来做存储服务器的日志journal盘

2)初始化清空磁盘数据(仅node1操作即可)--------一定要在工作目录,要不然系统找不到

[root@node1ceph-cluster ]# ceph-deploy disk zap node1:vdc node1:vdd[root@node1 ceph-cluster]# ceph-deploy disk zap node2:vdc node2:vdd[root@node1 ceph-cluster]# ceph-deploy disk zap node3:vdc node3:vdd

3)创建OSD存储空间(仅node1操作即可)--------一定要在工作目录,要不然系统找不到

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

步骤四:验证测试

1) 查看集群状态

[root@node1 ~]# ceph -s正常显示:

[root@node1 ceph-clu]# ceph -s

cluster 1de07da3-cabd-4355-8b20-7b19bce6157e

health HEALTH_OK

monmap e1: 3 monsat {node1=192.168.4.1:6789/0,node2=192.168.4.2:6789/0,node3=192.168.4.3:6789/0}

election epoch 6, quorum 0,1,2 node1,node2,node3

osdmap e34: 6 osds: 6 up, 6 in

flags sortbitwise

pgmap v70: 64 pgs, 1 pools, 0 bytes data, 0 objects

202 MB used, 61170 MB / 61373 MB avail

64 active+clean

若没有显示healthy_ok,则按下面方法处理:

错例1:

ceph -s

若出现下面错误:

osd create 创建OSD存储空间,如提示run 'gatherkeys'

则需要执行ceph-deploy gatherkeys node1 node2 node3

systemctl restart ceph\8.service ceph\*.tartget--------在所有节点操作或仅在失败节点重起服务

错例2: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@node2ceph]# systemctl stop ceph-\*

[root@node3 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)查看存储池。

[root@node1 ~]# ceph osd lspools-----------查看存储池(默认为rbd)0 rbd,--------0为编号,rbd为存储池名[root@node1 ceph-clu]# ceph osd pool get rbd sizesize: 3----------3副本

2)创建镜像、查看镜像语法结构; rbd create 池名/镜像名 --image-feature layering --size 大小

[root@node1 ~]# rbd create rbd/demo-image --image-feature layering --size 10G--------原型:rbd create 镜像名--image-feature layering --size 大小[root@node1 ~]# rbd create rbd/image --image-feature layering --size 10G-----image-feature layering特征为分层[root@node1 ~]# rbd list-------列出所有镜像[root@node1 ~]# rbd info demo-image----查看相关镜像的信息rbd image 'demo-image':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.d3aa2ae8944aformat: 2features: layering

步骤二:动态调整

1)缩小容量

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

2)扩容容量

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

步骤三:通过KRBD访问

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

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

2)客户端通过KRBD访问

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

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

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

步骤四:创建镜像快照

1) 创建镜像快照

[root@client~]# rbd snap create image --snap image-snap1-----创建镜像快照[root@client~]# rbd snap ls image-----查看相关快照信息SNAPID NAME SIZE4 image-snap1 15360 MB

2) 删除客户端写入的测试文件,并卸载挂载点

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

注意:这里删除后一定要先卸载,不能在回滚之后卸载再重新挂载,那样会有问题

4) 还原快照

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

步骤四:创建快照克隆

1)克隆快照

[root@node1 ~]# rbd snap protect image --snap image-snap1-----保护快照(unprotect不保护)[root@node1 ~]# rbd snap rm image --snap image-snap1 //会失败[root@node1 ~]# rbd clone \image --snap image-snap1 image-clone --image-feature layering//使用image的快照image-snap1克隆一个新的image-clone镜像

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

[root@node1 ~]# rbd info image-clonerbd image 'image-clone':size 15360 MB in 3840 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.d3f53d1b58baformat: 2features: layeringflags:parent: rbd/image@image-snap1#克隆镜像很多数据都来自于快照链#如果希望克隆镜像可以独立工作,我们需要将父镜像的信息合并flattern到子镜像,一旦合并完成,RBD镜像和它的父镜像就不会存在任何关系了。[root@node1 ~]#rbd flatten image-clone[root@node1 ~]# rbd info image-clonerbd image 'image-clone':size 15360 MB in 3840 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.d3f53d1b58baformat: 2features: layeringflags:#注意,父快照信息没了!

步骤四:其他操作

1) 客户端撤销磁盘映射

[root@client ~]# umount /mnt[root@client ~]# rbd showmappedid pool image snap device0 rbd image - /dev/rbd0//语法格式:[root@client ~]#rbd unmap /dev/rbd/{poolname}/{imagename}[root@client ~]# rbd unmap /dev/rbd/rbd/image-----撤销镜像影射

2)删除快照与镜像

[root@node6 images]# rbd snap ls image------查看image镜像有哪些快照[root@node1 ~]# rbd snap rm image --snap image-snap----删除快照[root@node1 ~]# rbd list-----------查看有哪些镜像[root@node1 ~]# rbd rm image------删除镜像

4、块存储应用------将ceph集群作为后端存储

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

1)创建磁盘镜像。

[root@node1 ~]# rbd create vm1-image --image-feature layering --size 10G-----创建镜像[r镜像t@node1 ~]# rbd create vm2-image --image-feature layering --size 10G[root@node1 ~]# rbd list------列出镜像[root@node1 ~]# rbd info vm1-image[root@node1 ~]# qemu-img info rbd:rbd/vm1-imageimage: rbd:rbd/vm1-imagefile format: rawvirtual size: 10G (10737418240 bytes)disk size: unavailable

2)Ceph认证账户。

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

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

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

[root@node1 ~]# cat /etc/ceph/ceph.conf //配置文件[global]mon_initial_members = node1, node2, node3mon_host = 192.168.2.10,192.168.2.20,192.168.2.30auth_cluster_required = cephx //开启认证auth_service_required = cephx //开启认证auth_client_required = cephx //开启认证cat /etc/ceph/ceph.client.admin.keyring[client.admin]key = AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg==

3)部署客户端环境:安装软件包,拷贝配置文件

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

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

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

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

4)创建KVM虚拟机取名为vm1,只是用来获取xml文件,获取后就可以删掉该创建的虚拟机了

virsh dumpxml vm1 > /etc/libvirt/qemu/

virsh undefine vm1

5)虚拟机使用CEPH存储,需要认证。方式是虚拟机先生成secret,再将secret与CEPH账户映射

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

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

[root@room9pc01 ~]# virsh secret-list

UUID 用量

--------------------------------------------------------------------------------

733f0fd1-e3d6-4c25-a69f-6681fc19802b ceph client.admin secret

查看管理员密钥(真实机操作)

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

再将secret与CEPH账户映射(真实机操作)

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

6)修改之前生成导出的虚拟机的XML配置文件。

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

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

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

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

[root@room9pc01] virsh edit vm1 //vm1为虚拟机名称<disk type='network'device='disk'><driver name='qemu' type='raw’/><auth username='admin'><secret type='ceph' uuid='733f0fd1-e3d6-4c25-a69f-6681fc19802b'/>--------这里的UUID就是secret的UUID,有client.admin账户和密钥信息</auth><source protocol='rbd' name='rbd/vm1-image'> <host name='192.168.4.i1' port='6789'/> </source>---------这里说明使用账户连接哪台ceph主机和端口,访问哪个池和镜像<target dev='vda' bus='virtio'/>-------这里说明将获取的镜像设置为虚拟机的vda磁盘<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/></disk>

6)启动虚拟机时,不能直接安装,需要在虚拟机设置中连接光盘文件,并且设置启动选项,将光盘设置为第一启动介质。

7)安装完成后,提示reboot,但这里需要先关机,将启动项的第一启动介质改会为磁盘引导,然后再开机

至此,我们的真机上装的vm1虚拟机就可以使用了,只不过它是安装在后端ceph集群存储磁盘上的,而非像传统那样安装在本地磁盘。

5、挂载Ceph文件系统

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

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

按照如下步骤进行:

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

IP地址:192.168.4.14

主机名:node4

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

与Client主机同步时间

node1允许无密码远程node4

2)部署元数据服务器

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

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

登陆node1部署节点操作

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

同步配置文件和key

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

3)创建存储池

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

4)修改配置文件。

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

5)创建Ceph文件系统

[root@node4 ~]#ceph mds stat-------------查看mds状态e2:, 1 up:standby[root@node4 ~]#ceph fs new myfs1 cephfs_metadata cephfs_datanew fs with metadata pool 2 and data pool 1//注意,先写medadata池,再写data池//默认,只能创建1个文件系统,多余的会报错[root@node4 ~]#ceph fs lsname: myfs1, metadata pool: cephfs_metadata, data pools: [cephfs_data ][root@node4 ~]# ceph mds state4: 1/1/1 up {0=node4=up:creating}

6)客户端挂载

[root@client ~]#mount -t ceph 192.168.4.11:6789:/ /mnt/cephfs/ \-o name=admin,secret=AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg== ---------------这里随便找一台机器都可以当作客户端,只要该机器能访问192.168.4.11的6789端口就行//注意:文件系统类型为ceph//192.168.4.11为MON节点的IP(不是MDS节点)//admin是用户名,secret是密钥//密钥可以在/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软件包

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

同步配置文件与密钥到node5

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

3)新建网关实例

启动一个rgw服务

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

登陆node5验证服务是否启动

[root@node5 ~]#ps aux |grep radosgwceph 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[root@node5 ~]# systemctl status ceph-radosgw@\*

4)修改服务端口

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

[root@node5 ~]# vim /etc/ceph/ceph.conf[client.rgw.node5]host = node5--------node5为主机名rgw_frontends = "civetweb port=80"---------------civetweb是RGW内置的一个web服务systemctl stop httpd--------必须将httpd的80端口关掉,负责端口冲突systemctl restart ceph-radosgw\*

步骤二:客户端测试

1)curl测试

[root@client ~]# curl 192.168.4.15<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="/doc/-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>

2)使用第三方软件访问

登陆node5(RGW)创建账户

[root@node5 ~]#radosgw-admin user create \--uid="testuser" --display-name="First User"--------创建… …"keys": [{"user": "testuser","access_key": "5E42OEGB1M95Y49IBG7B","secret_key": "i8YtM8cs7QDCK3rTRopb0TTPBFJVXdEryRbeLGK6"}],... ...#[root@node5 ~]#radosgw-admin user info --uid=testuser-------查看//testuser为用户,key是账户访问密钥

3)客户端安装软件

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

修改软件配置

[root@client ~]# s3cmd --configureAccess Key: 5E42OEGB1M95Y49IBG7BSecret Key: i8YtM8cs7QDCK3rTRopb0TTPBFJVXdEryRbeLGK6Default Region [US]:---------注意这里不要修改,负责后面创建目录会有问题S3 Endpoint []: 192.168.4.15[%(bucket)s.]: %(bucket)s.192.168.4.15Use HTTPS protocol [Yes]: NoTest access with supplied credentials? [Y/n] YSave settings? [y/N] y//注意,其他提示都默认回车

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

[root@client ~]# s3cmd ls[root@client ~]# s3cmd mb s3://my_bucket------mb是make bucket的意思,类似于创建文件夹Bucket 's3://my_bucket/' created[root@client ~]# s3cmd ls-05-09 08:14 s3://my_bucket[root@client ~]# s3cmd put /var/log/messages s3://my_bucket/log/------put上传[root@client ~]# s3cmd ls-05-09 08:14 s3://my_bucket[root@client ~]# s3cmd ls s3://my_bucketDIR s3://my_bucket/log/[root@client ~]# s3cmd ls s3://my_bucket/log/-05-09 08:19 309034 s3://my_bucket/log/messages

测试下载功能

[root@client ~]# s3cmd get s3://my_bucket/log/messages /tmp/------get下载

测试删除功能

[root@client ~]# s3cmd del s3://my_bucket/log/messages----del删除文件[root@client ~]# s3cmd rb s3://my_bucket/log/-------------rb删除文件夹

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。