searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ceph-csi的flatten测试

2023-10-07 03:31:53
51
0

一、需求梳理

在有云盘的集群,使用云盘快照缓存虚机系统盘镜像,加速云盘系统盘的虚机的启动速度

二、问题描述

目前问题是使用datavolume的smart clone创建的虚机系统盘会出现自动flatten的现象,导致虚机启动速度非常慢。

原因是smart clone本质上也是调用ceph的快照克隆功能,但csi在controller进程创建克隆的时候一般不会执行flatten,只有克隆层数超过–rbdhardmaxclonedepth和–rbdsoftmaxclonedepth才会触发flatten操作,

所以真正导致每次都会触发flatten的原因,是csi的nodeserver在stage挂载云盘的时候执行了flatten。代码如下:


这里意思是如果内核不支持deep flatten,克隆的镜像都会做flatten,除非设置skipForceFlatten变量

经过设置skipForceFlatten变量确实不会再出现flatten现象,修改如下:

三、测试启动时间对比

测试镜像大小300多M,系统盘30g

flatten耗时35s如下

不flatten耗时5s如下

四、测试批量开20台虚机压测

批量开启20台虚拟机,在每台虚拟机启动脚本加入fio测试命令

fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Rand_Write_Testing > Rand_Write_Testing.txt
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Rand_Read_Testing > Rand_Read_Testing.txt
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Write_PPS_Testing > Write_PPS_Testing.txt
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Read_PPS_Testing > Read_PPS_Testing.txt
 
随机写iops
随机读iops
顺序写
顺序读
no flatten情况 2000 68.9k 94MiB/s 388MiB/s
flatten情况 4000 69.5k 55.5MiB/s 272MiB/s
0条评论
0 / 1000
刘****健
8文章数
1粉丝数
刘****健
8 文章 | 1 粉丝
刘****健
8文章数
1粉丝数
刘****健
8 文章 | 1 粉丝
原创

ceph-csi的flatten测试

2023-10-07 03:31:53
51
0

一、需求梳理

在有云盘的集群,使用云盘快照缓存虚机系统盘镜像,加速云盘系统盘的虚机的启动速度

二、问题描述

目前问题是使用datavolume的smart clone创建的虚机系统盘会出现自动flatten的现象,导致虚机启动速度非常慢。

原因是smart clone本质上也是调用ceph的快照克隆功能,但csi在controller进程创建克隆的时候一般不会执行flatten,只有克隆层数超过–rbdhardmaxclonedepth和–rbdsoftmaxclonedepth才会触发flatten操作,

所以真正导致每次都会触发flatten的原因,是csi的nodeserver在stage挂载云盘的时候执行了flatten。代码如下:


这里意思是如果内核不支持deep flatten,克隆的镜像都会做flatten,除非设置skipForceFlatten变量

经过设置skipForceFlatten变量确实不会再出现flatten现象,修改如下:

三、测试启动时间对比

测试镜像大小300多M,系统盘30g

flatten耗时35s如下

不flatten耗时5s如下

四、测试批量开20台虚机压测

批量开启20台虚拟机,在每台虚拟机启动脚本加入fio测试命令

fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Rand_Write_Testing > Rand_Write_Testing.txt
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Rand_Read_Testing > Rand_Read_Testing.txt
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Write_PPS_Testing > Write_PPS_Testing.txt
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=20G -numjobs=1 -runtime=100 -group_reporting -filename=a.txt -name=Read_PPS_Testing > Read_PPS_Testing.txt
 
随机写iops
随机读iops
顺序写
顺序读
no flatten情况 2000 68.9k 94MiB/s 388MiB/s
flatten情况 4000 69.5k 55.5MiB/s 272MiB/s
文章来自个人专栏
K8s
5 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0