CEPH集群RBD快照创建、恢复、删除、克隆

Ceph支持一个非常好的特性,以COW(写时复制)的方式从RBD快照创建克隆,在Ceph中被称为快照分层。分层特性允许用户创建多个CEPH RBD克隆实例。这些特性应用于OpenStack等云平台中

,使用快照形式保护ceph RBD 镜像,快照是只读的,但COW克隆是完全可以写 ,可以多次来孵化实例,对云平台来说是非常有用的。

Ceph RBD镜像有format-1  和 format-2两种类型,RBD支持这两种类型,但是分层特性COW克隆特性只支持format-2镜像,默认RBD创建的镜像是format-1。

ceph snap几个主要命令

ceph snap create (snap add)      Create a snapshot.

snap list (snap ls)         Dump list of image snapshots.

snap protect                Prevent a snapshot from being deleted.

snap purge                  Deletes all snapshots.

snap remove (snap rm)       Deletes a snapshot.

snap rename                 Rename a snapshot.

snap rollback (snap revert) Rollback image to snapshot.

snap unprotect              Allow a snapshot to be deleted.

一、创建RBD镜像实例:

1、在pool1上创建一个RBD镜像,不使用-p <pool name>默认在rbd存储池上创建

[[email protected] ~]# rbd create rbd1 -p pool1 --size 5G --image-format 1

rbd: image format 1 is deprecated

查看创建结果,使用-p指定存储池

[[email protected] ~]# rbd list -p pool1

rbd1

[[email protected] ~]# rbd info --image pool1/rbd1

rbd image ‘rbd1‘:

size 5120 MB in 1280 objects

order 22 (4096 kB objects)

block_name_prefix: rb.0.15d23.238e1f29

format: 1

2、映射块设备

[[email protected] ~]# rbd map --image pool1/rbd1

/dev/rbd3


查看映射的块设备

[[email protected] ~]# rbd showmapped

id pool  image         snap device

0  rbd   block-device1 -    /dev/rbd0

1  rbd   block-device3 -    /dev/rbd1

2  rbd   block-device4 -    /dev/rbd2

3  pool1 rbd1          -    /dev/rbd3


3、挂载文件系统使用

[[email protected] ~]# mkfs.xfs /dev/rbd3

meta-data=/dev/rbd3              isize=256    agcount=9, agsize=162816 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=0        finobt=0

data     =                       bsize=4096   blocks=1310720, imaxpct=25

=                       sunit=1024   swidth=1024 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=2560, version=2

=                       sectsz=512   sunit=8 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[[email protected] ~]# mkdir /mnt/rbd3

[[email protected] ~]# mount /dev/rbd3 /mnt/rbd3

[[email protected] ~]# mount | grep rbd3

/dev/rbd3 on /mnt/rbd3 type xfs (rw,relatime,attr2,inode64,sunit=8192,swidth=8192,noquota)

[[email protected] ~]# touch /mnt/rbd3/test

[[email protected] ~]# ls /mnt/rbd3/

test

4、创建快照

[[email protected] ~]# rbd snap create pool1/[email protected]

[[email protected] ~]# rbd snap ls pool1/rbd1

SNAPID NAME         SIZE

4 snapshot1 5120 MB

5、在rbd3目录下创建文件test1

[[email protected] ~]# touch /mnt/rbd3/test1

[[email protected] ~]# ls /mnt/rbd3/

test  test1

6、恢复rbd1的快照

[[email protected] ~]# rbd snap rollback pool1/[email protected]

Rolling back to snapshot: 100% complete...done.

语法:rbd snap rollback <pool-name>/<image-name>@<snap-name>

7、重新挂载文件系统,发现已经恢复到之前的状态了

[[email protected] ~]# umount /mnt/rbd3

[[email protected] ~]# mount /dev/rbd3 /mnt/rbd3/

[[email protected] ~]# ls /mnt/rbd3/

test

[[email protected] ~]#

8、不再使用镜像时可以删除掉镜像

[[email protected]2 ~]# rbd snap rm pool1/[email protected]

[[email protected] ~]# rbd snap ls pool1/rbd1

语法:rbd snap rm <pool-name>/<image-name>@<snap-name>

9、删除多个快照

[[email protected] ~]# rbd snap purge pool1/rbd1

语法:rbd snap purge <pool-name>/<image-name>

二、使用RBD克隆

创建rbd2,类型为format2的RBD镜像

[[email protected] ~]# rbd create rbd2 --size 10240 --image-format 2

[[email protected] ~]# rbd info --image rbd2

rbd image ‘rbd2‘:

size 10240 MB in 2560 objects

order 22 (4096 kB objects)

block_name_prefix: rbd_data.15821238e1f29

format: 2

features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

flags:

创建RBD镜像快照

[[email protected] ~]# rbd snap create rbd/[email protected]

[[email protected] ~]# rbd snap ls rbd/rbd2

SNAPID NAME          SIZE

7 snapshot1 10240 MB

创建COW镜像前先要保护这个快照,这是非常重要的一步

[[email protected] ~]# rbd snap protect rbd/[email protected]

通过快照创建一个克隆的RBD镜像

[[email protected] ~]# rbd clone rbd/[email protected] rbd/clone_rbd2

[[email protected] ~]# rbd info --image rbd/clone_rbd2

rbd image ‘clone_rbd2‘:

size 10240 MB in 2560 objects

order 22 (4096 kB objects)

block_name_prefix: rbd_data.15c1b3d1b58ba

format: 2

features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

flags:

    parent: rbd/[email protected]

overlap: 10240 MB

创建克隆好了一个依赖于父镜像快照的RBD镜像后,为了让这个克隆的RBD镜像独立于父镜像,我们需要将父镜像的信息合并flattern到子镜像,一旦合并完成,RBD镜像和它的父镜像就不会存在任何关系了。

使用flatten合并

[[email protected] ~]# rbd flatten rbd/clone_rbd2

Image flatten: 100% complete...done.

合并完成后,查看这个镜像信息,发现父镜像/快照名字不存大了

[[email protected] ~]# rbd info --image clone_rbd2

rbd image ‘clone_rbd2‘:

size 10240 MB in 2560 objects

order 22 (4096 kB objects)

block_name_prefix: rbd_data.15c1b3d1b58ba

format: 2

features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

flags:

[[email protected] ~]#

如果你不再使用父镜像,可以先移除它的保护状态,再删除它

[[email protected] ~]# rbd snap unprotect rbd/[email protected]

[[email protected] ~]# rbd snap rm rbd/[email protected]

时间: 2024-10-19 20:16:38

CEPH集群RBD快照创建、恢复、删除、克隆的相关文章

ceph分布式存储实战(2)——从0开始创建第一个ceph集群

一.在每台节点的/etc/hosts文件中增加如下内容 192.168.89.101 ceph-node1 192.168.89.102 ceph-node2 192.168.89.103 ceph-node3 二.节点1配置免密码登录其他节点 [[email protected] ~]# yum install openssh-clients #安装ssh客户端 [[email protected] ~]# ssh-keygen #生成密钥对 [[email protected] ~]# ss

部署Ceph集群--jluocc

一 前言 分布式文件系统(Distributed File System):文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.分布式文件系统的设计基于C/S模式 1,什么是Ceph?Ceph:是一个 Linux PB 级分布式文件系统特点:具有高扩展,高可用,高性能的特点可以提供对象存储,块存储,文件存储可以提供PB级别的存储空间(PB->TB->GB)帮助文档:http://docs.ceph.org/start/intro中文文档:http://docs.

从ceph集群中删除MDS server

如果你不需要cephfs,MDS就成了多余的.为了提高性能,可以把MDS卸载掉. 首先停止所有的MDS daemon: $ sudo service ceph stop mds === mds.0 === Stopping Ceph mds.0 on server-3...kill 1190...done 然后在ceph.conf中删掉MDS相关的内容: [mds] keyring = /etc/ceph/keyring.$name [mds.0] host = server-3 然后进行删除:

ceph集群常用命令

结合网络.官网.手动查询等多方渠道,整理ceph维护管理常用命令,并且梳理常规命令在使用过程中的逻辑顺序.另外整理期间发现ceph 集群的命令体系有点乱,详细情况各自体验. 一:ceph集群启动.重启.停止 1:ceph 命令的选项如下: 选项简写描述 --verbose-v详细的日志. --valgrindN/A(只适合开发者和质检人员)用 Valgrind 调试. --allhosts-a在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行. --restartN/A核心转储

ceph集群常用命令梳理

结合网络.官网.手动查询等多方渠道,整理ceph维护管理常用命令,并且梳理常规命令在使用过程中的逻辑顺序.另外整理期间发现ceph 集群的命令体系有点乱,详细情况各自体验. 一:ceph集群启动.重启.停止 1:ceph 命令的选项如下: 选项 简写 描述 --verbose -v 详细的日志. --valgrind N/A (只适合开发者和质检人员)用 Valgrind 调试. --allhosts -a 在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行. --restar

二十八. 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集群osd故障修复实例演示

集群安装方式:1: ceph-deploy 方式安装ceph集群,模拟osd磁盘损坏: 分别采用如下两种方式修复: 1:使用ceph-deploy 方式修复故障osd: 2:手动修复故障osd: #######使用ceph-deploy方式修复过程演示######## 1:停止osd/etc/init.d/ceph stop osd.3 2:查看osd磁盘挂载情况:[[email protected] ceph]# lsblk NAME   MAJ:MIN RM  SIZE RO TYPE MO

Openstack之Ceph集群操作

Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分: 1. <Ceph简介> 2. <Ceph集群操作> 3. <Ceph块设备管理与Openstack配置> 4. <深入Ceph> 5. <ceph优化与性能测试> **注意:此文对应ceph版本为10.1.2** ~~~bash #ceph -v ceph version 10.1.2(4a2a6f72640d6b74a3bbd92798bb913ed

CEPH的基本概念及通过Ceph-Deploy快速部署CEPH集群

基础概念 **OSD**:Object Storage Device,主要用于存储数据,处理数据,,恢复,回不,平衡数据,并提供数据给monitor. **Monitor**:Ceph监视器,主要用于集群健康状态维护,提供策略,包含Monitor Map ,OSD Map,PG ma和CRUSH MAP **MSD**:Cpeh Metadata Server,主要保存ceph文件系统的元数据,快存储,对象存储不需要MSD. Ceph的架构核心组件RADOS,如架构图 RADOS:具备自我修复的