基于FUSE的云存储服务平台的研究

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:sii923
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对用户对数据存储的性能和冗余备份等方面的具体要求,提出了基于Samba和Fuse的云存储平台。本文首先对基于Fuse的用户态文件系统做了介绍,然后针对用户的需求,研究设计Fuse文件系统下的文件分块和存储策略,最后加入用户权限认证机制,使Samba可以在运行时定位用户目录,形成用户自己的沙箱。
  关键词:Fuse;用户態文件系统;文件分块存储策略;用户权限认证
  一、 【分类号】:TP393.09
  二、 引言
  随着人类社会普遍信息化水平的提高,不同的数据成为驱动人们进行各项活动的源泉和中心。对数据的持久化存储和保护,影响着人们工作和生活的方方面面。
  文件系统作为现代计算机存储和管理数据文件的工具,它的设计的合理性和功能的完善性已经越来越得到人们的重视。传统的文件系统是系统内核的重要部分,它向Linux虚拟文件系统中注册一系列的文件操作函数。当用户触发某个文件系统操作,如:打开文件,创建文件夹等,内核会根据注册在VFS上的操作函数及当前文件系统类型把他们替换成支持Ext2、NTFS、NFS等文件系统的实际函数。
  实现用户态下实现的文件系统,内核中的文件系统调用全部在用户态下实现,这样开发文件系统就类似于开发普通的用户程序。
  用户态下的文件系统极大的满足了开发者对文件系统的特殊要求,使得开发者可以随意的定制文件系统功能和增加文件系统的灵活性,并且便于扩展。
  介于上述原因,本文设计了一个用户态文件系统客户端fuseclient,它具有一下显著特点:
  1) 提供一般文件系统的所有功能,用户可以像操作Ext3文件系统一样来操作它。
  2) 提供samba操作权限,可以将samba的用户目录映射到这个文件系统的根挂载点。
  3) 提供完备的用户权限验证,不同的用户有不同的文件目录。
  4) 提供文件系统配置接口,用户可以通过配置文件来改变文件系统的功能。
  5) 提供读、写等操作的日志记录,以便用户查看操作log。
  6) 提供fusedictionary和fusestorage两个目录来存放文件系统中文件的属性信息和文件中实际的数据块,为分布式存储提供基础。
  本文一下章节将对这个文件系统进行讨论。
  三、 FUSE框架的介绍
  FUSE全称“Filesystem in Userspace”,是一个用户态的文件系统框架。Linux2.6.9以后的内核版本都默认地安装Fuse内核模块。内核模块向VFS注册FUSE文件系统(类似ext3传统文件系统),用户将文件系统挂载至FUSE上,当应用程序访问FUSE文件系统时,FUSE内核模块就将请求发送至设备/dev/fuse,FUSE用户态程序通过监听/dev/fuse来读取请求并进行处理后,将结果通过该设备发送至内核。VPS会根据文件系统类型查找已经注册了的操作函数,如果查找到且已经实现,便去调用此用户态方法执行操作,结果通过内核返回给客户应用
  在应用层面上,基于fuse开发的文件系统和普通本地文件系统是一样的,支持各个层面的挂载启动。唯一和本地文件系统不同的是,作为用户态文件系统,开发者更加专注于文件系统功能的设计与实现,从而从处理文件系统模块与系统内核之间的交互中解脱出来,所以对于开发者而言,FUSE更像一个重定向器,将VPS发送至内核的请求重定向到开发者自己定义的高级函数来处理。
  四、 用户态文件系统fuseclient的设计与实现
  fuseclient文件系统不仅实现了一般文件系统所具有的功能,而且还增加了很多用户自定义的功能,诸如,用户权限验证,大文件碎片化存储等。但这些新功能并没有使文件系统的操作复杂化,用户或程序可以使用和操作一般文件系统一样的命令或api来对fuseclient进行操作。
  3.1 文件存储模型设计
  为了保证系统的吞吐量,以及为了实现文件上传下载可以断点续传,fuseclient中的文件采用分割block的形式存储。每个block的大小由文件系统的配置文件指定,比如在本地文件系统是512K的ext4,那么配置文件的block大小最好是512K的整数倍。Fuseclient有两个额外的目录来放置文件信息。
  (1)、/Fusestorage目录放置分割的文件块。每个文件先通过uuid生成算法生成相应的uuid,然后根据block的大小进行分割,每个分割的名字为
  UUID+block+N ( N是block的块号。)
  (2)、/fusedictionary放置文件的元信息,包括文件名,文件大小,md5值,uuid值,分割块数。
  这两个目录独立于fuse,挂载在本地文件系统。Fuse中只保存一个虚拟空壳文件,这个文件会硬连接到fusedictionary中相对应的元数据文件,通过解析元数据文件中的文件名,uuid,md5等信息定位真正的数据block,将block重新组合输出。
  3.2用户验证模块设计
  作为一个服务型文件系统,给不同的用户设置对应的根目录的重要性是显而易见的。Fuseclient通过内置的sqlite数据库查询得到不同企业不同用户响应的信息。
  Kpsqlite数据库mst_user表设计:
  User_infoorganize_key:标识用户所属企业ID
  User_infoorganize_type:标识企业的类型,针对不同企业类型,文件系统提供不同的服务。
  User_infouser_id:用户名
  User_infouser_pwd:用户密码,存储格式为32位md5码。   User_infostorage_size:分配给用户的存储容量。
  User_infostorage_used_size:用户已经使用的容量。
  fuse通常保持对用户的透明。正因为这样,fuse开始运行后,用户对fuse的控制权变得非常有限。所以对fuse的控制和改变的timing变得局限,而kpsqlite提供了一种方式,使得系统管理员可以在fuse运行期改变文件系统结构。
  Path模式:
  //[organize_id:sqlite]/[user_id:sqlite]/[pass:sqlite]/myfolder
  初始化:每隔一段时间(1天/1个小时/其他)会自动遍历sqlite->mst_user表,同步一次sqlite数据库来创建本地的目录结构。
  用户根据自己的用户名和密码来创建samba url来创建连接,samba将path参数传递到fuseclient,fuseclient验证当前path是否存在,若存在显示myfolder下的内容,如果不存在则返回错误信息。
  3.3 fuseclient配置文件设计
  fuse作为用户态文件系统,用户对文件系统的细粒度配置是必备的功能。Fuseclient保证在它挂载前读取配置文件对系统进行配置。
  (1)、mountpoint:指定fuse的挂载目录。如果在命令行中显式的指定目录,则忽略这项。
  (2)、localdictionarydir:指定存储文件元信息的目录。
  (3)、localstoragedir:指定存储文件block的目录。
  (4)、fperm:指定file的初始权限值。
  (5)、dperm:指定dictionary的初始权限值。
  3.4 sharefolder的设计
  依照用户目录权限设定,用户的sharefolder分为两个等级共享,全域共享和Organization层次共享。
  全域共享将用户的目录链接到文件系统的根目录上,可见范围为所有用户,Path模式:
  //[user_id:sqlite]/sharefolder/
  同理,Organization層次共享链接用户目录到用户所在Organization目录下面,可见范围为同organization的用户,Path模式:
  //[organize_id:sqlite]/[user_id:sqlite]/myfolder/
  用户对共享的文件夹需要设置访问权限,设置的信息存放在sqlite中,每当有访问发生,先查询sqlite,给共享目录设置相应的权限。
  五、 系统实验结果
  fuseclient文件系统在CentOS6.4平台下,用C++实现。目前所采用的数据库系统为sqlite数据库。
  将fuseclient文件系统挂载到当前系统文件系统中。对于创建和删除文件夹、创建和删除文件、文件的读写、创建删除链接文件等,fuseclient文件系统都可以做到与系统无缝结合。对于不同用户的访问权限,fuseclient也能通过事先查询sqlite,判断当前用户目录是否可以访问,过滤掉不正确的请求。
  参考文献:
  [1].FUSE:Filesystem in Userspace. http://fuse.sourceforge.net/.
  [2] IBM.OpenAFS helps corral distributed data. developerWorks [M], 1995.
  [3] Junpeng Wang .A new simulation model of fuse RF system[J] .Signals Systems and Electronics (ISSSE), 2010 International Symposium on.
  [4] Rajgarhia, Aditya Gehani, Ashish. Performance and extension of user space file systems[J].Proceedings of the 2010 ACM Symposium on Applied Computing SAC 10.2010.
  [5] Amann, B.Elser, B.Houri, Y.Fuhrmann. IgorFs: A Distributed P2P File System[M], Eighth International Conference, 2008.
  [6] 吴一民,刘伟安. 基于FUSE的用户态文件系统设计[A] , 2008.
  [7] 周强,李善平.基于Linux的用户态文件系统的设计.计算机应用与软件,2007,10期.
其他文献
摘要:外界信号的干扰是自动化施工过程中必须考虑的问题,本文从工程项目施工的角度来分析干扰信号的产生,如何屏蔽外界的干扰信号,确保生产的正常运行了探讨。  关键词: 工业自动化 信号干扰 信号屏蔽 生产运行  中图分类号:F407.67  引言:在科技迅猛发展的今天,工业自动化工程在工业生产过程中越来越占据着举足轻重的位置。因为它是现代先进的工业的大脑和灵魂。在现代工业生产过程中,基本上完全实行集中
期刊
摘要:為了使在无功补偿电容投切时,减少涌流,延长电容及投切开关的使用寿命,利用可控硅、磁保持继电器及消谐电抗器相结合的方式,设计了一种新型过零智能消谐复合开关,该开关经现场使用及与同类投切开关性能对比测试,结论是本设计开关具有寿命长、节能及可靠性高等特点。  关键词:可控硅、磁保持继电器、复合开关  【分类号】:TM464  1 引 言  国民经济的高速发展和人民生活水平的不断提高带来了电力负荷的
期刊
摘要:介绍了1303N工作面第二部皮带机头基础的技术原理和施工工艺,采用十字线、腰线、基础中心线确定预留孔位置和深度的方法,支设预留孔然后进行基础浇筑。通过施工找出其中的的优点和不足,为以后此类基础的施工提供借鉴。  关键词:皮带机头基础 预留孔 施工工艺  【分类号】:TD354  一、概况  山东新巨龙能源公司是新矿集团投资开发建设的国家“十五”重点建设项目、设计生产能力为600万吨/年的特大
期刊
摘 要:抽油机是油田生产的主要设备。抽油机井生产过程中,传动系统中经常发生皮带断的现象,抽油机使用的每条皮带,从投入使用到皮带断,其使用寿命,应该有它合理的使用时间。如果易断皮带的井增多,皮带的使用周期就会缩短,抽油机故障停机时间也就随之增加。管理水平也随之下降。这样不但影响了原油生产,而且提高了原油的生產成本,同时更增加了职工的劳动强度。  关键词:抽油机;传动系统;皮带;载荷;处理措施  中图
期刊
摘要:随着计算机和互联网的发展,人们的生活工作环境将越来越向互联网靠拢,当然三维可视化也不例外。在Web2.0的今天,Web三维可视化必然在未来的浏览器程序中占有重要的地位。本文设计实现了大洋样品馆的样品可视化系统,为样品馆的工作人员和申请样品的科学家带来了很大的方便,同时给出了笔者对于该系统今后发展的思考和思路。  关键词:Web3D;WebGL;HTML5;Extjs 4.2 MVC;Rest
期刊
摘 要  随着烧碱重要性的提高,制碱技术也在不断更新与发展。从隔膜法制碱方法到离子膜法制碱方法,技术水平也在不断的提高。其中离子膜法制碱技术是更高效、更清洁、自动化控制水平更高的一种制碱技术。随着离子膜烧碱工艺的不断完善,质量流量计也在不断的更新和改进,它输出的检测信号使整个工艺过程自动化控制水平也在不断的提高。  关键词:离子膜法烧碱工艺,质量流量计,特点与使用  中图分类号;TQ114.2  
期刊
摘要:地质矿产资源是自然资源组成部分,同时也影响着国家的发展,经济的增长。一直以来,对地质矿产资源的重视度就较高。合理和开采地质矿产可以加大国家收入,带动当地地区的经济发展,推进着国家和地区的进步。同时地质矿产开采时的安全性也是应该注意的一项重要问题,开采安全性的确保可能保证开采工程的顺利进行,才能保证矿产的挖掘和人员的安全,完成开采任务。本文就针对地质矿产开采时存在的问题和加强开采安全性的措施进
期刊
中图分类号:TE144  油田开发进入特高含水阶段后,自然递减加剧,注采矛盾突出,“三高一低”矛盾进一步加剧,稳产难度越来越大。此时注足水、注好水、注有效益是减缓自然递减、增加储量动用程度、提高原油产量的进攻性措施。然而受注水环境差、设备老化等因素影响,注水井地面及井筒状况不断恶化,欠注井、漏失井、测试问题井等日益增多,水井综合利用率、测试率、层段合格率呈不断下滑趋势,换管、扶井、作业等重复工作量
期刊
摘 要:主要针对变电设备状态检修分析与实施相关问题进行分析,根据多年的检修和实践总结,提出一套变电设备管理状态检修的流程,意在持续改进,不断提高的基础上,最终使设备管理提升到一个更高的目标。  关键词:变电设备;状态检修;问题对策  中图分类号:TM532.5  根据设备的状态进行的预防性作业称为变电设备状态检修,针对电厂的变电设备状态检修主要有以下几点:第一,应该以提高设备可靠性为基础。第二,应
期刊
摘要:船用CAN网络信息交换系统主要是用来满足现代化海军传输大容量数据并保护信息的安全可靠性,为了提高海军的作战实力就需要快速传递各个舰船之间的信息,而且要保障信息传递的安全性,这样才能够使得各舰船对于相关信息做出快速反应以达到相应的战术效果,目前主要是用CAN网络信息交换及检测装置来作为信息传输中心。  关键词:CAN;网络信息交换;监测装置  【分类号】:TP311.52  CAN网络信息交换
期刊