Ceph块存储介绍

1.块存储是什么?

块存储简称(RADOS Block Device),是一种有序的字节序块,也是Ceph三大存储类型中最为常用的存储方式,Ceph的块存储时基于RADOS的,因此它也借助RADOS的快照,复制和一致性等特性提供了快照,克隆和备份等操作。Ceph的块设备值一种精简置备模式,可以拓展块存储的大小且存储的数据以条带化的方式存储到Ceph集群中的多个OSD中。

2.访问块存储的方式

访问块存储的方式有两种,分别是KRBD的方式和librbd的方式。

2.1KRBD方式

KRBD是Kernel RADOS Block Device的简称,它是通过Kernel模块中的RBD模块来实现访问后端存储的,在使用前需要先使用modprobe命令将内核中RBD模块进行加载,同时对内核版本也是有要求的,需要内核的版本不低于3.10,因为比这个版本低的内核还没将RBD模块集成到内核中,因此如果是CentOS6.x的一般需要先升下内核版本。

KRBD访问后端存储的方式一般适用于为物理主机提供的块设备,这种方式是基于内核模块驱动的,可以使用Linux自带的页缓存来提高性能。

以下是通过KRBD模块访问Ceph后端块设备的一些命令操作。

modprobe rbd     # 加载RBD内核模块

modinfo rbd        # 查看rbd模块信息

rbd create image_name --size 10240   # 创建一个10G大小的名为image_name的块设备

rbd list   # 列出存储池中的所有块设备,没有指定存储池,默认使用rbd存储池,可以使用-p选项来指定存储池

rbd info image_name  # 显示出image_name块设备的信息

rbd map image_name  # 将image_name块设备映射到系统中

rbd showmapped   # 查看系统中已经映射的块设备

rbd unmap /dev/xxx   # 取消掉块设备的映射

2.2 librbd方式

librbd是一个访问rbd块存储的库,它是基于librados库进行的更高一层的封装,所以librbd是通过librados库来与块存储的数据进行交互的。

使用librbd访问块存储的方式适用于为虚拟机提供块设备的方式,可以使用RBD缓存来提高性能,比如在qemu+kvm虚拟框架中提供的虚拟机,qemu可以通过librbd来访问后端存储,以下是访问的模型图:

要通过qemu来将块设备提供给客户机,也就是我们说的虚拟机,需要指定存储池名和映像名

命令格式类似如下:

qemu-img {command} [options] rbd:{pool-name}/{image-name}[@snapshot-name][:option1=value1][:option2=value2...]

举例:

qemu-img {command} [options] rbd:glance-pool/maipo:id=glance:conf=/etc/ceph/ceph.conf

举例:

qemu -m 1024 -drive format=raw,file=rbd:data/squeeze:rbd_cache=true,cache=writeback

3. RBD的一些常用操作和命令

有关存储池的操作:

部署好Ceph集群后,默认都会生成一个名为rbd的存储池

ceph osd lspools     # 来查看当前存储的存储池

ceph osd pool create {pool-name} {pg-num} {pgp-num}     # 创建存储池

ceph df     # 查看存储池统计信息

ceph osd pool set {pool-name} {key} {value}     # 调整存储池的选项值

有关image创建和查看的操作:

rbd create pool/image1 --size 1024 --image-format 2     # 在pool存储池中创建1GB大小的image

rbd ls pool-name     # 查看pool-name存储池中的image

rbd info pool-name/image1     # 查看image1的详细信息

rbd rm pool-name/image1     # 删除image1

有关快照的操作:

rbd snap create pool-name/[email protected]_snap     # 创建image1的快照

rbd snap list pool-name/image1     # 列出image1的所有快照

rbd info pool-name/[email protected]_snap     # 查看快照的详细信息

有关克隆的操作:

在克隆前,快照必须处于被保护的状态才能够被克隆。

rbd snap protect pool-name/[email protected]_snap     # 将快照置于保护状态

rbd clone pool-name/[email protected]_snap pool-name/image2     # 将快照克隆成一个image2

image2是依赖于image1的快照的,可以称image2是image1_snap的children
rbd children pool-name/[email protected]_snap     # 查看该快照的children

要是想要让image2不再依赖于image1_snap,则需要使用如下命令将分层的image2变为扁平的没有层级的image

rbd flatten pool-name/image2

有关备份和恢复的操作:

rbd export pool-name/image1 image1_export     # 导出image1

rbd import image1_export pool-name/image3 --image-format  2   # 导入备份的文件保存为image3

4. qemu-kvm如何访问块存储

这里介绍的是通过LIBRBD的方式访问RBD块存储。

(1)检测操作系统的KVM虚拟化是否支持RBD块存储

使用命令:

qemu-img --help |grep rbd

如果输出的内容中出现了rbd关键词,则说明当前qemu-kvm或者qemu-system-x86_64支持RBD块存储。

(2)使用块存储

把/etc/ceph/ceph.conf文件拷贝到目的节点相同的路径位置,这样该节点的qemu-img工具就会使用该文件作为默认配置文件。

如果ceph集群开启了cephx认证,则需要创建客户端访问权限,在我的ceph配置为openstack的后端存储中有说明如何创建这个权限,还有生成秘钥并导入libvirt也有说明:配置Ceph集群为OpenStack后端存储

最后会生成一个xml格式的文件,里面定义了需要访问块存储的各种信息,由libvirt来将其转换为对应的命令行以使得qemu-kvm进程可以访问块存储,从而虚拟机可以访问块存储。

本文转载自;https://www.cnblogs.com/luohaixian/p/8213748.html

原文地址:https://www.cnblogs.com/ghl666/p/12017399.html

时间: 2024-08-30 08:19:44

Ceph块存储介绍的相关文章

二十八. Ceph概述 部署Ceph集群 Ceph块存储

client:192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13 1.实验环境 准备四台KVM虚拟机,其三台作为存储集群节点,一台安装为客户端,实现如下功能: 创建1台客户端虚拟机 创建3台存储集群虚拟机 配置主机名.IP地址.YUM源 修改所有主机的主机名 配置无密码SSH连接 配置NTP时间同步 创建虚拟机磁盘 1.1 五台机器(包括真机)配置yum源 1.1.1 全部搭建ftp服务 1.1.2 配

Ceph对象存储介绍与安装

一:概念介绍 Ceph对象网关是建立在librados之上的对象存储接口,可为应用程序提供通往Ceph存储集群的RESTful网关, Ceph对象存储支持两个接口 1.S3兼容:为对象存储功能提供与Amazon S3 RESTful API的大部分子集兼容的接口2.Swift兼容:为对象存储功能提供与OpenStack Swift Ceph对象存储使用Ceph对象网关守护进程(radosgw),该守护进程是用于与Ceph存储群集进行交互的HTTP服务器,由于它提供与OpenStack Swift

Ceph块设备介绍与安装配置

一:rbd介绍 块是字节序列(例如,一个512字节的数据块).基于块的存储接口是使用旋转介质(例如硬盘,CD,软盘甚至传统的9-track tape)存储数据的最常用方法.块设备接口的无处不在,使虚拟块设备成为与海量数据存储系统(如Ceph)进行交互的理想候选者. Ceph块设备经过精简配置,可调整大小,并在Ceph集群中的多个OSD上存储条带化数据,ceph块设备利用了RADOS功能,例如快照,复制和一致性. Ceph的RADOS块设备(RBD)使用内核模块或librbd库与OSD进行交互.'

22_2020年最新部署Ceph集群 Ceph块存储

1. 下载ceph nautilus 版本yum源   地址:https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/   下载三个文件夹里对应 14.2.6-0.el7 的 rpm      aarch64/    14-Jan-2020 23:20      noarch/     14-Jan-2020 23:21      x86_64/     14-Jan-2020 23:241.1 下载aarch64文件夹对应版本的rpm文件:(物理机)]

Ceph 块存储

原文地址:https://www.cnblogs.com/flytor/p/11380004.html

Ceph 知识摘录(块存储操作-1)

Ceph块存储操作 1.创建Ceph块设备 #rbd create rbd1 --size 1024 -p compute 2.列出创建的块image #rbd ls -p compute 3.检查块image的细节 #rbd --image rbd1 info -p compute 4.映射块设备到client #rbd feature disable rbd1 -p compute exclusive-lock object-map fast-diff deep-flatten #rbd m

ceph rbd块存储挂载及文件存储建立

一.rbd块存储挂载 1 创建一个OSD pool # ceph osd pool create rbd1 128 查询存储空间使用 # ceph df GLOBAL: SIZE AVAIL RAW USED %RAW USED 480GiB 474GiB 6.12GiB 1.28 POOLS: NAME ID USED %USED MAX AVAIL OBJECTS volumes 1 134B 0 150GiB 5 vms 2 0B 0 150GiB 0 images 3 0B 0 150G

Ceph块设备管理与Openstack配置(上)

Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分: <Ceph简介> <Ceph集群操作> <Ceph块设备管理与Openstack配置> <深入Ceph> <ceph优化与性能测试> 注意:此文对应ceph版本为10.1.2 #ceph -v ceph version 10.1.2(4a2a6f72640d6b74a3bbd92798bb913ed380dcd4) 前言 目前接触到的Mitaka版本O

OpenStack Cinder 块存储服务管理(七)

作者:李晓辉 联系方式: [email protected] 环境介绍 类型 控制节点和计算节点等在一起,形成all-in-one 内存 8G 硬盘 200G 网卡 2块 块存储服务概览 块存储服务(cinder)为实例提供块存储.存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的.还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等. 典型情况下,块服务API和调度器服务运行在控制节点上.取决于使用的驱动,卷服务器可以运行在控制节点.计算节点或单独的存储节点. Op