KR20070061087A - Obeject based file system and method for inputting and outputting - Google Patents

Obeject based file system and method for inputting and outputting Download PDF

Info

Publication number
KR20070061087A
KR20070061087A KR1020060044256A KR20060044256A KR20070061087A KR 20070061087 A KR20070061087 A KR 20070061087A KR 1020060044256 A KR1020060044256 A KR 1020060044256A KR 20060044256 A KR20060044256 A KR 20060044256A KR 20070061087 A KR20070061087 A KR 20070061087A
Authority
KR
South Korea
Prior art keywords
file
data
input
file data
output
Prior art date
Application number
KR1020060044256A
Other languages
Korean (ko)
Other versions
KR100785774B1 (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 한국전자통신연구원
Publication of KR20070061087A publication Critical patent/KR20070061087A/en
Application granted granted Critical
Publication of KR100785774B1 publication Critical patent/KR100785774B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

An object-based file I/O system and a method thereof are provided to offer performance and extension of the object-based file I/O system by storing a file to a file system based on an object storage device and reading a stored object from the file system in the object unit. An object I/O manager(205) performs file data I/O by connecting to the object storage device(102), which stores the file data by assigning the file data in a logical object unit. A metadata manager(203) stores and searches metadata by connecting to a metadata server(101) storing the metadata of the file data. A file access processor(202) transceives the metadata of the file data corresponding to an I/O request of a client(200) with the metadata manager. If the client requests the file data input, an object cache manager(204) extracts and transmits the metadata of the file data to the file access processor, directly receives the file data from the client, and transmits the file data to the object I/O manager by loading the file data to a memory in a page unit.

Description

객체 기반 파일 입출력 시스템 및 방법{Obeject based file system and method for inputting and outputting}Object based file system and method for inputting and outputting}

도 1은 객체 기반 스토리지 환경을 구성하는 시스템 구성요소의 실시 예이다.1 is an embodiment of a system component constituting an object-based storage environment.

도 2는 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템을 구성하는 시스템의 구성요소를 나타내는 도면이다.2 is a diagram illustrating the components of a system configuring an object-based file input / output system according to a preferred embodiment of the present invention.

도 3은 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에서 객체 캐쉬와 파일 inode의 저장 정보 및 관계를 도시한 개념도이다.FIG. 3 is a conceptual diagram illustrating storage information and relationships of an object cache and a file inode in an object-based file input / output system according to an exemplary embodiment of the present invention.

도 4은 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에서 객체 캐쉬와 객체 입출력 요청의 저장 정보 및 관계를 도시한 개념도이다.4 is a conceptual diagram illustrating storage information and relationships of an object cache and an object input / output request in an object-based file input / output system according to a preferred embodiment of the present invention.

도 5는 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에서 객체 기반 파일 데이터의 입력요청에 대한 흐름도이다.5 is a flowchart illustrating an input request of object-based file data in an object-based file input / output system according to a preferred embodiment of the present invention.

도 6은 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에서 객체 기반 파일 데이터의 출력요청에 대한 흐름도이다.6 is a flowchart illustrating an output request of object-based file data in an object-based file input / output system according to a preferred embodiment of the present invention.

본 발명은 객체 저장 장치를 기반으로 하는 파일 시스템에 관한 것으로, 보다 상세하게는 객체 저장 장치상에 객체 단위로 저장되어 있는 파일 데이터를 클라이언트의 입출력 요청에 따라 상기 파일 데이터를 페이지 단위로 메모리에 적재하여 상기 클라이언트가 요청하는 파일 데이터를 객체 단위로 입출력할 수 있는 시스템 및 방법에 관한 것이다.The present invention relates to a file system based on an object storage device, and more particularly, to load file data stored in the unit of an object on an object storage device in a unit of memory according to an I / O request of a client. The present invention relates to a system and a method for inputting and outputting file data requested by the client in object units.

인터넷 환경의 급속한 발전과 네트워크 컴퓨팅 환경으로의 진화는 대량의 데이터에 대한 고성능 처리와 저장 장치의 확장 그리고 플랫폼에 독립적인 데이터의 안전한 공유를 제공할 수 있는 저장 시스템을 요구하고 있다. 하지만 기존의 NAS(Network Attached Storage)와 SAN(Storage Area Network)은 성능과 확장성 그리고 데이터에 대한 보안 등의 면에서 이러한 요구사항을 만족시키기에 한계를 드러내고 있다. 이에 객체 저장 장치(object-based storage) 기술은 NAS와 SAN이 갖는 한계를 해결할 수 있는 고성능, 고확장성, 데이터 보안, 플랫폼 독립적인 데이터 공유 등을 제공할 수 있는 기술로 인식되고 있다.The rapid development of the Internet environment and the evolution to network computing environments require storage systems that can provide high performance processing of large amounts of data, expansion of storage devices, and secure sharing of platform independent data. Traditional network attached storage (NAS) and storage area networks (SANs), however, are showing limitations in meeting these requirements in terms of performance, scalability, and data security. Object-based storage technology is recognized as a technology that can provide high performance, high scalability, data security, and platform-independent data sharing to solve the limitations of NAS and SAN.

이러한 객체 저장 장치를 기반으로 하는 파일 시스템은 네트워크 상에 분산된 클라이언트-서버 구조로, 클라이언트 파일 시스템, 메타 데이터 서버, 객체 저장 장치로 구성된다. 클라이언트 파일 시스템은 클라이언트 응용에 파일 접근 인터페이스를 제공하고, 메타 데이터 서버는 객체 저장 장치에 저장된 파일에 대한 메타 데이터를 관리하면서 클라이언트에 대한 인증과 접근제어를 담당한다. 그리고 객체 저장 장치는 파일 객체에 속하는 데이터와 속성 정보를 저장하고 관리한다.The file system based on such an object storage device has a client-server structure distributed over a network, and is composed of a client file system, a metadata server, and an object storage device. The client file system provides a file access interface to the client application, and the metadata server manages the metadata for the files stored in the object storage device and is responsible for authentication and access control for the client. The object storage device stores and manages data and attribute information belonging to the file object.

이러한 객체 기반 파일 시스템 모델은 기존의 블록 장치 기반 파일 시스템에 서 파일과 디렉토리에 대한 논리적인 데이터 관리를 수행하는 부분과 저장 장치에 데이터 블록을 할당하고 맵핑하는 것과 같은 물리적인 저장 관리 부분을 분리하여 물리적인 저장 관리 부분을 객체 저장 장치에서 수행하도록 하며 기존의 블록 기반 인터페이스를 객체 기반 인터페이스로 변경하여야 한다. This object-based file system model separates the part that performs logical data management of files and directories from the existing block device-based file system and the physical part of storage management such as allocating and mapping data blocks to storage devices. The physical storage management part should be executed in the object storage device, and the existing block-based interface should be changed to the object-based interface.

따라서 객체 기반 파일 시스템은 기존의 블록 장치 기반 파일 시스템과는 달리 객체 저장 장치에 저장된 파일 데이터를 객체 단위로 처리하여야 하고, 또한 객체는 여러 개로 분산 저장될 수 있으므로 이에 대한 파일 데이터의 저장 경로 등의 처리과정도 필요로 하는 문제점이 있다.Therefore, unlike the existing block device-based file system, the object-based file system must process the file data stored in the object storage device in units of objects, and since the objects can be distributed and stored in multiple units, the storage path of the file data There is also a problem that requires processing.

본 발명이 이루고자 하는 기술적 과제는, 객체 저장 장치를 기반으로 하는 파일 시스템에서 파일을 객체 단위로 저장하는 방법과 저장된 객체를 읽을 수 있는 방법을 제공함으로써 객체 기반 파일시스템의 성능과 확장을 제공하는데 있다.An object of the present invention is to provide performance and extension of an object-based file system by providing a method of storing files in an object unit and a method of reading stored objects in a file system based on an object storage device. .

본 발명이 이루고자 하는 기술적 과제는, 객체 기반 파일 입출력 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made in an effort to provide a computer-readable recording medium having recorded thereon a program for executing an object-based file input / output method on a computer.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 객체 기반 파일 입출력 시스템의 일 실시예로, 파일 데이터를 논리적인 객체 단위로 할당하여 저장하는 객체 저장 장치와 연결되어 상기 파일 데이터의 입/출력을 수행하는 객체 입출력 관리부; 상기 파일 데이터의 메타 데이터를 저장하는 메타 데이터 서버와 연결되어 상기 메타 데이터를 저장하고 검색하는 메타 데이터 관리부; 클라이언트의 입/출력 요청에 해당하는 파일데이터의 메타데이터를 상기 메타데이터 관리부와 송수신하는 파일 접근 처리부; 및 상기 클라이언트가 소정의 파일데이터의 입력을 요청한 경우 상기 파일 데이터의 메타 데이터를 추출하여 상기 파일 접근 처리부에 송신하고 상기 클라이언트로부터 상기 파일 데이터를 직접 전송받아 페이지 단위로 메모리에 적재하여 상기 객체 입출력 관리부에 송신하는 객체 캐쉬 관리부를 포함한다.In one embodiment of the object-based file input and output system according to the present invention for solving the technical problem, connected to an object storage device for allocating and storing file data in logical object units to perform the input / output of the file data An object input / output manager; A meta data manager connected to a meta data server storing meta data of the file data to store and retrieve the meta data; A file access processor for transmitting and receiving metadata of file data corresponding to an input / output request of a client to and from the metadata manager; And when the client requests input of predetermined file data, extracts meta data of the file data and sends the file data to the file access processing unit, receives the file data directly from the client, loads the file data in a page unit, and loads the object data into a memory unit. Includes an object cache manager to send to.

또한, 상기 객체 캐쉬 관리부는 상기 클라이언트가 객체 저장 장치상에 저장된 파일 데이터의 출력을 요청한 경우 상기 객체 입출력 관리부를 통하여 상기 파일 데이터를 전송받아 페이지 단위로 메모리에 적재하여 상기 클라이언트에게 송신하는 것을 특징으로 한다.The object cache manager may receive the file data through the object input / output manager and load the file data in a page unit and transmit the file data to the client when the client requests output of the file data stored on the object storage device. do.

또한, 상기 메타 데이터 관리부는 객체 데이터 페이지의 객체 캐쉬 헤더 리스트, 객체 속성 페이지의 객체 캐쉬 헤더 리스트, 객체 개수, 객체저장 장치 식별자 배열, 객체 식별자 배열, 객체 크기 배열을 상기 파일 데이터의 메타데이터로 기록하는 것을 특징으로 한다.The metadata management unit may record the object cache header list of the object data page, the object cache header list of the object property page, the number of objects, the object storage device identifier array, the object identifier array, and the object size array as metadata of the file data. Characterized in that.

또한, 상기 객체 캐쉬 관리부는 객체 데이터 페이지, 객체 저장 장치 식별자, 객체 식별자, 객체 데이터 페이지 인덱스, 객체 데이터 페이지 크기, 객체 데이터 페이지 상태, 메타 데이터 정보를 객체 캐쉬 헤더로 메모리에 기록하여 상기 파일 데이터를 메모리에 적재하는 것을 특징으로 한다.The object cache manager may write an object data page, an object storage device identifier, an object identifier, an object data page index, an object data page size, an object data page state, and metadata information to an memory as an object cache header to store the file data. It is characterized by loading in the memory.

또한, 상기 객체 캐쉬 관리부는 상기 클라이언트의 파일 데이터 입/출력 요청에 관한 객체 입출력 요청 리스트, 객체 입출력 요청 타입, 객체 캐쉬 헤더 리스 트, 객체 저장장치 정보, 객체 입출력 상태를 상기 객체 입출력 관리부에 전송하여 상기 파일 데이터에 대한 입출력을 수행하는 것을 특징으로 한다.The object cache manager may transmit the object input / output request list, the object input / output request type, the object cache header list, the object storage information, and the object input / output status related to the file data input / output request of the client to the object input / output manager. And performing input and output on the file data.

상기 의 기술적 과제를 해결하기 위한 본 발명에 따른 객체 기반 파일 입출력 방법의 일 실시예로, 파일 데이터를 논리적인 객체 단위로 할당하여 저장된 상기 파일 데이터의 입/출력을 수행하는 객체 입출력 단계; 상기 파일 데이터의 메타 데이터를 저장하고 검색하는 메타 데이터 관리단계; 클라이언트의 입/출력 요청에 해당하는 파일데이터의 메타데이터를 상기 메타데이터 관리부와 송수신하는 파일 접근 처리단계; 및 상기 클라이언트가 소정의 파일 데이터의 입력을 요청한 경우 상기 파일 데이터의 메타 데이터를 추출하여 저장하고, 상기 클라이언트로부터 상기 파일 데이터를 직접 전송받아 페이지 단위로 메모리에 적재하여 상기 파일 데이터를 논리적인 객체 단위로 할당하여 저장하는 객체 캐쉬 관리단계를 포함한다.According to an embodiment of the present invention, there is provided an object-based file input / output method, comprising: an object input / output step of performing file input / output by storing file data in logical object units; A metadata management step of storing and retrieving metadata of the file data; A file access processing step of transmitting and receiving metadata of file data corresponding to an input / output request of a client to and from the metadata manager; And when the client requests input of predetermined file data, extracts and stores metadata of the file data, receives the file data directly from the client, loads the file data into a memory in page units, and stores the file data in a logical object unit. Object cache management step of assigning and storing.

또한, 본 발명에 의한 객체 기반 파일 입출력 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.The present invention also includes a computer-readable recording medium having recorded thereon a program for executing the object-based file input / output method according to the present invention.

이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.

도 1은 객체 기반 스토리지 환경을 구성하는 시스템 구성요소의 실시 예이다. 도 1을 참조하면, 객체 기반 파일 시스템은 클라이언트 파일 시스템(100), 메타 데이터 서버(101), 객체 저장 장치(102)를 포함하여 구성된다.1 is an embodiment of a system component constituting an object-based storage environment. Referring to FIG. 1, an object based file system includes a client file system 100, a metadata server 101, and an object storage device 102.

클라이언트 파일 시스템(100)은 클라이언트 응용(200)으로부터의 파일 접근 요청을 받아서 처리하는 역할을 수행한다.The client file system 100 receives and processes a file access request from the client application 200.

메타 데이터 서버(101)는 파일 시스템의 모든 파일에 대한 메타 데이터를 저장하고 관리한다.The metadata server 101 stores and manages metadata about all files in the file system.

객체 저장 장치(102)에는 파일의 데이터와 속성 정보를 저장하고 관리한다. 따라서 객체 기반 파일 시스템에서는 파일의 메타 데이터와 데이터를 각각 메타 데이터 서버(101)와 객체 저장 장치(102)에 별도로 저장하고 관리한다.The object storage device 102 stores and manages data and attribute information of a file. Accordingly, the object-based file system stores and manages metadata and data of the file separately in the metadata server 101 and the object storage device 102, respectively.

객체 기반 파일 시스템에서 파일 데이터는 논리적인 객체 단위로 할당되어 저장된다. 이때 객체 기반 파일 시스템을 구성하는 객체 저장 장치(102)들의 구성 환경에 따라 여러 개의 객체가 생성될 수 있으며 이러한 객체는 객체 저장 장치(102)에 분산되어 저장된다.In the object-based file system, file data is allocated and stored in logical object units. In this case, a plurality of objects may be created according to the configuration environment of the object storage devices 102 constituting the object-based file system, and these objects are distributed and stored in the object storage device 102.

따라서 파일은 여러 개의 객체들로 구성될 수 있다. 이러한 객체들은 객체 저장 장치(102) 마다 유일한 객체 식별자에 의해 구별된다. 그리고 파일을 구성하는 객체를 구별하기 위해 객체 식별자와 함께 객체 저장 장치의 식별자도 사용한다.Thus, a file can consist of several objects. These objects are distinguished by unique object identifiers per object storage device 102. The identifier of the object storage device is used together with the object identifier to distinguish the objects that constitute the file.

객체는 파일을 생성할 때 메타 데이터 서버(101)에 의해 이루어지고 생성된 객체에 대한 식별자 정보는 파일의 메타 데이터 정보를 유지하는 파일 inode(400)에서 관리된다.The object is made by the metadata server 101 when the file is created and the identifier information for the created object is managed in the file inode 400 which maintains the metadata information of the file.

도 2는 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템을 구성하는 시스템의 구성요소를 나타내는 도면이다. 도 2를 참조하면, 클라이언트 파일 시스템(100)은 파일 접근 인터페이스(201), 파일 접근 처리기(202), 파일 메타 데이터 관리기(203), 객체 캐쉬 관리기(204) 및 객체 입출력 관리기(205)를 포 함하여 구성된다.2 is a diagram illustrating the components of a system configuring an object-based file input / output system according to a preferred embodiment of the present invention. Referring to FIG. 2, the client file system 100 includes a file access interface 201, a file access processor 202, a file metadata manager 203, an object cache manager 204, and an object input / output manager 205. It is configured together.

파일 접근 인터페이스(201)는 클라이언트 응용(200)에서 객체 기반 파일 시스템을 접근하기 위한 일반적인 인터페이스를 제공한다. The file access interface 201 provides a generic interface for accessing the object based file system in the client application 200.

파일 접근 처리기(202)에 전달된 파일 접근 요청은 파일 접근 처리기(202)에서 파일 메타 데이터 관리기(203) 또는 객체 캐쉬 관리기(204)를 통하여 파일 접근 요청을 처리한다.The file access request passed to the file access processor 202 processes the file access request through the file metadata manager 203 or the object cache manager 204 in the file access processor 202.

파일 메타 데이터 관리기(203)는 메타 데이터 서버(101)를 통하여 파일의 메타 데이터 처리와 관리를 담당한다.The file metadata manager 203 is in charge of meta data processing and management of the file through the metadata server 101.

객체 캐쉬 관리기(204)는 파일 데이터 객체를 페이지 단위로 캐슁할 수 있도록 지원한다.The object cache manager 204 supports caching of file data objects on a page basis.

객체 입출력 관리기(205)는 객체 저장 장치(102)로 객체 입력을 또는 객체 저장 장치로(102)부터 객체 출력을 수행할 수 있다.The object input / output manager 205 may perform object input to or from the object storage device 102.

도 3은 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에서 객체 캐쉬와 파일 inode의 저장 정보 및 관계를 도시한 개념도이다. 도 3을 참조하면, 객체 캐쉬 헤더에는 객체 데이터 페이지, 객체 저장 장치 식별자, 객체 식별자, 객체 데이터 페이지 인덱스, 객체 데이터 페이지 크기, 객체 데이터 페이지 상태, 파일 inode 정보 등이 기록되고, 파일 inode에는 객체 데이터 페이지의 객체 캐쉬 헤더 리스트, 객체 속성 페이지 헤더 리스트, 객체 개수, 객체 저장 장치 식별자 배열 및 객체 크기 배열 등이 기록된다.FIG. 3 is a conceptual diagram illustrating storage information and relationships of an object cache and a file inode in an object-based file input / output system according to an exemplary embodiment of the present invention. Referring to FIG. 3, an object data header, an object storage device identifier, an object identifier, an object data page index, an object data page size, an object data page state, file inode information, and the like are recorded in the object cache header. The object cache header list of the page, the object property page header list, the number of objects, an array of object storage identifiers, and an array of object sizes are recorded.

객체 캐쉬(300)는 파일 데이터를 페이지 단위로 캐슁하는 객체 데이터 페이 지들과 파일의 객체 속성을 저장하는 객체 속성 페이지들로 구성된다. 이러한 객체 캐쉬에 포함된 페이지들은 객체 캐쉬 헤더(301) 구조로 관리된다.The object cache 300 is composed of object data pages that cache file data in units of pages and object property pages that store object properties of a file. Pages included in the object cache are managed by the object cache header 301 structure.

객체 캐쉬 헤더(301)에는 실제 파일 데이터 또는 객체 속성 데이터를 캐슁하기 위해 할당된 시스템 메모리 영역을 가리키는 객체 데이터 페이지(302) 또는 객체 속성 페이지(302), 객체 캐쉬 헤더(301)가 가리키는 객체 캐쉬(300)에 캐슁된 데이터 또는 속성이 저장된 객체 저장 장치 식별자(303)와 객체 식별자(304), 객체 데이터 또는 속성이 저장된 객체에서의 인덱스(305), 캐슁된 객체 데이터 또는 속성 페이지의 크기(306), 현재 객체 데이터 또는 속성 페이지의 상태 정보(307), 그리고 객체 데이터 또는 속성 페이지를 포함하는 파일의 inode를 가리키는 필드(308)를 유지하고 관리한다. 이러한 정보들은 객체 캐쉬(300)를 관리하고 객체의 입출력을 위해서 사용된다.The object cache header 301 includes an object data page 302 or an object property page 302 pointing to an area of system memory allocated for caching actual file data or object attribute data, and an object cache (referred to by the object cache header 301). Object storage identifier 303 and object identifier 304, the index 305 in the object in which the object data or attribute is stored, the size of the cached object data or property page 306 Maintains and manages state information 307 of the current object data or property page, and a field 308 that points to the inode of the file containing the object data or property page. Such information is used for managing the object cache 300 and input and output of the object.

반면에 파일 inode(310)에는 파일이 포함하는 객체와 관련하여 다음과 같은 정보를 유지한다. 먼저 객체 캐쉬에는 동일한 파일에 속하는 여러 개의 객체 데이터 페이지와 객체 속성 페이지가 캐슁될 수 있다(311-312). 그리고 이들 간에 서로 연결되어 파일 inode에서 관리된다. 그리고 파일 inode에는 파일을 구성하는 객체의 개수(313)와 객체들이 저장된 객체 저장 장치들의 식별자 그리고 각 객체 저장 장치에서 유일한 객체 식별자와 각 객체의 크기를 포함한다(314-316). 따라서 파일 객체 데이터 또는 객체 속성의 입출력을 위하여 객체 캐쉬를 할당하였을 때는 할당된 객체 캐쉬를 파일 inode에 연결한다.On the other hand, the file inode 310 maintains the following information regarding the objects contained in the file. First, several object data pages and object property pages belonging to the same file may be cached in the object cache (311-312). They are then linked together and managed in file inodes. The file inode includes the number 313 of objects constituting the file, an identifier of object storage devices in which the objects are stored, an object identifier unique to each object storage device, and a size of each object (314-316). Therefore, when an object cache is allocated for input / output of file object data or object property, the allocated object cache is connected to the file inode.

도 4은 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에 서 객체 캐쉬와 객체 입출력 요청의 저장 정보 및 관계를 도시한 개념도이다. 도 4를 참조하면, 객체 입출력 관리기(205)에 전달되는 객체 입출력 요청 신호에는 객체 입출력 요청 리스트, 객체 입출력 요청 타입, 객체 캐쉬 헤더 리스트, 객체 저장 장치 정보 및 객체 입출력 상태 등의 정보가 기록되어 있다.4 is a conceptual diagram illustrating storage information and relationships of an object cache and an object input / output request in an object-based file input / output system according to an exemplary embodiment of the present invention. Referring to FIG. 4, information such as an object input / output request list, an object input / output request type, an object cache header list, object storage information, and an object input / output state are recorded in the object input / output request signal transmitted to the object input / output manager 205. .

클라이언트 응용(200)에 의한 파일 데이터의 입출력 요청은 객체 캐쉬(300)와 객체를 저장할 객체 저장 장치(102)에 대한 객체 입출력 요청(400)을 통하여 이루어진다. 객체 저장 장치(102)에 대한 객체 입출력 요청(400)은 한번에 여러 개가 동시에 요청될 수 있으며, 하나의 객체 입출력 요청(400)을 통하여 여러 개의 객체 데이터 또는 속성 페이지를 처리할 수 있다.The input / output request of the file data by the client application 200 is made through the object input / output request 400 to the object cache 300 and the object storage device 102 to store the object. Multiple object input / output requests 400 for the object storage device 102 may be requested at the same time, and may process several object data or property pages through one object input / output request 400.

따라서 객체 입출력 요청(400)에는 동일한 객체 저장 장치로의 다음 객체 입출력 요청(401), 객체 입출력 요청의 타입(402), 객체 입출력 요청에 포함된 객체 데이터 또는 속성 페이지들의 리스트(403), 객체 입출력 요청이 이루어지는 객체 저장 장치에 대한 정보(404), 그리고 객체 입출력의 상태(405)를 나타내는 필드들을 유지하고 관리한다. 이때 각 객체 입출력 요청(400)은 객체 저장 장치(102)의 하나의 객체에 대해서만 이루어진다.Accordingly, the object I / O request 400 includes the next object I / O request 401 to the same object storage device, the type 402 of the object I / O request, the list 403 of object data or property pages included in the object I / O request, and the object I / O. It maintains and manages information 404 on the object storage device from which the request is made, and fields indicating the state 405 of the object input / output. In this case, each object input / output request 400 is made only for one object of the object storage device 102.

도 5는 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에서 객체 기반 파일 데이터의 입력요청에 대한 흐름도이다. 도 5를 참조하면, 클라이언트가 파일 데이터의 입력요청에 따라 객체 저장 장치에 상기 파일 데이터를 저장하는 방법을 도 2의 시스템을 이용하여 설명한다.5 is a flowchart illustrating an input request of object-based file data in an object-based file input / output system according to a preferred embodiment of the present invention. Referring to FIG. 5, a method in which a client stores the file data in an object storage device according to an input request of file data will be described using the system of FIG. 2.

클라이언트 응용(200)으로부터의 파일 입력 요청은 먼저 객체 캐쉬(300)에 입력할 데이터가 이미 캐슁되어 있는 지를 체크한다(500).The file input request from the client application 200 first checks whether data to be input to the object cache 300 is already cached (500).

만약 데이터가 캐슁되어 있지 않으면, 객체 캐쉬에 데이터를 캐슁할 객체 데이터 페이지를 할당한다(501). 그리고 데이터가 저장될 객체와 객체 저장 장치에 대한 정보를 객체 데이터 페이지를 가리키는 객체 캐쉬 헤더에 설정한다(502).If data is not cached, an object data page for caching data is allocated to the object cache (501). In operation 502, information on an object in which data is to be stored and information on an object storage device are set in an object cache header indicating an object data page.

이때 객체와 객체 저장 장치는 데이터가 파일에 저장될 상대적인 위치에 따라서 파일 inode(400)에서 유지하는 객체와 객체 저장 장치 식별자를 객체 캐쉬 헤더(301)에 설정한다.At this time, the object and the object storage device set the object and the object storage device identifier maintained in the file inode 400 in the object cache header 301 according to the relative position where the data is stored in the file.

저장될 객체가 결정되면, 객체에 데이터를 저장할 공간이 충분한가를 체크한다(503). 그래서 만약 저장 공간이 불충분하면, 객체에 데이터를 저장할 수 있는 저장 공간을 미리 할당하도록 객체 저장 장치에 요청한다(504).When the object to be stored is determined, it is checked whether the object has enough space to store data (503). Thus, if the storage space is insufficient, the object storage device is requested (504) to pre-allocate storage space for storing data in the object.

그리고 나서 클라이언트 버퍼 공간에 있는 데이터를 할당된 객체 데이터 페이지로 복사(505)한 다음 객체 데이터 페이지의 상태가 변경되었고 최신 데이터를 캐슁하고 있음을 가리키도록 한다(506).It then copies the data in the client buffer space to the allocated object data page (505) and then indicates that the state of the object data page has changed and is caching the latest data (506).

만약 동기적으로 데이터를 저장하도록 요청된 경우(507)에는 먼저 객체 입력 요청을 생성하고(508), 저장할 객체 데이터 페이지를 생성된 객체 입력 요청에 연결(509)한 다음, 객체 저장 장치로 객체 입력 요청을 전달한다(510).If it is requested to store data synchronously (507), first create an object input request (508), connect the object data page to be stored to the generated object input request (509), and then input the object to the object storage device. Forward the request (510).

그렇지 않으면 여기서 변경된 채 캐싱된 페이지들은 추후에 시스템에서 주기적으로 변경된 페이지들을 객체 저장 장치(102)로 저장할 때, 객체 입력 요청을 만들고, 저장할 객체 데이터 페이지를 연결하여 객체 저장 장치로 전달된다.Otherwise, the cached pages that are changed here are made to the object storage device 102 when the system periodically stores the changed pages to the object storage device 102, and makes an object input request and connects the object data pages to be stored to the object storage device.

도 6은 본 발명의 바람직한 실시예에 따른 객체 기반 파일 입출력 시스템에 서 객체 기반 파일 데이터의 출력요청에 대한 흐름도이다. 도 6을 참조하면, 클라이언트가 파일 데이터의 출력요청에 따라 객체 저장 장치에 저장된 상기 파일 데이터를 출력하는 방법을 도 2의 시스템을 이용하여 설명한다.6 is a flowchart illustrating an output request of object-based file data in an object-based file input / output system according to a preferred embodiment of the present invention. Referring to FIG. 6, a method of outputting the file data stored in the object storage device in response to a request for outputting file data will be described using the system of FIG. 2.

파일 데이터를 객체 저장 장치(102)로부터 읽기 전에 먼저 객체 캐쉬에 이미 데이터가 캐슁되어 있는 지를 체크한다(600).Before reading the file data from the object storage device 102, it is first checked whether data is already cached in the object cache (600).

만약 캐슁되어 있지 않으면, 객체 캐쉬에 데이터를 읽어서 캐슁할 객체 데이터 페이지를 할당하고(602), 그렇지 않고 데이터가 이미 캐슁되어 있다면, 캐슁된 데이터가 최신 데이터인 지를 체크한다(601).If it is not cached, the object cache reads data and allocates an object data page to cache (602). Otherwise, if the data is already cached, it is checked whether the cached data is the latest data (601).

최신 데이터가 캐슁되어 있지 않으면, 객체 저장 장치로부터 최신 데이터를 읽기 위하여 읽을 데이터가 저장된 객체 저장 장치와 객체의 식별자를 객체 캐쉬 헤더에 설정한다(603). If the latest data is not cached, in order to read the latest data from the object storage device, an object storage device storing the data to be read and an identifier of the object are set in the object cache header (603).

이때도 객체 입력에서와 마찬가지로 읽을 데이터가 파일에 저장된 상대적인 위치에 따라서 파일 inode(310)에서 유지하는 객체와 객체 저장 장치 식별자를 객체 캐쉬 헤더(301)에 설정한다.In this case, as in the object input, the object cache and the object storage device identifier maintained in the file inode 310 are set in the object cache header 301 according to the relative position of the data to be read.

설정된 객체 캐쉬 헤더(301)들은 객체 출력 요청을 생성하여 연결(604-605)된 후에, 해당 객체 저장 장치로 객체 출력 요청이 전달한다(606).After the object cache headers 301 are generated and connected (604-605) to the object output request, the object output request is forwarded to the corresponding object storage device (606).

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기테이프, 플로피 디스크 및 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD_ROM, magnetic tape, floppy disks, and optical data storage, and may also include those implemented in the form of carrier waves (e.g., transmission over the Internet). . The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the present invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명은 객체 저장 장치상에 객체 단위로 저장되어 있는 파일 데이터를 클라이언트의 입출력 요청에 따라 상기 파일 데이터를 페이지 단위로 메모리에 적재하여 상기 클라이언트가 요청하는 파일 데이터를 객체 단위로 입출력을 제공함으로써, 파일 접근 인터페이스를 통하여 메타 데이터 서버로부터 인증과 파일에 대한 메타 데이터를 얻고 객체 저장 장치로부터 파일 객체를 직접 접근함으로써 시스템 성능을 향상시킬 수 있으며 시스템 성능의 저하 없는 확장을 제공할 수 있고 파일 시스템 서버의 작업 부하를 줄일 수 있으며, 클라이언트 응용들 간에 파일 시스템의 물리적인 구조에 독립적인 데이터 공유가 가능하다. 또한 객체 저장 장치에 저 장되는 논리적인 객체에 대한 별도의 보안 정책을 설정할 수 있다.According to the present invention, the file data stored in the object unit on the object storage device is loaded into the memory in the unit of page according to the input / output request of the client to provide the input / output of the file data requested by the client in the unit of object, Through the file access interface, authentication and file metadata can be obtained from the metadata server and file objects can be accessed directly from the object storage device to improve system performance and provide extensions without sacrificing system performance. It can reduce the workload and share data independent of the file system's physical structure among client applications. In addition, you can set a separate security policy for logical objects stored in the object storage device.

객체는 파일 데이터를 저장하는 논리적인 저장 단위로 데이터 접근 방법, 데이터 속성 정보, 데이터 보안 방법 등을 포함할 수 있다. 또한 객체에 대한 메타 데이터에 독립적인 객체 접근 인터페이스를 사용함으로써 이기종 플랫폼에서 객체를 안전하게 공유할 수 있는 특성을 제공한다.The object is a logical storage unit for storing file data and may include a data access method, data property information, and a data security method. It also provides the ability to securely share objects across heterogeneous platforms by using an object access interface that is independent of the metadata for the object.

Claims (10)

파일 데이터를 논리적인 객체 단위로 할당하여 저장하는 객체 저장 장치와 연결되어 상기 파일 데이터의 입/출력을 수행하는 객체 입출력 관리부;An object input / output management unit connected to an object storage device which allocates and stores file data in logical object units and performs input / output of the file data; 상기 파일 데이터의 메타 데이터를 저장하는 메타 데이터 서버와 연결되어 상기 메타 데이터를 저장하고 검색하는 메타 데이터 관리부;A meta data manager connected to a meta data server storing meta data of the file data to store and retrieve the meta data; 클라이언트의 입/출력 요청에 해당하는 파일데이터의 메타데이터를 상기 메타데이터 관리부와 송수신하는 파일 접근 처리부; 및A file access processor for transmitting and receiving metadata of file data corresponding to an input / output request of a client to and from the metadata manager; And 상기 클라이언트가 소정의 파일데이터의 입력을 요청한 경우 상기 파일 데이터의 메타 데이터를 추출하여 상기 파일 접근 처리부에 송신하고 상기 클라이언트로부터 상기 파일 데이터를 직접 전송받아 페이지 단위로 메모리에 적재하여 상기 객체 입출력 관리부에 송신하는 객체 캐쉬 관리부를 포함하는 것을 특징으로 하는 객체 기반 파일 입출력 시스템.When the client requests input of predetermined file data, the metadata of the file data is extracted and transmitted to the file access processing unit, the file data is directly received from the client, loaded into the memory on a page basis, and the object input / output management unit An object-based file input and output system comprising a transmitting object cache management unit. 제 1 항에 있어서, 상기 객체 캐쉬 관리부는The method of claim 1, wherein the object cache management unit 상기 클라이언트가 객체 저장 장치상에 저장된 파일 데이터의 출력을 요청한 경우 상기 객체 입출력 관리부를 통하여 상기 파일 데이터를 전송받아 페이지 단위로 메모리에 적재하여 상기 클라이언트에게 송신하는 것을 특징으로 하는 객체 기반 파일 입출력 시스템.And when the client requests output of the file data stored on the object storage device, receives the file data through the object input / output management unit, loads the file data in a page unit, and transmits the file data to the client. 제 1 항에 있어서,The method of claim 1, 상기 클라이언트가 객체 기반 파일 데이터에 대한 접근을 유도하는 인터페이스를 제공하는 파일 접근부를 더 포함하는 것을 특징으로 하는 객체 기반 파일 입출력 시스템.And a file access unit for providing an interface for inducing the client to access object-based file data. 제 1 항에 있어서, 상기 메타 데이터 관리부는The method of claim 1, wherein the metadata management unit 객체 데이터 페이지의 객체 캐쉬 헤더 리스트, 객체 속성 페이지의 객체 캐쉬 헤더 리스트, 객체 개수, 객체저장 장치 식별자 배열, 객체 식별자 배열, 객체 크기 배열을 상기 파일 데이터의 메타데이터로 기록하는 것을 특징으로 하는 객체 기반 파일 입출력 시스템.Object-based, characterized in that the object cache header list of the object data page, the object cache header list of the object property page, the number of objects, the object storage identifier array, the object identifier array, and the object size array are recorded as metadata of the file data. File I / O System. 제 1 항에 있어서, 상기 객체 캐쉬 관리부는The method of claim 1, wherein the object cache management unit 객체 데이터 페이지, 객체 저장 장치 식별자, 객체 식별자, 객체 데이터 페이지 인덱스, 객체 데이터 페이지 크기, 객체 데이터 페이지 상태, 메타 데이터 정보를 객체 캐쉬 헤더로 메모리에 기록하여 상기 파일 데이터를 메모리에 적재하는 것을 특징으로 하는 객체 기반 파일 입출력 시스템.The object data page, the object storage device identifier, the object identifier, the object data page index, the object data page size, the object data page state, and metadata information are written to the memory as an object cache header, and the file data is loaded into the memory. Object-based file I / O system. 제 1 항에 있어서, 상기 객체 캐쉬 관리부는The method of claim 1, wherein the object cache management unit 상기 클라이언트의 파일 데이터 입/출력 요청에 관한 객체 입출력 요청 리스트, 객체 입출력 요청 타입, 객체 캐쉬 헤더 리스트, 객체 저장장치 정보, 객체 입 출력 상태를 상기 객체 입출력 관리부에 전송하여 상기 파일 데이터에 대한 입출력을 수행하는 것을 특징으로 하는 객체 기반 파일 입출력 시스템.The object input / output request list, the object input / output request type, the object cache header list, the object storage information, and the object input / output status of the file data input / output request of the client are transmitted to the object input / output management unit to input / output the file data. Object-based file input and output system, characterized in that performing. 파일 데이터를 논리적인 객체 단위로 할당하여 저장된 상기 파일 데이터의 입/출력을 수행하는 객체 입출력 단계;An object input / output step of allocating file data in logical object units to perform input / output of the stored file data; 상기 파일 데이터의 메타 데이터를 저장하고 검색하는 메타 데이터 관리단계;A metadata management step of storing and retrieving metadata of the file data; 클라이언트의 입/출력 요청에 해당하는 파일데이터의 메타데이터를 상기 메타데이터 관리부와 송수신하는 파일 접근 처리단계; 및A file access processing step of transmitting and receiving metadata of file data corresponding to an input / output request of a client to and from the metadata manager; And 상기 클라이언트가 소정의 파일 데이터의 입력을 요청한 경우 상기 파일 데이터의 메타 데이터를 추출하여 저장하고, 상기 클라이언트로부터 상기 파일 데이터를 직접 전송받아 페이지 단위로 메모리에 적재하여 상기 파일 데이터를 논리적인 객체 단위로 할당하여 저장하는 객체 캐쉬 관리단계를 포함하는 것을 특징으로 하는 객체 기반 파일 입출력 방법.When the client requests input of predetermined file data, the metadata of the file data is extracted and stored, and the file data is directly received from the client and loaded into the memory in units of pages to store the file data in logical object units. Object-based file input and output method comprising the step of assigning and storing the object cache. 제 7 항에 있어서, 상기 객체 캐쉬 관리단계는The method of claim 7, wherein the object cache management step 상기 클라이언트가 기저장된 파일 데이터의 출력을 요청한 경우 상기 파일 데이터를 페이지 단위로 메모리에 적재하여 상기 클라이언트에게 송신하는 것을 특징으로 하는 객체 기반 파일 입출력 방법.If the client requests the output of the pre-stored file data, the object-based file input and output method characterized in that the file data is loaded into the memory in units of pages and transmitted to the client. 제 7 항에 있어서,The method of claim 7, wherein 상기 클라이언트가 객체 기반 파일 데이터에 대한 접근을 유도하는 인터페이스를 제공하는 파일 접근단계를 더 포함하는 것을 특징으로 하는 객체 기반 파일 입출력 방법.And a file access step in which the client provides an interface for inducing access to object-based file data. 제 7 항 내지 제 9 항 중 어느 한 항에 있어서,The method according to any one of claims 7 to 9, 상기 객체 기반 파일 입출력 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for performing the object-based file input / output method.
KR1020060044256A 2005-12-08 2006-05-17 Obeject based file system and method for inputting and outputting KR100785774B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050120049 2005-12-08
KR1020050120049 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061087A true KR20070061087A (en) 2007-06-13
KR100785774B1 KR100785774B1 (en) 2007-12-18

Family

ID=38357022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060044256A KR100785774B1 (en) 2005-12-08 2006-05-17 Obeject based file system and method for inputting and outputting

Country Status (1)

Country Link
KR (1) KR100785774B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101535703B1 (en) * 2012-09-28 2015-07-09 삼성에스디에스 주식회사 Apparatus and method for converting Value Object
KR101655157B1 (en) * 2015-04-21 2016-09-07 주식회사 씨와줄기 Apparatus and method for work process modeling using data oriented programming model

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100284574B1 (en) * 1997-10-27 2001-03-15 정선종 Automatic Object Storage System and How It Works
KR20020048122A (en) * 2000-12-16 2002-06-22 구자홍 Apparatus and method for database access through object registry of server
US7730213B2 (en) * 2000-12-18 2010-06-01 Oracle America, Inc. Object-based storage device with improved reliability and fast crash recovery
KR100622130B1 (en) * 2004-12-21 2006-09-19 한국전자통신연구원 Crash recovery system and method for a distributed file server using object based storage

Also Published As

Publication number Publication date
KR100785774B1 (en) 2007-12-18

Similar Documents

Publication Publication Date Title
TWI778157B (en) Ssd, distributed data storage system and method for leveraging key-value storage
Chandrasekar et al. A novel indexing scheme for efficient handling of small files in hadoop distributed file system
US7620671B2 (en) Delegation of metadata management in a storage system by leasing of free file system blocks from a file system owner
KR100825721B1 (en) System and method of time-based cache coherency maintenance in user file manager of object-based storage system
US11287994B2 (en) Native key-value storage enabled distributed storage system
US8135918B1 (en) Data de-duplication for iSCSI
KR102263357B1 (en) System for supporting user-level dma i/o in distributed filesystem environment and method for the same
US20160364407A1 (en) Method and Device for Responding to Request, and Distributed File System
US10503693B1 (en) Method and system for parallel file operation in distributed data storage system with mixed types of storage media
JP2004326162A (en) Network system, server, data processing method, and program
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
CN111796767B (en) Distributed file system and data management method
KR100622130B1 (en) Crash recovery system and method for a distributed file server using object based storage
CN109302448A (en) A kind of data processing method and device
US8380806B2 (en) System and method for absolute path discovery by a storage virtualization system
US20070174360A1 (en) Storage system embedding database
US10387384B1 (en) Method and system for semantic metadata compression in a two-tier storage system using copy-on-write
US10057348B2 (en) Storage fabric address based data block retrieval
US10521398B1 (en) Tracking version families in a file system
KR100785774B1 (en) Obeject based file system and method for inputting and outputting
KR101470857B1 (en) Network distributed file system and method using iSCSI storage system
US10628391B1 (en) Method and system for reducing metadata overhead in a two-tier storage architecture
US20210132801A1 (en) Optimized access to high-speed storage device
US6834281B1 (en) Method and apparatus to support multi-node direct access to file system data
CN117687970B (en) Metadata retrieval method and device, electronic 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: 20111129

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee