文档章节

利用Trim/discard挂载rbd块设备

加油2018
 加油2018
发布于 2015/03/11 17:14
字数 398
阅读 180
收藏 1
点赞 0
评论 0

http://cephnotes.ksperis.com/blog/2014/12/18/use-discard-with-krbd-client-since-kernel-3-dot-18/有详细的描述,试验了一下,对于小文件的删除确实有帮助,记录如下。

1. 如果不利用discard选项挂载rbd块设备,会有如下问题

$ rbd create rbd/myrbd --size=20480
$ mkfs.xfs /dev/rbd0
$ rbd diff rbd/myrbd | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'
14.4062 MB

$ mount /dev/rbd0 /mnt/myrbd
$ dd if=/dev/zero of=/mnt/myrbd/testfile bs=1M count=1024
$ rbd diff rbd/myrbd | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'
1038.41 MB

$ rm /mnt/myrbd/testfile
$ rbd diff rbd/myrbd | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'
1038.41 MB
你会发现,rbd pool并没有变小。之前好像做过类似的测试,需要重启一下ceph或系统才能反映出改变,记不清了。

2. 利用discard选项挂载rbd块设备

mount -o discard /dev/rbd0 /mnt/myrbd
重复上述操作,再执行以下操作:
$ fstrim /mnt/myrbd
$ rbd diff rbd/myrbd | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'
10.6406 MB
这样就恢复正常了。

两种不同挂载方式的性能测试如下:

1. 未使用discard选项

$ mount /dev/rbd0 /mnt/rbd0

$ mkdir testdir; cd testdir
$ dd if=/dev/zero of=mainfile bs=1M count=200
$ split -b 4048 -a 7 mainfile; sync               # 4k file / ~51k files
$ cd ..
$ time rm -rf testdir; time sync

[root@mon0 nfs]# time rm -rf testdir/; time sync

real	0m21.866s
user	0m0.155s
sys	0m5.466s

real	0m0.897s
user	0m0.001s
sys	0m0.011s
2. 使用discard选项
只给出时间
[root@mon0 nfs]# time rm -rf testdir; time sync

real	0m8.791s
user	0m0.100s
sys	0m2.858s

real	0m2.367s
user	0m0.001s
sys	0m0.001s

性能有明显提升,作者的原话是:

In the case of intensive use of the file system, with many small file, it may be more advantageous to use fstrim, for example once a day.

© 著作权归作者所有

共有 人打赏支持
加油2018
粉丝 150
博文 276
码字总数 243077
作品 0
海淀
架构师
ceph-rbd kvm 删除数据后集群空间不释放

环境描述 ceph版本:luminous 12.2.5 OSD三节点,monitor三节点,同时运行在三台物理服务器; KVM宿主机运行多台虚拟机,其中一台挂载ceph-rbd块存储; KVM调用ceph-rbd 1.ceph集群创建存储池...

冰河sjm
06/29
0
0
利用ceph-deploy在ubuntu server14.04上部署ceph并进行其它配置

环境与说明 在ubuntu14.04 server上部署ceph-0.87;设置rbdmap自动挂载/卸载rbd块设备;利用带rbd支持的tgt导出iscsi的rbd块。 2. 安装ceph 1)配置hostname与无密码登录 root@mon0:/etc/cep...

加油2018
2014/11/11
0
16
xfs的故障记录

前言 我使用xfs比较二一点,我是在ceph的rbd上直接格式化的xfs,所以ceph上的数据一般不会丢失,不过我的xfs是在docker内部进行的挂载,使用也是docker容器内使用,这里不得不说docker stop...

xueyi28
2016/09/19
95
0
Ceph块设备管理与Openstack配置(上)

Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分: 《Ceph简介》 《Ceph集群操作》 《Ceph块设备管理与Openstack配置》 《深入Ceph》 《ceph优化与性能测试》 注意:此...

hiubuntu
2016/12/02
0
0
ceph使用中的一些问题

一、块设备 1、ceph jewel版rbd镜像默认是 format 2 在挂载的时候有些特性会不支持。 2、用自己编译的ceph 搭建好环境后,运行一段时间后,执行rbd ls命令或用rbd命令创建块设备,出现段错误...

zrz11
2016/12/14
6
0
Kubernetes 1.5通过Ceph实现有状态容器

在上一篇博文,我们通过kubernetes的devlopment和service完成了sonarqube的部署。看起来已经可用,但是仍然有一个很大的问题。我们知道,像mysql这种数据库是需要保存数据而且不能让数据丢失...

msj0905
06/27
0
0
Ceph分布式存储学习笔记之jewel

本文介绍在Oracle Linux上创建配置ceph集群。Ceph软件代号为jewel。 一、操作系统设置 以下操作在每个ceph集群节点都要操作。 1、OS内核设置 2、软件仓库 3、禁用防火墙和Selinux 4、设置免密...

candon123
06/26
0
0
Ceph Block Device块设备操作

使用ceph block device需要如下三个步骤: 1. 在ceph 集群的pool中创建一个Block Device image. 2. ceph Client使用RBD设备与ceph集群的Block Device image进行映射(Map)。 3. ceph Client...

dhb_oschina
2016/03/31
468
0
cephfs 和块设备使用

@codingjava 你好,想跟你请教个问题: 我挂载了cephfs和块设备rbd,具体怎么用呢??新手不懂,可以给个例子么。

shadowalker911
2015/02/10
200
1
Centos7.4部署ceph块设备

在部署块设备前必须保证Ceph存储集群处于active+clean状态。 一. 环境准备 二. 安装CEPH 在管理节点上,通过 ceph-deploy 把 Ceph 安装到 ceph-client 节点。 [root@admin-node ceph]# ceph...

Zai坚强一点
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS中的toFixed,toExponential,toPrecision

toFixed():根据小数点后的指定位数,将数字转换为字符串,它不用指数计数法。 toExponential():根据小数点后指定位数,将数字转化为指数形式字符串。小数点前面只有一位,小数点后面的...

AndyZhouX
10分钟前
0
0
istio 路由实例解析

根据链路追踪图如上: 资料:https://istio.io/docs/guides/bookinfo/ 流程解析: 1. 访问地址: http://IP:31380/productpage kubectl get svc --all-namespaces -o wide istio-system isti......

xiaomin0322
14分钟前
2
0
Centos7通过yum安装jdk8

先查看系统是否已有自带的jdk rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输出信息,则说明系统没有安装。如果有输出信息,则执行下面的命令卸载 rpm -qa | grep jav...

iplusx
16分钟前
0
0
字体的动画

树不要皮必死无疑,人不要脸天下无敌。如果你此时正在被承受着不公平的待遇,不要伤心不要气馁,吃亏要趁早。 .menu ul li a { position:relative; color: #FFFFFF; text-decoration:...

Js_Mei
16分钟前
0
0
新手学习hadoop发行版本选择介绍

Hadoop对于从事互联网工作的朋友来说已经非常熟悉了,相信在我们身边有很多人正在转行从事hadoop开发的工作,理所当然也会有很多hadoop入门新手。Hadoop开发太过底层,技术难度远比我们想象的...

左手的倒影
17分钟前
0
0
iOS定时器循环引用问题解决

我们通常使用NSTimer或CADisplayLink会使用以下方式 //定义@property (nonatomic, strong)NSTimer *timer;//实现self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:p......

xiaobai1315
17分钟前
0
0
给wordpress程序提速

在上一节中,我们介绍了wordpress CMS主题提速,本节我们接着介绍wordpress主题提速:gravatar用户头像缓存和google字体去除。 gravatar头像受到全世界网络用户的喜爱,设置好gravatar头像后...

hero2019
20分钟前
0
0
DevExpress v18.1最新版帮助文档下载大全

DevExpress v18.1.4帮助文档下载列表大全来啦!包含.NET、VCL、HTML/JS系列所有帮助文档,提供CHM和PDF两个版本。除已停止更新的Silverlight、Windows 8外,其余均为最新版本。 文章底部扫描...

Miss_Hello_World
23分钟前
0
0
Unity Shader中各种空间及变换方法

前几天尝试写一个传送门的shader,发现自己对坐标之间的变换掌握的不够熟练,趁着这阵子想整理shader相关的知识点,先把各种空间及之间转换整理一下。 1 模型空间-世界空间-观察空间-裁剪空间...

爽歪歪ES
29分钟前
0
0

定义和应用 栈(stack)是一种特殊的线性表,其插入(也称入栈或压栈)和删除(也称出栈或弹栈)操作都在表的同一端进行。这一端被称为栈顶(top)另一端称为栈底端(bottom)。 我们生活中其实...

Frost729
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部