您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

Ceph块存储之RBD

时间:2019-12-19 11:09:27  来源:  作者:

昨天我们对Ceph的基本框架有了一个简单的理解, 今天我们针对其中一个模块RBD,也就是块设备进行单独的分析。

 

RBD简介

Ceph可以同时提供对象存储RADOSGW、块存储RBD、文件系统存储Ceph FS。 RBD即RADOS Block Device的简称,RBD块存储是最稳定且最常用的存储类型。RBD块设备类似磁盘可以被挂载。 RBD块设备具有快照、多副本、克隆和一致性等特性,数据以条带化的方式存储在Ceph集群的多个OSD中。

 

注意:块是一个有序字节,普通的块大小为512字节。基于块的存储是最常见的存储方式,例如硬盘

RBD相关命令和操作

RBD的使用实际上就是对RBD image的使用,RBD image是由多个对象条带化存储到后端的块设备。

创建块设备镜像

创建块设备镜像命令是rbd create --size {megabytes} {pool-name}/{image-name},如果pool_name不指定,则默认的pool是rbd。 下面的命令将创建一个10GB大小的块设备:

 

rbd create --size 10240 foo_image

查看块设备镜像

查看块设备的命令是rbd info {pool-name}/{image-name}:

 

rbd info foo_image

将块设备映射到系统内核

块设备映射到操作系统的命令是rbd map {image-name} --pool {pool-name}

1 2 3 4 5 6

rbd map foo_image --pool rbd rbd: sysfs write failed RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable". In some cases useful info is found in syslog - try "dmesg | tail" or so. rbd: map failed: (6) No such device or address

禁用当前系统内核不支持的feature:

1 2 3 4 5 6 7 8 9 10 11

rbd info foo_image rbd image 'foo_image': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.1218c2ae8944a format: 2 features: layering, exclusive-lock, object-map, fast-diff, deep-flatten flags: rbd feature disable foo_image exclusive-lock, object-map, fast-diff, deep-flatten --pool rbd

 

注意:注意到上面的rbd info显示的RBD镜像的format为2,Format 2的RBD镜像支持RBD分层,是实现Copy-On-Write的前提条件。

 

重新映射:

 

rbd map foo_image --pool rbd /dev/rbd0

格式化块设备镜像

 

mkfs.ext4 /dev/rbd0

取消块设备和内核映射

 

rbd unmap foo_image --pool rbd

删除块设备镜像

删除RBD镜像的命令是rbd rm {pool-name}/{image-name}

 

rbd rm rbd/foo_image

创建快照

1 2 3

rbd create --size 10240 foo_image rbd snap create foo_image@foo_snap

列出创建的快照:

1 2 3

rbd snap list rbd/foo_image SNAPID NAME SIZE 4 foo_snap 10240 MB

或者使用rbd ls {pool-name} -l列出:

1 2 3 4

rbd ls rbd -l NAME SIZE PARENT FMT PROT LOCK foo_image 10240M 2 foo_image@foo_snap 10240M 2

查看快照的详细信息:

1 2 3 4 5 6 7 8 9

rbd info rbd/foo_image@foo_snap rbd image 'foo_image': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.121b62ae8944a format: 2 features: layering, exclusive-lock, object-map, fast-diff, deep-flatten flags: protected: False

克隆快照

快照必须处于被保护状态才能被克隆。

执行命令rbd snap protect {pool-name}/{image-name}@{snapshot-name}将快照置成保护状态:

 

rbd snap protect rbd/foo_image@foo_snap

查看快照状态:

1 2 3 4 5 6 7 8 9

rbd info rbd/foo_image@foo_snap rbd image 'foo_image': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.121b62ae8944a format: 2 features: layering, exclusive-lock, object-map, fast-diff, deep-flatten flags: protected: True

接下来使用命令rbd clone {pool-name}/{parent-image}@{snap-name} {pool-name}/{child-image-name}克隆快照到另一个RBD pool的新image:

 

rbd clone rbd/foo_image@foo_snap kube/bar_image

查看克隆的镜像:

1 2 3

rbd ls kube -l NAME SIZE PARENT FMT PROT LOCK bar_image 10240M rbd/foo_image@foo_snap 2

前面提到过format为2的image支持分层,接下来我们看一下foo_image@foo_snap这个快照的children rbd children {pool-name}/{image-name}@{snapshot-name}:

1 2

rbd children rbd/foo_image@foo_snap kube/bar_image

从输出可以看出kube/bar_image基于rbd/foo_image@foo_snap。接下来我们使用rbd flatten {pool-name}/{image-name}将kube/bar_image压平:

1

rbd flatten kube/bar_image

再次查看kube/bar_image已经没有PARENT了:

1 2 3

rbd ls kube -l NAME SIZE PARENT FMT PROT LOCK bar_image 10240M 2

导入导出RBD image

RBD image的导出和导入常用于RBD块设备的简单的备份与恢复。

导出RBD image rbd export {pool-name}/{image-name} {file}

1

rbd export rbd/foo_image /tmp/foo_image_export

导入RBD image rbd import {file} {pool-name}/{image-name}:

1

rbd import /tmp/foo_image_export rbd/bar_image --image-format 2

1 2 3 4 5

rbd ls rbd -l NAME SIZE PARENT FMT PROT LOCK bar_image 10240M 2 foo_image 10240M 2 foo_image@foo_snap 10240M 2 yes



Tags:Ceph   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、配置crush class1. 创建ssd class默认情况下,我们所有的osd都会class类型都是hdd:# ceph osd crush class ls[ "hdd"]查看当前的osd布局:# ceph osd treeID CLASS WEIGH...【详细内容】
2021-03-10  Tags: Ceph  点击:(303)  评论:(0)  加入收藏
一、环境准备1、架构官方文档:http://docs.ceph.org.cn/start/quick-start-preflight/ 2、创建ceph.repo[root@admin-node yum.repos.d]# cat ceph.repo[ceph]name=cephbaseu...【详细内容】
2019-12-27  Tags: Ceph  点击:(215)  评论:(0)  加入收藏
昨天我们对Ceph的基本框架有了一个简单的理解, 今天我们针对其中一个模块RBD,也就是块设备进行单独的分析。 RBD简介Ceph可以同时提供对象存储RADOSGW、块存储RBD、文件系统存...【详细内容】
2019-12-19  Tags: Ceph  点击:(1138)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(12)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(27)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(56)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条