KR100704621B1 - Method and apparatus for guaranteeing data integrity of portable storage device - Google Patents

Method and apparatus for guaranteeing data integrity of portable storage device Download PDF

Info

Publication number
KR100704621B1
KR100704621B1 KR1020040065910A KR20040065910A KR100704621B1 KR 100704621 B1 KR100704621 B1 KR 100704621B1 KR 1020040065910 A KR1020040065910 A KR 1020040065910A KR 20040065910 A KR20040065910 A KR 20040065910A KR 100704621 B1 KR100704621 B1 KR 100704621B1
Authority
KR
South Korea
Prior art keywords
file
information
log
data
block
Prior art date
Application number
KR1020040065910A
Other languages
Korean (ko)
Other versions
KR20060017287A (en
Inventor
권문상
배성환
정상신
서동영
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040065910A priority Critical patent/KR100704621B1/en
Publication of KR20060017287A publication Critical patent/KR20060017287A/en
Application granted granted Critical
Publication of KR100704621B1 publication Critical patent/KR100704621B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이동형 저장 장치의 데이터 무결성을 보장하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for ensuring data integrity of removable storage devices.

본 발명의 일 실시예에 따른 이동형 저장 장치의 데이터 무결성을 보장하는 방법은 어플리케이션 또는 운영체계로부터 파일 연산에 대한 요청을 수신하는 단계, 상기 요청한 파일 연산에 대한 정보를 생성하는 단계, 상기 정보를 로그 파일에 저장하는 단계 및 상기 저장한 연산 정보에 따라 파일 연산을 수행하는 단계를 포함한다.According to an embodiment of the present invention, a method of guaranteeing data integrity of a mobile storage device may include receiving a request for a file operation from an application or an operating system, generating information on the requested file operation, and logging the information. Storing in a file and performing a file operation according to the stored operation information.

파일 시스템, FAT(File Allocation Table), 블록 맵, 데이터 블록, 무결성(Integrity)File System, File Allocation Table (FAT), Block Map, Data Block, Integrity

Description

이동형 저장 장치의 데이터 무결성을 보장하는 방법 및 장치{Method and apparatus for guaranteeing data integrity of portable storage device}Method and apparatus for guaranteeing data integrity of portable storage device

도 1은 종래의 파일 시스템과 저장매체의 구성을 보여주는 블록도이다. 1 is a block diagram illustrating a configuration of a conventional file system and a storage medium.

도 2는 종래의 파일 시스템에서 블록 맵을 통해 파일의 저장을 보여주는 개념도이다.2 is a conceptual diagram illustrating storage of a file through a block map in a conventional file system.

도 3은 종래의 파일 시스템에서 파일 삭제시 오류의 발생을 보여주는 블록도이다.3 is a block diagram illustrating occurrence of an error when deleting a file in a conventional file system.

도 4는 본 발명의 일 실시예에 따른 파일 시스템과 저장 장치의 구성을 보여준다.4 illustrates a configuration of a file system and a storage device according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 로그 파일의 일 실시예를 보여주는 개념도이다.5 is a conceptual diagram illustrating an embodiment of a log file according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 파일 삭제시 오류를 복구하는 과정을 보여주는 블록도이다.6 is a block diagram illustrating a process of recovering an error when deleting a file according to an exemplary embodiment of the present invention.

도 7은 본 발명의 다른 실시예에 따른 파일 생성시 오류를 복구하는 과정을 보여주는 블록도이다.7 is a block diagram illustrating a process of recovering an error when generating a file according to another exemplary embodiment of the present invention.

도 8은 본 발명의 일 실시예에 따른 파일 작업과 오류 복구의 과정을 보여주는 순서도이다.8 is a flowchart illustrating a process of file operation and error recovery according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

10 : 파일 시스템 50 : 로그 관리자10: file system 50: log manager

100 : 블록 맵 150 : 로그 파일100: block map 150: log files

200 : 데이터 블록200: data block

본 발명은 파일의 효율적인 데이터 관리를 위한 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for efficient data management of a file.

파일은 데이터의 집합, 모음으로 하드디스크, 메모리 카드, CD-ROM 등에 저장되는 것을 의미한다. 파일은 컴퓨터, PDA, 휴대폰과 같은 시스템에 정보를 제공하거나, 어떤 기능을 동작시키거나 혹은 사용자에게 정보를 제공하는 등의 다양한 기능을 한다.A file is a collection or collection of data stored in a hard disk, memory card, CD-ROM, or the like. Files serve a variety of functions, such as providing information to a system such as a computer, PDA, or mobile phone, running a function, or providing information to a user.

파일 시스템(File System)은 파일을 쓰고, 읽고, 사용하기 위한 방법과 기능을 제공한다. 컴퓨터와 같은 디지털 장치에는 FAT(File Allocation Table), NTFS(New Technology File System), HPFS(High Performance File System) 등이 존재하고 있다. 파일 시스템은 파일의 효율적인 관리를 위한 기능을 수행하며, 데이터의 빠른 검색, 복구, 대용량 데이터의 지원등을 제공하고 있다. 파일 시스템은 CPU와 같은 프로세서에 비해 상대적으로 느린 처리 속도를 가진 저장 매체가 시스템에 가져다 주는 병목 현상을 줄이면서, 파일의 처리를 원활하게 하여, 전체 시스 템의 성능 향상에 주력하고 있다. 한편 디지털 멀티미디어를 다루는 많은 디지털 기기들은 컴퓨터와 호환 가능한 파일 시스템을 사용하여 컴퓨터를 통한 파일의 교환을 가능하게 한다. 따라서, 현재 많은 디지털 기기들은 파일 시스템을 사용하여 멀티미디어 데이터를 저장하고 있다.The file system provides methods and functions for writing, reading, and using files. Digital devices such as computers include FAT (File Allocation Table), NTFS (New Technology File System), HPFS (High Performance File System), and the like. The file system performs functions for efficient file management, and provides fast data retrieval, recovery, and large data support. The file system is focused on improving the performance of the entire system by smoothing file processing while reducing bottlenecks caused by storage media having a relatively slow processing speed compared to processors such as CPUs. On the other hand, many digital devices dealing with digital multimedia use a file system compatible with the computer to enable file exchange through the computer. Thus, many digital devices currently use a file system to store multimedia data.

이러한 멀티미디어 데이터와 디지털 기기가 증가하면서 이동형 저장 장치에 대한 요구가 높아지고 있다. 과거 이동형 저장 장치라 하면, 플로피 디스켓 정도였으나 최근에는 USB 메모리, MMC 카드(Multimedia Card), SD 카드, 메모리 스틱과 같이 시스템에 착탈이 용이한 저장 장치가 다양하게 출시되고 있다. 이러한 흐름과 함께, 이동형 저장 장치의 파일 관리에 있어서도 몇 가지 문제점이 제기되고 있다.As the multimedia data and digital devices increase, the demand for portable storage devices increases. In the past, removable storage devices were floppy diskettes, but recently, various removable storage devices such as USB memory, MMC cards, SD cards, and memory sticks are easily released. Along with this flow, some problems are also raised in file management of removable storage devices.

이러한 문제점을 살펴보기에 앞서 현재의 일반적인 파일 시스템의 구조를 살펴보면 다음과 같다.Before looking at these problems, the general structure of the current file system is as follows.

도 1은 종래의 파일 시스템과 저장매체의 구성을 보여주는 블록도이다. FAT, HPFS, NTFS와 같은 파일 시스템은 파일을 블록 맵을 통해 관리한다. 도 1의 (a)와 같이 하드 디스크 또는 메모리 카드등은 크게 데이터 블록과 블록 맵으로 나뉘어진다.1 is a block diagram illustrating a configuration of a conventional file system and a storage medium. File systems such as FAT, HPFS, and NTFS manage files through block maps. As shown in FIG. 1A, a hard disk or a memory card is roughly divided into a data block and a block map.

데이터 블록은 데이터를 저장하기 위한 하나의 단위가 되며, 저장 공간에서 데이터가 저장되는 하나의 단위가 될 수 있다. 512 byte 혹은 1024 byte와 같이 데이터를 저장하는 단위가 되며, 이보다 큰 데이터들은 상기 저장 단위의 크기에 따라 나누어 저장하게 된다. FAT을 사용하는 파일 시스템에서는 이러한 데이터 블록을 클러스터(cluster)라고 부른다.The data block may be one unit for storing data and may be one unit for storing data in the storage space. It becomes a unit for storing data, such as 512 bytes or 1024 bytes, and larger data is stored in pieces according to the size of the storage unit. In a file system using FAT, such data blocks are called clusters.

블록 맵은 상기 데이터 블록에 대한 정보들의 모음이다. 따라서 (a)에서 알 수 있듯이, 블록 맵(100)과 데이터 블록(200)은 저장 장치에 저장될 수 있다. 그리고 블록 맵(100)과 데이터 블록(200)간의 매핑과 파일을 관리하기 위해 파일 시스템(10)이 존재한다.A block map is a collection of information about the data block. Therefore, as can be seen in (a), the block map 100 and the data block 200 may be stored in the storage device. In addition, the file system 10 exists to manage the mapping and the file between the block map 100 and the data block 200.

블록 맵과 데이터 블록의 구조는 (b)와 같다. 블록 맵을 구성하는 각 블록들(101, 102)은 해당 데이터 블록의 상태를 보여준다. 즉, 상기 데이터 블록에 파일이 저장되어 있는지, 혹은 데이터 블록이 저장 가능한지를 알려주는 정보를 가지고 있다. FAT 시스템에서 파일 할당 테이블(File Allocation Table)이 블록 맵의 한 예이다. 상기 블록 맵을 구성하는 블록들의 정보를 검토하면, 전체 데이터 블록을 직접 살펴보지 않고 해당 데이터 블록의 상태를 알 수 있다. 블록 맵의 블록이 가지는 값은 다음 데이터의 위치를 나타내거나 해당 데이터 블록에 데이터가 저장되지 않음을 나타낸다. 또한 해당 데이터 블록, 예를 들어 클러스터가 파일을 저장할 수 없게 손상이 된 경우, 그 손상여부를 표시할 수도 있다. 블록 맵은 편의상 1부터 주소를 붙여서 설명하고자 하며, 이는 파일 시스템의 구현의 한 실시예일뿐이다. 1번지의 블록 맵은 1번지의 데이터 블록에 대한 정보를 보여준다.The structure of the block map and data block is shown in (b). Each of the blocks 101 and 102 constituting the block map shows the state of the corresponding data block. That is, it has information indicating whether a file is stored in the data block or whether the data block can be stored. In the FAT system, a file allocation table is an example of a block map. When the information on the blocks constituting the block map is reviewed, the state of the data block can be known without directly examining the entire data block. A value of a block of the block map indicates a position of the next data or indicates that data is not stored in the corresponding data block. It can also indicate if the data block, for example, the cluster, is damaged so that it can't store the file. The block map will be described with an address from 1 for convenience, which is only one embodiment of the file system implementation. The block map of address 1 shows information about the data block of address 1.

FAT 시스템에서 블록 맵의 블록이 표시하는 값을 살펴보면 표 1과 같다.Table 1 shows the values indicated by the blocks in the block map in the FAT system.

FAT12FAT12 FAT16FAT16 FAT32FAT32 사용 가능을 표시Mark available 000000 00000000 0000000000000000 예약된 클러스터 표시Show reserved cluster 001001 00010001 0000000100000001 사용자 데이터User data 002-FF6002-FF6 0002-FFF60002-FFF6 00000002-0FFFFFF600000002-0FFFFFF6 배드 클러스터Bad Cluster FF7FF7 FFF7FFF7 0FFFFFF70FFFFFF7 종료 표시End mark FF8-FFFFF8-FFF FFF8-FFFFFFF8-FFFF 0FFFFFF8-0FFFFFFF0FFFFFF8-0FFFFFFF

상기 블록이 표시하는 값은 시스템의 구현에 따라 달라질 수 있다. NTFS 혹은 HPFS와 같은 다른 파일 시스템에서는 해당 파일 시스템의 약속된 정의에 따라 값을 표시한다.The value indicated by the block may vary depending on the implementation of the system. Other file systems, such as NTFS or HPFS, display values according to the promised definition of the file system.

그런데, 이들 데이터가 항시 순차적으로 저장될 수는 없다. 파일들이 삭제되고 저장되는 과정에서 사용할 수 있는 저장 공간은 저장 매체의 곳곳에 산발적으로 존재할 수 있다. 블록 맵은하나의 파일을 구성하는 여러 데이터 블록에서 순차적으로 데이터를 읽을 수 있도록 블록의 위치를 연결 리스트로 구성한다. 이러한 연결은 블록 맵의 블록을 통해 이루어진다.However, these data may not always be stored sequentially. Storage space that can be used while files are deleted and stored may be scattered throughout the storage medium. The block map organizes the positions of the blocks into a linked list so that data can be read sequentially from several data blocks forming one file. This connection is made through blocks in the block map.

이하 본 명세서에서는 블록 맵을 구성하는 블록을 매핑 블록이라 한다.Hereinafter, in the present specification, a block constituting the block map is called a mapping block.

도 2는 종래의 파일 시스템에서 블록 맵을 통해 파일의 저장을 보여주는 개념도이다. 블록 맵은 전술한 바와 같이, 데이터 영역의 저장 단위인 데이터 블록에 대한 정보를 가지고 있다. 데이터 블록은 512 byte, 1024 byte 등 파일 시스템에 따라 달라질 수 있다. 2 is a conceptual diagram illustrating storage of a file through a block map in a conventional file system. As described above, the block map has information about a data block that is a storage unit of the data area. The data block may vary depending on the file system such as 512 byte or 1024 byte.

file.txt가 저장된 방식을 살펴보면 file.txt는 시작되는 데이터 블록의 정보를 보여주는 매핑 블록의 시작 위치를 가리킨다. 블록 맵의 내부는 이 파일이 저장된 데이터 블록들을 나타내는 매핑 블록들을 순차적으로 연결하여 링크를 구성하고 있다. file.txt는 3이라는 데이터 블록에 저장되어 있음을 알 수 있다. 따라서 이 파일의 데이터를 읽기 위해서는 3이라는 주소의 매핑 블록을 참조해야 한다. 이하 설명의 편의를 위해 blockmap(k)는 k 주소의 매핑 블록을 의미하고, datablock(k)는 k 주소의 데이터 블록을 의미한다.Looking at how file.txt is stored, file.txt points to the beginning of the mapping block that shows the information of the data block that starts. The inside of the block map forms a link by sequentially connecting the mapping blocks representing the data blocks in which the file is stored. You can see that file.txt is stored in a data block called 3. Therefore, to read the data in this file, you need to refer to the mapping block at address 3. For convenience of explanation, blockmap (k) means a mapping block of k addresses, and datablock (k) means a data block of k addresses.

blockmap(3)는 0004을 가지는데, 이는 이 파일을 구성하는 다음 데이터가 4번지, 즉 datablock(4)에 저장되어 있음을 의미한다. 이 4번지의 데이터 블록에 대한 정보는 4번지의 매핑 블록에 저장되어 있다. 그리고 blockmap(4)에는 0006의 값을 가지는데, 이는 다음 데이터가 데이터 블록 6번지에 저장됨을 보여준다. 이렇게 블록 맵은 파일을 구성하는 데이터들을 순차적으로 읽을 수 있도록 한다. 도 2의 예에서 file.txt는 매핑 블록의 연결을 통해, 데이터 블록 3번지, 4번지, 6번지, 7번지, 8번지에 순차적으로 저장됨을 보여준다. blockmap(8)의 값은 0xffff인데 이는 파일의 종료를 의미한다. 0xffff가 아닌 다른 값을 약속하여 파일의 종료를 나타낼 수도 있다. 그러나 혼돈을 피하기 위해 매핑 블록의 주소와는 겹치지 않는 값이어야 한다. 예를 들어, 0xffff을 주소로 하는 매핑 블록이 존재하면 혼돈이 발생하므로 이보다 더 큰 값 혹은 겹치지 않는 다른 값을 사용해야 할 것이다.blockmap (3) has 0004, which means that the next data constituting this file is stored in address 4, namely datablock (4). Information about the data block of address 4 is stored in the mapping block of address 4. Blockmap (4) has a value of 0006, which shows that the next data is stored in data block 6. In this way, the block map can sequentially read the data constituting the file. In the example of FIG. 2, file.txt shows that data blocks are sequentially stored in data blocks 3, 4, 6, 7, and 8 through the connection of mapping blocks. The value of blockmap (8) is 0xffff, which means the end of the file. A value other than 0xffff may be promised to indicate the end of the file. However, to avoid confusion, it should be a value that does not overlap with the address of the mapping block. For example, if there is a mapping block addressed to 0xffff, you will have confusion, so you will have to use a larger value or a different value that does not overlap.

블록 맵을 바탕으로 한 파일 시스템을 이용할 경우, 물리적으로 연결되어있지 않는 경우에도 논리적인 연결을 제공하여 데이터를 저장할 수 있는 장점이 있다. 그런데 파일을 삭제, 이동 등을 수행시에 문제가 발생할 수 있다. 이들 문제점을 도 3을 통해 살펴보고자 한다.When using a file system based on a block map, there is an advantage that data can be stored by providing a logical connection even when not physically connected. However, a problem may occur when deleting or moving a file. These problems will be discussed with reference to FIG. 3.

도 3은 종래의 파일 시스템에서 파일 삭제시 오류의 발생을 보여주는 블록도이다.3 is a block diagram illustrating occurrence of an error when deleting a file in a conventional file system.

도 3에서는 도 2의 file.txt를 삭제하는 과정을 보여준다. file.txt는 5개의 데이터 블록으로 되어 있다. 파일을 삭제하기 위해서는 5개의 데이터 블록에 해당하는 매핑 블록을 0의 값으로 해야 한다. 그리고, 이렇게 0으로 삭제하는 과정이 끝난 후 파일 시스템 내의 file.txt를 지워야 한다. 만약 파일 시스템 내의 file.txt가 지워지지 않는다면, 블록 맵에서는 데이터가 삭제되었는데, 파일 시스템 내에서 file.txt가 존재하여, 데이터의 무결성이 손상된다. 도 3은 블록 맵에서는 파일의 삭제와 관련된 작업이 수행되었으나 파일 시스템에서 해당 파일이 여전히 존재하는 경우를 보여준다.3 illustrates a process of deleting file.txt of FIG. 2. file.txt consists of five data blocks. To delete a file, the mapping block corresponding to five data blocks must be set to zero. After this zero deletion process, file.txt must be deleted from the file system. If file.txt in the file system is not deleted, the data is deleted from the block map, but file.txt exists in the file system, which compromises the integrity of the data. FIG. 3 shows a case in which a task related to deleting a file has been performed in the block map but the file still exists in the file system.

고정형 저장 장치에서는 파일에 대한 삭제, 이동 등의 작업 후 확인을 하는 방식으로 무결성을 제공하고 있다. 그런데 이동형 저장 장치의 경우는 데이터의 무결성을 제공하기가 어렵다. 파일 작업 중에 이동형 저장 장치가 쉽게 제거되는 경우, 파일 작업의 일부만 이루어진 상태가 존재하기 때문이다. 또한 이동형 저장 장치를 많이 사용하는 휴대용 디지털 장치의 경우, 배터리를 통해 전원을 공급받으므로 파일 작업 도중에 전원이 나가는 경우, 역시 파일 작업의 일부만 이루어진 상태가 존재할 수 있다.In fixed storage devices, integrity is provided by verifying after deleting or moving files. However, in the case of a portable storage device, it is difficult to provide data integrity. If a removable storage device is easily removed during a file operation, it is because only a portion of the file operation exists. In addition, in the case of a portable digital device that uses a lot of removable storage devices, since the power is supplied through the battery, when the power goes out during the file operation, a part of the file operation may also exist.

종래에, 파일의 무결성을 제공하기 위한 특허(한국 공개특허 2000-0057005)가 존재하였다. 이 발명은 파일 시스템에서 두 개의 외부 파일을 구비하며, 파일 시스템에 대한 정보를 보유한다. 그러나 이는 파일의 길이, 데이터 종류에 대한 정보를 포함하며, 파일이 갱신된 후에 상기 두 개의 파일을 수정한다. 두 개의 파일을 통해 파일 시스템의 무결성을 유지하여 일관성을 유지하는 방법이지만, 이는 파일 작업중의 오류 보다는 파일 시스템에 누적된 오류 등을 수정하는 기능을 제공한다.In the past, there has been a patent (Korean Patent Application Laid-Open No. 2000-0057005) for providing the integrity of the file. The invention has two external files in the file system and holds information about the file system. However, it contains information about the length and data type of the file and modifies the two files after the file is updated. It is a method to maintain file system integrity through two files to maintain consistency, but it provides a function to correct errors accumulated in the file system rather than errors in file operations.

따라서, 파일 연산 중에 이동형 저장 장치의 제거 또는 전원의 문제가 발생 하여도 파일의 무결성을 보장하는 방안이 필요하다.Therefore, there is a need for a method of guaranteeing the integrity of a file even if a removable storage device or a power problem occurs during file operation.

본 발명의 기술적 과제는 이동형 저장 장치의 데이터 무결성을 보장하는데 있다.An object of the present invention is to ensure the data integrity of a removable storage device.

본 발명의 다른 기술적 과제는 이동형 저장 장치의 파일 연산 중에 발생하는 오류를 복구하는데 있다.Another object of the present invention is to recover from errors occurring during file operations of a removable storage device.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects that are not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명은 이동형 저장 장치의 데이터 무결성을 보장하는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for ensuring data integrity of removable storage devices.

본 발명의 일 실시예에 따른 이동형 저장 장치의 데이터 무결성을 보장하는 방법은 어플리케이션 또는 운영체계로부터 파일 연산에 대한 요청을 수신하는 단계, 상기 요청한 파일 연산에 대한 정보를 생성하는 단계, 상기 정보를 로그 파일에 저장하는 단계 및 상기 저장한 연산 정보에 따라 파일 연산을 수행하는 단계를 포함한다.According to an embodiment of the present invention, a method of guaranteeing data integrity of a mobile storage device may include receiving a request for a file operation from an application or an operating system, generating information on the requested file operation, and logging the information. Storing in a file and performing a file operation according to the stored operation information.

본 발명의 다른 실시예에 따른 이동형 저장 장치의 데이터 무결성을 보장하는 방법은 파일 시스템의 구동을 요청하는 명령을 수신하는 단계, 상기 파일 시스템에 존재하는 로그 관리자를 통해 로그 파일의 최근 파일 연산에 대한 정보를 검 토하는 단계 및 상기 정보와 저장 장치의 파일들의 정보를 비교하여, 상기 로그 파일의 최근 파일 연산이 완료되지 않은 경우, 상기 정보에 따라 파일 연산을 재수행하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of guaranteeing data integrity of a removable storage device, the method including receiving a command for requesting to drive a file system, and a log file for a recent file operation through a log manager present in the file system. Reviewing the information and comparing the information with the information of the files in the storage device, and if the recent file operation of the log file is not completed, performing a file operation according to the information.

본 발명의 일 실시예에 따른 데이터 무결성을 보장하는 장치는 어플리케이션 또는 운영체계로부터 파일 연산에 대한 요청을 수신하는 파일 시스템, 파일의 데이터가 저장된 데이터 블록, 상기 데이터 블록에 대한 정보를 저장한 매핑 블록들의 집합인 블록 맵, 파일 연산에 대한 정보들의 집합인 로그 파일 및 상기 로그 파일에 파일 연산 정보를 저장하고, 상기 연산 정보를 데이터 블록과 블록 맵과 비교하는 로그 관리자를 포함한다.An apparatus for guaranteeing data integrity according to an embodiment of the present invention includes a file system that receives a request for a file operation from an application or an operating system, a data block storing data of a file, and a mapping block storing information about the data block. And a log manager for storing file operation information in the log file and comparing the operation information with the data block and the block map.

본 명세서에서 사용하는 용어를 정리하면 다음과 같다.The terms used in the present specification are summarized as follows.

컴퓨터를 구성하는 저장매체는 파일 시스템과 실제 저장되는 데이터들로 구성된다. 파일 시스템은 전술한 바와 같이, 파일을 효율적으로 관리하기 위한 시스템을 의미한다. 현재 많은 시스템에서 다양하게 사용되는 파일 시스템에 대해 간략히 살펴보면 다음과 같다.The storage media that make up a computer consist of a file system and the data that is actually stored. As described above, the file system refers to a system for efficiently managing files. The following is a brief overview of the file systems used in many systems.

- FAT(File Allocation Table)FAT (File Allocation Table)

FAT은 윈도우시스템에서 지원하는 파일 시스템으로, 디스크에 파일 테이블의 형태로 존재한다. FAT의 손상시 복구를 위해 FAT는 두 개가 존재한다. 윈도우 NT가 지원하는 파일 시스템중 가장 심플한 형태이다. FAT은 초기 파일 시스템으로 현재 FAT12, FAT16, FAT32등이 등장하고 있다. FAT16은 윈도우 운영 체계외에도 다른 운영체계에서도 사용 가능하다. FAT is a file system supported by the Windows system and exists on the disk in the form of a file table. There are two FATs to recover from a FAT corruption. This is the simplest form of file system supported by Windows NT. FAT is an early file system, and now FAT12, FAT16, FAT32, etc. are appearing. FAT16 can be used in other operating systems besides the Windows operating system.

- HPFS(High Performance File System)HPFS (High Performance File System)

OS/2 1.2에서 도입한 파일 시스템으로, FAT의 디렉토리 구조를 포함하지만 파일 이름에 기반한 자동 정렬 기능을 포함하고 있다. 이름 관습(Naming convention)에 대한 유연성을 증대시키며 파일 할당에 있어서의 단위를 클러스터에서 물리적 섹터로 하여 디스크의 손실을 줄이고 있다. HPFS는 하나의 파일을 일련의 연결된 섹터에 저장할 수 있게 하여 속도를 증가시키고 있다.Introduced in OS / 2 1.2, the file system includes a directory structure in FAT, but includes automatic sorting based on file names. It increases the flexibility of the Naming convention and reduces the disk loss by making the unit of file allocation the physical sector in the cluster. HPFS increases speed by allowing a file to be stored in a series of connected sectors.

- NTFS(New Technology File System)NTFS (New Technology File System)

NTFS는 파일을 디렉토리로 관리하며 HPFS와 같이 정렬을 가능하게 한다. 또한 파일 시스템의 오류에 대한 복구와 섹터의 삭제를 막기 위한 기능을 제공한다. 파일에 대해 행해진 작업들이 무엇인지 검토하여 이러한 작업을 취소시킴으로써 파일 시스템 내의 일치성을 유지하도록 한다. 윈도우 NT에서 주로 사용하며, 리눅스에서도 사용하는 파일 시스템이다.NTFS manages files as directories and allows sorting like HPFS. It also provides the ability to recover from file system errors and prevent sector deletion. Review what has been done to the file and cancel it to ensure consistency within the file system. It is mainly used in Windows NT, and is also used in Linux.

- 파일 연산File operations

파일 시스템에서 파일에 대해 수행하는 작업을 의미한다. 데이터의 변경을 필요로 하는 연산은 디렉토리와 파일의 생성, 삭제와 잘라내기, 파일과 디렉토리의 이름을 변경하고, 데이터를 추가하기, 파일을 병합하기, 파일/디렉토리의 특성 변경하기 등이 있다. 디렉토리란 일종의 파일로써, 다른 파일들에 대한 정보를 저장하고 있다. 디렉토리는 다른 파일 또는 디렉토리에 대한 이름과 시작 데이터 블록 맵 정보 및 기타 정보를 저장하고 있는 파일로 볼 수 있다.The action taken on a file in the file system. Operations that require changes to data include creating and deleting directories and files, deleting and truncating, renaming files and directories, adding data, merging files, and changing file / directory properties. A directory is a file that stores information about other files. A directory can be viewed as a file that stores names, starting data block map information, and other information about other files or directories.

이러한 파일 시스템은 컴퓨터 이외에도 데이터를 저장하는 디지털 장치에도 적용된다. 따라서 휴대폰, PDA, 노트북, 디지털 TV 등 디지털 데이터를 다루는 기기에도 파일 시스템을 적용할 수 있다. 또한 이동형 저장 장치인 플로피 디스크, 플래쉬 메모리, 메모리 스틱 듀오, 또는 SD 카드나 MMC(MultiMedia Card) 메모리 등에도 파일 시스템을 적용할 수 있다.This file system applies to digital devices that store data in addition to computers. Therefore, the file system can be applied to devices that handle digital data such as mobile phones, PDAs, notebook computers, and digital TVs. The file system can also be applied to removable storage devices such as floppy disks, flash memory, memory stick duo, or SD card or MMC (MultiMedia Card) memory.

파일 시스템들은 각각의 특징을 가지고 있다. 상기에 열거한 파일 시스템을 포함한 대부분의 파일 시스템의 구조는 도 1과 같다. 각 파일의 위치에 대한 정보를 가지는 블록 맵과 이들 파일을 구성하는 데이터(비트)들의 모음이다. File systems have their own characteristics. The structure of most file systems including the file systems listed above is shown in FIG. A block map that contains information about the location of each file, and a collection of data (bits) that make up these files.

도 4는 본 발명의 일 실시예에 따른 파일 시스템과 저장 장치의 구성을 보여준다.4 illustrates a configuration of a file system and a storage device according to an embodiment of the present invention.

본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈'은 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 기능들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구 성요소들 및 모듈들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.The term '~ part' used in this embodiment, that is, '~ module' means a hardware component such as software, FPGA or ASIC, and the module performs certain functions. However, modules are not meant to be limited to software or hardware. The module may be configured to be in an addressable storage medium and may be configured to play one or more processors. Thus, as an example, a module may include components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, subroutines. , Segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules. In addition, the components and modules may be implemented to play one or more CPUs in a device or secure multimedia card.

파일 시스템(10)에는 로그 관리자(50)가 존재한다. 로그 관리자는 파일 시스템이 전원이 나가거나, 이동형 저장 장치가 제거되어 파일 시스템이 비정상적으로 종료되었을 경우 시스템이 시작할 때 저장 장치에 기록되어 있는 정보를 읽어서 미완료된 파일 시스템의 연산을 완료한다.The log system 50 exists in the file system 10. The log manager reads the information recorded in the storage device when the system starts up and completes the operation of the incomplete file system when the file system loses power or the removable storage device is abnormally terminated.

로그 파일은 실제 데이터 저장 장치(500)의 일부를 차지할 수 있고, 또는 파일 시스템 내부에 구현할 수도 있다. 도 4는 데이터 저장 장치(500)의 일부를 차지하는 예를 보여준다.The log file may occupy a portion of the actual data storage device 500 or may be implemented inside the file system. 4 shows an example of occupying a part of the data storage device 500.

로그 파일은 파일에 대해 이루어지는 연산에 대한 정보를 기록한다. 기록할 정보에 대한 설명은 도 5에서 한다. 로그 파일에 연산에 대한 정보를 기록한 후에는 파일 시스템은 실제 파일 연산을 수행한다. 여기서 파일 연산은 블록 맵만을 수정할 수도 있고 블록 맵과 데이터 블록 모두를 수정할 수도 있다.The log file records information about operations performed on the file. Description of information to be recorded is given in FIG. 5. After recording information about the operation in the log file, the file system performs the actual file operation. The file operation can modify only the block map or both the block map and the data block.

도 5는 본 발명의 일 실시예에 따른 로그 파일의 일 실시예를 보여주는 개념도이다. 로그 파일(150)에는 파일 연산과 관련된 정보들이 들어갈 수 있다. 로그 파일(150)는 전술한 바와 같이 파일 시스템 내부에 로그 관리자와 함께 존재할 수 있고, 또는 데이터 저장 장치에 파일의 형태로 저장될 수 있다. 로그 파일(150)은 시리얼 넘버(151), 연산의 종류(152), 관련 매핑 블록 주소(153), 연산 관련 정보(154), 그리고 연산 결과(155) 등으로 구성된다.5 is a conceptual diagram illustrating an embodiment of a log file according to an embodiment of the present invention. The log file 150 may include information related to file operations. The log file 150 may exist together with the log manager in the file system as described above, or may be stored in the form of a file in the data storage device. The log file 150 includes a serial number 151, a type of operation 152, an associated mapping block address 153, operation related information 154, and operation result 155.

시리얼 넘버(151)는 파일 연산 정보를 저장하기 위한 식별자가 된다. 데이터 저장 장치의 크기에 따라 로그 파일이 차지할 수 있는 저장 공간의 크기가 정해진다. 따라서, 일정 개수의 파일 연산 정보가 저장될 수 있으며, 파일 작업의 오류시에는 가장 최근의 파일 연산 정보를 참조하여 다시 파일 작업을 수행할 수 있다.The serial number 151 becomes an identifier for storing file operation information. The size of the storage space occupied by the log file depends on the size of the data storage device. Therefore, a certain number of file operation information may be stored, and when a file operation error occurs, the file operation may be performed again by referring to the most recent file operation information.

연산 종류(152)는 어떤 연산이 행해졌는지를 알려주는 부분이다. 도 5에서는 일 실시예로, 소문자는 파일, 대문자는 디렉토리에 대해 수행되는 연산을 의미하도록 했다. n, d, m은 각각 파일의 생성, 삭제, 이동을 의미하며, N, D, M은 각각 디렉토리의 생성, 삭제, 이동을 의미한다. 도 5에는 제시되지 않았으나, 데이터의 추가 등에 a 또는 A 등이 수행될 수 있다. 상기 파일 연산의 종류에 대한 정보는 하나의 문자로 간략히 처리할 수 있고, 더 자세한 정보를 포함하는 스트럭쳐(structure)로 구성하여 저장될 수 있다.The operation type 152 is a part which informs what operation was performed. In FIG. 5, in one embodiment, lowercase letters indicate operations performed on files and uppercase letters. n, d, and m denotes the creation, deletion, and movement of files, respectively, and N, D, and M denotes the creation, deletion, and movement of directories, respectively. Although not shown in FIG. 5, a or A may be performed to add data. The information about the type of file operation may be briefly processed as one character, and may be stored in a structure including more detailed information.

매핑 블록 주소(153)은 상기 파일 연산이 수행될 파일의 시작 매핑 블록을 저장한다. 이 매핑 블록에 어떤 데이터가 있는지를 검토하여 파일 연산의 완료 여부를 검토할 수 있다.The mapping block address 153 stores a start mapping block of a file on which the file operation is to be performed. You can examine what data is in this mapping block to see if the file operation is complete.

연산 관련 정보(154)에서는 연산에 필요한 정보를 포함한다. 파일 혹은 디렉토리의 생성이나 삭제시에 해당 파일 또는 디렉토리의 이름이 저장될 수 있으며, 파일 또는 디렉토리를 이동시킬 경우, 해당 파일 또는 디렉토리가 이동할 타겟이 되는 디렉토리에 대한 정보를 포함할 수 있다. 이는 각 구현과 파일 시스템에 따라 달라질 수 있다.The operation related information 154 includes information required for operation. When a file or directory is created or deleted, the name of the file or directory may be stored. When a file or directory is moved, the file or directory may include information about a directory to which the file or directory is to be moved. This may vary for each implementation and file system.

연산 결과(155)는 해당 파일 연산의 수행 여부에 대한 정보이다. 그러나 본 발명의 일 실시예에서는 모든 파일 연산에 대해 수행 결과를 저장하지 않는다. 많 은 파일 작업에 대해 일일이 수행 결과를 저장하는 것은 파일 시스템의 오버헤드를 낳게 되기 때문이다. 따라서 파일 작업이 일어난 후 항상 수행 결과를 저장하는 방식이 아니며, 로그 파일의 파일 연산은 그대로 존재한다. 수행 결과의 변경에 대해서는 추후 설명하고자 한다.The operation result 155 is information about whether to perform the file operation. However, one embodiment of the present invention does not store the execution result for all file operations. This is because storing the results of many file operations individually causes file system overhead. Therefore, it is not a way to always save the execution result after the file operation occurs, and the file operation of the log file exists as it is. The change of the execution result will be described later.

K라는 파일 연산이 완료된 후에, 다른 파일 연산이 일어나지 않으면, 로그 파일에는 K 파일 연산에 관한 정보가 남아있게 된다. 그 후, 이동형 저장 장치가 제거된 후 다시 결합하는 경우, 파일 시스템은 로그 파일을 먼저 검토한다. 로그 파일에 저장된 가장 최근의 파일 연산에 대한 정보(K라는 파일 연산에 대한 정보)와 블록 맵 및 데이터 블록의 구조를 검토하여, 상기 K 연산이 성공적으로 이루어졌는지를 검토한다. 그 결과 K 연산이 성공적으로 이루어지지 않았다면 다시 K 연산을 수행하며, K 연산의 결과와 일치하는 블록 맵과 데이터 블록이 존재한다면 추후 다른 작업을 수행한다. After the file operation K is completed and no other file operation occurs, information about the K file operation remains in the log file. Then, if the removable storage device is removed and then rejoined, the file system first examines the log file. The information on the most recent file operation stored in the log file (information on the file operation K) and the structure of the block map and the data block are reviewed to see if the K operation is successful. As a result, if K operation is not successful, K operation is performed again. If there is a block map and data block matching the result of K operation, another operation is performed later.

이 과정에서 만약 K 연산이 성공적으로 이루어지지 않아서 다시 K 연산을 수행하는 경우, 상기 연산이 완료된 후에 전술한 연산 결과(155) 부분을 1로 할 수 있다. 또는 K 연산을 재수행하는 것이 어려운 상황이라면, 다시 K 연산을 수행하지 않고, 없었던 작업으로 처리하기 위해 상기 연산 결과(155)를 2로 할 수 있다. 연산 결과(155)는 매 파일 작업마다 수정되는 것이 아니므로, 로그 파일의 생성에 따른 오버헤드를 줄일 수 있다. 특정 경우에만 연산 결과(155)에 작업의 결과를 저장하도록 하여, 파일 시스템의 시작시 과도한 비교 검토 과정을 피할 수 있게 한다.In this process, if the K operation is not performed successfully and the K operation is performed again, the aforementioned operation result 155 may be set to 1 after the operation is completed. Alternatively, if it is difficult to perform the K operation again, the operation result 155 may be set to 2 so as not to perform the K operation again, and to process the work that was not present. Since the operation result 155 is not modified for every file operation, the overhead of generating a log file can be reduced. Only in certain cases is it possible to store the results of the work in operation result 155, thereby avoiding excessive comparison review at the start of the file system.

도 6은 본 발명의 일 실시예에 따른 파일 삭제시 오류를 복구하는 과정을 보 여주는 블록도이다.6 is a block diagram illustrating a process of recovering an error when deleting a file according to an exemplary embodiment of the present invention.

파일 시스템은 파일 삭제를 위해 로그 파일(150)에 삭제 작업과 관련된 정보를 저장한다. (a)에서 알 수 있듯이, 삭제할 파일은 file.txt이며, 이는 매핑 블록 3, 4, 6, 7, 8의 순서로 연결되어 있다. 파일을 삭제하기 위해서는 파일 시스템에서 file.txt를 참조하는 부분을 삭제하며, file.txt에 할당된 매핑 블록 3, 4, 6, 7, 8를 재사용가능하도록 수정하여야 한다. 본 발명의 일 실시예에서는 매핑 블록을 재사용하기 위해서 매핑 블록의 값을 0으로 수정하는 방식을 취하고자 한다.The file system stores information related to the delete operation in the log file 150 for file deletion. As you can see in (a), the file to delete is file.txt, which is linked in the order of mapping blocks 3, 4, 6, 7, and 8. To delete a file, delete the part referring to file.txt in the file system, and modify the mapping blocks 3, 4, 6, 7, and 8 assigned to file.txt to be reusable. In an embodiment of the present invention, in order to reuse the mapping block, a method of modifying the value of the mapping block to 0 is intended.

(b)에서는 매핑 블록을 수정한 결과이다. 매핑 블록 3, 4, 6, 7, 8의 값은 0으로 이제 다른 파일 또는 디렉토리에 의해 사용 가능하다. 그러나 아직 파일 시스템 내의 file.txt에 관한 정보가 삭제되지는 않았다. 매핑 블록의 수정 이후에 file.txt를 파일 시스템에서 삭제하기 전에, 이동형 저장 장치가 제거되거나 전원이 차단될 수 있다. 이 경우, 매핑 블록의 수정은 완료되었지만, 파일 시스템에는 파일이 계속 남아있는, 무결성이 충족되지 못하는 상황이 발생한다. (b) shows the result of modifying the mapping block. The values of the mapping blocks 3, 4, 6, 7, and 8 are zero and can now be used by other files or directories. However, the information about file.txt in the file system has not been deleted yet. After modifying the mapping block, before deleting file.txt from the file system, the removable storage device may be removed or powered off. In this case, the modification of the mapping block is completed, but the file system remains intact, and the integrity is not satisfied.

그러나 로그 파일(150)에 삭제와 관련된 정보가 존재하므로, 다시 이동형 저장 장치가 시스템에 결합 또는 부착되거나 전원이 공급될 경우, 재작업이 가능하다. However, since information related to deletion exists in the log file 150, rework is possible when the removable storage device is coupled or attached to the system or powered on.

파일 시스템은 이동형 저장 장치와 디지털 장치가 결합하거나 전원이 공급될 경우, 로그 파일(150)을 검토한다. 최근 파일 연산과 관련된 로그 정보를 살펴보아, 이 로그에 맞게 작업이 수행되었는지를 검토한다. 도 6에서 로그 파일에 저장된 로그는 file.txt의 시작 매핑 블록 주소가 3이며, 삭제(d) 작업임을 알리고 있 다. 이 정보에 따라, 파일 시스템은 file.txt가 존재하면 이를 제거한다. 3번지의 매핑 블록이 0므로 매핑블록을 수정하는 작업은 필요하지 않기 때문에, 파일 시스템은 다음 작업을 수행한다.The file system examines the log file 150 when the removable storage device and the digital device are combined or powered up. Examine the log information related to recent file operations to see if work was performed on this log. In FIG. 6, the log stored in the log file indicates that the start mapping block address of file.txt is 3 and the delete (d) operation is performed. Based on this information, the file system removes file.txt if it exists. Since the mapping block at address 3 is zero, no modification is necessary for the mapping block, so the file system does the following:

여기서 연산 결과(155)부분을 수정할 수 있다. 이는 파일 시스템의 구현 또는 시스템의 상황에 따라 달라질 수 있는데, 완료되지 않은 파일 연산을 재수행 후 결과를 저장할 수 있으며, 재수행이 어려운 파일 연산인 경우에는 추후 다시 재수행을 하지 않도록 하는 정보를 저장할 수 있다. 또한, 잦은 비교 검토를 막기 위해, 재수행후에 해당 로그 정보의 연산 결과(155)에 수행 완료라고 설정할 수 있다.Here, the operation result 155 may be modified. This may vary depending on the implementation of the file system or the circumstances of the system, where the results can be saved after the re-execution of an incomplete file operation, or in the case of a file operation that is difficult to re-execute. Can be. Also, in order to prevent frequent comparison and review, the operation result 155 of the log information may be set to be completed after rerunning.

도 7은 본 발명의 다른 실시예에 따른 파일 생성시 오류를 복구하는 과정을 보여주는 블록도이다.7 is a block diagram illustrating a process of recovering an error when generating a file according to another exemplary embodiment of the present invention.

파일 시스템은 새로운 파일을 저장하기 위해 시작 매핑 블록을 할당한다. 이러한 파일 생성 작업에 앞서, 로그 파일에 newfile.txt를 생성함을 기록하기 위해 정보를 저장한다. 파일 생성시에는 매핑 블록의 주소를 저장하지 않을 수 있다. 이는 파일 시스템에 파일 생성 정보를 저장하고, 사용 가능한 매핑 블록을 찾은 후에 해당 매핑 블록에 관한 정보(예를 들어 주소와 같은)와 파일명을 파일 시스템에서 유지할 수 있다.The file system allocates a start mapping block to store the new file. Before creating this file, save the information to record that you've created newfile.txt in the log file. When creating a file, the address of the mapping block may not be stored. It stores file creation information in the file system, finds an available mapping block, and maintains information about the mapping block (such as an address) and file name in the file system.

우선 로그 파일에 파일 연산에 관한 정보를 저장한다. 연산의 종류(152)는 파일의 생성을 의미하는 n으로 설정할 수 있으며, 관련 매핑 블록 주소(153)은 0 또는 공란으로 설정될 수 있다. 이는 파일 시스템의 구현에 따라 달라질 수 있는 데, 파일 생성 이전에 파일의 시작 매핑 블록의 주소를 알 수 있는 경우에는 해당 매핑 블록의 주소가 설정될 수 있다. 그리고 연산 관련 정보(154)는 생성할 파일명이 존재한다. First, we store information about file operations in a log file. The operation type 152 may be set to n, which means generation of a file, and the associated mapping block address 153 may be set to 0 or blank. This may vary depending on the implementation of the file system. If the address of the starting mapping block of the file is known before the file is created, the address of the corresponding mapping block may be set. The operation related information 154 includes a file name to be generated.

로그 파일에 파일 생성과 관련된 정보를 저장한 후, (a)와 같이 파일 시스템에 파일 생성과 관련된 작업을 한다. newfile.txt를 생성하고, 사용 가능한 매핑 블록의 주소를 넣기위해 블록 맵을 검색한다. 이 과정에서 전원이 나가거나 이동형 저장 장치가 제거되는 경우, 파일 시스템에는 매핑 블록이 존재하지 않는 파일(newfile.txt)이 존재한다.After storing the information related to file creation in the log file, perform the work related to file creation in the file system as shown in (a). Create newfile.txt and search the block map to enter the address of the available mapping block. If power goes out or the removable storage device is removed during this process, a file (newfile.txt) exists in the file system without a mapping block.

그러나 다시 이동형 저장 장치가 결합하거나 전원이 공급될 경우, 파일 시스템은 로그 파일을 검토하여 최근에 이루어진 파일 연산과 실제 저장 장치의 파일 구조가 일치하는지 비교한다. 그 결과 파일 시스템에는 newfile.txt의 생성이 완료되지 못함을 알고, 남은 작업을 수행한다. 그 결과 (b)와 같이 newfile.txt에 매핑 블록 5번지가 할당된다.However, when removable storage devices are combined or powered up again, the file system examines the log file and compares the file structure of a recent storage operation with the actual storage device's file structure. As a result, the file system knows that the creation of newfile.txt is not complete and does the rest. As a result, 5 mapping blocks are allocated to newfile.txt as shown in (b).

도 6과 7은 본 발명의 일 실시예에 따라 파일 연산 전에 연산에 관한 정보를 저장하게 된다. 저장하는 정보는 파일 시스템과 연산의 성격에 따라 다양하게 달라질 수 있으며, 이는 도 5에서 살펴본 로그 파일을 구성하는 정보 항목과 달라질 수 있다. 도 5에서 제시한 로그 파일은 본 발명을 구현하기 위한 일 실시예에 해당하며, 이에 한정되는 것은 아니다. 일례로, 디렉토리 이동시 해당 디렉토리의 이동 전의 부모 디렉토리(parent directory)와 이동 후의 부모 디렉토리에 대한 정보도 포함될 수 있다. 또한 이동할 디렉토리 내에 존재하는 파일들에 대한 정보도 포함 될 수 있다.6 and 7 store information about an operation before a file operation according to an embodiment of the present invention. The information to be stored may vary depending on the file system and the nature of the operation, which may be different from the information items constituting the log file shown in FIG. The log file shown in FIG. 5 corresponds to an embodiment for implementing the present invention, but is not limited thereto. For example, when a directory is moved, information about a parent directory before the movement of the directory and a parent directory after the movement may also be included. It can also contain information about the files that exist in the directory to be moved.

도 8은 본 발명의 일 실시예에 따른 파일 작업과 오류 복구의 과정을 보여주는 순서도이다.8 is a flowchart illustrating a process of file operation and error recovery according to an embodiment of the present invention.

(a)는 파일에 관련된 연산을 수행시에 파일 시스템에서 수행하는 작업을 보여준다. 먼저 운영 체계 혹은 다른 어플리케이션에서 파일 연산에 대한 명령을 수신한다(S102). 이 연산에 대한 정보를 로그 파일에 저장하기 위해서는 연산 정보를 생성하여야 한다(S104). 생성하게 될 연산 정보의 예는 도 5의 항목들이 될 수 있다.(a) shows the operations performed by the file system when performing operations related to files. First, a command for file operation is received from an operating system or another application (S102). In order to store information about the operation in a log file, operation information must be generated (S104). Examples of operation information to be generated may be the items of FIG. 5.

그리고 로그 파일에 수행할 연산에 대한 정보를 저장한다(S106). 이는 파일 시스템 내의 로그 관리자가 수행할 수 있다. 로그 파일에 저장한 후, 파일 시스템은 해당 파일 연산을 수행한다(S108).In operation S106, information about an operation to be performed is stored in a log file. This can be done by a log manager within the file system. After storing in the log file, the file system performs the file operation (S108).

(b)는 전원이 차단된 후에 다시 공급되거나 또는 이동형 저장 장치가 디지털 장치와 결합 경우의 작업을 보여준다.(b) shows the operation when the power supply is cut off or the portable storage device is combined with the digital device.

전원이 공급되거나, 이동형 저장 장치와 디지털 장치가 결합하게 되면 파일 시스템이 시작한다(S110). 파일 시스템은 디지털 장치로부터 구동을 요청받을 수 있으며, 또는 이동형 저장 장치내의 어플리케이션에 의해 시작될 수 있다. 그리고 파일 시스템 내의 로그 관리자는 로그 파일을 검토한다(S112). 검토는 로그 파일의 내용과 저장 장치의 파일 상태를 검토하여 알 수 있다. 로그 파일에 기록된 연산 내용의 결과가 블록 맵 혹은 데이터 블록에 존재하는지를 비교, 검토한다(S114). 만약 존재한다면, 해당 연산은 성공적으로 수행된 것이므로 다른 연산의 수행을 위 해 대기한다(S118). 만약 존재하지 않거나 비교 결과 서로 다르다면, 해당 연산을 재수행하여 무결성을 유지할 수 있다(S116). 만약 해당 연산을 수행하는 것에 장애가 있다면, 해당 로그 파일의 연산 정보를 더 이상 수행하지 않도록, 연산 결과 부분을 수정할 수 있다. When the power is supplied or when the portable storage device and the digital device are combined, the file system starts (S110). The file system may be requested to drive from a digital device or may be started by an application in a removable storage device. The log manager in the file system reviews the log file (S112). A review can be obtained by examining the contents of the log file and the file status of the storage device. The result of the operation contents recorded in the log file is compared and examined in the block map or the data block (S114). If present, the operation is successful and waits for another operation (S118). If it does not exist or the result is different from each other, the operation can be performed again to maintain integrity (S116). If there is a problem in performing the operation, the operation result can be modified so that the operation information of the log file is no longer executed.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art will appreciate that the present invention can be embodied in other specific forms without changing the technical spirit or essential features of the present invention. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. The scope of the present invention is indicated by the scope of the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and the equivalent concept are included in the scope of the present invention. Should be interpreted.

본 발명을 구현함으로써 이동형 저장 장치에 저장된 데이터의 무결성을 보장할 수 있다.By implementing the present invention it is possible to ensure the integrity of the data stored in the removable storage device.

본 발명을 구현함으로써 이동형 저장 장치의 파일 연산 중에 발생하는 오류를 복구할 수 있다.By implementing the present invention, it is possible to recover from errors occurring during file operations of removable storage devices.

Claims (23)

어플리케이션 또는 운영체계로부터 파일 연산에 대한 요청을 수신하는 단계;Receiving a request for file operation from an application or an operating system; 파일 시스템이 상기 요청한 파일 연산에 대한 정보를 생성하는 단계;Generating, by a file system, information about the requested file operation; 상기 파일 시스템에 존재하는 로그 관리자를 통해 상기 생성된 정보를 로그 파일에 저장하는 단계; 및Storing the generated information in a log file through a log manager residing in the file system; And 상기 저장된 연산 정보에 따라 파일 연산을 수행하는 단계를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.And performing a file operation according to the stored operation information. 제 1항에 있어서,The method of claim 1, 상기 파일은 디렉토리를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.And the file comprises a directory. 제 1항에 있어서,The method of claim 1, 상기 정보는 상기 연산이 완료된 경우의 상기 이동형 저장 장치의 파일 구조에 대한 정보의 일부를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.Wherein the information includes a portion of information about a file structure of the removable storage device when the operation is complete. 제 1항에 있어서,The method of claim 1, 상기 정보는 상기 연산이 완료되지 못한 경우 상기 연산을 재수행하기 위해 필요한 정보를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.Wherein the information includes information needed to re-perform the operation if the operation is not completed. 제 1항에 있어서,The method of claim 1, 상기 수행하는 단계는 상기 파일 연산을 수행한 후에 파일 연산의 결과를 로그 파일에 저장하지 않는, 이동형 저장 장치의 데이터 무결성을 보장하는 방법.And the performing step does not store the result of the file operation in a log file after performing the file operation. 삭제delete 제 1항에 있어서,The method of claim 1, 상기 파일 연산은 파일을 삭제하는 연산, 생성하는 연산, 내용을 추가하는 연산, 이동하는 연산, 복사하는 연산, 또는 병합하는 연산 중 어느 하나인 이동형 저장 장치의 데이터 무결성을 보장하는 방법.The file operation may be any one of a file deleting operation, a generating operation, an operation of adding a content, a moving operation, a copying operation, or a merging operation. 파일 시스템의 구동을 요청하는 명령을 수신하는 단계;Receiving a command for requesting to start the file system; 상기 파일 시스템에 존재하는 로그 관리자를 통해 로그 파일의 최근 파일 연산에 대한 정보를 검토하는 단계; 및Reviewing information on a recent file operation of a log file through a log manager existing in the file system; And 상기 검토된 파일 연산에 대한 정보와 저장 장치의 파일들의 정보를 비교하는 단계; Comparing the information about the reviewed file operation with information of files in a storage device; 상기 비교 결과를 기초로하여 로그 파일의 최근 파일 연산이 완료되지 않은 경우, 상기 검토된 파일 연산에 대한 정보에 따라 파일 연산을 재수행하는 단계를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.If the latest file operation of the log file is not completed based on the comparison result, re-performing the file operation according to the information about the reviewed file operation. 제 8항에 있어서,The method of claim 8, 상기 파일은 디렉토리를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.And the file comprises a directory. 제 8항에 있어서,The method of claim 8, 상기 정보는 상기 연산이 완료된 경우의 상기 이동형 저장 장치의 파일 구조에 대한 정보의 일부를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.Wherein the information includes a portion of information about a file structure of the removable storage device when the operation is complete. 제 8항에 있어서,The method of claim 8, 상기 정보는 상기 연산이 완료되지 못한 경우 상기 연산을 재수행하기 위해 필요한 정보를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.Wherein the information includes information needed to re-perform the operation if the operation is not completed. 삭제delete 제 8항에 있어서,The method of claim 8, 상기 파일 연산은 파일을 삭제하는 연산, 생성하는 연산, 내용을 추가하는 연산, 이동하는 연산, 복사하는 연산, 또는 병합하는 연산 중 어느 하나인 이동형 저장 장치의 데이터 무결성을 보장하는 방법.The file operation may be any one of a file deleting operation, a generating operation, an operation of adding a content, a moving operation, a copying operation, or a merging operation. 제 8항에 있어서,The method of claim 8, 상기 로그 파일은 시리얼 넘버, 파일 연산의 종류에 대한 정보, 파일 연산의 결과를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.The log file includes a serial number, information on a type of file operation, and a result of the file operation. 제 8항에 있어서,The method of claim 8, 파일 연산을 재수행하는 단계 이후에, After the step of performing the file operation again, 상기 최근 파일 연산에 대한 정보에 재수행하였음을 나타내는 플래그를 설정하는 단계를 포함하는 이동형 저장 장치의 데이터 무결성을 보장하는 방법.And setting a flag indicating that the information on the latest file operation has been performed again. 어플리케이션 또는 운영체계로부터 파일 연산에 대한 요청을 수신하고, 상기 수신된 파일 연산에 대한 정보를 생성하는 파일 시스템;A file system that receives a request for a file operation from an application or an operating system and generates information about the received file operation; 파일의 데이터가 저장된 데이터 블록;A data block in which data of the file is stored; 상기 데이터 블록에 대한 정보를 저장한 매핑 블록들의 집합인 블록 맵;A block map that is a set of mapping blocks that store information about the data block; 상기 생성된 파일 연산에 대한 정보들의 집합인 로그 파일; 및A log file which is a set of information on the generated file operation; And 상기 로그 파일에 파일 연산 정보를 저장하고, 상기 연산 정보를 데이터 블록과 블록 맵과 비교하는 로그 관리자를 포함하는 데이터 무결성을 보장하는 장치.And a log manager for storing file operation information in the log file and comparing the operation information with a data block and a block map. 제 16항에 있어서,The method of claim 16, 상기 매핑 블록은 상기 파일의 데이터가 저장된 데이터 블록에 대한 정보를 가지고 있는 데이터 무결성을 보장하는 장치.And the mapping block has information about a data block in which data of the file is stored. 제 16항에 있어서,The method of claim 16, 상기 파일은 디렉토리를 포함하는 데이터 무결성을 보장하는 장치.And the file includes a directory. 제 16항에 있어서,The method of claim 16, 상기 로그 파일에 저장되는 파일 연산 정보는 상기 연산이 완료된 경우의 상기 이동형 저장 장치의 파일 구조에 대한 정보의 일부를 포함하는 데이터 무결성을 보장하는 장치.The file operation information stored in the log file includes a part of information on the file structure of the removable storage device when the operation is completed. 제 16항에 있어서,The method of claim 16, 상기 정보는 상기 연산이 완료되지 못한 경우 상기 연산을 재수행하기 위해 필요한 정보를 포함하는 데이터 무결성을 보장하는 장치.And the information includes information necessary to re-perform the operation if the operation is not completed. 제 20항에 있어서,The method of claim 20, 상기 정보는 상기 연산이 완료되지 못한 경우 상기 연산을 재수행한 후 상기 연산의 완료를 알리는 정보를 포함하는 데이터 무결성을 보장하는 장치.And the information includes information indicating completion of the operation after performing the operation again when the operation is not completed. 제 16항에 있어서,The method of claim 16, 상기 파일 연산은 파일을 삭제하는 연산, 생성하는 연산, 내용을 추가하는 연산, 이동하는 연산, 복사하는 연산, 또는 병합하는 연산 중 어느 하나인 데이터 무결성을 보장하는 장치.And the file operation is any one of a file deleting operation, a generating operation, an adding operation, a moving operation, a copying operation, and a merging operation. 제 16항에 있어서,The method of claim 16, 상기 로그 파일은 시리얼 넘버, 파일 연산의 종류에 대한 정보, 파일 연산의 결과를 포함하는 데이터 무결성을 보장하는 장치.And the log file includes a serial number, information on the type of file operation, and a result of the file operation.
KR1020040065910A 2004-08-20 2004-08-20 Method and apparatus for guaranteeing data integrity of portable storage device KR100704621B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040065910A KR100704621B1 (en) 2004-08-20 2004-08-20 Method and apparatus for guaranteeing data integrity of portable storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040065910A KR100704621B1 (en) 2004-08-20 2004-08-20 Method and apparatus for guaranteeing data integrity of portable storage device

Publications (2)

Publication Number Publication Date
KR20060017287A KR20060017287A (en) 2006-02-23
KR100704621B1 true KR100704621B1 (en) 2007-04-10

Family

ID=37125385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040065910A KR100704621B1 (en) 2004-08-20 2004-08-20 Method and apparatus for guaranteeing data integrity of portable storage device

Country Status (1)

Country Link
KR (1) KR100704621B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100643286B1 (en) * 2004-11-22 2006-11-10 삼성전자주식회사 Removable storage and recovering method for file system using removable sotrages
KR100818993B1 (en) * 2006-05-12 2008-04-02 삼성전자주식회사 Apparatus and method for file management using assignment of virtual blocks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04114219A (en) * 1990-09-05 1992-04-15 Jienetetsuku:Kk External storage device for computer or the like
KR20030065223A (en) * 2002-01-31 2003-08-06 삼성전자주식회사 Host equipped with stabilizing function for flash memory and the method thereof
JP2004178788A (en) * 2002-11-15 2004-06-24 Matsushita Electric Ind Co Ltd Recording device and recording method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04114219A (en) * 1990-09-05 1992-04-15 Jienetetsuku:Kk External storage device for computer or the like
KR20030065223A (en) * 2002-01-31 2003-08-06 삼성전자주식회사 Host equipped with stabilizing function for flash memory and the method thereof
JP2004178788A (en) * 2002-11-15 2004-06-24 Matsushita Electric Ind Co Ltd Recording device and recording method

Also Published As

Publication number Publication date
KR20060017287A (en) 2006-02-23

Similar Documents

Publication Publication Date Title
US10430286B2 (en) Storage control device and storage system
CN102779180B (en) The operation processing method of data-storage system, data-storage system
US8924664B2 (en) Logical object deletion
US11301379B2 (en) Access request processing method and apparatus, and computer device
US7363540B2 (en) Transaction-safe FAT file system improvements
EP2176795B1 (en) Hierarchical storage management for a file system providing snapshots
US9880759B2 (en) Metadata for data storage array
WO2017041654A1 (en) Method and apparatus for writing and acquiring data in distributed storage system
US20120084272A1 (en) File system support for inert files
WO2005124530A2 (en) Method for controlling memory card and method for controlling nonvolatile semiconductor memory
US20070112891A1 (en) Converting file-systems that organize and store data for computing systems
JP2005512171A (en) Efficient management of large files
US20050165853A1 (en) Method and apparatus for localized protected imaging of a file system
US11494334B2 (en) Embedded reference counts for file clones
CN112115002B (en) Method and device for recovering file from damaged or untrusted mechanical hard disk
US20060036663A1 (en) Method and apparatus for effective data management of files
EP3542273B1 (en) Systems and methods for recovering lost clusters from a mounted volume
CN114625696B (en) File recovery method and device, electronic equipment and storage medium
EP1103894A2 (en) Fragmented data recovery method
CN112214356B (en) File data recovery method, device, computer equipment and storage medium
KR100704621B1 (en) Method and apparatus for guaranteeing data integrity of portable storage device
JP2008123104A (en) Data-access device
KR100643286B1 (en) Removable storage and recovering method for file system using removable sotrages
CN114880277B (en) Block device snapshot method, system and storage medium
CN116774918A (en) Data cleaning method, device, equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100330

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee