1.一种基于存储引擎bluestore的压缩方法,其特征在于,包括以下步骤:S110、将IO数据分为大块写数据和小块写数据;其中,所述大块写数据与最小分配单位对齐,所述小块写数据与最小分配单位不对齐;
S120、将分类后的IO数据根据数据块的大小生成lextent和blob;为了实现大块写数据均为已使用状态,将所述大块写数据的lextent和blob的大小设定为同一预设长度值,其中,所述预设长度值大于所述最小分配单位;为了实现小块写数据均可被压缩,将所述小块写数据进行归并和补零形成大块写数据;
S130、对大块写数据进行压缩。
2.如权利要求1所述的基于存储引擎bluestore的压缩方法,其特征在于,在步骤S110之前,所述的压缩方法还包括:将所述最小分配单位设置为一个物理块block_size=4k。
3.如权利要求1所述的基于存储引擎bluestore的压缩方法,其特征在于,所述步骤S120包括:S210、读出小块写数据以及所述小块写数据所在的lextent数据;
S220、将所述小块写数据与所述小块写数据所在的lextent数据做归并操作;
S230、对归并操作后的数据,进行补零操作形成大块写数据。
4.如权利要求3所述的基于存储引擎bluestore的压缩方法,其特征在于,若步骤S220中的所述小块写数据命中了两个lextent数据,则执行如下步骤:S310、读出小块写数据以及所述小块写数据所在的两个lextent数据;
S320、将所述小块写数据与所述小块写数据所在的两个lextent数据做归并操作;
S330、对归并操作后的数据,进行补零操作形成大块写数据。
5.如权利要求1所述的基于存储引擎bluestore的压缩方法,其特征在于,所述预设长度值根据数据源块的大小和所需的压缩率进行设定。
6.一种电子装置,其特征在于包括:存储器、处理器以及存储在存储器中并可在处理器上运行的基于存储引擎bluestore的压缩程序,所述压缩程序被所述处理器执行时实现如下步骤:S110、将IO数据分为大块写数据和小块写数据;其中,所述大块写数据与最小分配单位对齐,所述小块写数据与最小分配单位不对齐;S120、将分类后的IO数据根据数据块的大小生成lextent和blob;为了实现大块写数据均为已使用状态,将所述大块写数据的lextent和blob的大小设定为同一预设长度值,其中,所述预设长度值大于所述最小分配单位;为了实现小块写数据均可被压缩,将所述小块写数据进行归并和补零形成大块写数据;S130、对大块写数据进行压缩。
7.如权利要求6所述的电子装置,其特征在于,在步骤S110之前,所述的压缩程序被所述处理器执行时,还包括以下步骤:将最小分配单位设置为一个物理块block_size=4k。
8.如权利要求6所述的电子装置,其特征在于,所述步骤S120包括:S210、读出小块写数据以及所述小块写数据所在的lextent数据;
S220、将所述小块写数据与所述小块写数据所在的lextent数据做归并操作;
S230、对归并操作后的数据,进行补零操作形成大块写数据。
9.如权利要求6所述的电子装置,其特征在于,所述预设长度值根据数据源块的大小和所需的压缩率进行设定。
10.一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序包括用于基于存储引擎bluestore的压缩的程序,所述计算机程序被处理器执行时实现权利要求1~5中任一项所述的基于存储引擎bluestore的压缩方法中的步骤。