ceph

ceph中rbd的增量备份和恢复

断了今生、忘了曾经 提交于 2019-11-27 12:09:25
ceph中rbd的增量备份和恢复 ceph的文档地址: Ceph Documentation ​ 在调研OpenStack中虚机的备份和恢复时,发现OpenStack和ceph紧密结合,使用ceph做OpenStack的后端简直是不要太爽,于是调研了使用ceph中的块设备rbd来对虚机进行增量备份和恢复。以下是虚机备份和恢复的实验步骤: 1. 前言: ​ 快照 的功能一般是基于时间点做一个标记,然后在某些需要的时候,将状态恢复到标记的那个点,这个有一个前提是 底层的数据没有破坏 ,举个简单的例子, Vmware 里面对虚拟机做了一个快照,然后做了一些系统的操作,想恢复快照,前提是存储快照的存储系统没用破坏,一旦破坏了是无法恢复的。 ​ ceph也有快照功能,同样,在这里的快照是用来保存存储系统上的状态的,数据的快照能成功恢复的前提是存储系统是好的,而一旦存储系统坏了,快照同时会失效的,所以最好是能够将数据备份下来。本篇博客主要是调研使用ceph的rbd命令来对存储设备进行基于快照的增量备份。 2. ceph中rbd的常用命令: 2.1列出存储池 ceph osd pool ls 2.2 查看存储池的内容 rbd ls --pool pool_name 例子 rbd ls --pool volumes 2.3 打快照 rbd snap create {pool-name}/

安装部署Ceph Calamari

我们两清 提交于 2019-11-27 11:23:54
根据 http://ovirt-china.org/mediawiki/index.php/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2Ceph_Calamari 原文如下: Calamari是管理和监控Ceph集群的工具,并且提供REST api。 建议的部署平台是ubuntu,本文使用CentOS 6.5。 安装部署 获取calamari相关代码 # git clone https://github.com/ceph/calamari.git # git clone https://github.com/ceph/calamari-clients.git # git clone https://github.com/ceph/Diamond 生成calamari-server安装包,先yum remove prlink # yum install gcc gcc-c++ postgresql-libs python-virtualenv # cd calamari && ./build-rpm.sh 安装calamari-server # yum localinstall ../rpmbuild/RPMS/x86_64/calamari-server-<version>.rpm 使用yum可以自动解决依赖,如果手动安装依赖的可以这样: # yum

Ceph Jewel版本三副本读操作流程

谁说胖子不能爱 提交于 2019-11-27 08:04:39
一、主OSD读处理流程 OSD::ms_fast_dispatch() |__OSD::dispatch_session_waiting() |__OSD::dispatch_op_fast() |__OSD::handle_op() |__OSD::get_pg_or_queue_for_pg() 找到OpRequest中对应的PG和Pool信息 |__OSD::enqueue_op() |__PG::queue_op() |__OSD::ShardedThreadPool::ShardedWQ::queue() 将PG和Op一起放入队列中 OSD::ShardedOpWQ::_process() 负责处理OSD::ShardedThreadPool::ShardedWQ队列中的Op |__PGQueueable::RunVis::operator()(const OpRequestRef &op) |__OSD::dequeue_op() |__ReplicatedPG::do_request() |__检查当前PG是否处于flush或peering状态,若是则将op放入waiting_for_peered队列中等待PG变成可用状态 |__检查当前PG是否处于Active状态,若不是则将op放入waiting_for_active队列中 |_

Ceph Jewel版本三副本写操作流程

十年热恋 提交于 2019-11-27 08:04:25
一、主OSD写处理流程 OSD::ms_fast_dispatch() |__OSD::dispatch_session_waiting() |__OSD::dispatch_op_fast() |__OSD::handle_op() |__OSD::get_pg_or_queue_for_pg() 找到OpRequest中对应的PG和Pool信息 |__OSD::enqueue_op() |__PG::queue_op() |__OSD::ShardedThreadPool::ShardedWQ::queue() 将PG和Op一起放入队列中 OSD::ShardedOpWQ::_process() 负责处理OSD::ShardedThreadPool::ShardedWQ队列中的Op |__PGQueueable::RunVis::operator()(const OpRequestRef &op) |__OSD::dequeue_op() |__ReplicatedPG::do_request() |__检查当前PG是否处于flush或peering状态,若是则将op放入waiting_for_peered队列中等待PG变成可用状态 |__检查当前PG是否处于Active状态,若不是则将op放入waiting_for_active队列中 |_

ceph分布式存储介绍

大城市里の小女人 提交于 2019-11-27 00:17:17
一、Ceph简介: Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中,通常会采用 ceph 作为openstack 的唯一后端存储来提高数据转发效率。 Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。 官网:https://ceph.com/ 官方文档:http://docs.ceph.com/docs/master/# 二、Ceph特点: 高性能: a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡, 并行度高。 b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架 感知等。 c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。 高可用性: a. 副本数可以灵活控制。 b. 支持故障域分隔,数据强一致性。 c. 多种故障场景自动进行修复自愈。 d. 没有单点故障,自动管理。 高可扩展性: a. 去中心化。 b. 扩展灵活。 c. 随着节点增加而线性增长。 特性丰富: a. 支持三种存储接口

ceph磁盘管理添加删除

孤者浪人 提交于 2019-11-27 00:16:36
一、添加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)准备Object Storage Daemon: ceph-deploy osd prepare rab1:/var/lib/ceph/osd1 (4)激活Object Storage Daemon: ceph-deploy osd activate rab1:/var/lib/ceph/osd1 二、删除osd: 现在要将 rab1中的 osd.4 删除: (1)把 OSD 踢出集群 ceph osd out osd.4 (2)在相应的节点,停止ceph-osd服务 systemctl stop ceph-osd@4.service systemctl disable ceph-osd@4.service ( 3)删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了 ceph osd crush remove osd.4 (4)删除 OSD 认证密钥 ceph auth

ceph更换磁盘

痞子三分冷 提交于 2019-11-27 00:15:59
正常状态: 故障状态: 实施更换步骤: (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 $i;done (2)定位故障osd ceph osd tree | grep -i down (3)进入osd故障的节点,卸载osd挂载目录 [root@node3 ~]# umount /var/lib/ceph/osd/ceph-5 (4)从crush map 中移除osd [root@node1 ~]# ceph osd crush remove osd.5 removed item id 5 name 'osd.5' from crush map (5)删除故障osd的密钥 [root@node1 ~]# ceph auth del osd.5 updated (6)删除故障osd [root@node1 ~]# ceph osd rm 5 removed osd.5 ( 7

ceph安装

天涯浪子 提交于 2019-11-27 00:12:41
一、部署准备: (1)所有ceph集群节点(包括客户端)设置静态域名解析; [root@zxw9 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.126.6 zxw6 192.168.126.7 zxw7 192.168.126.8 zxw8 192.168.126.9 zxw9 (2)所有集群节点(包括客户端)创建cent用户,并设置密码,后执行如下命令: useradd cent && echo "123" | passwd --stdin cent echo -e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph chmod 440 /etc/sudoers.d/ceph (3)在部署节点切换为cent用户,设置无密钥登陆各节点包括客户端节点 [root@zxw9 ~]# su - cent [cent@zxw9 ~]$ [cent@zxw9 ~]$ ssh

ceph-kvstore-tool 工具使用详解

烈酒焚心 提交于 2019-11-26 19:24:16
文章目录 简介 使用 总结 简介 ceph-kvstore-tool 工具是用来获取存放在 leveldb 或者 rocksdb 数据库中的键值元数据。并且该工具能够对kvstore中的数据进行配置,就像是对离线后的osd操作osd map一样 使用该工具,需要安装 ceph-test-12.2.1.06-0.el7.centos.x86_64 包 本文该工具的介绍是基于 ceph12.2.1 版本的 使用 执行 ceph-kvstore-tool -h 查看帮助信息如下 [ root@node1 ~ ] # ceph-kvstore-tool -h Usage: ceph-kvstore-tool < leveldb | rocksdb | bluestore-kv > < store path > command [ args .. . ] Commands: list [ prefix ] list-crc [ prefix ] exists < prefix > [ key ] get < prefix > < key > [ out < file > ] crc < prefix > < key > get-size [ < prefix > < key > ] set < prefix > < key > [ ver < N > | in < file > ] rm <

ceph mon修复

这一生的挚爱 提交于 2019-11-26 16:40:45
文章目录 1、生成map 2、生成空的数据库信息 3、补充配置文件 4、增加权限 5、重启mon服务 1、生成map 1、如果超冗余使用monmap修复 monmaptool --create --clobber --fsid ac0231f0-2a1f-4b83-9aee-081fe1068851 --add node1 10.193.55.131:6789 --add node2 10.193.55.132:6789 monmap 2、如果没有超冗余 ceph mon getmap -o /tmp/bbb/monmap 2、生成空的数据库信息 ceph-mon -i node1 --mkfs --monmap /tmp/aaa/monmap --keyring /etc/ceph/ceph.mon.keyring -c /etc/ceph/ceph.conf 3、补充配置文件 touch /var/lib/ceph/mon/ceph-`hostname`/done touch /var/lib/ceph/mon/ceph-`hostname`/systemd 4、增加权限 chown ceph:ceph -R /var/lib/ceph/mon/ 5、重启mon服务 systemctl restart ceph-mon@`hostname` 来源: https://blog