上一章提到了 RBD 块设备相关的基本配置,这章主要描述 RBD 操作部分
ceph块设备接口(RDB)
Ceph块设备,也称为RADOS块设备(简称RBD),是一种基于RADOS存储系统支持超配(thin-provisioned)、可伸缩的条带化数据存储系统,它通过librbd库与OSD进行交互。RBD为KVM等虑拟化技术和云OS(如OpenStack和CloudStack)提供高性能和无限可扩展性的存储后端,这些系统依赖于libvirt和QEMU实用程序与RBD进行集成。
客户端基于librbd库即可将RADOS存储集群用作块设备,不过,用于rbd的存储池需要实现启用rbd功能并进行初始化。例如,下面的命令创建rbddata的存储池,在启动rbd功能后对其进行初始化。
|
|
不过rbd存储池并不能直接用于块设备,而是需要事先在其中按需创建影响(image)
RBD是建立在librados之上的客户端,全程为Rados Block Devices,是对rados存储服务做抽象,将rados位于存储池当中所提供的存储空间,使用对象式存储数据的能力的机制。
rbd虚拟磁盘设备要想使linux内核所识别使用,要求linux在内核级支持Ceph,内核级有一个Ceph模块,专门用来驱动Ceph设备的。这个驱动就叫librbd。此模块自己是一个客户端,能够连接至RBD服务上,检索出他所管理的镜像文件。从而镜像文件完全可以被linux主机作为一块完整的硬盘来使用。
创建存储池镜像
--object-size
任何数据存储在存储池中都被切分为固定大小的对象,对象通常称之为条带,切分的对象大小,默认4M--image-feature
指定镜像文件的特性,每种特性代表镜像文件能支持哪些种功能,可被单独启用或禁用。layering(+)
, 分层克隆exclusive-lock
排它锁,是否支持分布式排它锁,已用来限制一个镜像文件同时只能被一个客户端使用。object-map(+*)
对象映射,是否支持对象位图,主要用于加速导入、导出及已用容量统的。fast-diff(+*)
, 快速比较,主要用于做快照之间的比较deep-flatten(+-)
, 深层展评journaling
日志,用户在修改image数据时是否记录日志。 shared image
--no-progress
:不显示创建过程
|
|
获取对象更详细信息
PARENT 父镜像
FMT 格式,一般只有v2
PROT
LOCK
|
|
获取镜像文件更详细一部镜像信息,可以使用rbd info
命令
|
|
禁用或启用某种特性
rbd featrue
|
|
|
|
Ceph客户端使用块设备步骤
- 创建出镜像文件。
- 在镜像文件上禁用默认启用的五个特性中的后三个。
- 在客户端上使用指定命令以指定的用户的身份连入客户端。
- 配置客户端上yum仓库文件
ceph命令默认是以admin为账号的,使用--user
指定其他用户。
|
|
需要操作系统支持ceph.ko
模块
|
|
显示设备map信息
|
|
显示设备挂在到哪里
|
|
卸载挂载
|
|
调整镜像文件空间容量
|
|
|
|
删除镜像文件
镜像文件被删除是不可恢复的
|
|
rbd回收站trash
将镜像挪入回收站中
|
|
从trash恢复镜像
|
|
如何对镜像文件做快照、克隆
快照是什么?
快照是一种能够瞬间生成数据访问目录,能够支持备份技术的一种数据管理手段。有全量快照与增量快照两种。全量快照一般使用镜像分离技术实现,而增量快照则由COW
写时拷贝快照技术ROW
写时重定向。
写时复制是指,当写的时候,将数据复制到快照上去修改源数据;写时重定向是指,写的时候直接去写快照,改变快照上的数据,源卷上的数据不变。
snap相关命令
命令 | 说明 |
---|---|
snap create (snap add) | 创建快照 |
snap limit clear | 清除快照数量限制 |
snap limit set | 设定一个镜像文件上所能够创建的快照问价你的上线 |
snap list (snap ls) | 列出快照 |
snap protect | 保护快照 |
snap purge | 清理快照 |
snap remove (snap rm) | 移除快照 |
snap rename | 重命名快照 |
snap rollback (snap revert) | 回滚快照,做快照恢复 |
snap unprotect | 解除保护,protect的相反操作。 |
为镜像创建快照
rbd snap create
只需为哪个镜像创建什么快照就可以了
|
|
快照恢复
首先先将服务停止(拆除)
|
|
回到管理节点做回滚操作
使用rbd snap rollback
|
|
回到客户端再一次将映射挂载访问
|
|
删除快照
|
|
限制镜像文件所能够创建的快照数量
|
|
多层快照技术
对原始镜像文件做一次快照,将此快照置于保护模式下。快照所能访问的数据一定是做快照那一刻原始卷上的所有数据的。就算修改原始卷内容,也不会影响快照访问。基于快照再做一层快照。而二级快照是可以当镜像来用的。因此基于保护快照可以创建N个克隆。每一个克隆都可以按照自己的意愿去做希望所做的后续修改操作。
模板池,提供克隆模板的。
工作流程
- 创建镜像
- 对镜像做快照
- 对快照做保护
- 对快照做克隆
在管理断创建快照,将此快照当做保护模式下的快照,当做创建克隆时的模板
|
|
置入保护模式
|
|
给快照再次做快照,称之为clone。==可支持跨存储池进行克隆==
|
|
rbd chlidren
显示一个快照的子项
|
|
数据展平 flatten
当vol01被删除时,他的上层快照myimg01就无根了,因此需要做数据展平,已确保他所应用的每一个底层快照上的所有数据都被复制到当前镜像中。
|
|