ceph(存储之块设备、文件系统、对象存储)

本文介绍了Ceph这一开源分布式存储系统,包括其对象存储、块设备和文件系统功能。Ceph的核心是RADOS,一个高可用的分布式对象存储系统。文章详细讲述了如何在Centos7上准备Ceph环境,创建和使用Ceph块设备,配置Ceph文件系统(cephfs),以及部署和测试Ceph对象存储(RGW)。在块设备和文件系统部分,涉及RBD映射、格式化和挂载,以及cephfs的创建、元数据管理和挂载。在对象存储部分,安装了Ceph RGW,创建S3和Swift用户,并进行访问测试。
摘要由CSDN通过智能技术生成

1、Ceph 存储介绍

Ceph 是一个开源的分布式存储系统,包括对象存储、块设备、文件系统。它可靠性高、管理方便、伸缩性强,能够轻松应对PB、EB级别数据。Ceph 存储体系中,核心为 RADOS,它是一个高可用分布式对象存储,该模块负责对集群众多 OSD 的运行,保证存储系统的可用性。同时该模块通过 LIBRADOS 的公共库对外提供存储服务,如对象存储、块设备存储。

通过官网文档 Ceph 体系结构 中的图片可以很清楚的了解 Ceph 存储体系。这里就不一一阐述各个组件了。

这里写图片描述

2、环境、软件准备

要使用 Ceph 存储体系中的块设备、文件系统以及对象存储,必须保证已完成 Ceph 存储集群的搭建,并且保证 Ceph 存储集群处于 active + clean 状态。这里搭建过程可以参考上一篇 初试 Centos7 上 Ceph 存储集群搭建 文章,讲解的很详细,这里就忽略搭建过程。顺便在提一下本次演示的存储集群架构图,方便下边使用时更清晰一些。

这里写图片描述

3、Ceph 块设备

Ceph 块设备也可以简称为 RBD 或 RADOS 块设备,不过我们还是习惯叫 RBD,官网文档中指出不能在与 Ceph 存储集群(除非它们也用 VM )相同的物理节点上执行使用 RBD,不过这里我们都是使用的虚拟机,所以暂时可以不用另起一个机器测试,可以直接在 admin-node 节点上执行。当然,另起一个虚拟机或者机器更好一些。

如果另起一个节点的话,那么就得安装 Ceph 到该节点上并配置。注意:以下操作是基于上一篇文章已搭建好的集群结构及目录的,使用 cephd 账号。

1、在管理节点(admin-node)上,通过 ceph-deply 将 Ceph 安装到该节点 node2(假设将新节点 hostname 设置为 node2)。

$ ceph-deploy install node2

2、在管理节点(admin-node)上,通过 ceph-deploy admin 将 Ceph 配置文件和 ceph.client.admin.keyring 密钥同步到该节点 node2。

# 切换到 Ceph 配置文件和密钥所在目录,同上一篇。
$ cd ~/ceph-cluster
$ ceph-deploy admin node2

ceph-deploy 部署工具将密钥信息复制到 node2 的 /etc/ceph 目录,要确保该密钥环文件有读权限,若没有,到 node2 节点上执行 sudo chmod +r /etc/ceph/ceph.client.admin.keyring 命令。

本次演示,我们不增加新节点,直接在 admin-node 节点上操作,在集群搭建时已经完成上述操作,这里就不用再安装配置 Ceph 了。接下来需要配置 RBD。

1、首先在 admin-node 节点上创建一个块设备镜像 image。

# 创建一个大小为 1024M 的 ceph image
$ rbd create foo --size 1024

# 查看已创建的 rbd 列表
$ rbd list
foo

2、创建成功后,在 admin-node 节点上,把 foo image 映射到内核,并格式化为块设备。

$ rbd map foo --name client.admin
modprobe: ERROR: could not insert 'rbd': Operation not permitted
rbd: failed to load rbd kernel module (1)
rbd: sysfs write failed
In some cases useful info is found in syslog - try "dmesg | tail" or so.
rbd: map failed: (2) No such file or directory

报错了,这个原因是没有权限执行,sudo 执行一下。

$ sudo rbd map foo --name client.admin
modprobe: ERROR: could not insert 'rbd':: Cannot allocate memory
..

又报错了,看显示没内存了。。。好吧,给虚拟机增加 1G 内存试试。

$ sudo rbd map foo --name client.admin
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail" or so.
rbd: map failed: (6) No such device or address

又报错了,看日志 RBD image feature set mismatch,看样子是 feature 不匹配啊!那我们先看一下 foo 都有那些 feature.

$ rbd info foo
rbd image 'foo':
    size 1024 MB in 256 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.10222ae8944a
    format: 2
    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    flags: 

我们可以看到 rbd image foo 支持匹配的 feature 为:layering, exclusive-lock, object-map, fast-diff, deep-flatten。查看资料后,通过 uname -r 发现我们安装的 Ceontos7 内核版本为 3.10.0-693.5.2.el7.x86_64 只能支持 layering。。。 好吧,那么只能手动去掉那些不支持的 feature。有两种方式可以修改:

方式一:通过 rbd feature disable ... 命令临时关闭不支持的 feature 类型。注意:这种方式设置是临时性,一旦 image 删除或者创建新的 image 时,还会恢复默认值。

$ rbd feature disable foo exclusive-lock, object-map, fast-diff, deep-flatten

$ rbd image 'foo':
    size 1024 MB in 256 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.37132<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值