【分布式技术】分布式存储ceph之RBD块存储部署

目录

创建 Ceph 块存储系统 RBD 接口

服务端操作

1、创建一个名为 rbd-demo 的专门用于 RBD 的存储池

2、将存储池转换为 RBD 模式

3、初始化存储池

4、创建镜像

5、在管理节点创建并授权一个用户可访问指定的 RBD 存储池

6、修改RBD镜像特性,CentOS7默认情况下只支持layering和striping特性,需要将其它的特性关闭

7、将用户的keyring文件和ceph.conf文件发送到客户端的/etc/ceph目录下

客户端操作

1、安装 ceph-common 软件包

2、执行客户端映射

3、查看映射

4、格式化并挂载

在线扩容

 快照回滚

快照分层与展平 

 镜像导入导出

#在客户端操作 取消映射

//在服务端导出镜像 模拟清空  导入镜像

#在客户端重新映射并挂载


创建 Ceph 块存储系统 RBD 接口

服务端操作

1、创建一个名为 rbd-demo 的专门用于 RBD 的存储池

2、将存储池转换为 RBD 模式

3、初始化存储池

4、创建镜像

两种语法格式都可以
rbd create -p <存储池名称> --image <镜像名称> --size 10Grbd create <存储池名称>/<镜像名称> --size 10G
[root@admin ~]# cd "/etc/ceph"
[root@admin ceph]# ceph osd pool create myrbd 128
pool 'myrbd' created[root@admin ceph]# ceph osd pool application enable myrbd rbd
enabled application 'rbd' on pool 'myrbd'[root@admin ceph]# rbd pool init -p myrbd[root@admin ceph]# rbd create -p myrbd --image demon1.img --size 10G[root@admin ceph]# rbd ls -l -p myrbd
NAME       SIZE   PARENT FMT PROT LOCK 
demon1.img 10 GiB          2 [root@admin ceph]# rbd info myrbd/demon1.img

客户端使用 RBD 有两种方式:
●通过内核模块KRBD将镜像映射为系统本地块设备,通常设置文件一般为:/dev/rbd*
●另一种是通过librbd接口,通常KVM虚拟机使用这种接口。

本例主要是使用Linux客户端挂载RBD镜像为本地磁盘使用。开始之前需要在所需要客户端节点上面安装ceph-common软件包,因为客户端需要调用rbd命令将RBD镜像映射到本地当作一块普通硬盘使用。并还需要把ceph.conf配置文件和授权keyring文件复制到对应的节点。

5、在管理节点创建并授权一个用户可访问指定的 RBD 存储池

语法格式:
ceph auth get-or-create client.<用户名> osd "allow * pool=<存储池名>" mon "allow r" > /etc/ceph/<用户名>.keyring
[root@admin ceph]# ceph auth get-or-create client.test-rbd osd "allow * pool=myrbd" mon "allow r" > test-rbd.keyring

6、修改RBD镜像特性,CentOS7默认情况下只支持layering和striping特性,需要将其它的特性关闭

[root@admin ceph]# rbd feature disable myrbd/demon1.img object-map, fast-diff, deep-flatten
[root@admin ceph]# rbd info myrbd/demon1.img

7、将用户的keyring文件和ceph.conf文件发送到客户端的/etc/ceph目录下

[root@admin /etc/ceph]#scp test-rbd.keyring root@client:/etc/ceph/

客户端操作

1、安装 ceph-common 软件包

//linux客户端操作
#安装 ceph-common 软件包
yum install -y ceph-common

2、执行客户端映射

语法格式
rbd map <存储池名>/<镜像名称> --keyring /etc/ceph/<用户名>.keyring --user <用户名>

3、查看映射

rbd showmapped
rbd device list

4、格式化并挂载

语法格式:
mkfs.xfs /dev/rbd*  ##针对xfs文件系统
mount /dev/rbd* <本地挂载点>
[root@client ceph]#rbd map myrbd/demon1.img --keyring test-rbd.keyring --user test-rbd
/dev/rbd0
[root@client ceph]#rbd showmapped[root@client ceph]#rbd device list[root@client ceph]#mkfs.xfs /dev/rbd0[root@client ceph]#mkdir -p /test/rbd
[root@client ceph]#mount /dev/rbd0 /test/rbd/
[root@client ceph]#df -hT

在线扩容

在管理节点调整镜像的大小
rbd resize <存储池名>/<镜像名称> --size 20G在客户端刷新设备文件(扩容镜像后在线刷新)
xfs_growfs /dev/rbd0		#刷新xfs文件系统容量
resize2fs /dev/rbd0			#刷新ext4类型文件系统容量

 快照回滚

 

快照管理
对 rbd 镜像进行快照,可以保留镜像的状态历史,另外还可以利用快照的分层技术,通过将快照克隆为新的镜像使用。//在客户端写入文件
echo 1111 > /data/bb/11.txt
echo 2222 > /data/bb/22.txt
echo 3333 > /data/bb/33.txt//在管理节点对镜像创建快照
rbd snap create --pool rbd-demo --image rbd-demo1.img --snap demo1_snap1
rbd snap create <存储池名>/<镜像名称>@<快照名称>可简写为:
rbd snap create rbd-demo/rbd-demo1.img@demo1_snap1//列出指定镜像所有快照
rbd snap list rbd-demo/rbd-demo1.img
rbd snap list <存储池名>/<镜像名称>#用json格式输出:
rbd snap list rbd-demo/rbd-demo1.img --format json --pretty-format//回滚镜像到指定
在回滚快照之前,需要将镜像取消镜像的映射,然后再回滚。#在客户端操作 取消映射
rm -rf /data/bb/*
umount /data/bb
rbd unmap rbd-demo/rbd-demo1.img
rbd unmap <存储池名>/<镜像名称>#在管理节点操作
rbd snap rollback rbd-demo/rbd-demo1.img@demo1_snap1
rbd snap rollback <存储池名>/<镜像名称>@<快照名称>#在客户端重新映射并挂载
rbd map rbd-demo/rbd-demo1.img --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount
mount /dev/rbd0 /data/bb
ls /data/bb				#发现数据还原回来了//限制镜像可创建快照数
rbd snap limit set rbd-demo/rbd-demo1.img --limit 3#解除限制:
rbd snap limit clear rbd-demo/rbd-demo1.img//删除快照
#删除指定快照:
rbd snap rm rbd-demo/rbd-demo1.img@demo1_snap1#删除所有快照:
rbd snap purge rbd-demo/rbd-demo1.img

 

 

 

快照分层与展平 

快照分层支持用快照的克隆生成新镜像,这种镜像与直接创建的镜像几乎完全一样,支持镜像的所有操作。唯一不同的是克隆镜像引用了一个只读的上游快照,而且此快照必须要设置保护模式。#快照克隆
1)将上游快照设置为保护模式:
[root@admin /etc/ceph]#rbd snap create myrbd/demon1.img@666.snap1[root@admin /etc/ceph]#rbd snap protect myrbd/demon1.img@666.snap1[root@admin /etc/ceph]#rbd snap list myrbd/demon1.img2)克隆快照为新的镜像
[root@admin /etc/ceph]#rbd clone myrbd/demon1.img@666.snap1 --dest myrbd/demon666.imgrbd ls -p myrbd3)命令查看克隆完成后快照的子镜像
rbd children myrbd/demon1.img@666.snap1
通常情况下通过快照克隆而得到的镜像会保留对父快照的引用,这时候不可以删除该父快照,否则会有影响。
rbd snap rm myrbd/demon1.img@666.snap1
#报错 snapshot '666.snap1' is protected from removal.如果要删除快照但想保留其子镜像,必须先展平其子镜像,展平的时间取决于镜像的大小
1) 展平子镜像
[root@admin /etc/ceph]#rbd flatten myrbd/demon666.img2)取消快照保护
[root@admin /etc/ceph]#rbd snap unprotect myrbd/demon1.img@666.snap13)删除快照
[root@admin /etc/ceph]#rbd snap rm  myrbd/demon1.img@666.snap1rbd ls -l -p rbd-demo			#在删除掉快照后,查看子镜像依然存在
[root@admin /etc/ceph]#rbd snap create myrbd/demon1.img@666.snap1
[root@admin /etc/ceph]#rbd snap list myrbd/demon1.img[root@admin /etc/ceph]#rbd snap protect myrbd/demon1.img@666.snap1
[root@admin /etc/ceph]#rbd snap list myrbd/demon1.img[root@admin /etc/ceph]#rbd clone myrbd/demon1.img@666.snap1 --dest myrbd/demon666.img[root@admin /etc/ceph]#rbd children myrbd/demon1.img@666.snap1
myrbd/demon666.img[root@admin /etc/ceph]#rbd flatten myrbd/demon666.img[root@admin /etc/ceph]#rbd ls -l -p myrbd[root@admin /etc/ceph]#rbd snap list myrbd/demon1.img[root@admin /etc/ceph]#rbd snap unprotect myrbd/demon1.img@666.snap1
[root@admin /etc/ceph]#rbd snap list myrbd/demon1.img[root@admin /etc/ceph]#rbd snap list myrbd/demon1.img
[root@admin /etc/ceph]#rbd ls -l -p myrbd

 

 镜像导入导出

#在客户端操作 取消映射

[root@client ceph]#umount /test/rbd ##解挂[root@client ceph]#rbd unmap myrbd/demon1.img  ##取消映射

//在服务端导出镜像 模拟清空  导入镜像

//导出镜像
[root@admin /etc/ceph]#rbd export myrbd/demon666.img /opt/demon666.img.tarrbd export <存储池名>/<镜像名称>  <自定义镜像导出文件名>//导入镜像
#卸载客户端挂载,并取消映射#清除镜像下的所有快照,并删除镜像
rbd snap purge myrbd/demon666.img
rbd rm <存储池名>/<镜像名称>rbd ls -l -p myrbd#导入镜像
rbd import /opt/demon666.img.tar  myrbd/demon666.img
rbd import <镜像之前导出的文件路径> <存储池名>/<镜像名称>  rbd ls -l -p myrbd

#在客户端重新映射并挂载

rbd map <存储池>/<镜像> --keyring /etc/ceph/ceph.client.<用户>.keyring --user <用户>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法 - 二分法 / 双指针 / 三指针 / 滑动窗口

文章目录 &#x1f37a; 二分法&#x1f37b; 旋转数组&#x1f942; 33. 搜索旋转排序数组 [旋转数组] [目标值] (二分法) &#x1f37b; 元素边界&#x1f942; 34. 在排序数组中查找元素的第一个和最后一个位置 [有序数组] > [元素边界] > (二分法)&#x1f942; 81. …

IOS元素定位对应关系

resource-id也称为id&#xff0c;resource-id是唯一的 # 元素定位 agree_continue_id "com.baidu.searchbox:id/positive_button" WebDriverWait(driver, 10, 1).until(EC.visibility_of_element_located((MobileBy.ID, agree_continue_id))) driver.find_element…

Databend 开源周报第 128 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 使用 Databend …

[Linux 进程(四)] 再谈环境变量,程序地址空间初识

文章目录 1、前言2、环境变量2.1 main函数第三个参数 -- 环境参数表2.2 本地环境变量和env中的环境变量2.3 配置文件与环境变量的全局性2.4 内建命令与常规命令2.5 环境变量相关的命令 3、程序地址空间 1、前言 上一篇我们讲了环境变量&#xff0c;如果有不明白的先读一下上一…

C++ 编程需要什么样的开发环境?

C 编程需要什么样的开发环境&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#…

C++ 拾遗 2

1.变量的作用域 1&#xff09;全局变量 在整个程序生命周期内都是有效的&#xff0c;在定义位置之后的任意函数中都能访问。 全局变量在主程序退出时由系统收回内存空间。 2&#xff09;局部变量 在函数或语句块内部的语句使用&#xff0c;在函数或语句块外部是不可用的。 …

网页设计-用户体验

Use Cases (用例) 用例是用户如何在网站上执行任务的书面描述&#xff0c;从用户的角度描述了系统响应请求时的行为。每个用例都是用户实现目标的一系列简单的步骤。简言之&#xff0c;用例是一种用于描述系统如何满足用户需求的方法。 用例的好处 1. 明确需求&#xff1a; Use…

Python办公自动化 – 可以解析的文件格式和可以调用的API实现办公自动化

Python办公自动化 – 可以解析的文件格式和可以调用的API实现办公自动化 以下是往期的文章目录&#xff0c;需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处…

Unity与Android交互通信系列(4)

上篇文章我们实现了模块化调用&#xff0c;运用了模块化设计思想和简化了调用流程&#xff0c;本篇文章讲述UnityPlayerActivity类的继承和使用。 在一些深度交互场合&#xff0c;比如Activity切换、程序启动预处理等&#xff0c;这时可能会需要继承Application和UnityPlayerAc…

Windows系统字体尺寸学习

调用GetTextMetrics来获得字体尺寸信息, 函数返回设备描述表中当前选定的字体信息&#xff1b; 返回值到TEXTMETRIC类型的结构中&#xff1b; 返回字段值的单位取决于当前设备描述表映射方式&#xff1b;默认映射方式是MM_TEXT&#xff0c;值的单位是像素&#xff1b; 前7个字…

多模型图像特征可视化

特征图可视化是指将网络中某一层的特征图可视化出来&#xff0c;以便观察网络在不同层次上学到的特征。卷积可视化可以帮助深度学习研究者更好地理解卷积的概念和原理&#xff0c;从而更好地设计和优化卷积神经网络。通过可视化&#xff0c;研究者可以更清晰地看到卷积运算中的…

【程序员的自我修养—系统调用与API】

系统调用 背景&#xff1a; 为了避免有限的系统资源被多个不同的应用程序同时访问&#xff0c;需要加以保护&#xff0c;避免冲突&#xff1b;提供一套统一的接口&#xff0c;是应用程序能做一些由操作系统支持的行为&#xff1b;接口通过中断的方式实现&#xff0c;Linux使用…

openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_keygen.c

文章目录 openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_keygen.c概述笔记END openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_keygen.c 概述 das.h 中有2个公共函数(给pkey目录的所有工程公用): print_bn() 打印大数值 dsa_print_key() 打印key值 打印_evp_pkey_dsa…

[SS]语义分割——基础知识

语义分割前言 一、定义 1、概念 语义分割&#xff08;Semantic Segmentation&#xff09;是计算机视觉中的一项任务&#xff0c;目标是将图像中的每个像素按其语义类别进行分类。与传统的目标检测不同&#xff0c;语义分割对图像中的每个像素都进行分类&#xff0c;而不是只…

Vue 如何把computed里的逻辑提取出来

借用一下百度的ai 项目使用&#xff1a; vue 文件引入 <sidebar-itemv-for"route in routes":key"route.menuCode":item"route":base-path"route.path"click"onColor"/>import { handleroutes } from "./handle…

牛客-寻找第K大、LeetCode215. 数组中的第K个最大元素【中等】

文章目录 前言牛客-寻找第K大、LeetCode215. 数组中的第K个最大元素【中等】题目及类型思路思路1&#xff1a;大顶堆思路2&#xff1a;快排二分随机基准点 前言 博主所有博客文件目录索引&#xff1a;博客目录索引(持续更新) 牛客-寻找第K大、LeetCode215. 数组中的第K个最大元…

vue 开发规范

命名规范 不使用保留字 变量 小驼峰能描述变量内容复数加s // 我的app名称为朝阳的百宝箱 let myAppName 朝阳的百宝箱// 我的书籍有《卓有成效的管理者》、《牧羊少年奇幻之旅》 let myBooks [‘《卓有成效的管理者》’,‘《牧羊少年奇幻之旅》’]常量 全大写用_分隔单词…

ARCGIS PRO SDK Annotation 概念及操作

使用Annotation的API功能。Annotation 的API功能位于ArcGIS.Core.dll中。Annotation API通常与地理数据库、地图创作和编辑结合使用。ArcGIS.Core.dll ArcGIS.Core.Data.map API中的几乎所有方法都应该在MCT上调用。 一、Annotation featureclass 1、从GeodatabaseGeodatabase数…

MyBatis-Plus之内置接口Service接口Mapper接口

目录 1.Service接口 1.1.Save 1.2.SaveOrUpdate 1.3.Remove 1.4.Update 1.5.Get 1.6.List 2.Mapper接口 2.1.Insert 2.2.Delete 2.3.Update 2.4.Select 1.Service接口 Service CRUD 接口说明&#xff1a; 通用 Service CRUD 封装IService接口&#xff0c;进一步封…

C#: CRC8,CRC16,CRC32 校验代码

说明&#xff1a;CRC即循环冗余校验码&#xff08;Cyclic Redundancy Check&#xff09;&#xff1a;是数据通信领域中最常用的一种查错校验码&#xff0c;其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查&#xff08;CRC&#xff09;是一种数据传输检错功能&…