本文为长篇连续剧,将分多个篇幅发表,主要介绍了从动手部署环境到后期运营故障处理过程中常见的问题,内容由浅入深,是居家旅行运维Ceph的必备良药。
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
本来是为了放假安心随手写的,结果这个漫长的假期真的收到了一个报警,因为我有两个pve集群使用ceph,一时间不知道是哪一个在报警,增加一行获取pve集群名,一并输出。
资料(传送门)[http://bbs.ceph.org.cn/question/363]
环境 node1:192.168.222.246 node2:192.168.222.249 node3:192.168.222.211 client:192.168.222.141 写入每个机器的/etc/hosts文件 推荐在三节点的任意一台做全部机器的ssh免密,这里我在node1上完成。 一、环境准备 给每个node节点加上一块硬盘,不能是逻辑卷,这里我的三个设备的都是/dev/sdb 修改主机名,必须与hosts文件一致 systemctl disable --now
RBD 是 Ceph 的块存储方案,最近需要在一台 Linux 服务器上挂载 Ceph 镜像,做法和 Kubernetes 挂 RBD 很像,但部分操作由于 Kubernetes 在镜像中已经固化了,所以将这次完全自己控制的步骤记录下来,加深对 Ceph 挂载的理解。
最近我在kubernetes中使用了ceph的rbd及cephfs存储卷,遇到了一些问题,并逐一解决了,在这里记录一下。
记录一个乌龙事件,今天给一个 v12.2.13 的测试集群升级到 v14.2.11 的时候,发现其中一个节点的 osd 进程一直报错,然后 ceph -s 也一直给出 WARNING 的信息,one host down,查看 osd 的日志,报一个莫名其妙的 invalid arguments。 这类问题,其实开一下 debug 日志,看下源码应该可以定位到的,但是感觉要花很多时间,所以放弃了,一翻 google 之后也没找到合理的解决方法。 最后,对比了一下三台测试集群的物理机上的 ceph.conf,果然发现了问题… 原因主要是 down 的一台物理机的 ceph.conf 多配置了一些文件系统的配置,同步三台机器的 ceph.conf 之后就解决了。可能是因为测试集群,所以 ceph.conf
部署Ceph之前我们需要对自身机器的环境做初始化。主要涉及到防火墙,主机名等设置。
ceph需要epel源的包,所以安装的节点都需要yum install epel-release
所有 Ceph 群集至少需要一个monitor,并且至少需要与存储在群集上的对象副本一样多的 OSD。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。
需求:添加Ceph元数据服务器node1。然后添加Ceph Monitor和Ceph Manager node2,node3以提高可靠性和可用性。
需求 随着ipv6使用得越来越广,很多网络设施逐步地需要支持ipv6,而ceph作为可大规模部署的分布式存储系统,ipv6的支持是必选的,本文主要介绍ceph over ipv6的场景及其功能使用
几年前,用Proxmox Virtual Environment(一个VMWare Vsphere的开源替代,以后简称PVE)搭建了一个测试云平台,使用了PVE自带的分布式存储Ceph。加上PVE自带的KVM虚拟机和LXC容器,再配置了虚拟交换机Open vSwitch,勉强算是一个所谓的超融合构架。
一、Ceph简单介绍 OSDs:Ceph的OSD守护进程(OSD)存储数据,处理数据复制,恢复,回填,重新调整,并通过检查其它Ceph OSD守护程序作为一个心跳 向Ceph的监视器报告一些检测信息。Ceph的存储集群需要至少2个OSD守护进程来保持一个 active + clean状态.(Ceph默认制作2个备份,但可以调整它) Monitors:Ceph的监控保持集群状态映射,包括OSD(守护进程)映射,分组(PG)映射,和CRUSH映射。 Ceph 保持一个在Ceph监视器, Ceph OSD 守护进程和 PG的每个状态改变的历史(称之为“epoch”)。 MDS:MDS是Ceph的元数据服务器,代表存储元数据的Ceph文件系统(即Ceph的块设备和Ceph的对象存储不使用MDS)。Ceph的元数据服务器使用POSIX文件系统,用户可以执行基本命令如 ls, find,等,并且不需要在Ceph的存储集群上造成巨大的负载。
删除当前 osd 的所有数据,并且重新加载 osd,此操作一定要保证有冗余可用的 osd,否则会造成整个 osd 数据损坏。
上次把集群节点的pve版本从v5升级到v6,这次把分布式存储ceph的版本从Luminous(v12)升级到Nautilus(v14)。
之前已详细介绍了Ceph分布式存储基础知识,下面简单记录下Centos7使用Ceph-deploy快速部署Ceph环境: 1)基本环境
在Centos7 下,现在采用了 systemctl来控制服务,这个刚开始用起来可能不太习惯,不过这个服务比之前的服务控制要强大的多,可以做更多的控制,本节将来介绍下关于 Ceph的 osd 磁盘挂载的问题
10.20.10.215 ceph_admin ceph_admin.walkingcloud.cn
需要添加的插件:Gitlab Hook、Build Authorization Token Root、Gitlab Authentication、Gitlab
Ceph在一个统一的系统中独特地提供对象、块和文件存储。Ceph 高度可靠、易于管理且免费。Ceph 的强大功能可以改变您公司的 IT 基础架构和管理大量数据的能力。Ceph 提供了非凡的可扩展性——数以千计的客户端访问 PB 到 EB 的数据。ceph存储集群相互通信以动态复制和重新分配数据。
如果是在admin节点修改的ceph.conf,想推送到所有其他节点,则需要执行下述命令
细节决定一切 网上很多文档默认都是只安装ceph-common然后直接rbd来跑ceph的rbd。 其实ceph的rbd块设备本地映射有两种方式: 盗个图(http://www.zphj1987.com/2016/05/19/ceph%E7%9A%84jewel%E6%96%B0%E6%94%AF%E6%8C%81%E7%9A%84rbd-nbd/):
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aixiaoyang168/article/details/78999851
https://www.virtualtothecore.com/en/upgrade-ceph-cluster-luminous/ http://www.chinastor.com/distristor/11033L502017.html
本文章介绍如何使用ceph为k8s提供动态申请pv的功能。ceph提供底层存储功能,cephfs方式支持k8s的pv的3种访问模式ReadWriteOnce,ReadOnlyMany ,ReadWriteMany ,RBD支持ReadWriteOnce,ReadOnlyMany两种模式
要使用基于 Rook 的 Ceph 存储中的块设备、文件系统以及对象存储,必须保证已通过 Rook 完成 Ceph 存储集群的搭建,并且保证 Ceph 存储集群处于 active + clean 状态。这里搭建过程可以参考上一篇 Kubernetes 集群基于 Rook 搭建 Ceph 分布式存储系统 文章,讲解的很详细。Kubernetes 集群搭建亦可参照上一篇文章,版本为 1.12.1,这里均忽略搭建过程,下边通过示例分别演示下如何使用这块设备、文件系统、对象存储方案。
存储根据其类型,可分为块存储,对象存储和文件存储。在主流的分布式存储技术中,HDFS/GPFS/GFS属于文件存储,Swift属于对象存储,而Ceph可支持块存储、对象存储和文件存储,故称为统一存储。
Ceph是一个PB,EB级别的分布式存储系统,可以提供文件存储,对象存储、和块存储,它可靠性高,易扩展,管理简便,其中对象存储和块存储可以和其他云平台集成。一个Ceph集群中有Monitor节点、MDS节点(用于文件存储)、OSD守护进程。
参考了官方文档,决定采用 Customer-Provided Keys(Amazon SSE-C)方式进行加密
本文介绍了如何使用 Ceph 进行分布式存储和共享,包括 Ceph 集群的安装、配置、部署和管理,以及 Ceph 的对象存储、块设备和文件系统的使用。
ceph块设备,以前称为RADOS块设备,为客户机提供可靠性、分布式和高性能的块存储磁盘。RADOS块设备利用librbd库并以顺序的形式在ceph集群的多个osd上存储数据块。RBD是由ceph的RADOS层支持,因此每个块设备都分布在多个ceph节点上,提供了性能和优异的可靠性。RBD有linux内核的本地支持,这意味着RBD驱动程序从过去几年就与linux内核集成的很好。除了可靠性和性能外,RBD还提供了企业特性,例如完整和增量快照、瘦配置、写时复制克隆、动态调整大小等,RBD还支持内存缓存,这大大提高了性能。
##前言 我使用xfs比较二一点,我是在ceph的rbd上直接格式化的xfs,所以ceph上的数据一般不会丢失,不过我的xfs是在docker内部进行的挂载,使用也是docker容器内使用,这里不得不说docker stop容器的时候还是相当的暴力,暴力到什么程度呢?xfs大多会在硬盘突然断电的情况下导致日志文件的写入损坏,故障往往就在这时发生,而docker stop容器和突然断电可以画上等号。最为悲催的是,我刚开始对xfs一无所知。ceph的rbd也是一知半解。而数据是万万不能丢失的,所以中间折腾了好长时间。
前面我们使用 ceph-deploy 搭建了 Ceph 集群,本文我们将学习使用 Ceph 集群创建资源池,创建RBD 块以及 RBD 块的使用。
要学习使用Ceph,首先需要有一个Ceph集群,本文通过ceph-deploy一个自动化部署Ceph的工具部署一个Ceph集群,掌握Ceph集群部署的方法。
部署完Ceph集群之后,如何在Ceph集群中存储文件呢?ceph提供了三种接口供用户使用,分别是:
nearfull osd(s) or pool(s) nearfull 此时说明部分osd的存储已经超过阈值,mon会监控ceph集群中OSD空间使用情况。如果要消除WARN,可以修改这两个参数,提高阈值,但是通过实践发现并不能解决问题,可以通过观察osd的数据分布情况来分析原因。
bucket index是整个RGW里面一个非常关键的数据结构,用于存储bucket的索引数据,默认情况下单个bucket的index全部存储在一个shard文件(shard数量为0,主要以OMAP-keys方式存储在leveldb中),随着单个bucket内的Object数量增加,整个shard文件的体积也在不断增长,当shard文件体积过大就会引发各种问题。
本文是在 Ubuntu 16.04 最新版基础上安装 Prometheus 监控系统,Ceph 版本为 Luminous 12.2.8。
Ceph基础介绍 Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。
注 意: 版本更新非常快,有问题要看官方文档 官方文档: http://docs.ceph.com 准备环境 系统版本:centos7.4 x86_64 server 硬件配置:5台vm,1核1G内存,每台node角色的机器至少挂载1块不低于5个G的空闲盘为osd存储 主机名 ip role admin 192.168.153.130 admin--安
这几天都在学习搭建Ceph集群,这真是一部心酸的血泪史。下面我就将我的安装过程以及踩过坑,一五一十的陈述出来。
七节点PVE集群升级v5到v6。ceph保持luminous,小版本会从12.2.12升级到12.2.13。
领取专属 10元无门槛券
手把手带您无忧上云