CN105450679A - 进行数据云存储的方法及系统 - Google Patents

进行数据云存储的方法及系统 Download PDF

Info

Publication number
CN105450679A
CN105450679A CN201410383413.2A CN201410383413A CN105450679A CN 105450679 A CN105450679 A CN 105450679A CN 201410383413 A CN201410383413 A CN 201410383413A CN 105450679 A CN105450679 A CN 105450679A
Authority
CN
China
Prior art keywords
memory
memory device
leader
descriptor
memory node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410383413.2A
Other languages
English (en)
Other versions
CN105450679B (zh
Inventor
林鹏
汪渭春
林起芊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201410383413.2A priority Critical patent/CN105450679B/zh
Publication of CN105450679A publication Critical patent/CN105450679A/zh
Application granted granted Critical
Publication of CN105450679B publication Critical patent/CN105450679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了进行数据云存储的方法及系统,其中,该方法包括:在每个存储节点设置至少两个进程,每个进程对应一个外部端口,在索引服务器内记录每个存储节点内各进程对应的外部端口号;索引服务器接收来自客户端的包含通道标识的存储请求后,为存储请求选择存储节点和进程,将选择出的第一存储节点的标识和第一进程的第一外部端口号反馈给客户端;第一进程通过第一外部端口号接收存储请求,为存储请求选择第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,进行数据写入,并在索引服务器中对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息。本发明方案能够提高数据云存储的效率。

Description

进行数据云存储的方法及系统
技术领域
本发明涉及数据存储技术,尤其涉及进行数据云存储的方法及系统。
背景技术
客户端进行数据采集后,需要存储到云端。云端提供了多个存储节点,云端的索引服务器接收来自客户端的存储请求,为其分配存储节点;而后,客户端将数据存储到为其分配的存储节点中。
目前,视频数据云存储的方案中,每个存储节点采用单进程进行数据处理,单进程提供统一接口对外服务。这种单进程方式的缺陷是显而易见的:随着功能的增加,统一对外服务的单进程会越来越庞大,越来越复杂,最后可能效率降低,速度越来越慢,并且增减功能模块比较复杂;如果在同一时间段内接收到多个处理请求,单进程需排队对处理请求逐一进行处理,效率很低,无法满足日益增长的功能需求。
综上,现有采用单进程进行数据云存储的方案,存在速度慢、处理效率低的缺陷。
发明内容
本发明提供了一种进行数据云存储的方法,该方法能够提高数据云存储的效率。
本发明提供了一种进行数据云存储的系统,该系统能够提高数据云存储的效率。
一种进行数据云存储的方法,该方法在每个存储节点设置至少两个进程,每个进程对应一个外部端口,在索引服务器内记录每个存储节点内各进程对应的外部端口号,该方法包括:
索引服务器接收来自客户端的包含通道标识的存储请求,为存储请求选择存储节点,表示为第一存储节点,并从第一存储节点对应的各进程中选择出进程,表示为第一进程,将第一存储节点的标识和第一进程的第一外部端口号反馈给客户端;
第一存储节点中的第一进程通过第一外部端口号接收来自客户端的存储请求;
第一进程为存储请求选择存储设备,表示为第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,表示为第一描述信息,在第一描述信息对应的数据块中写入数据,在索引服务器中对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息。
一种进行数据云存储的系统,该系统包括索引服务器和存储节点;每个存储节点设置至少两个进程,每个进程对应一个外部端口;
所述索引服务器,记录每个存储节点内各进程对应的外部端口号;收来自客户端的包含通道标识的存储请求,为存储请求选择存储节点,表示为第一存储节点,并从第一存储节点对应的各进程中选择出进程,表示为第一进程,将第一存储节点的标识和第一进程的第一外部端口号反馈给客户端;并接收来自所述第一存储节点的记录请求,对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息;
所述第一存储节点中的第一进程,通过第一外部端口号接收来自客户端的存储请求,为存储请求选择存储设备,表示为第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,表示为第一描述信息,在第一描述信息对应的数据块中写入数据,向所述索引服务器反馈记录请求,所述记录请求包含第一存储节点的标识、第一存储设备的标识、第一描述信息以及通道标识。
从上述方案可以看出,本发明中,在每个存储节点设置至少两个进程,每个进程对应一个外部端口,在索引服务器内记录每个存储节点内各进程对应的外部端口号;索引服务器接收来自客户端的包含通道标识的存储请求后,为存储请求选择存储节点和进程,将选择出的第一存储节点的标识和第一进程的第一外部端口号反馈给客户端;第一进程通过第一外部端口号接收存储请求,为存储请求选择第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,进行数据写入,并在索引服务器中对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息。采用本发明提供的多进程方案进行数据云存储,存储节点上的多个进程可同时进行数据处理,提高了云存储的速度和效率,进一步满足了需求。
附图说明
图1为本发明进行数据云存储的方法示意性流程图;
图2为本发明中进程启动的方法流程图实例;
图3为本发明中存储设备上线的方法流程图实例;
图4为本发明中存储设备下线的方法流程图实例;
图5为本发明中存储设备初始化的方法流程图实例;
图6为本发明进行数据云存储中申请未满块的方法流程图实例;
图7为本发明进行数据云存储中申请空闲块的方法流程图实例;
图8为本发明进程数据云存储的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
现有技术中,采用单进程进行数据云存储,存在速度慢、处理效率低的缺陷。针对该问题,本发明提供了采用多进程进行数据云存储的方案,以提高云存储的速度和效率,进一步满足需求。
参见图1,为本发明进行数据云存储的方法流程图实例,该方法在每个存储节点设置至少两个进程,每个进程对应一个外部端口,在索引服务器内记录每个存储节点内各进程对应的外部端口号。图1的流程包括以下步骤:
步骤101,索引服务器接收来自客户端的包含通道标识的存储请求,为存储请求选择存储节点,表示为第一存储节点,并从第一存储节点对应的各进程中选择出进程,表示为第一进程,将第一存储节点的标识和第一进程的第一外部端口号反馈给客户端。
需要进行数据存储时,客户端向索引服务器发送包含通道标识的存储请求,每个通道标识对应一个数据采集设备,每个数据采集设备进行数据采集后,通过客户端存储到云端的存储节点中。
索引服务器为存储请求选择存储节点,可采用现有的选择策略实现,例如选择具有足够空闲容量的存储节点。
选择出第一存储节点后,从第一存储节点对应的各进程中选择出第一进程,其选择方式有多种,例如,采用轮询方式,按照预先设定的顺序逐个为客户端选择进程;或者,从当前空闲的进程中选择任一进程,作为第一进程。
步骤102,第一存储节点中的第一进程通过第一外部端口号接收来自客户端的存储请求。
客户端接收来自索引服务器反馈的第一存储节点的标识和第一外部端口号后,向第一存储节点发起存储请求,由第一进程进行数据存储处理。
步骤103,第一进程为存储请求选择存储设备,表示为第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,表示为第一描述信息,在第一描述信息对应的数据块中写入数据,在索引服务器中对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息。
每个存储节点内有至少一个存储设备。第一进程为存储请求选择存储设备的策略可采用多种方式实现,例如,从当前空闲的存储设备中选择任一个,作为第一存储设备;还可以,从存储设备中选择当前空闲容量最大的一个,作为第一存储设备。每个存储设备对应一个设备共享内存,记录了相应存储设备中空闲数据块的描述信息。确定第一存储设备后,从相应设备共享内存中选取用于进行数据存储的数据块的描述信息;然后通知客户端发送数据,将数据写入到第一存储设备内的相应数据块中。并在索引服务器中对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息;记录后,可根据需要在索引服务器查询与某通道标识对应的第一存储节点的标识、第一存储设备的标识和第一描述信息;基于查询到的信息便可到相应存储设备读取数据。
进一步地,为了提高存储容量的利用率,本发明还为存储节点设置未满块共享内存,将进行数据写入时未写满的数据块的描述信息存储到未满块共享内存中;这样,在对空闲块进行数据写入时,先进行数据未满块的写入。具体地:
步骤103所述第一进程从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息之前,该方法还包括:
第一进程判断未满块共享内存中是否记录了满足请求空间要求的未满块的描述信息,如果是,则将相应未满块的描述信息作为所述第一描述信息;否则执行所述第一进程从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息的步骤。
具体实现时,可采用进程间互斥锁方式来进行未满块的数据写入。具体地:
所述第一进程判断未满块共享内存中是否记录了满足请求空间要求的未满块的描述信息之前,该方法还包括:
第一进程从未满块共享内存中获取锁;
第一进程采用获取的锁对未满块共享内存进行加锁,执行所述判断未满块共享内存中是否记录了满足请求空间要求的未满块的描述信息的步骤。
本发明采用多进程进行数据云存储,设置在存储节点上的多个进程可同时进行数据处理,提高了云存储的速度和效率,进一步满足了需求。
本发明在存储节点设置至少两个进程,进程的启动方案如下:
存储节点上的所有进程启动后,尝试绑定内部端口,最先绑定成功的进程作为领导进程,其他进程连接内部端口,作为领导进程的从进程;
领导进程为自己创建进程共享内存,还为每个从进程分别创建一个进程共享内存,进程共享内存用于记录相应进程当前正在处理的数据块的描述信息;
领导进程和各从进程对存储节点中的各存储设备进行扫描,获取所有存储设备的描述信息,以获知当前存储节点连接了哪些存储设备。
开始进程后,根据索引服务器的选择,任一进程都可进行数据云存储的处理,且多个进程可同时处理。进行数据写入时,在相应的进程共享内存中记录当前正在进行数据写入的数据块的描述信息,完成写入后删除,再继续记录下一时刻正在进行数据写入的数据块的描述信息。这样,根据进程共享内存的记录便可获取相应进程当前的数据处理情况。
进一步地,为了减少创建进程共享内存的工作量,所述领导进程为自己创建进程共享内存之前,该方法还包括:领导进程判断是否为首次运行,如果是,则执行所述领导进程为自己创建进程共享内存的步骤;否则释放作为原领导进程时已创建的进程共享内存中的资源;
所述领导进程还为每个从进程分别创建一个进程共享内存包括:
从进程判断是否为首次运行,如果是,则向领导进程发送内存请求指令,领导进程为相应从进程创建一个进程共享内存;否则,将关于已创建的进程共享内存的内存描述信息发送给领导进程,领导进程将已创建的进程共享内存作为相应从进程当前的进程共享内存。
存储设备通过网络连接到存储节点,索引服务器对各存储设备进行监控,当获知存储设备上线后,触发相应存储节点上的领导进程对存储设备进行初始化;具体地:
索引服务器获知第四存储设备上线,向第四存储设备所在存储节点的各外部端口发送初始化指令;
存储节点上的领导进程获取初始化指令后对第四存储设备进行初始化。
各进程对各存储设备进行监控,获知存储设备上线,为存储设备创建设备共享内存;具体地:
领导进程获知第二存储设备上线,确定已进行初始化,判断是否已存在第二存储设备对应的第二设备共享内存,如果不是,则创建对应第二存储设备的第二设备共享内存;
从进程获知第二存储设备上线,确定已进行初始化,判断是否已存在第二存储设备对应的第二设备共享内存,如果不是,则通知领导进程创建对应第二存储设备的第二设备共享内存。
各进程获知存储设备下线后,将进行资源和内存的释放;具体地:
各进程获知第三存储设备下线,将第三存储设备对应的第三设备共享内存的使用状态设为不可用,并释放正在使用的关于第三存储设备的存储资源,各进程还释放第三设备共享内存。获知第三存储设备下线后,如果有进程正在向第三存储设备中的数据块进行写入或读取,则停止数据写入或读取,即释放正在使用的关于第三存储设备的存储资源;各进程还退出对第三设备共享内存的访问,即释放第三设备共享内存。
下面通过图2-7对本发明中涉及的具体方案进行详细说明。
参见图2,为本发明存储节点中各进程启动的方法流程图实例,其包括以下步骤:
步骤201,各进程启动后尝试连接到本地设定的内部端口。
步骤202,判断进程是否连接成功,如果是,则执行步骤203,否则执行步骤207。
步骤203,进程连接成功后,判断是否为首次运行,如果是,则将相应进程确定为从进程,执行步骤204;否则,执行步骤209。
步骤204,从进程发送带首次登录标志的登录包到领导进程。
步骤205,从进程接收领导进程返回的包含为本进程分配的进程共享内存的名称的数据包。
步骤206,从进程初始化进程共享内存中的数据并扫描各存储设备,登录成功。
步骤207,进程尝试绑定本地设定的内部端口,如果绑定成功,则确定相应进程为领导进程,执行步骤208,如果绑定失败,则执行步骤201。
步骤208,领导进程判定是否为首次运行,如果是,则创建自身进程共享内存并初始化,扫描各存储设备,开始接受从进程的登录请求;否则,释放原领导进程所占用的资源并开始接受从进程的登录请求。
步骤209,从进程发送登录包给领导进程,登录包包含自已原进程共享内存名称和之前领导进程的进程共享内存名称,登录成功。
参见图3,为本发明存储节点中存储设备上线的方法流程图实例,其包括以下步骤:
步骤301,进程获知存储设备上线。
步骤302,如果当前进程是否为领导进程,如果是,则执行步骤303,否则,为从进程,执行步骤304。
步骤303,领导进程判断存储设备是否已经初始化,如果是,则执行步骤305,否则将存储设备信息加入本地设备链表中。
本地设备链表,用于对连接到本地存储节点的存储设备进行信息记录。
步骤305,领导进程判断以该存储设备ID命名的设备共享内存是否已存在,如果是,则执行步骤306,否则执行步骤307。
将该存储设备ID命名的设备共享内存表示为设备共享内存A。
步骤306,领导进程获取设备共享内存A中的引用计数,判断是否大于1,如果是,表明已有其他进程访问过该设备共享内存,对引用计数加1,存储设备上线结束;否则,执行步骤307。
步骤307,领导进程创建并初始化设备共享内存A,并将该存储设备信息加入到本地设备链表,设备上线完成。
步骤304,从进程判断该存储设备是否已经初始化,如果是,则执行步骤308,否则将存储设备信息加入本地设备链表中。
步骤308,从进程创建设备共享内存为空且状态置为正在上线的存储设备信息,并将其加入本地设备链表。
步骤309,从进程定时向领导进程获取正在上线存储设备的设备共享内存,如果获取到,将本地设备链表中的上线设备状态设为正常,设备上线结束;如果没有获取到,执行步骤310。
步骤310,从进程检测当前进程是否变更为领导进程,如果是,则执行步骤307,否则执行步骤309。
参见图4,为本发明存储节点中存储设备下线的方法流程图实例,其包括以下步骤:
步骤401,进程获知存储设备下线。
步骤402,进程判断存储设备是否已初始化,如果是,则执行步骤403,否则将该存储设备从本地设备链表中移除。
步骤403,进程将该存储设备对应的设备共享内存的使用状态设为不可用。
步骤404,进程释放正在使用的关于该存储设备的存储资源。
步骤405,进程释放该存储设备的设备共享内存并将该设备存储从本地设备链表中移除。
参见图5,为本发明中存储设备初始化的方法流程图实例,其包括以下步骤:
步骤501,索引服务器获知存储设备上线,向该存储设备所在存储节点的各外部端口发送初始化指令。
该存储设备上的各进程都接收初始化指令。
步骤502,进程判断是否有写权限,如果有,则执行步骤503,否则,初始化失败,返回相应的错误码。
哪些进程具有写权限,可根据需要设置。
步骤503,进程判断自身是否为领导进程,如果是,则执行步骤504,否则,将初始化指令发送给领导进程,执行步骤507。
步骤504,领导进程判断该存储设备当前是否在执行读写操作,如果是,则初始化失败,并返回相应的错误码;否则执行步骤505。
步骤505,领导进程将存储设备状态置为正在初始化并开始执行初始化。
步骤506,领导进程完成初始化并将状态置为正常可用。
步骤507,领导进程判断该存储设备当前是否在执行读写操作,如果是,初始化失败,并返回相应的错误码;否则执行步骤508。
步骤508,领导进程将存储设备状态置为正在初始化并开始执行初始化,并将正在执行初始化的信息返回给从进程,执行步骤506。
存储节点中各进程接收来自客户端的存储请求后,先申请未满块进行数据存储,如果申请失败,则申请空闲块进行数据存储。
参见图6,为本发明进行数据云存储中申请未满块的方法流程图实例,其包括以下步骤:
步骤601,进程接开始申请未满块。
步骤602,进程从未满块共享内存中获取锁的名称。
步骤603,进程通过锁的名称对未满块共享内存加锁。
步骤604,进程从未满块共享内存中查找满足条件的未满块的描述信息,如果有满足请求空间要求的未满块的描述信息,则反馈描述信息,否则,返回错误码。
参见图7,为本发明进行数据云存储中申请空闲块的方法流程图实例,其包括以下步骤:
步骤701,进程开始申请空闲块。
步骤702,进程根据设定策略选择存储设备并获取该存储设备的设备共享内存。
步骤703,进程获取设备共享内存中下一数据块的位置A。
这里,逐一将数据块分配给客户端,所述下一数据块的位置A,即设备共享内存中分配给当前申请的数据块的描述信息。
步骤704,进程判断A是否为最大值,如果是,则执行步骤702;否则,执行步骤705。
如果A为最大值,表明相应存储设备中的数据块都已经被分配完,需要重新选择存储设备。
步骤705,进程用设定的已使用标志的值与A所指示的设备共享内存中的值进行原子交换得到B。
所述A所指示的设备共享内存中的值,为空闲标志,这里用已使用标志与空闲标志进行交换,表明相应数据块将被写入数据,不能再分配给其他申请。
步骤706,进程判断B是否指示为未使用,如果是,则返回A位置所指示的块信息;否则,将设备共享内存中记录的下一分配位置的值置为大于A的可用块的块号。
本发明提供的数据云存储方案,实现了领导进程的自动快速选择,且选领导进程的过程中其他从进程可正常提供服务,新选择的领导进程将释放原领导进程的相关资源,保证整个存储节点的正常运行。通过设备内存共享和原子操作实现存储资源在多进程间进行高效的无锁分配。
存储节点内存储接口在初始化时通过一个内部端口来确定自已是否是领导进程,按照先连接后绑定的策略来抢占端口,即先尝试连接该端口,连接不成功再尝试绑定,绑定成功的进程将成为领导进程,领导进程会为自已创建一块进程共享内存,连接成功的进程称为从进程。1)从进程需要登录到领导进程,领导进程会为每个从进程分配并创建一块进程共享内存,并将这个进程共享内存的名称以及领导进程自身的进程共享内存名称和其他相关配置返回给从进程;进程共享内存的作用是记录进程的I/O操作和其他相关配置,并在进程异常退出后由其他进程来释放相关资源和异常处理。2)如果领导进程发生异常,其他从进程将重新按照先连接后绑定的策略重新选择领导进程,重新选择的过程中服务不中断,成为领导进程的进程将释放之前发生异常的领导进程的资源并做一些异常处理。3)领导进程将负责完成存储设备上下线、存储设备初始化等操作,每个存储设备上线时领导进程会创建并初始化一块设备共享内存供多进程共同使用,该设备共享内存表示存储设备的状态以及其中块的使用情况,各进程均可对块进行I/O操作。4)在写操作中,需要先申请块,申请块包括申请未满块(已使用但未写满的块)和申请空闲块(未使用的块),未满块的描述信息放在未满块共享内存中,申请时使用进程间互斥锁来保证申请的唯一性。申请空闲块时各进程均使用无锁交换技术来在存储设备的设备共享内存中申请块,由无锁交换技术来保证申请的过程的无锁互斥,确保各进程在申请块的过程中是互斥且各进程又可以同时申请同一设备中的不同块,从而保证申请资源的高效性,每个进程申请到的块在各进程内部使用,领导进程和从进程都可以对存储设备进行读写操作,互不影响。
参见图8,为本发明进程数据云存储的系统结构示意图,该系统包括索引服务器和存储节点;每个存储节点设置至少两个进程,每个进程对应一个外部端口;
所述索引服务器,记录每个存储节点内各进程对应的外部端口号;收来自客户端的包含通道标识的存储请求,为存储请求选择存储节点,表示为第一存储节点,并从第一存储节点对应的各进程中选择出进程,表示为第一进程,将第一存储节点的标识和第一进程的第一外部端口号反馈给客户端;并接收来自所述第一存储节点的记录请求,对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息;
所述第一存储节点中的第一进程,通过第一外部端口号接收来自客户端的存储请求,为存储请求选择存储设备,表示为第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,表示为第一描述信息,在第一描述信息对应的数据块中写入数据,向所述索引服务器反馈记录请求,所述记录请求包含第一存储节点的标识、第一存储设备的标识、第一描述信息以及通道标识。
索引服务器是用来存储存储节点上相关数据的索引信息,以方便快速查询使用,并控制存储节点的资源分配;存储节点主要负责数据的写入、读取以及数据所对应的索引信息上报等,存储节点上可挂接多个存储设备,每个存储设备可以独立读写数据,不互相影响。
较佳地,所述存储节点中的进程包含领导进程和从进程;存储节点上的所有进程启动后,尝试绑定内部端口,最先绑定成功的进程作为领导进程,其他进程连接内部端口,作为领导进程的从进程;
领导进程为自己创建进程共享内存,还为每个从进程分别创建一个进程共享内存,进程共享内存用于记录相应进程当前正在处理的数据块的描述信息;领导进程对存储节点中的各存储设备进行扫描,获取所有存储设备的描述信息;
各从进程对存储节点中的各存储设备进行扫描,获取所有存储设备的描述信息。
本发明方案可具体应用于视频数据云存储中,在存储节点中提供统一的内部接口(以动态链接库的形式呈现)供多个进程使用,在存储接口中实现多进程的自动选择,这样,大大减小了单一进程的复杂度和维护难度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种进行数据云存储的方法,其特征在于,在每个存储节点设置至少两个进程,每个进程对应一个外部端口,在索引服务器内记录每个存储节点内各进程对应的外部端口号,该方法包括:
索引服务器接收来自客户端的包含通道标识的存储请求,为存储请求选择存储节点,表示为第一存储节点,并从第一存储节点对应的各进程中选择出进程,表示为第一进程,将第一存储节点的标识和第一进程的第一外部端口号反馈给客户端;
第一存储节点中的第一进程通过第一外部端口号接收来自客户端的存储请求;
第一进程为存储请求选择存储设备,表示为第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,表示为第一描述信息,在第一描述信息对应的数据块中写入数据,在索引服务器中对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息。
2.如权利要求1所述的方法,其特征在于,存储节点中的进程包含领导进程和从进程,该方法还包括:
存储节点上的所有进程启动后,尝试绑定内部端口,最先绑定成功的进程作为领导进程,其他进程连接内部端口,作为领导进程的从进程;
领导进程为自己创建进程共享内存,还为每个从进程分别创建一个进程共享内存,进程共享内存用于记录相应进程当前正在处理的数据块的描述信息;
领导进程和各从进程对存储节点中的各存储设备进行扫描,获取所有存储设备的描述信息。
3.如权利要求2所述的方法,其特征在于,所述领导进程为自己创建进程共享内存之前,该方法还包括:领导进程判断是否为首次运行,如果是,则执行所述领导进程为自己创建进程共享内存的步骤;否则释放作为原领导进程时已创建的进程共享内存中的资源;
所述领导进程还为每个从进程分别创建一个进程共享内存包括:
从进程判断是否为首次运行,如果是,则向领导进程发送内存请求指令,领导进程为相应从进程创建一个进程共享内存;否则,将关于已创建的进程共享内存的内存描述信息发送给领导进程,领导进程将已创建的进程共享内存作为相应从进程当前的进程共享内存。
4.如权利要求2所述的方法,其特征在于,该方法还包括:
领导进程获知第二存储设备上线,确定已进行初始化,判断是否已存在第二存储设备对应的第二设备共享内存,如果不是,则创建对应第二存储设备的第二设备共享内存;
从进程获知第二存储设备上线,确定已进行初始化,判断是否已存在第二存储设备对应的第二设备共享内存,如果不是,则通知领导进程创建对应第二存储设备的第二设备共享内存。
5.如权利要求2所述的方法,其特征在于,该方法还包括:
各进程获知第三存储设备下线,将第三存储设备对应的第三设备共享内存的使用状态设为不可用,并释放正在使用的关于第三存储设备的存储资源,各进程还释放第三设备共享内存。
6.如权利要求2所述的方法,其特征在于,该方法还包括:
索引服务器获知第四存储设备上线,向第四存储设备所在存储节点的各外部端口发送初始化指令;
第四存储设备所在存储节点上的领导进程获取初始化指令后对第四存储设备进行初始化。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述第一进程从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息之前,该方法还包括:
第一进程判断未满块共享内存中是否记录了满足请求空间要求的未满块的描述信息,如果是,则将相应未满块的描述信息作为所述第一描述信息;否则执行所述第一进程从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息的步骤。
8.如权利要求7所述的方法,其特征在于,所述第一进程判断未满块共享内存中是否记录了满足请求空间要求的未满块的描述信息之前,该方法还包括:
第一进程从未满块共享内存中获取锁;
第一进程采用获取的锁对未满块共享内存进行加锁,执行所述判断未满块共享内存中是否记录了满足请求空间要求的未满块的描述信息的步骤。
9.一种进行数据云存储的系统,其特征在于,该系统包括索引服务器和存储节点;每个存储节点设置至少两个进程,每个进程对应一个外部端口;
所述索引服务器,记录每个存储节点内各进程对应的外部端口号;收来自客户端的包含通道标识的存储请求,为存储请求选择存储节点,表示为第一存储节点,并从第一存储节点对应的各进程中选择出进程,表示为第一进程,将第一存储节点的标识和第一进程的第一外部端口号反馈给客户端;并接收来自所述第一存储节点的记录请求,对应通道标识存储第一存储节点的标识、第一存储设备的标识和第一描述信息;
所述第一存储节点中的第一进程,通过第一外部端口号接收来自客户端的存储请求,为存储请求选择存储设备,表示为第一存储设备,从第一存储设备的设备共享内存中获取用于进行数据存储的数据块的描述信息,表示为第一描述信息,在第一描述信息对应的数据块中写入数据,向所述索引服务器反馈记录请求,所述记录请求包含第一存储节点的标识、第一存储设备的标识、第一描述信息以及通道标识。
10.如权利要求9所述的系统,其特征在于,所述存储节点中的进程包含领导进程和从进程;存储节点上的所有进程启动后,尝试绑定内部端口,最先绑定成功的进程作为领导进程,其他进程连接内部端口,作为领导进程的从进程;
领导进程,为自己创建进程共享内存,还为每个从进程分别创建一个进程共享内存,进程共享内存用于记录相应进程当前正在处理的数据块的描述信息;领导进程还对存储节点中的各存储设备进行扫描,获取所有存储设备的描述信息;
各从进程对存储节点中的各存储设备进行扫描,获取所有存储设备的描述信息。
CN201410383413.2A 2014-08-06 2014-08-06 进行数据云存储的方法及系统 Active CN105450679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410383413.2A CN105450679B (zh) 2014-08-06 2014-08-06 进行数据云存储的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410383413.2A CN105450679B (zh) 2014-08-06 2014-08-06 进行数据云存储的方法及系统

Publications (2)

Publication Number Publication Date
CN105450679A true CN105450679A (zh) 2016-03-30
CN105450679B CN105450679B (zh) 2019-06-28

Family

ID=55560453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410383413.2A Active CN105450679B (zh) 2014-08-06 2014-08-06 进行数据云存储的方法及系统

Country Status (1)

Country Link
CN (1) CN105450679B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301889A (zh) * 2016-07-28 2017-01-04 Tcl移动通信科技(宁波)有限公司 一种端口号快速设置方法及系统
CN106383668A (zh) * 2016-09-18 2017-02-08 浙江宇视科技有限公司 一种信息存储方法、存储管理设备及客户端
CN111104456A (zh) * 2019-10-12 2020-05-05 深圳壹账通智能科技有限公司 数据持久化存储方法、装置、计算机设备及存储介质
CN113721518A (zh) * 2021-08-31 2021-11-30 中冶华天南京工程技术有限公司 一种面向钢铁生产的数据采集和存储方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800873A (zh) * 2010-03-05 2010-08-11 杭州华三通信技术有限公司 一种视频监控数据的存储方法和设备
CN103106246A (zh) * 2012-12-31 2013-05-15 中国科学院深圳先进技术研究院 一种分布式文件系统的存储空间的管理方法及系统
CN103152423A (zh) * 2013-03-15 2013-06-12 安科智慧城市技术(中国)有限公司 一种云存储系统及其数据存取方法
CN103167026A (zh) * 2013-02-06 2013-06-19 数码辰星科技发展(北京)有限公司 一种云存储环境数据处理方法、系统及设备
US20130166711A1 (en) * 2011-12-22 2013-06-27 Pelco, Inc. Cloud-Based Video Surveillance Management System

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800873A (zh) * 2010-03-05 2010-08-11 杭州华三通信技术有限公司 一种视频监控数据的存储方法和设备
US20130166711A1 (en) * 2011-12-22 2013-06-27 Pelco, Inc. Cloud-Based Video Surveillance Management System
CN103106246A (zh) * 2012-12-31 2013-05-15 中国科学院深圳先进技术研究院 一种分布式文件系统的存储空间的管理方法及系统
CN103167026A (zh) * 2013-02-06 2013-06-19 数码辰星科技发展(北京)有限公司 一种云存储环境数据处理方法、系统及设备
CN103152423A (zh) * 2013-03-15 2013-06-12 安科智慧城市技术(中国)有限公司 一种云存储系统及其数据存取方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301889A (zh) * 2016-07-28 2017-01-04 Tcl移动通信科技(宁波)有限公司 一种端口号快速设置方法及系统
CN106301889B (zh) * 2016-07-28 2019-10-18 Tcl移动通信科技(宁波)有限公司 一种端口号快速设置方法及系统
CN106383668A (zh) * 2016-09-18 2017-02-08 浙江宇视科技有限公司 一种信息存储方法、存储管理设备及客户端
CN106383668B (zh) * 2016-09-18 2020-06-19 浙江宇视科技有限公司 一种信息存储方法、存储管理设备及客户端
CN111104456A (zh) * 2019-10-12 2020-05-05 深圳壹账通智能科技有限公司 数据持久化存储方法、装置、计算机设备及存储介质
WO2021068605A1 (zh) * 2019-10-12 2021-04-15 深圳壹账通智能科技有限公司 数据持久化存储方法、装置、计算机设备及存储介质
CN113721518A (zh) * 2021-08-31 2021-11-30 中冶华天南京工程技术有限公司 一种面向钢铁生产的数据采集和存储方法

Also Published As

Publication number Publication date
CN105450679B (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
US9917884B2 (en) File transmission method, apparatus, and distributed cluster file system
CN107105050B (zh) 一种业务对象的存储、下载方法及系统
CN103152390B (zh) 分布式存储系统的节点配置方法、装置、节点及系统
CN105025053A (zh) 基于云存储技术的分布式文件的上传方法及其系统
CN108845877B (zh) 管理内存的方法、装置和系统
CN105245912A (zh) 一种缓存视频数据及读取视频数据的方法及装置
CN105338078A (zh) 用于存储系统的数据存储方法和装置
CN105450679A (zh) 进行数据云存储的方法及系统
CN105224244A (zh) 一种文件存储的方法和装置
EP3444722A1 (en) Installation of operating system
CN111435286B (zh) 一种数据存储方法、装置和系统
CN109889561A (zh) 一种数据处理方法及装置
CN106302861A (zh) 一种地址分配方法及装置
CN111562883B (zh) 固态硬盘的缓存管理系统、方法、装置
US11159608B2 (en) Method and control node for managing cloud resources in a communications network
CN105426125B (zh) 一种数据存储方法及装置
CN105099753B (zh) 网络管理系统及其处理业务的方法
CN107122136A (zh) 一种容量获取方法及装置
KR20170081977A (ko) 효율적으로 파일을 생성하기 위한 분산 파일 시스템 및 방법
CN105335441B (zh) 基于局域网的分布式文件系统
CN104967641B (zh) 一种实现主备元服务器数据同步的方法及装置
CN111431951B (zh) 一种数据处理方法、节点设备、系统及存储介质
JP2022552150A (ja) データ構造、メモリ手段、および装置
CN109376014B (zh) 一种分布式锁管理器实现方法和系统
CN114465952B (zh) 一种配置参数的管理方法、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant