The invention provides a data storage method and device. The method comprises the following steps: first, to get the corresponding data files stored first data file is determined according to the first LUN logo; a plurality of first OSD first LUN identifier corresponding to the first cluster view information; the corresponding relation between the first cluster view information includes a first LUN logo with the first OSD; the first data file is split into a plurality of data blocks, each block corresponding to determine the first OSD, and the data sent to the first OSD corresponding to the first OSD, storing the data blocks; storing the metadata corresponding to the first data file to the monitoring server. Through the technical scheme of this application, the number of metadata is greatly reduced, which reduces the access frequency and quantity of metadata, improves the performance of cluster access, and saves the storage resources occupied by metadata. At the same time, the expansion scheme of zero data migration based on the cluster view version is provided to reduce the impact of the cluster expansion process on the system performance.
【技术实现步骤摘要】
一种数据存储方法和装置
本申请涉及通信
,尤其涉及一种数据存储方法和装置。
技术介绍
随着移动网络、大数据、云计算的大量应用,对存储容量和存储性能提出了越来越高的要求,Ceph(基于LinuxPB的分布式文件系统)、GFS(GoogleFileSystem,基于Linux的专有分布式文件系统)、Gluster、HDFS(HadoopDistributedFileSystem,分布式文件系统)等分布式文件系统均得到了快速的发展。其中,分布式文件系统可以包括多个OSD(ObjectStorageDevice,对象存储设备),OSD是数据存储服务单元,一个OSD可以对应一个物理磁盘。为了实现数据文件的存储,将数据文件拆分成多个数据对象,获取每个数据对象的元数据(metadata),并将该数据对象存储到OSD,将该元数据存储到分布式文件系统的管理节点。其中,数据对象的元数据,可以包括数据对象在OSD中的存储位置、数据对象的大小、时间信息(如创建时间、修改时间、访问时间)、属性(如只读、隐藏)、文件类型、打开方式等。但是,由于针对每个数据对象均需要存储元数据,当数据对象的数量很多时,所有数据对象的元数据会占用大量存储资源,并且需要频繁的访问分布式文件系统的管理节点,以从管理节点读取元数据,占用了大量读取资源。
技术实现思路
本申请提供一种数据存储方法,应用于客户端,所述方法包括:获取待存储的第一数据文件、所述第一数据文件对应的第一LUN标识;根据第一集群视图信息确定所述第一LUN标识对应的多个第一OSD;其中,所述第一集群视图信息是从监控服务器获取的,且所述第一集 ...
【技术保护点】
一种数据存储方法,其特征在于,应用于客户端,所述方法包括:获取待存储的第一数据文件、所述第一数据文件对应的第一逻辑单元号LUN标识;根据第一集群视图信息确定所述第一LUN标识对应的多个第一对象存储设备OSD;其中,所述第一集群视图信息是从监控服务器获取的,且所述第一集群视图信息包括第一LUN标识与第一OSD的对应关系;将所述第一数据文件拆分成多个数据块,确定每个数据块对应的第一OSD,将数据块发送给对应的第一OSD,以使所述第一OSD存储所述数据块;将所述第一数据文件对应的元数据存储到所述监控服务器。
【技术特征摘要】
1.一种数据存储方法,其特征在于,应用于客户端,所述方法包括:获取待存储的第一数据文件、所述第一数据文件对应的第一逻辑单元号LUN标识;根据第一集群视图信息确定所述第一LUN标识对应的多个第一对象存储设备OSD;其中,所述第一集群视图信息是从监控服务器获取的,且所述第一集群视图信息包括第一LUN标识与第一OSD的对应关系;将所述第一数据文件拆分成多个数据块,确定每个数据块对应的第一OSD,将数据块发送给对应的第一OSD,以使所述第一OSD存储所述数据块;将所述第一数据文件对应的元数据存储到所述监控服务器。2.根据权利要求1所述的方法,其特征在于,所述确定每个数据块对应的第一OSD的过程,具体包括:为每个数据块分别设置对象标识符OID,不同数据块的OID不同;采用第一hash算法对数据块的OID进行hash处理,得到hash处理结果,并将所述hash处理结果对应的第一OSD,确定为所述数据块对应的第一OSD;第一hash算法用于使不同第一OSD对应的数据块数量的差小于预设阈值。3.根据权利要求1所述的方法,其特征在于,所述确定每个数据块对应的第一OSD的过程,具体包括:将所述多个数据块划分到N个数据组中,其中,每个数据组中包括至少两个数据块,所述N的取值大于等于第一OSD的总数量;采用均衡策略确定每个数据组对应的第一OSD,其中,所述均衡策略用于使不同第一OSD对应的数据块数量的差小于预设阈值;将数据组对应的第一OSD,确定为所述数据组中的至少两个数据块对应的第一OSD。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取待存储的第二数据文件、所述第二数据文件对应的第二LUN标识;根据第二集群视图信息确定第二LUN标识对应的多个第二OSD;其中,所述多个第二OSD包括第一OSD和扩容OSD,第二集群视图信息是从监控服务器获取的,第二集群视图信息包括第二LUN标识与第二OSD的对应关系;将所述第二数据文件拆分成多个数据块,确定每个数据块对应的第二OSD,将数据块发送给对应的第二OSD,以使所述第二OSD存储所述数据块;将所述第二数据文件对应的元数据存储到所述监控服务器。5.根据权利要求4所述的方法,其特征在于,所述确定每个数据块对应的第二OSD的过程,具体包括:从所述第二集群视图信息中获取每个第二OSD的权重因子;其中,所述扩容OSD的权重因子大于所述第一OSD的权重因子;为每个数据块分别设置OID,不同数据块的OID不同;采用第二hash算法对数据块的OID进行hash处理,得到hash处理结果,并将所述hash处理结果对应的第二OSD,确定为所述数据块对应的第二OSD;其中,所述第二hash算法用于使权重因子越大的第二OSD,对应的数据块数量越多。6.一种数据存储装置,其特征在于,应用于客户端,所述装置包括:获取模块...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。