CN101840408A - 一种实现一写多读的方法 - Google Patents
一种实现一写多读的方法 Download PDFInfo
- Publication number
- CN101840408A CN101840408A CN200910244569A CN200910244569A CN101840408A CN 101840408 A CN101840408 A CN 101840408A CN 200910244569 A CN200910244569 A CN 200910244569A CN 200910244569 A CN200910244569 A CN 200910244569A CN 101840408 A CN101840408 A CN 101840408A
- Authority
- CN
- China
- Prior art keywords
- file system
- file
- read
- write operation
- write
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实现一写多读的方法,包括如下步骤:A、在创建文件系统时,在文件系统超级块中创建一写多读(WORM)标识;B、虚拟文件系统层收到对文件系统中文件的读写操作请求,虚拟文件系统层检查所述文件系统超级块信息中是否有WORM标识,若是,则执行步骤C;C、判断该读写操作的属性,如果为创建新文件或读取文件,则执行相应操作;若该读写操作为修改文件内容、修改文件属性或删除文件,则拒绝该读写操作。本发明方案可以在通用的Linux操作系统中完全由软件实现WORM功能,而且可以很方便支持多种不同文件系统实现WORM功能。
Description
技术领域
本发明涉及计算机信息存储技术领域,特别涉及一种基于Linux系统实现一写多读的方法。
背景技术
一写多读(Write Once Read Many,WORM),是指在介质上保留的文件内容在一段时间内或永久只能读不能修改和删除,可用于保存重要数据、法规遵从或内部审计数据。
比如2002年颁布的《萨班斯-奥克斯利法案(SOA)》,对于信息安全性的防护变得越来越重要,规定要求企业将电子邮件、文档、患者记录、设计文件、审计信息以及其他数据存档数年,这就带来了对注重法规符合性的内容不可篡改的存储系统的需求。
光盘从存储原理上说是最合适WORM的,但是因为容量、速率较差的原因,存储介质厂商都推出了支持WORM的磁带产品。磁带是传统的可多次读写的备份和归档介质,从物理上讲是不支持WORM的,随着近年来WORM技术使用的深入,磁带的WORM功能实现方式有主要是是通过磁带机管理软件将磁带介质设置为WORM带或非WORM带,WORM带只能追加写入数据,不能删除或修改数据。
随着信息技术的不断发展,信息容量越来越庞大,无论信息检索还是数据读写,都需要严格的响应时间。但当前基于光盘和磁带的WORM技术无法充分满足访问快速访问的要求。
随着磁盘容量的提高和成本的下降,具备高响应速度的磁盘成为实现WORM功能的首选介质。现有技术中基于磁盘的WORM功能的实现,是通过磁盘阵列柜管理软件创建WORM存储卷,数据一旦存入WORM存储卷,在磁盘柜管理软件的控制之下,即使是文件的创建者或者系统管理员都不可以更改、删除甚至改名存档数据。只有蓄意破坏行为(例如将磁盘从磁盘柜中取出),才能导致数据的删除或是更改。可以使用独立冗余磁盘阵列(Redundant Array of Independent Disks,RAID)实现基于磁盘的WORM技术,NetApp公司的磁盘式数据保持方案SnapLock可以在联机存档解决方案NetApp NearStore和光纤接入存储(Fabric-Attached Storage,FAS)存储系统上创建不可擦除、不可重写的WORM卷。
现有技术中的基于磁盘实现的WORM技术,都必须通过在指定产品中运行专用操作系统才能实现,不能在通用的操作系统实现,并且不能实现同时支持多种文件系统。
发明内容
有鉴于此,本发明的目的在于,提出一种实现一写多读的方法,可以在通用的Linux操作系统中实现一写多读。
本发明实施例提出的实现一写多读的方法,包括如下步骤:
A、在创建文件系统时,在文件系统超级块中创建一写多读标识;
B、虚拟文件系统层收到对文件系统中文件的读写操作请求,虚拟文件系统层检查所述文件系统超级块信息中是否有一写多读标识,若是,则执行步骤C;
C、判断该读写操作的属性,如果为创建新文件或读取文件,则执行相应操作;若该读写操作为修改文件内容、修改文件属性或删除文件,则拒绝该读写操作。
所述文件系统为第三代扩展文件系统ext3,高级日志文件系统XFS,ReiserFS文件系统或JFS文件系统。
所述WORM标识为文件系统超级块中的一个特定字段。
步骤C所述判断该读写操作的属性,如果为创建新文件,则执行相应操作中的相应操作包括:
虚拟文件系统层创建所述新文件,在关闭所述新文件时,虚拟文件系统层检测文件系统中有一写多读标识,则将该新文件的权限设置为只读权限。
步骤C所述拒绝该读写操作之后,进一步包括:发出用户没有相应操作权限的提示信息。
从以上技术方案可以看出,通过在文件系统超级块中设置一写多读WORM标识,在执行读写操作前,虚拟文件系统层检查是否存在WORM标识,若是,则只允许在对应的文件系统中创建新文件以及读操作,禁止其他操作,从而实现WORM功能。本发明方案可以在通用的Linux操作系统中完全由软件实现WORM功能,而且可以很方便支持多种不同文件系统实现WORM功能。
附图说明
图1为Linux系统实现数据写入过程的示意图;
图2为本发明实施例的实现流程图。
具体实施方式
本发明技术方案基于Linux系统实现,为使本发明方案表述地更加清楚,有必要先对Linux系统实现数据写入的过程进行介绍。
图1为Linux系统实现数据写入过程的示意图。其中,虚拟文件系统(Virtual File System,VFS)101是一个异构文件系统之上的软件粘合层(有时也把VFS称为可堆叠的文件系统(Stackable Filesystem)),使系统调用函数(例如open()、read()、write()等)不用关心底层的存储介质和文件系统类型就可以工作。在Linux系统中,虚拟文件系统101的作用是通过一个抽象的通用访问接口屏蔽底层文件系统和物理介质的差异性。
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。Linux操作系统下可以使用多种文件系统,比如第三代扩展文件系统(Third extended file system,ext3),SGI开发的高级日志文件系统(XFS),ReiserFS文件系统以及JFS文件系统等。在图1中将其笼统地称为文件系统A、文件系统B......文件系统n。数据存储层106是存储设备,通常为磁盘。设备驱动层105是存储设备的驱动程序。
超级块是用于存储文件系统的控制信息的数据结构。描述文件系统的状态、文件系统类型、大小、区块数、索引节点数等,存放于磁盘的特定扇区中。一般一个文件系统都是对应一个超级块。存储设备(硬盘、软盘、Flash盘、磁带、网络存储设备等)建立文件系统的过程,一般也被称为格式化或初始化,一般情况下,在Linux操作系统下可以用相应的格式化系列工具创建各种文件系统(比如XFS文件系统有mkfs.xfs,ext3系统有相应的mkfs.ext3)。
进行写操作时,写操作请求首先由虚拟文件系统层101进行处理,虚拟文件系统层101再根据文件所在设备所使用的文件系统类型(比如XFS,EXT3等),把操作任务和数据传送给对应文件系统(例如文件系统A 102)处理,文件系统再把任务请求和数据做适当处理后,通过设备驱动层105把数据写到数据存储层106中。
本发明技术方案如图2所示,主要包括如下步骤:
步骤201:在创建文件系统时,在文件系统超级块中创建一个WORM标识,表示该文件系统需要实现WORM功能。
创建文件系统时,在超级块中设置WORM标识,可以利用超级块中不需要使用到的字段做标识,也可以在文件系统超级块结构中新增一个用作给WORM做标识的字段,表示该文件系统中需要具有WORM功能。
步骤202:虚拟文件系统收到对文件系统中文件的读写操作请求,虚拟文件系统层检查所述文件系统超级块信息中是否有WORM标识,如果有WORM标识,则执行步骤203,否则执行步骤204;
步骤203:判断该读写操作的属性,如果为写入新文件或读取文件,则执行相应操作,若该读写操作为修改文件内容、修改文件属性或删除文件,则拒绝该读写操作,并返回步骤202。
这样就实现了该文件系统中文件只能写一次,以后再也不能修改文件内容,文件属性,也无法删除该文件,但依然可以做任意读操作。
步骤204:执行该读写操作,并返回步骤202。
以下对本发明实施例方案进行具体描述。
设一个运行Linux操作系统的存储系统创建了两个文件系统:文件系统A和文件系统B。在创建文件系统A时,在文件系统A的超级块中设置一个字段sb_WORM作为WORM标识,在创建文件系统B时,未设置字段sb_WORM。
当用户要求在文件系统A中创建(create操作)一个新文件a1时,虚拟文件系统层按照正常的流程执行创建处理。当文件a1写完,关闭文件时(close操作),虚拟文件系统层会在做close处理过程中检测文件a1所在的文件系统A是否带有WORM标识,检测结果是发现了sb_WORM字段,则虚拟文件系统层会相应的把文件a1的权限设置为只读权限。以后查看文件系统A中的文件属性时会发现,所有文件(a1、a2、a3......)的属性都为只读属性。
当用户以写或者读写方式打开(open操作)已创建的文件a1时,虚拟文件系统层在做open操作时如果检测到该文件所在的文件系统A的超级块中具有字段sb_WORM,则直接在打开的时候就关闭用户对该文件的写权限。当用户对文件进行写操作时,Linux操作系统发出用户没有写操作权限的提示信息。
当用户修改文件a1的属性(比如修改只读文件为可读写文件等)时,虚拟文件系统层在对应操作中如果检测到该文件所在的文件系统A带有WORM标志,则限制用户修改该文件的任何属性,Linux操作系统发出用户没有修改操作权限的提示信息。
当用户做删除文件a1操作时,虚拟文件系统层如果检测到该文件所在的文件系统A带有WORM标志,则限制删除文件操作,Linux操作系统发出用户没有删除操作权限的提示信息。
当用户要求在文件系统B中创建(create)一个新文件b1时,虚拟文件系统层按照正常的流程执行创建处理。当文件b1写完,关闭文件时(close操作),虚拟文件系统层会在做close处理过程中检测文件b1所在的文件系统B是否带有WORM标识,检测结果是未发现sb_WORM字段,则虚拟文件系统层不做任何处理,则文件b1的权限是默认的正常权限。按照同样的方式创建文件系统B上的文件b2、b3等。用户对文件系统B上的任何文件(b1、b2、b3......)进行修改、删除操作时,虚拟文件系统检查这些文件的权限都是正常权限,则正常执行相应地操作。
用户可以将文件系统B上的任一文件(例如文件b1)的权限修改为只读权限。修改后,用户直接对文件b1进行修改、删除操作时,Linux操作系统也会提示拒绝该操作,但用户仍然可以将文件b1的权限再修改为正常权限,这样就可以对其进行修改、删除了。但是,由于用户无法修改文件系统A中文件的权限,因此始终无法对文件系统A中的文件进行修改、删除等操作。也就是说,文件系统A中的文件具有WORM功能。
本发明方案在很大程度减少了需要实现WORM功能的条件,可以在通用的Linux操作系统中完全由软件实现WORM功能,而且可以很方便支持多种不同文件系统实现WORM功能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种实现一写多读的方法,其特征在于,包括如下步骤:
A、在创建文件系统时,在文件系统超级块中创建一写多读标识;
B、虚拟文件系统层收到对文件系统中文件的读写操作请求,虚拟文件系统层检查所述文件系统超级块信息中是否有一写多读标识,若是,则执行步骤C;
C、判断该读写操作的属性,如果为创建新文件或读取文件,则执行相应操作;若该读写操作为修改文件内容、修改文件属性或删除文件,则拒绝该读写操作。
2.根据权利要求1所述的方法,其特征在于,所述文件系统为第三代扩展文件系统ext3,高级日志文件系统XFS,ReiserFS文件系统或JFS文件系统。
3.根据权利要求1所述的方法,其特征在于,所述WORM标识为文件系统超级块中的一个特定字段。
4.根据权利要求1所述的方法,其特征在于,步骤C所述判断该读写操作的属性,如果为创建新文件,则执行相应操作中的相应操作包括:
虚拟文件系统层创建所述新文件,在关闭所述新文件时,虚拟文件系统层检测文件系统中有一写多读标识,则将该新文件的权限设置为只读权限。
5.根据权利要求1所述的方法,其特征在于,步骤C所述拒绝该读写操作之后,进一步包括:发出用户没有相应操作权限的提示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910244569A CN101840408A (zh) | 2009-12-31 | 2009-12-31 | 一种实现一写多读的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910244569A CN101840408A (zh) | 2009-12-31 | 2009-12-31 | 一种实现一写多读的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101840408A true CN101840408A (zh) | 2010-09-22 |
Family
ID=42743784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910244569A Pending CN101840408A (zh) | 2009-12-31 | 2009-12-31 | 一种实现一写多读的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101840408A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107004030A (zh) * | 2015-07-27 | 2017-08-01 | 华为国际有限公司 | 一种策略感知统一文件系统 |
CN107273054A (zh) * | 2017-06-26 | 2017-10-20 | 长沙开雅电子科技有限公司 | 一种新型硬盘一写多读的实现方法 |
CN109117667A (zh) * | 2018-07-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种文件保护方法、系统、设备及计算机可读存储介质 |
CN111913735A (zh) * | 2019-05-07 | 2020-11-10 | 成都鼎桥通信技术有限公司 | 属性同步方法及装置 |
CN112667580A (zh) * | 2021-01-04 | 2021-04-16 | 北京同有飞骥科技股份有限公司 | 一种在GPFS上的worm技术应用方法及系统 |
CN113407995A (zh) * | 2021-06-25 | 2021-09-17 | 济南浪潮数据技术有限公司 | 一种覆盖写和追加写正常报错的方法、系统、设备及介质 |
-
2009
- 2009-12-31 CN CN200910244569A patent/CN101840408A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107004030A (zh) * | 2015-07-27 | 2017-08-01 | 华为国际有限公司 | 一种策略感知统一文件系统 |
US10949551B2 (en) | 2015-07-27 | 2021-03-16 | Huawei International Pte. Ltd. | Policy aware unified file system |
CN107004030B (zh) * | 2015-07-27 | 2021-08-20 | 华为国际有限公司 | 一种策略感知统一文件系统 |
CN107273054A (zh) * | 2017-06-26 | 2017-10-20 | 长沙开雅电子科技有限公司 | 一种新型硬盘一写多读的实现方法 |
CN109117667A (zh) * | 2018-07-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种文件保护方法、系统、设备及计算机可读存储介质 |
CN111913735A (zh) * | 2019-05-07 | 2020-11-10 | 成都鼎桥通信技术有限公司 | 属性同步方法及装置 |
CN111913735B (zh) * | 2019-05-07 | 2022-06-14 | 成都鼎桥通信技术有限公司 | 属性同步方法及装置 |
CN112667580A (zh) * | 2021-01-04 | 2021-04-16 | 北京同有飞骥科技股份有限公司 | 一种在GPFS上的worm技术应用方法及系统 |
CN113407995A (zh) * | 2021-06-25 | 2021-09-17 | 济南浪潮数据技术有限公司 | 一种覆盖写和追加写正常报错的方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6438642B1 (en) | File-based virtual storage file system, method and computer program product for automated file management on multiple file system storage devices | |
US8171244B2 (en) | Methods for implementation of worm mode on a removable disk drive storage system | |
US9189493B2 (en) | Object file system | |
US8103616B2 (en) | Methods for implementation of information audit trail tracking and reporting in a storage system | |
US8099394B2 (en) | Persistent data storage for data files of application data | |
US8555025B2 (en) | Selective device access control | |
CN106227621B (zh) | 基于逻辑卷管理精简卷的数据备份方法及系统 | |
CN101840408A (zh) | 一种实现一写多读的方法 | |
JP5833754B2 (ja) | ファイルシステムをクリーニングするための方法及び装置並びにその記憶媒体 | |
US11321007B2 (en) | Deletion of volumes in data storage systems | |
CN103999058A (zh) | 带驱动器系统服务器 | |
JP6008820B2 (ja) | WORM(WriteOnceReadMany)を実現するファイルシステム | |
CN110147203A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN103294794B (zh) | 一种在线归档和访问文件的系统 | |
US11461282B2 (en) | Systems and methods for write-once-read-many storage | |
JP5159777B2 (ja) | 情報及びメタデータを管理し記憶する装置及び方法 | |
US10725661B2 (en) | Selective write control | |
US20220222207A1 (en) | Management computer and data management method by management computer | |
US20190065065A1 (en) | Data protection method and storage server | |
CN107250990A (zh) | 数据布置装置和数据布置方法 | |
US20070061530A1 (en) | Method for storage of digital data in a mainframe data center and associated device | |
CN110321076B (zh) | 基于光盘库的虚拟磁带库系统及其管理方法 | |
JP2005165485A (ja) | ファイル管理装置、ストレージ管理システム、システム管理方法、プログラム及び記録媒体 | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 | |
JP2006079273A (ja) | ファイル管理装置、ネットワークシステム、ファイル管理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100922 |