前言 如果你是新手,应该出现过敲盘符的时候,敲错的情况,有些操作可能没什么问题,查询类的操作都没问题,但是写入的情况,就可能比较麻烦了,当然老手也可能有误操作,本篇将讲述在误操作把分区表给弄丢了的情况,来看看我们应该如何恢复 实践过程 我们现在有一个正常的集群,我们假设这些分区都是一致的,用的是默认的分区的方式,我们先来看看默认的分区方式是怎样的 破坏环境 [root@lab8106 ceph]# ceph-disk list ··· /dev/sdb : /dev/sdb1 ceph data…
在前面一篇文章中,我们看到,当使用filestore时,osd会把磁盘分成data和journal两部分.这主要是为了支持object的transaction操作.我的想法是,ceph需要具有数据保护功能,从client端写入的数据(以返回I/O Completion为标志)不能丢失.对于object为什么要使用journal,ceph官方也给出了解释: 速度:有了journal分区后,写数据速度更快.这主要是因为journal的写都是顺序写. 一致性:ceph要求I/O操作是原子性的,比如更新…
假如需要新增一个主机名:osd4 ip:192.168.0.110的OSD1.在osd4创建挂载目录及放置配置文件的目录 ssh 192.168.0.110 (这里是从mon主机ssh到osd4主机) mkdir /ceph/osd.4 mkdir /etc/ceph 2.在osd4上格式化ext4的sda3分区,挂载分区. mkfs.ext4 /dev/sda3 mount -o user_xattr /dev/sda3 /ceph/osd.43.将mon主机的id_dsa.pub拷至osd4…
机器角色:cloudstack虚拟机的宿主机:ceph存储机器. 事件:ceph存储的物理机器由于内存异常,需要停机更换,仅仅是把该物理机上面的虚拟机迁移走,同时启动了停机维护,然后就直接关机.结果造成重启之后ceph异常 原因:由于异常关闭,ceph进程的相关信息没有正常关闭,信息没有同步到文件系统,如pid文件等信息 现象并尝试解决: 1)检查osd的整体信息 [root@haha1~]# ceph osd tree ID WEIGHT    TYPE NAME             UP…
一.删除osd ceph osd out 1ceph osd down 1systemctl stop ceph-osd@1ceph osd crush remove osd.1ceph osd rm 1ceph auth del osd.1   二.用ceph-deploy方式新增一个osd 1.登录deploy节点,打开集群创建目录 root@ceph01:~# cd /root/my-cluster/ root@ceph01:~/my-cluster# 2.准备一块硬盘:/dev/sdb1…
目录 简介 更换OSD操作步骤 1. 故障磁盘定位 2. 摘除故障磁盘 3. 重建raid0 4. 重建osd 控制数据恢复及回填速度 简介 首先需要说明的是,ceph的osd是不建议做成raid10或者raid5的,一般建议单盘跑.在我们的环境中,为了充分利用raid卡的缓存,即使是单盘,我们还是将其挂在raid卡下做成raid0. 这样不可避免的问题就是磁盘的损坏,需要在ceph当中做一些摘除动作,同时还需要重建raid. 在更换完磁盘重建raid之后,需要重新添加osd.新的osd加入到集…
先将osd.2移出集群 root@ceph-monster:~# ceph osd out osd.2 marked out osd.2. root@ceph-monster:~# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.79999 root default -2 0.39999 host ceph-monster 0 0.20000 osd.0 up 1.00000 1.00000 1 0…
修改主机名和 /etc/hosts 关闭防火墙和 SELINUX 安装和配置 NTP ceph-deploy 节点安装 安装 ceph-deploy sudo yum install ceph-deploy -y 配置 SSH(生成公秘钥实现免密访问) 添加 OSD ceph-deploy disk zap ceph2:/dev/vdb ceph3:/dev/vdb ceph-deploy osd prepare ceph2:/dev/vdb ceph3:/dev/vdb ★ 注意:[prepa…
尝试一.直接重新激活所有osd 1.查看osd树 root@ceph01:~# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.29279 root default -2 0.14639 host ceph01 0 0.14639 osd.0 up 1.00000 1.00000 -3 0.14639 host ceph02 1 0.14639 osd.1 down 0 1.00000 发现osd.…
https://my.oschina.net/wangzilong/blog/1549690 ceph集群中允许使用混合类型的磁盘,比如一部分磁盘是SSD,一部分是STAT.如果针对某些业务小高速磁盘SSD,某些业务需要STAT,在创建资源池的时候可以指定创建在某些OSD上. 基本步骤有8步: 当前只有STAT没有SSD,但是不影响实验结果. 1    获取crush map [root@ceph-admin getcrushmap]# ceph osd getcrushmap -o /opt/…
前言 ceph里面的数据是以对象的形式存储在OSD当中的,有的时候因为磁盘的损坏或者其它的一些特殊情况,会引起集群当中的某一个对象的异常,那么我们需要对这个对象进行处理 在对象损坏的情况下,启动OSD有的时候都会有问题,那么通过rados rm的方式是没法发送到这个无法启动的OSD的,也就无法删除,所以需要用其他的办法来处理这个情况 处理步骤 查找对象的路径 [root@lab8106 ~]# ceph osd map rbd rbd_data.857e6b8b4567.000000000000…
前言 之前写过一篇关于查询OSD的运行的CPU的情况的分享,本篇是讲的获取内存占用的,代码包括两种输出,一种是直接的表格,一种是可以方便解析的json 代码 直接上代码,python才用不久,所以可能代码实现比较低级,主要是看实现的方法 #!/usr/bin/env python # -*- coding: UTF-8 -*- import os import sys import json import psutil import commands from prettytable impor…
ceph在部署过程中是先进行部署,再去写配置文件的,而一些新手在部署完了后,并没有写配置文件,在重启服务器后,因为挂载点没有挂载,所以服务无法启动,所以需要写好配置文件 还有一种情况是集群有几百个osd,在新加入或者修改的时候,再去进行变更配置文件就是一个很麻烦的事情,所以写配置文件这个如果脚本来处理,就可以节约很多时间,所以写了一个脚本如下,这个地方如果熟悉python的可以用python写,我这个是自己使用,并且使用的频率不会太高,因此,怎么方便怎么来 脚本里面用了一个二进制文件是解析jso…
1  调高osd的日志等级 加上红框那一行就可以了 osd的日志路径:/var/log/ceph/ceph-osd.3.log 注意:加上了这一行后日志会刷很多,所以要特别注意日志容量的变化,以防把var目录写满了 2  缺少osdmap或者错误的osdmap 从osd日志中发现这两种错误都是属于osdmap不正常,可以从其它正常osd上拷贝osdmap到对应启动错误的osd上,假设不正常的osdmap序号是816,上图的是27601和671651 如以下图: 在一个正常osd上如osd.4上用…
在Ceph的osd节点上,启动osd进程失败,查看其日志/var/log/ceph/ceph-osd.{osd-index}.log日志,报错如下: 2017-02-14 16:26:13.558535 7fe3883f58c0 0 filestore(/var/lib/ceph/osd/ceph-1) mount: enabling WRITEAHEAD journal mode: checkpoint is not enabled 2017-02-14 16:26:13.558712 7fe…
1. 这里假设有一个osd被删除了 执行下列步骤删除: ceph osd out osd.0 service ceph stop osd.0 ceph osd crush remove osd.0 ceph auth del osd.0 ceph osd rm 0 当执行以上步骤后osd.0被删除掉了 此时数据目录还在,如下: 2. 使用这个目录恢复osd 在源osd.0的节点执行: ceph osd creat ceph auth add osd.0 osd 'allow *' mon 'al…
一.测试环境描述 之前我们已快速部署好一套Ceph集群(3节点),现要测试在现有集群中在线方式增加节点 如下表中可以看到增加节点node004具体配置 主机名 Public网络 管理网络 集群网络 说明 admin 192.168.2.39 172.200.50.39 --- 管理节点 node001 192.168.2.40 172.200.50.40 192.168.3.40 MON,OSD node002 192.168.2.41 172.200.50.41 192.168.3.41 MO…
添加或删除osd均在ceph部署节点的cent用户下的ceph目录进行. 1. 添加osd 当前ceph集群中有如下osd,现在准备新添加osd: (1)选择一个osd节点,添加好新的硬盘: (2)显示osd节点中的硬盘,并重置新的osd硬盘: 列出节点磁盘: ceph-deploy disk list rab1 擦净节点磁盘: ceph-deploy disk zap rab1 /dev/sbd(或者)ceph-deploy disk zap rab1:/dev/vdb1 (3)准备Objec…
正常状态: 故障状态: 实施更换步骤: (1)关闭ceph集群数据迁移: osd硬盘故障,状态变为down.在经过mod osd down out interval 设定的时间间隔后,ceph将其标记为out,并开始进行数据迁移恢复.为了降低ceph进行数据恢复或scrub等操作对性能的影响,可以先将其暂时关闭,待硬盘更换完成且osd恢复后再开启: for i in noout nobackfill norecover noscrub nodeep-scrub;do ceph osd set $…
一.OSD管理 1.1 移出故障osd 查看当前节点的osd的id [root@ceph2 ceph]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 xfs 40G .7G 38G % / devtmpfs devtmpfs .9G .9G % /dev tmpfs tmpfs .9G .9G % /dev/shm tmpfs tmpfs .9G 201M .7G % /run tmpfs tmpfs .9G…
一.心跳选项 完成基本配置后就可以部署.运行 Ceph 了.执行 ceph health 或 ceph -s 命令时,监视器会报告 Ceph 存储集群的当前状态.监视器通过让各 OSD 自己报告.并接收 OSD 关于邻居状态的报告来掌握集群动态.如果监视器没收到报告,或者它只收到集群的变更报告,那它就要更新集群运行图. 关于监视器与 OSD 的交互 Ceph 提供了合理的默认值,然而你可以覆盖它们.下面几段从集群监控角度描述了 Ceph 监视器与 OSD 如何交互. OSD 验证心跳 各 OSD…
前言 OSD是一个抽象的概念,对应一个本地块设备(一块盘或一个raid组) 传统NAS和SAN存储是赋予底层物理磁盘一些CPU.内存等,使其成为一个对象存储设备(OSD),可以独立进行磁盘空间分配.I/O调度等以达到客户端I/O操作与系统调用之间解耦. 与传统对象存储相比: ceph的OSD可以精确控制.CPU.内存.网络带宽等资源 实例化对象,定义了一套完备的对象接口,客户端可以直接操作对象,基于对象开发存储型应用 可自主进行数据复制.数据恢复.数据迁移,快速进行故障切换和恢复 OSD与客户端…
前言 服务器上面的服务会因为各种各样的原因失败,磁盘故障,权限问题,或者是服务过载引起超时,这些都可能引起 这个在ceph里面systemctl unit 默认有个on-fail restart,默认的可能并不适合所有的场景,所以自动化的服务应该是尽量去适配你手动处理的过程,手动怎么处理的,就怎么去设置 启动分析 如果有osd失败了,一般上去会先启动一次,尽快让服务启动,然后去检查是否有故障,如果失败了,就开启调试日志,再次重启,在问题解决之前,是不会再启动了,所以这里我们的自动启动设置也这么设…
前言 之前有一篇文章介绍的是,在centos7的jewel下面如果自己做的分区如何处理自动挂载的问题,当时的环境对journal的地方采取的是文件的形式处理的,这样就没有了重启后journal的磁盘偏移的问题 如果采用的是ceph自带的deploy去做分区的处理的时候,是调用的sgdisk去对磁盘做了一些处理的,然后deploy能够识别一些特殊的标记,然后去做了一些其他的工作,而自己分区的时候,是没有做这些标记的这样就可能会有其他的问题 我们看下如何在部署的时候就处理好journal的uuid的…
Ceph块设备 来自这里. 块是一个字节序列(例如,一个512字节的数据块).基于块的存储接口是最常见的存储数据的方法,它通常基于旋转介质,像硬盘.CD.软盘,甚至传统的9道磁带. 基本的块设备命令 rbd命令可以让你创建.罗列.审查和删除块设备image.你也可以用它来克隆image.创建快照.回滚快照.查看快照等.关于rbd命令使用细节,可查看RBD - Manage RADOS Block Device(RBD) Images来了解详情. 创建块设备资源池 在管理节点,使用ceph工具创建…
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenStack 集成的实现 (6)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (7)Ceph 的基本操作和常见故障排除方法 学以致用,本文将介绍 Ceph 集群的一些基本操作和常见的故障排除方法. 0. 测试环境 将由 Virtulbox 管理的两个虚机,分别是…
第1章   CEPH部署 1.1  简单介绍 Ceph的部署模式下主要包含以下几个类型的节点 Ø CephOSDs: A Ceph OSD 进程主要用来存储数据,处理数据的replication,恢复,填充,调整资源组合以及通过检查其他OSD进程的心跳信息提供一些监控信息给Ceph Monitors . 当Ceph Storage Cluster 要准备2份数据备份时,要求至少有2个CephOSD进程的状态是active+clean状态 (Ceph 默认会提供两份数据备份). Ø Monitor…
环境 系统:Centos 7(系统最小化安装)版本:Ceph mimic 系统配置 配置主机名hostname.hosts.关闭firewalld.ssh无密码登录.ntp时间同步等,过程略. 保存下载rpm包,安装或升级的同时保留RPM包.yum 默认情况下,升级或者安装后会删除下载的rpm包.不过,我们也可以设置不删除下载的rpm包. 1234 vim/etc/yum.conf[main]cachedir=/var/cache/yumkeepcache=0 将 keepcache=0 修改为…
  参考文档:CEPH官网集群操作文档   概述 Ceph存储集群是所有Ceph部署的基础. 基于RADOS,Ceph存储集群由两种类型的守护进程组成:Ceph OSD守护进程(OSD)将数据作为对象存储在存储节点上; Ceph Monitor(MON)维护集群映射的主副本. Ceph存储集群可能包含数千个存储节点. 最小系统将至少有一个Ceph Monitor和两个Ceph OSD守护进程用于数据复制.   Ceph文件系统,Ceph对象存储和Ceph块设备从Ceph存储集群读取数据并将数据写…