rbd

ceph块存储rbd介绍

北战南征 提交于 2019-12-06 23:14:30
ceph集群搭建起来后,可以在ceph集群上进行块存储、对象存储以及文件系统存储。从架构上来看,在ceph集群的上面是rados协议,该协议为使用ceph集群的用户提供必要的支持(ceph用户通过调用rados协议来使用ceph集群)。对于块存储来说,可以通过内核模块的方式使用ceph集群也可以通过用户态调用librbd库来使用ceph集群。通过内核模块方式可以充分的利用内核的page cache机制,而通过用户态调用librbd也可以使用librbd在用户态提供的cache方式提高性能。下图是ceph rbd的整体框架图。 1、快照相关。 1)创建快照。 #rbd snap create {pool-name}/{image-name}@{snap-name} 一般来说都是基于一个已有的image来创建快照,创建出来的快照是只读的; 2)查看已有的快照。 #rbd snap ls {pool-name}/{image-name} 查看在已有的image上存在的快照情况; 3)快照roolback。 #rbd snap roolback {pool-name}/{image-name}@{snap-name} 将快照里的内容回写到image中去; 4)删除快照。 #rbd snap rm {pool-name}/{image-name}@{snap-name}

centos7 安装配置ceph

旧时模样 提交于 2019-12-06 08:16:39
前期准备: 规划:8台机器 IP hostname role 192.168.2.20 mon mon.mon 192.168.2.21 osd1 osd.0,mon.osd1 192.168.2.22 osd2 osd.1,mds.b(standby) 192.168.2.23 osd3 osd.2 192.168.2.24 osd4 osd.3 192.168.2.27 client mds.a,mon.client 192.168.2.28 osd5 osd.4 192.168.2.29 osd6 osd.5 关闭 SELINUX [root @admin ceph]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root @admin ceph]# setenforce 0 打开 Ceph 需要的端口 [root @admin ceph]# firewall-cmd --zone=public --add-port=6789/tcp --permanent [root @admin ceph]# firewall-cmd --zone=public --add-port=6800-7100/tcp --permanent [root @admin ceph]# firewall

OpenStack集成ceph

房东的猫 提交于 2019-12-06 00:32:01
openstack组件集成ceph OpenStack集成ceph详细过程可以查看ceph官方文档: ceph document OpenStack Queens版本,1台控制节点controller,1台计算节点compute; 1. 创建存储池 Glance:Glance可以把镜像存储在Ceph上; Cinder:Cinder负责管理volume,把volume挂载给instance使用或者直接从volume启动instance。集成Ceph后可以让Cinder在Ceph上创建volume; Nova:在OpenStack Havana版本开始,Nova可以直接把instance的disk存放在Ceph上。 在Ceph集群上总共创建3个存储池,分别给Glance,Cinder和Nova使用; backups: 存放备份文件 2. 配置OpenStack的ceph客户端 2.1. 拷贝ceph.conf 把Ceph的配置文件/etc/ceph/ceph.conf拷贝到2台OpenStack节点上,控制节点和计算节点都需要,因为他们都要跟Ceph通信。 ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf 注意: 运行着 glance-api 、 cinder-volume 、

ceph概述

前提是你 提交于 2019-12-05 23:50:35
ceph概述 基础知识 什么是分布式文件系统 • 分布式文件系统 (Distributed File System) 是指文件系统管理的物理存储资源不一定 直接连接在本地节点上 , 而是通过计算机网络与节点相连 • 分布式文件系统的设计基于客户机 / 服务器模式 常用分布式文件系统 • Lustre • Hadoop • FastDFS • Ceph • GlusterFS 什么是 ceph • ceph 是一个分布式文件系统 • 具有高扩展、高可用、高性能的特点 • ceph 可以提供对象存储、块存储、文件系统存储 • ceph 可以提供 PB 级别的存储空间 (PBàTBàGB) – 1024G*1024G=1048576G • 软件定义存储 (Software Defined Storage) 作为存储行业的一大发展趋势 , 已经越来越 受到市场的认 ceph 组件 OSDs :存储设备, ceph 对象存储设备,它是唯一的真正存储数据的设备,只由 OSD 存储设备,它是一个进程,一般来说 OSD 关联到集群中的每块物理硬盘,所以集群中由多少块硬盘就有多少个 OSD 进程 Monitors ( MON ):集群监控组件, ceph 通过一系列的映射表来监控集群状态,一般来说 MON 是奇数个 MDSs :存放文件系统的元数据服务器 ( 对象存储和块存储不需要该组件 )

ceph中rbd的增量备份和恢复

混江龙づ霸主 提交于 2019-12-05 17:36:32
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}/

Qemu打开rbd镜像的源码分析

喜欢而已 提交于 2019-12-03 22:20:02
Ceph 0.94.1 Qemu 2.4.0 rbd.c 在qemu_rbd_open函数中,操作了一个重要的数据结构——结构体BDRVRBDState,这个结构体保存了非常重要的信息。 typedef struct BDRVRBDState { rados_t cluster; //cluster的handle rados_ioctx_t io_ctx; //cluster的IO上下文 rbd_image_t image; //rbd镜像的结构体 char name[RBD_MAX_IMAGE_NAME_SIZE]; //rbd镜像的名字 char *snap; //rbd镜像快照的名字 } BDRVRBDState; 对qemu_rbd_open函数的分析 : static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags, Error **errp) { BDRVRBDState *s = bs->opaque; char pool[RBD_MAX_POOL_NAME_SIZE]; char snap_buf[RBD_MAX_SNAP_NAME_SIZE]; char conf[RBD_MAX_CONF_SIZE]; char clientname_buf[RBD_MAX_CONF_SIZE];

ceph rbd 入门

匿名 (未验证) 提交于 2019-12-03 00:40:02
1.一个现成的ceph cluster 参考之前写的ceph-deploy 部署ceph cluster 2.配置client与ceph cluster对接 在ceph cluster的管理节点上安装配置ceph client #ansible为此处client的hostname ceph-deploy install ansible #ansible为此处client的hostname ceph -deploy admin ansible 3..在ceph client上创建使用rbd #创建一个pool ceph osd pool create test 128 #在test pool中创建一个rbd卷(image) rbd create volume01 --size 4096 - p test #查看这个卷 rbd ls -p test #定位卷对象数据 ceph osd map test volume01 #在ceph client 将此卷(image) 映射为一个块设备 #在ceph client上创建此卷(image)的文件系统 mkfs.ext4 -m0 /dev/rbd/rbd/volume01 #挂载 sudo mkdir /mnt/ceph-block-device sudo mount /dev/rbd/rbd/volume01 /mnt/ceph

kubernetes ceph的rbd挂载步骤

匿名 (未验证) 提交于 2019-12-03 00:37:01
k8s集群每一台上面都要安装客户端: 创建一个k8s操作用户 : ceph auth add client.k8s mon ‘allow rwx‘ osd ‘allow rwx‘ ceph auth get client.k8s -o /etc/ceph/ceph.client.k8s.keyring #导出新建用户的钥匙 将导出的钥匙放在k8s每台的/etc/ceph/下面 创建一个池和映射 1. 创建一个名为k8spool的池 ceph osd pool create k8spool 2024 ceph osd pool ls #查看池 2. 创建一个块映射k8stest 3. 关闭centOS7内核不支持的选项 rbd feature disable k8spool/k8stest exclusive-lock, object-map, fast-diff, deep-flatten k8s操作: 1.创建密匙: grep key /etc/ceph/ceph.client.admin.keyring |awk ‘{printf "%s", $NF}‘ |base64 QVFBbW5SbFgyenJxRFJBQU9pdU9zMnNJSXRHaEFQNnRORGEzVmc9PQ == 2.创建k8s-pv 3.创建k8s-pvc 4.创建测试pod,看看是否能不能挂载ceph

使用ceph的块存储rbd

匿名 (未验证) 提交于 2019-12-03 00:22:01
块是一个字节序列(例如,一个 512 字节的数据块)。基于块的存储接口是最常见的存储数据方法,它们基于旋转介质,像硬盘、 CD 、软盘、甚至传统的 9 磁道磁带。无处不在的块设备接口使虚拟块设备成为与 Ceph 这样的海量存储系统交互的理想之选。 Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD 。 Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。 Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。 注意:内核模块可使用 Linux 页缓存。对基于 librbd 的应用程序, Ceph 可提供 RBD 缓存。 Ceph 块设备靠无限伸缩性提供了高性能,如向内核模块、或向 abbr:KVM (kernel virtual machines) (如 Qemu 、 OpenStack 和 CloudStack 等云计算系统通过 libvirt 和 Qemu 可与 Ceph 块设备集成)。 更多信息参考 http://docs.ceph.org.cn/rbd/rbd/ 注意作为client节点也需要安装ceph,否则rbd会报错sudo: rbd: command not found。 需要注意的是client节点需要是ceph集群中的一员,需要有/etc/ceph/ceph.client

(6)ceph RBD 复制

匿名 (未验证) 提交于 2019-12-02 23:56:01
Ceph 存储集群可以从RBD的快照中创建写时复制 (COW 副本),这就是 Ceph 的快照分层。 Ceph 的这个分层特性允许客户端创建 Ceph RBD 的多个即时副本, 这个特性对云平台和虚拟化平台非常有 ,例如 OpenStack 、CloudStack 和Qemu/ KVM 这些平台通常'以快照的形式保护含有 OS/VM 镜像的Ceph RBD 镜像 ,然后通过不断复制这个快照来创建新的虚拟机 /实例 ,快照是只读的,但是 COW 副本则是完全可写的; Ceph 的这个特性为云平台带来巨大的灵活性,并且对于云平台非常有用,下图显示了 RADOS 块设备、 RBD 快照和COW 快照副本之间的关系。 每一个复制的镜像(子镜像)都包含它的父快照的引用,用于读取镜像数据。 因此,父快照在用于复 制之前应该处于被保护状态。当有数据写入COW 复制的镜像时,它会为自己存储新的数据引用。 COW 复制的镜像与 RBD是一 样的。 它们都非常灵活,类似于 RBD ,也就是说,它们可写, 可调整容量,可以创建新的快照,将来还可以复制。 RBD 镜像的类型定义了它所支持的特性,在Ceph 中,有两种 类型的RBD 镜像:format-l和 form t-2, format-l和 format-2 类型的 RBD 镜像 都支持快 照特性。然而,分层特性( 也就是 COW 特性)只有