ceph

CephFS提供/添加/删除MDS

我怕爱的太早我们不能终老 提交于 2019-12-25 20:07:02
部署元数据服务器 每个CephFS文件系统至少需要一个MDS,集群维护者通常会根据需要使用其自动部署工具来启动所需的MDS服务器。推荐使用Rook和ansible(通过ceph-ansible剧本)进行此操作。为了更清晰,我们仍在此处使用systemd命令 MDS的硬件配置 MDS的当前版本是单线程的,大多数MDS活动都需要CPU,包括响应客户机请求。在最强的客户机负载下,MDS使用大约2到3个CPU内核,这是由于其他杂项维护线程协同工作 即便如此,仍建议为MDS服务器充分配备具有足够核心的高级CPU,为了更好地利用MDS中可用的CPU内核,正在进行开发。预计在将来的Ceph版本中,MDS服务器将通过利用更多内核来提高性能。 MDS性能的另一个方面是可用于缓存的RAM,MDS必须管理所有客户端和其他活动MDS之间的分布式协作元数据缓存。因此,必须为MDS提供足够的RAM,以实现更快的元数据访问和变异。默认的MDS缓存大小为4GB。建议为MDS提供至少8GB的RAM,以支持此缓存 通常,为大型客户端群集(1000个或更多)服务的MDS将使用至少64GB的缓存。在社区最大的已知集群中,没有很好地探索具有较大缓存的MDS。如此大的缓存管理会以令人惊讶的方式对性能造成负面影响,好对预期的工作量进行分析,以确定合适的RAM 在裸机集群中,最佳实践是为MDS服务器尽可能配置更好的硬件

Ceph: too many PGs per OSD

亡梦爱人 提交于 2019-12-20 10:46:11
问题 I configured Ceph with the recommended values (using a formula from the docs). I have 3 OSDs, and my config (which I've put on the monitor node and all 3 OSDs) includes this: osd pool default size = 2 osd pool default min size = 1 osd pool default pg num = 150 osd pool default pgp num = 150 When I run ceph status I get: health HEALTH_WARN too many PGs per OSD (1042 > max 300) This is confusing for two reasons. First, because the recommended formula did not satisfy Ceph. Second, and most

K8S使用Ceph做持久化存储

大城市里の小女人 提交于 2019-12-19 19:30:40
一、概述 Cephfs 是一个基于 ceph 集群且兼容POSIX标准的文件系统。 创建 cephfs 文件系统时需要在 ceph 集群中添加 mds 服务,该服务负责处理 POSIX 文件系统中的 metadata 部分,实际的数据部分交由 ceph 集群中的 OSDs 处理。 cephfs 支持以内核模块方式加载也支持 fuse 方式加载。无论是内核模式还是 fuse 模式,都是通过调用 libcephfs 库来实现 cephfs 文件系统的加载,而 libcephfs 库又调用 librados 库与 ceph 集群进行通信,从而实现 cephfs 的加载。 来源: 51CTO 作者: 思考_ 链接: https://blog.51cto.com/10880347/2309877

cephfs 文件空间重建

和自甴很熟 提交于 2019-12-19 19:30:01
重置cephfs 清理现有cephfs 所有文件,重建空间: 清理删除 cephfs 关闭所有mds服务 systemctl stop ceph-mds@$HOSTNAME systemctl status ceph-mds@$HOSTNAME 查看cephfs 信息 ## ceph fs ls name: leadorfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ] ## ceph mds stat e392: 0/1/1 up, 1 failed ## ceph mon dump dumped monmap epoch 1 设置mds状态为失败 ceph mds fail 0 删除mds文件系统 ceph fs rm leadorfs --yes-i-really-mean-it 删除元数据文件夹 ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it 再次查看集群状态 ## ceph mds stat e394: ## eph mds dump

Ceph配置桶存储分片

有些话、适合烂在心里 提交于 2019-12-19 19:27:22
开始之前,先参考我之前的文章,Ceph对象存储介绍与安装, Ceph对象存储介绍与安装 Ceph对象网关将存储区索引数据存储在index_pool这个池中,默认值为default.rgw.buckets.index,有时,用户喜欢将多个对象(数十万到数百万个对象)放在一个存储桶中,如果不使用网关管理界面为每个存储桶中的最大对象设置配额,则当用户将大量对象放入存储桶中时,存储桶索引可能会遭受严重的性能下降。 查看这个pool [root@ceph-node1 ~]# ceph osd lspools | grep buckets.index 31 default.rgw.buckets.index 在Ceph 0.94中,当每个存储桶中允许大量对象时,可以对存储区索引进行分片以防止性能瓶颈。 rgw_override_bucket_index_max_shards设置允许您设置每个存储区的最大分片数,默认值为0,这意味着默认情况下桶索引分片处于关闭状态。 以下命令可以查看这个参数的值,这里查看的是id为0的osd的此项参数的值 [root@ceph-node1 ~]# ceph-osd -i 0 --show-config | grep "rgw_override_bucket" rgw_override_bucket_index_max_shards = 0 要打开存储桶索引分片

Ceph 配置S3和swift接口访问集群

孤人 提交于 2019-12-19 19:16:02
要使用REST接口,我们首先要为S3接口创建一个初始的Ceph对象网关用户,然后为Swift界面创建一个子用户,最后,我们需要验证创建的用户是否能够访问网关。 创建用以访问s3接口的radosgw用户 执行如下命令创建用户,记录下access_key和secret_key,没记住也没关系,可以使用radosgw-admin user info --uid s3查看 [root@ceph-node1 ~]# radosgw-admin user create --uid="s3" --display-name="s3 user" { "user_id": "s3", "display_name": "s3 user", "email": "", "suspended": 0, "max_buckets": 1000, "auid": 0, "subusers": [], "keys": [ { "user": "s3", "access_key": "WNXRGPK6XGWO8XRLWRUA", "secret_key": "Segqx8fZ8H5arM1Pvpygiewp4gl9Qjkrymi09aVP" } ], "swift_keys": [], "caps": [], "op_mask": "read, write, delete", "default_placement":

Ceph(CephFS)文件系统介绍和搭建

亡梦爱人 提交于 2019-12-19 19:15:58
一:安装前介绍 一个Ceph(CephFS)文件系统至少需要两个RADOS池,一个用于数据,另一个用于元数据,配置这些池时,我们应该考虑以下三点 对元数据池使用更高的复制级别,因为此池中的任何数据丢失都可能导致整个文件系统无法访问 对元数据池使用较低延迟的存储(例如SSD),因为这将直接影响在客户端上观察到的文件系统操作的延迟 用于创建文件系统的数据池是“默认”数据池,并且是用于存储所有inode追溯信息的位置,用于硬链接管理和灾难恢复。因此,在CephFS中创建的所有inode在默认数据池中至少具有一个对象。如果为文件系统计划了擦除编码的池,通常最好将复制池用于默认数据池,以提高小对象的读写性能以更新回溯。另外,可以添加另一个擦除编码的数据池,该数据池可用于目录和文件的整个层次结构 二:安装配置步骤 创建两个具有默认设置以供文件系统使用的池,并创建好mds,2是pg_number,这里没指定pgp的值,有关pg和pgp的说明可以参考我之前的文章, Ceph概念介绍及组件介绍 [root@ceph-node1 ~]# ceph osd pool create cephfs_data 2 pool 'cephfs_data' created [root@ceph-node1 ~]# ceph osd pool create cephfs_metadata 2 pool 'cephfs

Ceph块设备介绍与安装配置

↘锁芯ラ 提交于 2019-12-19 19:01:57
一:rbd介绍 块是字节序列(例如,一个512字节的数据块)。基于块的存储接口是使用旋转介质(例如硬盘,CD,软盘甚至传统的9-track tape)存储数据的最常用方法。块设备接口的无处不在,使虚拟块设备成为与海量数据存储系统(如Ceph)进行交互的理想候选者。 Ceph块设备经过精简配置,可调整大小,并在Ceph集群中的多个OSD上存储条带化数据,ceph块设备利用了RADOS功能,例如快照,复制和一致性。 Ceph的RADOS块设备(RBD)使用内核模块或librbd库与OSD进行交互。 ‘ Ceph的块设备对内核设备,KVMS例如QEMU,基于云的计算系统,例如OpenStack和CloudStack,提供高性能和无限的可扩展性 。你可以使用同一群集同时操作Ceph RADOS网关,Ceph的文件系统和Ceph块设备。 二:创建与使用块设备 创建池和块 [root@ceph-node1 ~]# ceph osd pool create block 6 pool 'block' created 为客户端创建用户,并将密钥文件scp到客户端 [root@ceph-node1 ~]# ceph auth get-or-create client.rbd mon 'allow r' osd 'allow class-read object_prefix rbd_children,

ceph学习之pool

与世无争的帅哥 提交于 2019-12-19 04:53:29
pool是ceph存储数据时的逻辑分区,它起到namespace的作用。其他分布式存储系统,比如Mogilefs、Couchbase、Swift都有pool的概念,只是叫法不同。每个pool包含一定数量的PG,PG里的对象被映射到不同的OSD上,因此pool是分布到整个集群的。 除了隔离数据,我们也可以分别对不同的POOL设置不同的优化策略,比如副本数、数据清洗次数、数据块及对象大小等。 查看POOL 查看pool有多种方式: [root@mon1 ~]# rados lspools rbd testpool testpool2 [root@mon1 ~]# ceph osd lspools 0 rbd,1 testpool,2 testpool2, [root@mon1 ~]# ceph osd dump |grep pool pool 0 'rbd' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 flags hashpspool stripe_width 0 pool 1 'testpool' replicated size 2 min_size 2 crush_ruleset 0 object_hash rjenkins

Ceph块存储介绍

烈酒焚心 提交于 2019-12-19 03:20:06
1. 块存储是什么 块存储简称RBD(RADOS Block Device),是一种有序的字节序块,也是在Ceph三大存储类型中最为常用的存储方式 ,Ceph的块存储是基于RADOS的,因此它也借助RADOS的快照、复制和一致性等特性提供了快照、克隆和备份等操作。Ceph的块设备是一种精简置备模式,可以拓展块存储的大小且存储的数据以条带化的方式存储到Ceph集群中的多个OSD中。 2. 访问块存储的方式 访问块存储的方式有两种,分别是KRBD的方式和librbd的方式。 2.1 KRBD方式 KRBD是Kernel RADOS Block Device的简称,它是通过Kernel模块中的RBD模块来实现访问后端存储的,在使用前需要先使用modprobe命令将内核中RBD模块进行加载,同时对内核版本也是有要求的,需要内核的版本不低于3.10,因为比这个版本低的内核还没将RBD模块集成到内核中,因此如果是CentOS6.x的一般需要先升下内核版本。 KRBD访问后端存储的方式一般适用于为物理主机提供的块设备,这种方式是基于内核模块驱动的,可以使用Linux自带的页缓存来提高性能。 以下是通过KRBD模块访问Ceph后端块设备的一些命令操作。 modprobe rbd # 加载RBD内核模块 modinfo rbd # 查看rbd模块信息 rbd create image_name -