CephFS分布式文件系统元数据访问保护机制的实现方法及
系统
技术领域
背景技术
[0002] Ceph是一个开源的分布式存储项目,提供
块存储、对象存储和文件存储3种存储方案实现方式,是可靠的、可扩展的、统一的、分布式的存储系统。
软件定义存储(SDS)是存储发展的必然趋势,在开源软件定义存储领域,Ceph是第一选择。随着IaaS技术的火热发展,尤其是OpenStack开源
云平台的快速普及和应用,越来越多的用户开始在生产环境中部署Ceph作为云平台的统一存储方案。
[0003] 在Ceph存储系统中,包含了几个重要的核心组件,分别是Ceph对象存储设备(Object Storage Device,OSD)、Ceph监控器(Monitor,Mon)和Ceph元数据
服务器(Metadata Server,MDS)。其中OSD的主要功能包括存储数据,处理数据的复制、恢复、回补和平衡数据分布;Mon的主要功能是维护整个集群
健康状态,提供一致性的决策;MDS主要缓存文件系统的元数据。
[0004] CephFS是Ceph提供的文件存储解决方案,是一个支持POSIX
接口的文件系统存储类型。CephFS继承了Ceph对象存储的容错性和扩展性,相比NFS和CIFS,可以提供副本冗余,具有数据高可靠的特性。CephFS需要MDS来管理文件系统的命名空间以及客户端如何访问到后端OSD数据存储中。元数据主要负责记录数据的属性,如文件存储
位置、文件大小和存储时间等,负责资源查找、文件记录、存储位置记录、访问授权等功能。
[0005] MDS管理CephFS客户端入口的名称空间,它的主要应用就是一个智能元数据缓存(因为实际的元数据最终存储在对象存储集群中)。进行读写操作的元数据被缓存在一个短期的日志中,它最终还是被推入物理
存储器中。这个动作允许MDS将最近的元数据回馈给客户(这在元数据操作中很常见)。这个日志对故障恢复也很有用:如果元数据服务器发生故障,它的日志就会被重放,保证元数据安全存储在磁盘上。所以一旦MDS被恶意内存攻击,使得内存中缓存的元数据可能被未授权的用户访问截获或者篡改,就可能导致CephFS文件系统中的文件被篡改,也可能导致MDS上元数据失效带来频繁的元数据读取操作降低文件系统读写IO性能。
[0006] 软件防护扩展指令(Software Guard Extensions,SGX)是Intel开发的新处理器技术,可以在计算平台上提供一个可信的空间,将安全应用依赖的可信计算基TCB减小到仅包含CPU和安全应用本身,将不可信的复杂
操作系统OS排除在
安全边界之外,从而保障用户关键代码和数据的机密性和完整性。这种方式并不是识别和隔离平台上的所有
恶意软件,而是将合法软件的安全操作封装在一个enclave(可信空间)中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave,一旦软件和数据位于enclave中,即便操作系统也无法影响enclave里面的代码和数据。
发明内容
[0007] 本发明提供了一种CephFS元数据访问保护机制的实现方法和系统,通过使用软件防护扩展指令(Software Guard Extensions,SGX)来保护元数据服务器(Metadata Server,MDS)上缓存的元数据,以防止元数据缓存被截获或篡改带来的数据破坏和性能损失。
[0008] CephFS是Ceph提供的文件存储解决方案,是一个支持POSIX接口的文件系统存储类型。
[0009] 本发明的CephFS分布式文件系统元数据访问保护机制的实现方法,在保护MDS守护
进程模块(即元
数据处理器)上的文件元数据时,通过软件防护扩展指令由计算机
硬件对文件元数据进行加密,并对其访问权限进行控制,使得只能由
指定的程序软件进行数据的读取和
修改,从而保证了文件元数据信息的安全性。CephFS分布式文件系统元数据访问保护机制的实现方法,包括:
[0010] (1)在MDS
守护进程模块启动MDS守护进程时,通过软件防护扩展指令为MDS守护进程上的文件元数据分配可信空间,并生成用以验证可信空间访问权限的密钥;
[0011] (2)每次读取文件元数据时,MDS守护进程通过SGX加密模块提供的密钥来访问读取可信空间内的文件元数据;
[0012] 每次更新文件元数据时,MDS守护进程向SGX加密模块发起数据更新
请求,通过密钥的验证后,SGX加密模块将更新的文件元数据备份到所述的可信空间中。
[0013] 步骤(1)中,在MDS守护进程模块启动MDS守护进程时,通过软件防护扩展指令为MDS守护进程上的文件元数据分配可信空间,并生成用以验证可信空间访问权限的密钥,具体包括:
[0014] (1-1)数据上载:MDS守护进程模块启动MDS守护进程,生成MDS守护进程证书,并将MDS守护进程信息和MDS守护进程证书上载到处理空间中;
[0015] 所述的MDS守护进程信息是指MDS守护进程上的文件元数据操作代码;
[0016] (1-2)SGX
驱动器准备:通过SGX驱动器对上载到处理空间中的数据信息进行参数测量,为可信空间分配地址空间和内存页,同时获取MDS守护进程证书的信息并传递给SGX硬件处理器;
[0017] MDS守护进程证书的信息包括MDS守护进程证书的哈希值和私钥;
[0018] (1-3)可信空间的建立:SGX驱动器根据测量的参数创建可信空间,并将MDS守护进程上的文件元数据信息复制到可信空间中,之后删除处理空间中的数据;
[0019] (1-4)密钥的生成:SGX硬件处理器根据MDS守护进程证书的信息和SGX硬件处理器自身的特征数据生成可信空间的访问密钥,并通过密钥对可信空间进行加密。
[0020] 本发明还提供了一种CephFS分布式文件系统元数据访问保护机制的实现系统,包括:
[0021] MDS守护进程模块,提供智能缓存空间,运行MDS守护进程对文件系统中的文件和目录进行管理,生成分布式存储的文件元数据;
[0022] SGX加密模块,基于软件防护扩展指令生成用于存储所述的文件元数据的可信空间,并生成用于验证所述可信空间的访问权限的密钥。
[0023] MDS守护进程模块(即元数据处理器)是Ceph中管理文件系统命令空间的模块,负责文件元数据的缓存;SGX加密模块是一种新的处理器指令集,通过可信空间(enclave)来提供合法安全的内存访问。
[0024] 所述的SGX加密模块包括:
[0025] 用户空间,包括处理空间和可信空间;所述处理空间用于加载MDS守护进程信息和MDS守护进程证书,所述的可信空间用于存储所述的文件元数据;
[0026] SGX驱动器,为所述的文件元数据分配可信空间,获取用户空间中的MDS守护进程证书并传递给SGX硬件处理器;
[0027] SGX硬件处理器,对MDS守护进程证书和可信空间的完整性进行验证,根据MDS守护进程证书的哈希值和SGX硬件处理器特征数据的哈希值生成可信空间的访问密钥,通过访问密钥对可信空间进行加密。
[0028] 所述的SGX驱动器属于操作系统,SGX硬件处理器属于硬件构架。
[0029] 与
现有技术相比,本发明的有益效果为:
[0030] 本发明的方法中的密钥是由客户MDS守护进程和物理机硬件信息交叉生成,保证了后续验证步骤的安全性和有效性。
附图说明
[0031] 图1为CephFS分布式文件系统元数据访问保护机制实现方法的流程控制示意图;
[0032] 图2(a)为用户空间数据上载阶段的工作示意图;
[0033] 图2(b)为SGX驱动器准备阶段的工作示意图;
[0034] 图2(c)为可信空间数据建立阶段的工作示意图;
[0035] 图2(d)为密钥生成阶段的工作示意图;
[0036] 图3为CephFS安全访问文件元数据的流程示意图。
具体实施方式
[0037] 下面结合附图和
实施例对本发明作进一步详细描述。
[0038] 一种CephFS分布式文件系统元数据访问保护机制的实现系统,包括:
[0039] MDS守护进程模块,提供智能缓存空间,运行MDS守护进程对文件系统的元数据进行管理;
[0040] SGX加密模块,基于软件防护扩展指令生成可信空间用于存储文件系统的元数据,并生成用于验证所述MDS守护进程访问可信空间的权限的密钥。
[0041] SGX加密模块包括用户空间、SGX驱动器和SGX硬件处理器三个部分。
[0042] CephFS分布式文件系统元数据访问保护机制的实现系统的流程控制如图1所示。
[0043] 本发明的CephFS分布式文件系统元数据访问保护机制的实现系统在MDS守护进程启动时,通过软件防护扩展指令为文件系统的元数据缓存分配可信空间,并生成用以验证该可信空间访问权限的密钥,之后MDS守护进程对文件元数据缓存的修改操作都需通过SGX加密模块的验证,为访问元数据缓存提供安全保护。
[0044] SGX加密模块的作用是生成可信空间以存储、操作相应的元数据,并生成用以验证访问权限的密钥。本发明的CephFS分布式文件系统元数据访问保护机制的实现方法如下:
[0045] (1)数据上载阶段:如图2(a)所示,MDS守护进程模块启动MDS守护进程并生成MDS守护进程证书,其中,MDS守护进程证书信息包括MDS守护进程的哈希值和私钥,并将MDS守护进程的文件元数据操作代码和MDS守护进程证书上载到处理空间中;
[0046] (2)SGX驱动器准备阶段:如图2(b)所示,SGX驱动器对上载到处理空间中的数据进行参数测量,来为可信空间分配地址空间和内存页,同时SGX驱动器获取MDS守护进程证书信息并将其传递给底层SGX硬件处理器;
[0047] (3)可信空间数据建立阶段:如图2(c)所示,SGX驱动器将根据测量的参数创建可信空间,并将MDS守护进程上的元数据信息复制到可信空间中,之后删除处理空间中原有数据。通过SGX硬件处理器对MDS守护进程证书和可信空间的完整性进行验证;
[0048] (4)密钥生成阶段:如图2(d)所示,SGX硬件处理器根据MDS守护进程证书中哈希值和SGX硬件处理器自身特征数据的哈希值生成可信空间的访问密钥,并通过密钥对可信空间进行加密,之后MDS守护进程要访问可信空间中的元数据必须获得此密钥,从而使得可信空间中存储的文件元数据得到保护。
[0049] 每次更新文件元数据时,MDS守护进程更新数据后,向SGX驱动器发起数据更新请求,通过密钥的验证后,将更新的文件元数据备份到可信空间中。
[0050] 作为实例说明,当文件系统客户端执行ls命令(查看当前文件目录结构),CephFS文件系统处理路径将通过SGX加密模块来实现安全访问文件元数据,其具体操作流程如图3所示。
[0051] 当一个或多个客户端打开一个文件时,客户端向MDS守护进程模块发送请求,实际上就是MDS守护进程模块向OSD
定位该文件所在的文件索引
节点(File Inode),该索引节点包含一个唯一的数字、文件所有者、大小和权限等其他元数据,MDS守护进程模块通过SGX加密模块对元数据进行安全访问,会赋予Client读和缓存文件内容的权限,访问被授权后返回给客户端File Inode值、Lay out(Lay out可以定义文件内容如何被映射到Object)和文件大小,客户端根据MDS守护进程模块返回的信息定位到要访问的文件,然后直接与OSD执行File IO交互。
[0052] 以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。