原理
测试数据
三个块大小分别为10G,30G,50G
测试脚本
#!/bin/bash for size in 10240 30720 51200 do echo "****************************************************" echo "test rbd ${size}M ...." rbd create yxjtest${size} --size ${size} --image-format 2 for i in 1 #set snap and clone number,if set 5,change it as " for i in 1 2 3 4 5" do begintime=$[$(date +%s%N)/1000000] echo "begin time:${begintime}ms" #echo " create snap snap${size}-$i... " rbd snap create rbd/yxjtest${size}@snap${size}-$i #echo " set protect for ..." rbd snap protect rbd/yxjtest${size}@snap${size}-$i #echo "create a clone for snap ..." rbd clone rbd/yxjtest${size}@snap${size}-$i rbd/child${size}-$i rbd info --image child${size}-$i #flatten an rbd rbd flatten rbd/child${size}-$i rbd info --image child${size}-$i endtime=$[$(date +%s%N)/1000000] echo "end time:${endtime}ms" let handletimes=$endtime-$begintime echo "handle times:${handletimes}ms" done rbd snap ls rbd/yxjtest$size echo " ----------- " echo "clean beginng ..." for ii in 1 #set snap and clone number,if set 5,change it as " for i in 1 2 3 4 5" do rbd snap unprotect rbd/yxjtest$size@snap${size}-${ii} rbd snap rm rbd/yxjtest$size@snap${size}-${ii} rbd rm child${size}-$ii done rbd snap purge rbd/yxjtest$size rbd rm yxjtest$size echo "clean finish ...." echo "****************************************************" echo -e done