KR100766561B1 - Method for providing replicated memory file system in distributed network and system thereof - Google Patents

Method for providing replicated memory file system in distributed network and system thereof Download PDF

Info

Publication number
KR100766561B1
KR100766561B1 KR1020060038263A KR20060038263A KR100766561B1 KR 100766561 B1 KR100766561 B1 KR 100766561B1 KR 1020060038263 A KR1020060038263 A KR 1020060038263A KR 20060038263 A KR20060038263 A KR 20060038263A KR 100766561 B1 KR100766561 B1 KR 100766561B1
Authority
KR
South Korea
Prior art keywords
redundancy
agent
file system
memory file
message
Prior art date
Application number
KR1020060038263A
Other languages
Korean (ko)
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 KR1020060038263A priority Critical patent/KR100766561B1/en
Application granted granted Critical
Publication of KR100766561B1 publication Critical patent/KR100766561B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/18File system types
    • G06F16/182Distributed file systems
    • 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
    • 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
    • G06F16/2308Concurrency control
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method and a system for implementing a duplex memory file system under distributed network environment are provided to improve performance in comparison to a method using an existing disk by implementing the main memory based file system. A memory file system library(120) receives a request for access to a file system from a user application program process(130). The memory file system library accesses the memory file system installed in a main memory(160) to perform works corresponding to the access request of the user application program process. If the work corresponding to the access request of the user application program process is memory file system change work, the memory file system library performs the change work in a disk(150) synchronized with the memory file system.

Description

분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현 방법 및 시스템{Method for providing replicated memory file system in distributed network and system thereof}Method and providing replicated memory file system in distributed network environment

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.

도 1은 종래의 네트워크 파일시스템의 개략적인 구조를 나타낸다.1 shows a schematic structure of a conventional network file system.

도 2는 본 발명의 일실시예에 따른 이중화 메모리 파일시스템 구현 시스템의 블록도를 나타낸다.2 is a block diagram of a system for implementing a redundant memory file system according to an embodiment of the present invention.

도 3은 본 발명의 일실시예에 따른 이중화 메모리 파일시스템 구현 시스템의 블록도와 데이터 흐름도를 나타낸다.3 is a block diagram and a data flow diagram of a system for implementing a redundant memory file system according to an embodiment of the present invention.

도 4는 본 발명의 일실시예에 따른 이중화 메모리 파일시스템 구현 시스템의 수퍼블럭의 블록도를 나타낸다.4 is a block diagram of a superblock of a system for implementing a redundant memory file system according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 이중화 메모리 파일시스템 구현 시스템의 페이지 영역의 블록도를 나타낸다.5 is a block diagram of a page area of a system for implementing a redundant memory file system according to an embodiment of the present invention.

도 6은 본 발명의 일실시예에 따른 이중화 메모리 파일시스템의 이중화 방법 흐름도를 나타낸다.6 is a flowchart illustrating a duplication method of a duplication memory file system according to an exemplary embodiment of the present invention.

도 7은 본 발명의 일실시예에 따른 이중화 메모리 파일시스템의 이중화시의 동시접근제어 방법의 흐름도를 나타낸다.7 is a flowchart illustrating a simultaneous access control method for duplication of a redundant memory file system according to an embodiment of the present invention.

분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현 방법 및 시스템에 관한 것으로, 보다 상세하게는 메인 메모리 기반의 파일시스템을 분산 네트워크 환경에서 이중화 되도록 만든 파일시스템 구현 방법 및 시스템에 관한 것이다.The present invention relates to a method and system for implementing a redundant memory file system in a distributed network environment, and more particularly, to a method and system for implementing a file system based on a main memory in a distributed network environment.

파일시스템이란 파일과 디렉터리를 관리하기 위한 시스템을 말하는데, 파일시스템은 운영체제의 일부를 구성하며, 개인용 컴퓨터, 워크스테이션, 서버 등의 대부분의 컴퓨터에서 사용되고 있다. 일반적으로 파일시스템이란 디스크에 저장되어 있는 계층적 파일 및 디렉터리 구조를 대상으로 하는 디스크 기반의 파일시스템을 지칭한다. 파일시스템은 일반적으로 상위 디렉터리가 다수의 하위 디렉터리 및 파일을 포함하는 트리(tree) 형태의 구조로 되어 있다.A file system is a system for managing files and directories. The file system forms part of an operating system and is used in most computers such as personal computers, workstations, and servers. Generally, a file system refers to a disk-based file system that targets a hierarchical file and directory structure stored on a disk. Filesystems generally have a tree-like structure in which the parent directory contains a number of subdirectories and files.

기존의 로컬 파일시스템은 하드 디스크를 사용하여 파일시스템을 구성하였다. 따라서, 전통적인 파일시스템의 성능은 대부분의 경우 하드 디스크의 성능에 의해 제한되었다.Existing local filesystems use hard disks to organize filesystems. Thus, the performance of traditional filesystems is in most cases limited by the performance of the hard disk.

도 1을 참조하면 도 1은 현재 주로 사용되고 있는 유닉스 파일시스템과 이를 사용한 네트워크 파일시스템(NFS : Network File System)의 개략적인 구조를 나타낸다. 파일시스템(5, 25)은 각 호스트마다 1개씩 존재하므로 로컬 파일시스템(5)과 원격 파일시스템(25)은 다른 내용을 담게 된다. 그리고, 파일시스템에 대한 읽기, 쓰기 작업 모두 NFS 클라이언트(7)와 NFS 서버(23) 사이의 통신을 통해 가능하게 되고, 공유하는 파일시스템(25)은 원격 호스트에 1개만 존재하므로 사용자가 별도의 백업 작업을 수행하지 않는 경우 파일시스템(25)이 손상되었을 때 복구하기가 어렵다는 문제점이 있다.Referring to FIG. 1, FIG. 1 illustrates a schematic structure of a UNIX file system and a network file system (NFS) using the same. Since there are one file system 5 and 25 for each host, the local file system 5 and the remote file system 25 contain different contents. In addition, both read and write operations on the file system are enabled through communication between the NFS client 7 and the NFS server 23. Since only one shared file system 25 exists on the remote host, the user is separated. If the backup operation is not performed, there is a problem that it is difficult to recover when the file system 25 is damaged.

메모리 상에 파일시스템을 구현하는 기존의 기술에는 RAM(Random acess memory)Disk 또는 RAMFS(RAM file system)라고 불리는 커널 레벨의 파일시스템이 있다. 하지만 이러한 RAMFS는 시스템을 재구동하면 기존의 데이터를 보존할 수 있는 기능이 없고, 이중화 및 복구 기능이 없다. 또한 커널 수준에서 제공하므로 이를 사용하거나 조정하기 위해서는 커널 설정이나 시스템의 설정 변경이 필요했었다.Existing techniques for implementing filesystems on memory include kernel level filesystems called random access memory (RAM) disks or RAM file system (RAMFS). However, these RAMFSs do not have the ability to preserve existing data when the system is restarted and do not have redundancy and recovery. It is also provided at the kernel level, so using or tweaking it required modifying the kernel configuration or system configuration.

따라서 본 발명이 이루고자 하는 기술적인 과제는 분산 네트워크 환경에서 메모리 기반의 파일시스템을 구현하는 방법 및 시스템을 제공하는 것이다. 또한, 이중화 기능을 제공하고, 디스크로의 동기화 기능도 제공하는 메모리 기반의 파일시스템 구현 방법과 시스템을 제공하는 것이다.Accordingly, the present invention is to provide a method and system for implementing a memory-based file system in a distributed network environment. It also provides a memory-based file system implementation method and system that provides redundancy and synchronization to disk.

상기 기술적 과제를 달성하기 위한 이중화 메모리 파일시스템 구현 방법은 사용자 응용프로그램 프로세스로부터 메모리 파일시스템 라이브러리가 파일시스템의 접근을 요청받는 접근요청단계, 및 상기 메모리 파일시스템 라이브러리가 메인 메모리에 구현된 메모리 파일시스템에 접근하여 상기 사용자 응용프로그램 프로세 스의 접근 요청에 대응하는 작업을 수행하는 요청처리 단계를 구비한다.In accordance with one aspect of the present invention, there is provided a method of implementing a redundant memory file system in which a memory file system library is requested to access a file system from a user application process, and a memory file system in which the memory file system library is implemented in main memory. And a request processing step of performing an operation corresponding to an access request of the user application process.

상기 이중화 메모리 파일시스템 구현 방법은 상기 사용자 응용프로그램의 접근요청에 대응하는 작업이 상기 메모리 파일시스템의 변경작업인 경우에, 상기 메모리 파일시스템 라이브러리가 상기 메모리 파일시스템과 동기화된 디스크에 상기 변경작업을 수행하는 디스크 동기화단계를 더 구비할 수 있다.In the redundant memory file system implementing method, when the operation corresponding to an access request of the user application is a change operation of the memory file system, the memory file system library performs the change operation on a disk synchronized with the memory file system. It may further comprise a disk synchronization step to perform.

본 발명에 따른 이중화 메모리 파일시스템 구현 시스템은 메인 메모리 상에 구현된 메모리 파일시스템 및 사용자 응용프로그램 프로세스로부터 상기 메모리 파일시스템의 접근을 요청받고 상기 접근요청에 대응하는 작업을 수행하는 메모리 파일시스템 라이브러리를 구비한다.The system for implementing a redundant memory file system according to the present invention includes a memory file system library that receives a request for access of the memory file system from a memory file system and a user application program implemented on main memory and performs an operation corresponding to the access request. Equipped.

상기 이중화 메모리 파일시스템 구현 시스템은 상기 메모리 파일시스템의 이중화를 담당하기 위한 서버 프로세서인 이중화 에이전트를 더 구비할 수 있다.The redundant memory file system implementation system may further include a redundancy agent which is a server processor for performing redundancy of the memory file system.

상기 메모리 파일시스템의 객체들은 공유 메모리상에 저장될 수 있다.Objects of the memory file system may be stored on shared memory.

상기 메모리 파일시스템은 파일 및 디렉터리의 메타데이터를 저장하기 위한 수퍼블럭 및 상기 파일의 내용을 저장하기 위한 페이지 영역을 구비할 수 있다.The memory file system may include a super block for storing metadata of files and directories, and a page area for storing contents of the file.

상기 수퍼블럭은 상기 페이지 영역의 첫 번째 미사용 페이지의 포인터, 마지막 미사용페이지의 포인터, 최상위 디렉터리의 포인터 중 적어도 하나를 포함할 수 있다.The superblock may include at least one of a pointer of the first unused page, a pointer of the last unused page, and a pointer of the top directory.

상기 페이지 영역은 소정의 동일한 크기의 페이지들로 분할되고, 미사용 페이지를 링크드 리스트의 형태로 관리할 수 있다.The page area may be divided into pages of a predetermined same size, and unused pages may be managed in the form of a linked list.

상기 메모리 파일시스템 라이브러리는 운영시스템 또는 사용자 응용프로그램 과의 데이터 교환을 위한 인터페이스, 상기 메모리 파일시스템으로부터 파일을 입력 또는 출력하기 위한 파일 입출력 모듈, 및 상기 메모리 파일시스템의 이중화를 위한 이중화 모듈을 구비할 수 있다.The memory file system library may include an interface for exchanging data with an operating system or a user application program, a file input / output module for inputting or outputting a file from the memory file system, and a duplication module for redundancy of the memory file system. Can be.

상기 메모리 파일시스템 라이브러리는 상기 이중화에이전트와 상기 메모리 파일시스템과의 데이터의 교환 기능을 갖는 내부 인터페이스를 더 구비할 수 있다.The memory file system library may further include an internal interface having a function of exchanging data between the redundant agent and the memory file system.

상기 메모리 파일시스템 라이브러리는 상기 메모리 파일시스템과 디스크 장치의 동기화를 위한 로깅 모듈을 더 구비할 수 있다.The memory file system library may further include a logging module for synchronizing the memory file system with a disk device.

본 발명에 따른 이중화 메모리 파일시스템의 이중화 방법은 제1호스트의 이중화 프로세스가 상기 제1호스트의 제1이중화 에이전트와 연결되고, 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계, 상기 이중화 프로세스가 제2호스트의 제2이중화 에이전트와 연결되고, 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계, 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업메시지를 전송하는 단계, 및 상기 제2이중화 에이전트는 상기 수신된 작업메시지를 상기 제2호스트의 메모리 파일시스템에 반영하는 단계를 구비한다.In the redundant method of the redundant memory file system according to the present invention, the redundancy process of the first host is connected to the first redundancy agent of the first host, and the simultaneous access control permission is received from the first redundancy agent. Connected to a second redundancy agent of a second host, receiving simultaneous access control permission from the second redundancy agent, transmitting the work message to the second redundancy agent, and the second redundancy agent And reflecting the received work message to the memory file system of the second host.

상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계는 상기 이중화 프로세스가 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계, 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계, 및 상기 확인한 결과 등록되어있지 않은 경우에 제1이중화 에이전트가 상기 이중화 프로세스로 허락 메시지를 전송하는 단계를 구비할 수 있다.Receiving the simultaneous access control permission from the first redundancy agent may include transmitting a setup message for the redundancy process to prepare for work by the first redundancy agent, wherein the first redundancy agent sends the redundancy to the first redundancy agent. Checking whether an access request for the same file as the file to be accessed by the process is registered, and if the check result is not registered, sending the permission message to the duplication process by the first redundancy agent. have.

상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계는 상기 이중화 프로세스가 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계, 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계, 상기 확인한 결과 등록되어있는 경우에 제1이중화 에이전트가 상기 이중화 프로세스로 거절 메시지를 전송하는 단계, 및 상기 이중화 프로세스가 상기 거절 메시지를 수신하면 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고 소정의 시간 동안 대기 후 다시 상기 셋업 메시지를 전송하는 단계를 구비할 수도 있다.Receiving the simultaneous access control permission from the first redundancy agent may include transmitting a setup message for the redundancy process to prepare for work by the first redundancy agent, wherein the first redundancy agent sends the redundancy to the first redundancy agent. Checking whether an access request for the same file as the file to be accessed by the process is registered, if the result of the check is registered, sending a rejection message to the duplication process by the first duplication agent, and the duplication process The method may further include transmitting an access request cancellation message for the file to be accessed to the first redundancy agent upon waiting for the predetermined time, and transmitting the setup message again after waiting for a predetermined time.

상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계는 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계, 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계, 및 상기 확인한 결과 등록되어있지 않은 경우에 상기 제2이중화 에이전트가 상기 이중화 프로세스로 허락 메시지를 전송하는 단계를 구비할 수 있다.Receiving the simultaneous access control permission from the second redundancy agent may include transmitting a setup message for the redundancy process to prepare for work by the second redundancy agent, wherein the second redundancy agent sends the redundancy to the second redundancy agent. Checking whether an access request for the same file as the file to be accessed by the process is registered, and if the checking result is not registered, sending the permission message to the duplication process by the second redundancy agent. Can be.

상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계는 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계, 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는 지 확인하는 단계, 상기 확인한 결과 등록되어있는 경우에 제2이중화 에이전트가 상기 이중화 프로세스로 거절 메시지를 전송하는 단계, 및 상기 이중화 프로세스가 상기 거절 메시지를 수신하면 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고 소정의 시간 동안 대기 후 다시 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계로 복귀하는 단계를 구비할 수도 있다.Receiving the simultaneous access control permission from the second redundancy agent may include transmitting a setup message for the redundancy process to prepare for work by the second redundancy agent, wherein the second redundancy agent sends the redundancy to the second redundancy agent. Checking whether an access request for the same file as the file to be accessed by the process is registered, if the result of the check is registered, sending a reject message to the duplication process by the second duplication agent, and the duplication process Receiving the reject message, transmits an access request cancellation message for the file to be accessed to the first redundancy agent, waits for a predetermined time, and returns to the step of receiving simultaneous access control permission from the first redundancy agent again. May be provided with steps .

상기 이중화 메모리 파일시스템 이중화 방법은 상기 이중화 프로세스가 상기 제2호스트의 상기 제2이중화 에이전트와 연결된 후에, 상기 제2이중화 에이전트가 이중화 담당 쓰레드를 생성하는 단계를 더 구비할 수도 있다.The duplication memory file system duplication method may further include the step of creating a duplication thread by the second duplication agent after the duplication process is connected with the second duplication agent of the second host.

본 발명에 따른 메모리 기반 파일시스템의 이중화 시스템은 제1호스트와 제2호스트를 구비한다. 상기 제1호스트는 제1이중화 에이전트, 제1 메모리 파일시스템 라이브러리, 및 제1 메모리 파일시스템을 구비하고 상기 제2호스트는 제2이중화 에이전트, 제2 메모리 파일시스템 라이브러리, 및 제2 메모리 파일시스템을 구비한다.The redundancy system of the memory-based file system according to the present invention includes a first host and a second host. The first host includes a first redundancy agent, a first memory file system library, and a first memory file system, and the second host includes a second redundancy agent, a second memory file system library, and a second memory file system. Equipped.

상기 제1 메모리 파일시스템 라이브러리는 제1 내부인터페이스, 제1 파일 입출력 모듈, 및 제1이중화 모듈을 구비한다. 상기 제2 메모리 파일시스템 라이브러리는 제2 내부인터페이스, 제2 파일 입출력 모듈, 및 제2이중화 모듈을 구비한다.The first memory file system library includes a first internal interface, a first file input / output module, and a first redundancy module. The second memory file system library includes a second internal interface, a second file input / output module, and a second redundancy module.

상기 제1 메모리 파일시스템 라이브러리의 제1이중화 모듈은 상기 제1이중화 에이전트와 연결하고 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받으며, 제2이중화 에이전트와 연결하고 상기 제2이중화 에이전트로부터 동시접근제어 허락 을 받으며, 상기 제2이중화 에이전트로 작업메시지를 전송한다.The first redundancy module of the first memory file system library connects to the first redundancy agent and receives simultaneous access control permission from the first redundancy agent, connects to a second redundancy agent and simultaneously controls access from the second redundancy agent. With permission, the work message is sent to the second redundancy agent.

상기 제2이중화 에이전트는 상기 수신된 작업메시지를 내부인터페이스 및 파일 입출력 모듈을 통해 제2 메모리 파일시스템에 반영한다.The second redundancy agent reflects the received work message to the second memory file system through an internal interface and a file input / output module.

상기 제1이중화 모듈은 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받기 위해, 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고, 상기 제1이중화 에이전트는 상기 제1이중화 에이전트에 상기 제1 이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있지 않은 경우에 상기 제1 이중화 모듈로 허락 메시지를 전송할 수 있다.The first redundancy module transmits a setup message for preparing a job to the first redundancy agent to receive simultaneous access control permission from the first redundancy agent, and the first redundancy agent sends the first redundancy agent to the first redundancy agent. If the access request for the same file as the file to be accessed by the first duplication module is not registered, the permission message may be transmitted to the first duplication module.

상기 제1이중화 모듈은 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받기 위해, 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고, 상기 제1이중화 에이전트는 상기 제1이중화 에이전트에 상기 제1이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는 경우에 상기 제1이중화 모듈로 거절 메시지를 전송하고, 상기 제1이중화 모듈은 상기 거절 메시지를 수신하면 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고, 소정의 시간 동안 대기 후 다시 상기 셋업 메시지를 전송할 수도 있다.The first redundancy module transmits a setup message for preparing a job to the first redundancy agent to receive simultaneous access control permission from the first redundancy agent, and the first redundancy agent sends the first redundancy agent to the first redundancy agent. When a request for access to the same file as the file to be accessed by the first redundancy module is registered, the first redundancy module sends a reject message to the first redundancy module, and the first redundancy module receives the rejection message when the first redundancy module receives the rejection message. An access request cancellation message for the file to be accessed may be transmitted to an agent, and the setup message may be transmitted again after waiting for a predetermined time.

상기 제1이중화 모듈은 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받기 위해, 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고, 상기 제2이중화 에이전트는 상기 제2이중화 에이전트에 상기 제1이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있지 않은 경 우에 상기 제1이중화 모듈로 허락 메시지를 전송할 수 있다.The first redundancy module transmits a setup message for preparing a job to the second redundancy agent to receive simultaneous access control permission from the second redundancy agent, and the second redundancy agent sends the second redundancy agent to the second redundancy agent. If the access request for the same file as the file to be accessed by the first redundancy module is not registered, the permission message may be transmitted to the first redundancy module.

상기 제1 이중화 모듈은 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받기 위해, 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고, 상기 제2이중화 에이전트는 상기 제2이중화 에이전트에 상기 제1 이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는 경우에 제2이중화 에이전트가 상기 제1 이중화 모듈로 거절 메시지를 전송하고, 상기 제1 이중화 모듈은 상기 거절 메시지를 수신하면 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고, 소정의 시간 동안 대기 후 다시 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받기 위해 셋업 메시지를 전송할 수도 있다.The first redundancy module transmits a setup message for preparing a job to the second redundancy agent to receive simultaneous access control permission from the second redundancy agent, and the second redundancy agent sends the second redundancy agent to the second redundancy agent. When a request for access to the same file as the file to be accessed by the first redundancy module is registered, the second redundancy agent transmits a rejection message to the first redundancy module, and the first redundancy module receives the rejection message. Then, the access request cancellation message for the file to be accessed may be transmitted to the first redundancy agent, and after waiting for a predetermined time, a setup message may be transmitted to receive permission for simultaneous access control from the first redundancy agent.

상기 제2이중화 에이전트는 상기 제1 이중화 모듈이 상기 제2이중화 에이전트와 연결된 후에 이중화 담당 쓰레드를 생성할 수도 있다.The second redundancy agent may create a redundancy thread after the first redundancy module is connected to the second redundancy agent.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 2는 본 발명의 일실시예에 따른 이중화 메모리 파일시스템 구현 시스템(100)의 구성 블록도를 나타낸다.2 is a block diagram illustrating a system for implementing a redundant memory file system 100 according to an embodiment of the present invention.

도 2를 참조하면, 본 발명에 따른 이중화 메모리 파일시스템 구현 시스템(100)은 메인 메모리(160) 상에 구현된 메모리 파일시스템(110) 및 사용자 응용프로그램 프로세스(130)로부터 상기 메모리 파일시스템(110)의 접근을 요청받고 상기 접근요청에 대응하는 작업을 수행하는 메모리 파일시스템 라이브러리(120)를 구비한다. 상기 이중화 메모리 파일시스템 구현 시스템(100)은 상기 메모리 파일시스템(110)의 이중화를 담당하기 위한 서버 프로세서인 이중화 에이전트(140)를 더 구비할 수 있다. Referring to FIG. 2, the redundant memory file system implementation system 100 according to the present invention is a memory file system 110 from a memory file system 110 and a user application program 130 implemented on a main memory 160. Memory file system library 120 is requested to perform the operation corresponding to the access request. The redundant memory file system implementation system 100 may further include a redundancy agent 140 that is a server processor for performing redundancy of the memory file system 110.

수퍼블럭의 일실시예와 페이지 영역의 일실시예가 도 4 및 도 5에 각각 도시된다.One embodiment of the superblock and one embodiment of the page area are shown in FIGS. 4 and 5, respectively.

상기 메모리 파일시스템(110)은 여러 프로세스가 메인 메모리(160)에 저장된 메모리 파일시스템(110)에 동시에 접근할 수 있도록 공유메모리(shared memory) 형태로 생성해서 사용할 수도 있으나 이에 한정되는 것은 아니다. 상기 메모리 파일시스템(110)은 크게 수퍼블럭(superblock ; 111)과 페이지 영역(page region ;113)으로 나눌 수 있다. The memory file system 110 may be generated and used in the form of a shared memory so that several processes may simultaneously access the memory file system 110 stored in the main memory 160, but the present invention is not limited thereto. The memory file system 110 may be roughly divided into a superblock 111 and a page region 113.

상기 수퍼블럭(111)은 도 4에서 도시한 바와 같이 파일 및 디렉터리의 메타데이터(metadata)를 저장하는 영역으로 사용한다. 상기 수퍼블럭(111)은 다수의 파일 및 디렉터리를 관리하기 위해 인덱스 트리를 이용한 계층적 구조로 구현하는 것이 바람직하지만 이에 한정되는 것은 아니고, 어레이(array), 링크드 리스트(linked-list) 등의 다양한 형태로 구현할 수 있다. 상기 수퍼블럭(111)은 상기 페이지 영역(113)의 첫 번째 미사용 페이지의 포인터(11), 마지막 미사용페이지의 포인터(13), 최상위 디렉터리의 포인터(15) 중 적어도 하나를 포함하는 것이 바람직하다. 최상위 디렉터리의 포인터(15)를 마운트 지점(mount point)로 하여 인덱스 트리를 이용해 그 하위에 위치한 특정 파일과 디렉터리에 빠르게 접근할 수 있다. 상기 메모리 파일시스템(110)에 존재하는 모든 객체의 메타데이터는 수퍼블럭(111)에 저장되는 것이 바람직하고, 파일의 메타데이터는 아이노드(inode), 디렉터리의 메타데이터는 디엔트리(dentry)라는 형태로 저장되는 것이 바람직하다. 또한, 상위디렉터리가 다수의 디렉터리와 파일들을 포함할 수 있으므로 디엔트리는 하위 디렉터리들을 관리하기 위해 디엔트리 인덱스 트리와 파일들을 관리하기 위해 아이노드 인덱스 트리를 하나씩 가질 수 있다. As illustrated in FIG. 4, the superblock 111 is used as an area for storing metadata of files and directories. The superblock 111 may be implemented in a hierarchical structure using an index tree to manage a plurality of files and directories, but the present invention is not limited thereto. For example, the superblock 111 may be an array, a linked-list, or the like. It can be implemented in the form. The superblock 111 preferably includes at least one of a pointer 11 of a first unused page, a pointer 13 of a last unused page, and a pointer 15 of a top-level directory. Using the pointer to the top-level directory (15) as a mount point, you can quickly access specific files and directories located under the index tree. The metadata of all objects existing in the memory file system 110 is preferably stored in the superblock 111. The metadata of the file is an inode, and the metadata of a directory is called a diery. It is preferably stored in the form. In addition, since the upper directory may include a plurality of directories and files, the d-entry may have a di-entry index tree to manage the subdirectories and an inode index tree to manage the files.

상기 페이지 영역(113)은 도 5에서 도시한 바와 같이 소정의 동일한 크기의 페이지들로 분할되는 것이 바람직하고, 미사용 페이지들은 링크드 리스트(linked-list)의 형태로 관리할 수 있다. 모든 페이지는 초기에는 미사용 리스트(free-list)로 관리되고 있다가 할당 요청에 따라 첫 번째 미사용 페이지의 주소가 할당되고 미사용 리스트에서 제거된다. 이렇게 할당된 페이지는 검색트리의 형태로 관리 될 수 있다. 미사용 페이지들은 임의의 위치의 페이지를 찾을 필요가 없기 때문에 리스트 형태로 관리해도 되지만, 사용되는 페이지는 파일의 특정 위치를 임의 접근할 수 있어야 하므로, 순차적으로 접근 가능한 리스트 보다는 검색트리의 형태로 관리되는 것이 바람직하다. 상기 검색트리는 B트리, B+트리, B*트리, T트리 등으로 구현될 수 있다. As shown in FIG. 5, the page area 113 may be divided into pages of a predetermined same size, and unused pages may be managed in the form of a linked list. All pages are initially managed as free-lists, and upon allocation request, the address of the first unused page is allocated and removed from the unused list. This allocated page can be managed in the form of a search tree. Unused pages can be managed in the form of a list because there is no need to find a page at an arbitrary location.However, the pages used are managed in the form of a search tree rather than sequentially accessible lists, since the pages used must have random access to a specific location of the file. It is preferable. The search tree may be implemented as a B tree, a B + tree, a B * tree, a T tree, and the like.

다시 도 2를 참조하면, 상기 메모리 파일시스템 라이브러리(120)는 운영시스 템 또는 사용자 응용프로그램 프로세스(130)와의 데이터 교환을 위한 인터페이스(121), 상기 메모리 파일시스템(110)으로부터 파일을 입력 또는 출력하기 위한 파일 입출력 모듈(125), 및 상기 메모리 파일시스템의 이중화를 위한 이중화 모듈(129)을 구비한다. 상기 메모리 파일시스템 라이브러리(120)는 상기 이중화에이전트(140)와 상기 메모리 파일시스템(110)과의 데이터의 교환 기능을 갖는 내부 인터페이스(123)를 더 구비할 수 있다. 또한, 상기 메모리 파일시스템 라이브러리(120)는 상기 메모리 파일시스템(110)과 디스크장치(150)의 동기화를 위한 로깅 모듈(127)을 더 구비할 수 있다.Referring back to FIG. 2, the memory file system library 120 inputs or outputs a file from the memory file system 110 and an interface 121 for exchanging data with an operating system or a user application program 130. And a duplication module 129 for duplication of the memory file system. The memory file system library 120 may further include an internal interface 123 having a function of exchanging data between the duplication agent 140 and the memory file system 110. In addition, the memory file system library 120 may further include a logging module 127 for synchronizing the memory file system 110 with the disk device 150.

상기 인터페이스(121)는 일반적인 응용프로그램들이 메모리 파일시스템 라이브러리(120)를 이용할 수 있도록 해준다. 상기 인터페이스(121)는 운영체제 표준인 POSIX(Portable Operating System Interface for Computer Environment)에 규정된 표준 API(Application programming interface)에서 제공되는 기능을 포함하는 것이 바람직하다.The interface 121 allows general application programs to use the memory file system library 120. The interface 121 preferably includes a function provided by a standard application programming interface (API) defined in a portable operating system interface for computer environment (POSIX).

상기 파일 입출력 모듈(125)은 상기 메모리 파일시스템(110)으로부터 파일을 입력하거나 출력하는 기능을 구비한다.The file input / output module 125 has a function of inputting or outputting a file from the memory file system 110.

상기 이중화 모듈(129)은 상기 메모리 파일시스템(110)을 이중화에 참여하는 다른 호스트에서도 동일하게 유지하는 기능을 한다. 분산네트워크 환경에서는 이중화에 참여하는 호스트가 다수일 수 있으나, 적어도 두 개의 호스트는 이중화에 참여하는 것이 바람직하다. 동일한 메모리 파일시스템(110)을 유지하기 위해, 응용프로그램 프로세스(130)가 쓰기 연산을 수행할 때에는 해당 호스트의 메모리 파일시 스템(110)을 변경하고, 이중화에 참여하는 다른 호스트의 메모리 파일시스템도 변경해야 한다. 응용프로그램 프로세스(130)이 읽기 연산을 수행할 때에는 해당 호스트의 메모리 상의 파일시스템에만 접근하면 되므로 상기 이중화 모듈(129)은 어떠한 동작도 취하지 않아도 된다.The duplication module 129 functions to keep the memory file system 110 the same in other hosts participating in the duplication. In a distributed network environment, multiple hosts may participate in redundancy, but at least two hosts are preferred to participate in redundancy. In order to maintain the same memory file system 110, when the application process 130 performs a write operation, the memory file system 110 of the host is changed, and the memory file system of another host participating in the redundancy is also changed. You must change it. When the application program 130 performs a read operation, the redundancy module 129 does not need to perform any operation because only the file system on the memory of the corresponding host needs to be accessed.

상기 내부 인터페이스(123)는 이중화를 담당하는 서버 프로세서인 상기 이중화 에이전트(140)가 로깅 기능과 이중화 기능이 필요하지 않기 때문에 인터페이스(121)를 거칠 필요가 없으므로, 직접 상기 내부 인터페이스(123)를 거쳐 메모리 파일시스템(110)에 접근하도록 한다. 상기 내부 인터페이스(122) 역시 운영체제 표준인 POSIX(Portable Operating System Interface for Computer Environment)에 규정된 표준 API(Application programming interface)에서 제공되는 기능을 포함하는 것이 바람직하다. 또한, 읽기 연산을 수행할 때에는 인터페이스(121)와 내부 인터페이스(123)의 API가 동일할 수 있지만, 쓰기 연산을 수행할 때에는 내부 인터페이스(123)는 로깅 기능과 이중화 기능이 필요없으므로 인터페이스(121)와 내부 인터페이스(123)의 API가 서로 다른 층위로 분리될 수 있다.Since the internal interface 123 does not need to go through the interface 121 because the redundancy agent 140, which is a server processor responsible for redundancy, does not need a logging function and a redundancy function, the internal interface 123 directly passes through the internal interface 123. The memory file system 110 is accessed. The internal interface 122 also preferably includes a function provided by a standard application programming interface (API) defined in a portable operating system interface for computer environment (POSIX). In addition, although the API of the interface 121 and the internal interface 123 may be the same when performing a read operation, the internal interface 123 does not need a logging function and a redundancy function when performing a write operation. APIs of the internal interface 123 may be separated into different layers.

상기 로깅 모듈(127)은 상기 메모리 파일시스템(110)과 디스크장치(150)의 동기화 기능을 제공하여, 메모리에 존재하는 파일시스템을 동일하게 생성해서 시스템의 재구동 이후에도 다시 파일시스템을 사용할 수 있도록 한다.The logging module 127 provides a synchronization function of the memory file system 110 and the disk device 150 to create the same file system existing in the memory so that the file system can be used again after the system is restarted. do.

상기 이중화 에이전트(140)는 이중화에 참여하는 각각의 호스트에 하나씩 실행되고 있는 것이 바람직하다. 상기 이중화 에이전트(140)는 원격 호스트에서 발생되어 전송된 변경내역을 해당 지역 호스트에 위치한 메모리 파일시스템(110)에 적 용하는 역할을 한다. 또한, 상기 이중화 에이전트(140)는 메모리 파일시스템(110)에 장애가 발생한 경우 이중화에 참여하는 다른 호스트의 이중화 에이전트와 연결되면서 장애를 복구하는 작업을 할 수 있다. 또한, 상기 이중화 에이전트(140)는 메모리 파일시스템(110)상의 동일한 객체(파일 또는 디렉터리)에 대한 접근을 제어하여 동시에 변경 작업이 수행되지 않도록 제어하는 기능을 가질 수 있다.The redundancy agent 140 is preferably running one for each host participating in the redundancy. The redundancy agent 140 serves to apply the change history generated and transmitted from the remote host to the memory file system 110 located in the corresponding local host. In addition, the duplication agent 140 may be connected to a duplication agent of another host participating in the duplication when the memory file system 110 has a failure to recover the failure. In addition, the redundancy agent 140 may have a function of controlling access to the same object (file or directory) on the memory file system 110 so that a change operation is not performed at the same time.

도 3은 본 발명의 일실시예에 따른 이중화 메모리 파일시스템의 구현 시스템의 구성 블록도와 데이터 흐름도를 나타낸다.3 is a block diagram and a data flow diagram of an implementation system of a redundant memory file system according to an embodiment of the present invention.

도 3의 제1호스트 및 제2호스트는 도 2에서 도시한 바와 같은 이중화 메모리 파일시스템 구현 시스템(100)을 각각 구비한다.The first host and the second host of FIG. 3 each have a redundant memory file system implementation system 100 as shown in FIG.

도 3을 참조하면, 제1호스트(100a)의 사용자 응용프로그램(130a)으로부터 메모리 파일시스템 라이브러리(120a)가 메모리 파일시스템에 접근요청을 받고(S001), 메모리 파일시스템 라이브러리(120a)는 파일 입출력 모듈(125a)을 통해 상기 접근요청에 대응하는 작업을 수행한다(S003). 상기 접근요청에 대응하는 작업이 상기 메모리 파일시스템(110a)의 변경작업(예: 쓰기, 속성바꾸기 등)인 경우에 상기 메모리 파일시스템 라이브러리(120a)는 로깅 모듈(150a)을 통해 상기 메모리 파일시스템(110a)과 디스크장치(150a)의 동기화(S005)를 수행하고, 제2호스트(100b)의 이중화에이전트(140b)에게 이중화 작업을 요청한다(S007). 상기 제2호스트(100b)의 이중화에이전트(140b)는 제2 메모리 파일시스템 라이브러리(120b)의 내부 인터페이스(123b)로 상기 작업메시지를 전달하고(S009), 상기 제2 메모리 파일시스템 라이브러리(120b)는 제2 파일 입출력 모듈(125b)을 통해 제2 메모리 파일시스템(110b) 에 상기 작업메시지를 반영한다(S011). 또한, 상기 제2 메모리 파일시스템 라이브러리(120b)는 제2 로깅모듈(125b)을 통해 상기 제2 메모리 파일시스템(110b)과 제2디스크 장치(150b)의 동기화를 수행한다(S013).Referring to FIG. 3, the memory file system library 120a receives an access request from the user application 130a of the first host 100a to the memory file system (S001), and the memory file system library 120a receives a file input / output. The operation corresponding to the access request is performed through the module 125a (S003). When the operation corresponding to the access request is a change operation of the memory file system 110a (eg, writing, changing an attribute, etc.), the memory file system library 120a uses the logging module 150a to execute the memory file system. A synchronization (S005) between the 110 (110a) and the disk device 150a is performed, and a duplication operation is requested to the duplication agent 140b of the second host 100b (S007). The duplication agent 140b of the second host 100b transfers the work message to the internal interface 123b of the second memory file system library 120b (S009), and the second memory file system library 120b. Reflects the work message to the second memory file system 110b through the second file input / output module 125b (S011). In addition, the second memory file system library 120b synchronizes the second memory file system 110b and the second disk device 150b through the second logging module 125b (S013).

도 6은 본 발명의 일실시예에 따른 이중화 메모리 파일시스템의 이중화 방법 흐름도를 나타낸다.6 is a flowchart illustrating a duplication method of a duplication memory file system according to an exemplary embodiment of the present invention.

도 7은 본 발명의 일실시예에 따른 이중화 메모리 파일시스템의 이중화시의 동시접근제어 방법의 흐름도를 나타낸다.7 is a flowchart illustrating a simultaneous access control method for duplication of a redundant memory file system according to an embodiment of the present invention.

도 6과 도 7을 참조하면, 본 발명에 따른 이중화 메모리 파일시스템의 이중화 방법은 사용자가 호출한 기능 API(Application programmin interface)의 실제 수행을 담당하는 내부 API가 호출되어 작업을 수행(S080)하면서 제1 메모리 파일시스템에 실제 처리가 수행된 후 이중화 작업이 시작된다. 상기 이중화 메모리 파일시스템의 이중화 방법은 상기 제1호스트의 이중화 프로세스가 제1호스트의 제1이중화 에이전트와 연결되고(S099), 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계(S100), 상기 이중화 프로세스가 제2호스트의 제2이중화 에이전트와 연결되고(S199), 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계(S200), 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업메시지를 전송하는 단계(S400) 및 상기 제2이중화 에이전트가 상기 수신된 작업메시지를 제2 메모리 파일시스템에 반영하는 단계(S500)를 구비한다. 상기 이중화 메모리 파일시스템의 이중화가 끝나면 이중화 프로세스는 제1이중화 에이전트 및 제2이중화 에이전트와 연결을 종료(S510)하게 되고, 제2이중화 에이전트도 이중화 프로세스와 연결 을 종료(S520)하게 된다. 상기 제1호스트의 이중화 프로세스와 제1호스트의 제1이중화 에이전트와의 연결(S099) 및 상기 제1호스트의 이중화 프로세스와 제1호스트의 제1이중화 에이전트와의 연결(S199)은 TCP(transmission control protocol) 연결이 바람직하지만 이에 한정되지는 않는다.6 and 7, in the duplication method of the redundant memory file system according to the present invention, an internal API that is in charge of the actual execution of a function API (Application programmin interface) called by a user is called to perform an operation (S080). After the actual processing is performed on the first memory file system, the duplication operation is started. In the duplication method of the redundant memory file system, the duplication process of the first host is connected to the first duplication agent of the first host (S099), and the simultaneous access control permission is received from the first duplication agent (S100). The duplication process is connected to the second redundancy agent of the second host (S199), receiving simultaneous access control permission from the second redundancy agent (S200), and the duplication process transmits a work message to the second redundancy agent. In step S400 and the second redundancy agent reflecting the received work message to a second memory file system (S500). When the duplication of the redundant memory file system is completed, the duplication process terminates the connection with the first duplication agent and the second duplication agent (S510), and the second duplication agent also terminates the connection with the duplication process (S520). Connection between the redundancy process of the first host and the first redundancy agent of the first host (S099) and connection between the redundancy process of the first host and the first redundancy agent of the first host (S199) are transmission control (TCP). protocol) connection is preferred, but not limited to.

상기 이중화 메모리 파일시스템의 이중화 방법은 상기 이중화 프로세스가 제2호스트의 제2이중화 에이전트와 연결(S199)된 후에, 상기 제2이중화 에이전트가 이중화 담당 쓰레드를 생성하는 단계(S300)를 더 구비할 수 있다. 상기 이중화 담당 쓰레드는 상기 이중화 담당 쓰레드 생성 후의 이중화 작업을 담담할 수 있다.The duplication method of the duplication memory file system may further include a step (S300) of generating a thread in charge of duplication by the second duplication agent after the duplication process is connected with a second duplication agent of a second host (S199). have. The redundancy thread may be responsible for the duplication work after creation of the redundancy thread.

상기 이중화 프로세스는 제1호스트의 사용자 응용프로그램의 요청을 메모리 파일시스템 라이브러리의 이중화 모듈을 통해 처리하는 프로세스일 수 있다. 상기 이중화 프로세스가 로컬의 메모리 파일시스템에 실제 처리를 수행한 후 이중화 작업이 시작된다.The duplication process may be a process of processing a request of a user application program of a first host through a duplication module of a memory file system library. The duplication process starts after the duplication process actually performs processing on the local memory file system.

도 6과 도7을 참조하면, 상기 제1호스트의 이중화 프로세스가 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계(S100)는 상기 이중화 프로세스가 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계(S103), 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계(S105), 및 상기 확인한 결과 등록되어있지 않은 경우에 상기 제1이중화 에이전트가 상기 이중화 프로세스로 허락 메시지를 전송하는 단계(S115)를 구비할 수 있다. 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전 송하는 단계(S103)는 이중화 프로세스와 제1이중화 에이전트와의 연결(S099)이 정상적으로 완료되면 이중화 초기화 작업을 수행하게 한다. 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계(S105)는 로컬 메모리 파일시스템의 변경이 있은 후 부터 상기 단계(S105) 사이에 다른 로컬 또는 원격 호스트의 프로세스가 상기 동일한 파일에 대한 접근을 한 경우가 있는지 확인을 하는 단계이다. 상기 제1이중화 에이전트가 상기 이중화 프로세스로 허락 메시지를 전송하는 단계(S115)는 제1이중화 에이전트에서는 현재 수행하고자 하는 파일에 대한 작업이 이미 다른 프로세스에서 수행중이지 않을 경우 해당 작업의 이중화를 수행해도 된다는 의미를 가지게 된다.6 and 7, in step S100, in which the redundancy process of the first host receives permission to access concurrently from the first redundancy agent, a setup for preparing the redundancy process to work with the first redundancy agent is performed. Transmitting a message (S103), checking, by the first redundancy agent, whether an access request for the same file as a file to be accessed by the redundancy process is registered with the first redundancy agent (S105), and checking If the result is not registered, the first redundancy agent may have a step S115 of transmitting a permission message to the redundancy process. The step S103 of transmitting a setup message for preparing a job to the first redundancy agent causes the redundancy initialization task to be performed when the connection between the redundancy process and the first redundancy agent S099 is normally completed. The step of determining whether an access request for the same file as the file to be accessed by the redundancy process is registered in the first redundancy agent by the first redundancy agent is performed after the change of the local memory file system. It is a step of confirming whether a process of another local or remote host has accessed the same file between (S105). In step S115, when the first redundancy agent transmits a permission message to the redundancy process, the first redundancy agent performs redundancy of the corresponding work when a work on a file to be currently performed is not already being performed by another process. It is meant to be.

상기 제1호스트의 이중화 프로세스가 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계(S100)는 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인(S105)한 결과 이미 접근 요청이 등록되어있는 경우에 제1이중화 에이전트가 상기 이중화 프로세스로 거절 메시지를 전송하는 단계(S107), 상기 이중화 프로세스가 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송(S109)하고, 요청 취소 메시지를 수신한 제1이중화 에이전트는 상기 거절했던 요청을 삭제하고(S111), 소정의 시간 동안 대기(S112) 후 다시 상기 셋업 메시지를 전송하는 단계(S113)를 구비할 수도 있다. In step S100, when the redundancy process of the first host receives the simultaneous access control permission from the first redundancy agent, the first redundancy agent may access the same file as the file to which the redundancy process intends to access the first redundancy agent. When the access request is already registered as a result of checking whether the access request is registered (S105), when the access request is already registered, transmitting a rejection message to the redundancy process (S107), and the redundancy process is transmitted to the first redundancy agent. After transmitting the access request cancellation message for the file to be accessed (S109), and receiving the request cancellation message, the first redundancy agent deletes the rejected request (S111), waits for a predetermined time (S112), and then again. In step S113, the setup message may be transmitted.

상기 소정의 시간 동안 대기하는 경우에 각각의 프로세스에 부여되는 대기 시간은 서로 다르게 설정하여 일정 시간 안에 거절된 요청을 허락받게 하는 것이 바람직하다. In the case of waiting for the predetermined time, it is preferable that the waiting time given to each process is set differently to allow the rejected request within a predetermined time.

상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계(S200)는 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계(S203), 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계(S205), 상기 확인한 결과 등록되어있지 않은 경우에 상기 제2이중화 에이전트가 상기 이중화 프로세스로 허락 메시지를 전송하는 단계(S215)를 구비할 수 있다. 이 경우는 로컬 시스템에서의 동시접근제어가 정상적으로 완료되고, 원격 시스템에서도 정상적으로 동시접근제어가 완료되어 실제로 이중화 작업을 수행할 수 있는 경우이다.Receiving the simultaneous access control permission from the second redundancy agent (S200) is the step of transmitting the setup message for preparing the job to the second redundancy agent to the second redundancy agent (S203), the second redundancy agent to the second Checking whether the access request for the same file as the file to be accessed by the redundancy process is registered to the redundancy agent (S205), and when the check result is not registered, the second redundancy agent permits the redundancy process In step S215, the message may be transmitted. In this case, simultaneous access control is normally completed on the local system, and simultaneous access control is normally completed on the remote system, so that redundancy can be actually performed.

상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계는(S200)는 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계(S203), 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계(S205), 상기 확인한 결과 등록되어있는 경우에 제2이중화 에이전트가 상기 이중화 프로세스로 거절 메시지를 전송하는 단계(S207), 및 상기 이중화 프로세스가 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송(S209)하고, 요청 취소 메시지를 수신한 제1이중화 에이전트는 상기 거절했던 요청을 삭제(S211)하고, 소정의 시간 동안 대기(S212) 후 다시 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계(S100)로 복귀하는 단계(S213)를 구비할 수도 있다. 이 경우는 로컬 시스템에서의 동시접근제어는 정상적으로 완료되고, 원격 시스템에서는 다른 프로세스가 먼저 해당파일에 대한 접근을 하고 있는 경우이다. 그러므로 로컬 시스템에서의 동시접근제어부터 다시 시작하게 되는 경우이다.Receiving the simultaneous access control permission from the second redundancy agent (S200) is the step of transmitting the setup message for the redundancy process to prepare a job to the second redundancy agent (S203), the second redundancy agent is Checking whether a request for access to the same file as the file to be accessed by the redundancy process is registered with a second redundancy agent (S205), and when the check result is registered, the second redundancy agent rejects the redundancy process with the redundancy process; In step S207, and the duplication process transmits an access request cancellation message for the file to be accessed to the first redundancy agent (S209), and the first redundancy agent receiving the request cancellation message is rejected. Delete the request that was made (S211), and waits for a predetermined time (S212) after the first double again It may include a step (S213) to return to step (S100) receiving the permission from the simultaneous access control agent. In this case, simultaneous access control on the local system is completed normally, and on the remote system, another process is accessing the file first. Therefore, it is the case to start from the simultaneous access control on the local system again.

상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업메시지를 전송하는 단계(S400)는 이중화를 위해서 실제 작업에 사용된 메시지를 전송하는 단계이다.In operation S400, the duplication process transmits a work message to the second duplication agent, in which a message used for an actual work is transmitted for duplication.

상기 제2이중화 에이전트가 상기 수신된 작업메시지를 제2 메모리 파일시스템에 반영하는 단계(S500)는 제2이중화 에이전트가 제2메모리 파일시스템 라이브러리의 내부 인터페이스 및 파일 입출력 모듈을 통해 제2 메모리 파일시스템에 실제 작업을 반영하는 단계이다.In step S500, the second redundancy agent reflects the received work message to a second memory file system, in which the second redundancy agent is connected to a second memory file system through an internal interface and a file input / output module of a second memory file system library. To reflect the actual work.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기 능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.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, optical data storage devices, and the like, which are also implemented in the form of carrier waves (eg, transmission over the Internet). It also includes. 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. And functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이 분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현 방법 및 시스템은 메인 메모리 기반의 파일시스템을 구현하여 기존의 디스크를 사용하는 방식에 비해서 성능 향상을 이룰 수 있다. 또한, 이중화 기능을 제공하게 되므로 한쪽 시스템에 문제가 발생한 경우에 다른 서버에 있는 파일시스템을 사용하여 복구할 수 있는 구조를 지원하여 보다 안정적인 파일시스템의 운영이 가능하다. 또한, 디스크로의 동기화 기능을 제공하므로 시스템의 재구동 이후에도 다시 파일시스템을 사용할 수 있고, 라이브러리로 제공되므로 커널설정이나 시스템의 설정 변경 등의 작업이 필요 없게 된다.As described above, a method and a system for implementing a redundant memory file system in a distributed network environment may implement a main memory-based file system to improve performance compared to a method using a conventional disk. In addition, since the redundancy function is provided, it is possible to operate a more stable file system by supporting a structure that can be recovered by using a file system on another server when a problem occurs in one system. In addition, since the synchronization function to the disk is provided, the file system can be used again after the system is restarted, and provided as a library, there is no need for kernel configuration or system configuration change.

Claims (24)

사용자 응용프로그램 프로세스로부터 메모리 파일시스템 라이브러리가 파일시스템의 접근을 요청받는 접근요청단계; 및An access request step in which a memory file system library is requested to access a file system from a user application program process; And 상기 메모리 파일시스템 라이브러리가 메인 메모리에 구현된 메모리 파일시스템에 접근하여 상기 사용자 응용프로그램 프로세스의 접근 요청에 대응하는 작업을 수행하는 요청처리단계를 구비하는 것을 특징으로 하는 분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현 방법.And a request processing step in which the memory file system library accesses a memory file system implemented in main memory and performs a task corresponding to an access request of the user application program process. How to implement the system. 제1항에 있어서, 상기 이중화 메모리 파일시스템 구현 방법은The method of claim 1, wherein the redundant memory file system is implemented. 상기 사용자 응용프로그램 프로세스의 접근요청에 대응하는 작업이 상기 메모리 파일시스템의 변경작업인 경우에, 상기 메모리 파일시스템 라이브러리가 상기 메모리 파일시스템과 동기화된 디스크에 상기 변경작업을 수행하는 디스크 동기화단계를 더 구비하는 것을 특징으로 하는 분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현 방법.If the operation corresponding to the access request of the user application process is a change operation of the memory file system, a disk synchronization step of performing the change operation on a disk synchronized with the memory file system by the memory file system library is further included. A method of implementing a redundant memory file system in a distributed network environment, comprising: 메인 메모리 상에 구현된 메모리 파일시스템; 및A memory file system implemented on main memory; And 사용자 응용프로그램 프로세스로부터 상기 메모리 파일시스템의 접근을 요청받고 상기 접근요청에 대응하는 작업을 수행하는 메모리 파일시스템 라이브러리를 구비하는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.And a memory file system library for requesting access of the memory file system from a user application program process and performing a task corresponding to the access request. 제 3항에 있어서, 상기 이중화 메모리 파일시스템 구현 시스템은The system of claim 3, wherein the redundant memory file system implementation system 상기 메모리 파일시스템의 이중화를 담당하기 위한 서버 프로세서인 이중화 에이전트를 더 구비하는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.And a redundancy agent which is a server processor for performing redundancy of the memory file system. 제 3항에 있어서, The method of claim 3, wherein 상기 메모리 파일시스템의 객체들은 공유 메모리상에 저장되는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.The system of the redundant memory file system in a distributed network environment, wherein the objects of the memory file system are stored on a shared memory. 제 3항 내지 제 5항의 어느 한 항에 있어서, 상기 메모리 파일시스템은6. The memory file system of claim 3, wherein the memory file system comprises: 파일 및 디렉터리의 메타데이터를 저장하기 위한 수퍼블럭; 및A superblock for storing metadata of files and directories; And 상기 파일의 내용을 저장하기 위한 페이지 영역을 구비하는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.And a page area for storing contents of the file. 제 6항에 있어서, 상기 수퍼블럭은The method of claim 6, wherein the superblock is 상기 페이지 영역의 첫 번째 미사용 페이지의 포인터, 마지막 미사용페이지의 포인터, 최상위 디렉터리의 포인터 중 적어도 하나를 포함하는 인덱스 트리에 저장되는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.And an index tree including at least one of a pointer of a first unused page, a pointer of a last unused page, and a pointer of a top-level directory of the page area. 제 6항에 있어서, 상기 페이지 영역은 The method of claim 6, wherein the page area is 소정의 동일한 크기의 페이지들로 분할되고, 미사용 페이지를 링크드 리스트의 형태로 관리하는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.A system for implementing a redundant memory file system in a distributed network environment, wherein pages are divided into pages of a predetermined size, and unused pages are managed in the form of a linked list. 제 3항 또는 제4항에 있어서,상기 메모리 파일시스템 라이브러리는 The library of claim 3 or 4, wherein the memory file system library 운영시스템 또는 사용자 응용프로그램과의 데이터 교환을 위한 인터페이스;An interface for exchanging data with an operating system or user application; 상기 메모리 파일시스템으로부터 파일을 입력 또는 출력하기 위한 파일 입출력 모듈; 및A file input / output module for inputting or outputting a file from the memory file system; And 상기 메모리 파일시스템의 이중화를 위한 이중화 모듈을 구비하는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.And a redundancy module for redundancy of the memory file system. 제 9항에 있어서, 상기 메모리 파일시스템 라이브러리는 10. The system of claim 9, wherein the memory file system library is 상기 이중화에이전트와 상기 메모리 파일시스템과의 데이터의 교환 기능을 갖는 내부 인터페이스를 더 구비하는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.And an internal interface having a function of exchanging data between the redundant agent and the memory file system. 제 9항에 있어서, 상기 메모리 파일시스템 라이브러리는10. The system of claim 9, wherein the memory file system library is 상기 메모리 파일시스템과 디스크 장치의 동기화를 위한 로깅 모듈을 더 구비하는 것을 특징으로 하는 분산네트워크 환경에서의 이중화 메모리 파일시스템 구현 시스템.And a logging module for synchronizing the memory file system with the disk device. 제1호스트의 이중화 프로세스가 상기 제1호스트의 제1이중화 에이전트와 연결되고, 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계;Connecting a redundancy process of a first host to a first redundancy agent of the first host and receiving simultaneous access control permission from the first redundancy agent; 상기 이중화 프로세스가 제2호스트의 제2이중화 에이전트와 연결되고, 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계;Connecting the redundancy process to a second redundancy agent of a second host and receiving concurrent access control permission from the second redundancy agent; 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업메시지를 전송하는 단계; 및The redundancy process sending a work message to the second redundancy agent; And 상기 제2이중화 에이전트는 상기 수신된 작업메시지를 상기 제2호스트의 메모리 파일시스템에 반영하는 단계를 구비하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 방법.And the second redundancy agent reflects the received work message to the memory file system of the second host. 제 12항에 있어서, 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계는,The method of claim 12, wherein receiving the concurrent access control permission from the first redundancy agent, 상기 이중화 프로세스가 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계;The duplication process sending a setup message to the first duplication agent to prepare for work; 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확 인하는 단계; 및Checking, by the first redundancy agent, that the access request for the same file as the file to be accessed by the redundancy process is registered with the first redundancy agent; And 상기 확인한 결과 등록되어있지 않은 경우에 제1이중화 에이전트가 상기 이중화 프로세스로 허락 메시지를 전송하는 단계를 구비하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 방법.And sending a permission message to the redundancy process if the first redundancy agent is not registered as a result of the checking. 제 12항에 있어서, 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계는,The method of claim 12, wherein receiving the concurrent access control permission from the first redundancy agent, 상기 이중화 프로세스가 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계; The duplication process sending a setup message to the first duplication agent to prepare for work; 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계;Checking, by the first redundancy agent, that the access request for the same file as the file to be accessed by the redundancy process is registered with the first redundancy agent; 상기 확인한 결과 등록되어있는 경우에 제1이중화 에이전트가 상기 이중화 프로세스로 거절 메시지를 전송하는 단계; 및Transmitting a rejection message to the duplication process by the first duplication agent when the registration result is confirmed; And 상기 이중화 프로세스가 상기 거절 메시지를 수신하면 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고 소정의 시간 동안 대기 후 다시 상기 셋업 메시지를 전송하는 단계를 구비하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 방법.And when the redundancy process receives the rejection message, transmitting an access request cancellation message for the file to be accessed to the first redundancy agent and transmitting the setup message again after waiting for a predetermined time. Redundancy method of redundant memory file system. 제 12항에 있어서, 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받 는 단계는,The method of claim 12, wherein receiving the concurrent access control permission from the second redundancy agent includes: 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계;The redundancy process sending a setup message to prepare for work with the second redundancy agent; 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계; 및Checking, by the second redundancy agent, that the access request for the same file as the file to be accessed by the redundancy process is registered with the second redundancy agent; And 상기 확인한 결과 등록되어있지 않은 경우에 상기 제2이중화 에이전트가 상기 이중화 프로세스로 허락 메시지를 전송하는 단계를 구비하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 방법.And sending a permission message to the redundancy process by the second redundancy agent if it is not registered as a result of the checking. 제 12항에 있어서, 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받는 단계는,The method of claim 12, wherein receiving the concurrent access control permission from the second redundancy agent includes: 상기 이중화 프로세스가 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하는 단계; The redundancy process sending a setup message to prepare for work with the second redundancy agent; 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 이중화 프로세스가 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는지 확인하는 단계; Checking, by the second redundancy agent, that the access request for the same file as the file to be accessed by the redundancy process is registered with the second redundancy agent; 상기 확인한 결과 등록되어있는 경우에 제2이중화 에이전트가 상기 이중화 프로세스로 거절 메시지를 전송하는 단계; 및Transmitting a rejection message to the redundancy process by the second redundancy agent when it is registered as a result of the checking; And 상기 이중화 프로세스가 상기 거절 메시지를 수신하면 상기 제1이중화 에이 전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고 소정의 시간 동안 대기 후 다시 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받는 단계로 복귀하는 단계를 구비하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 방법.When the redundancy process receives the rejection message, it transmits an access request cancellation message for the file to be accessed to the first redundancy agent, waits for a predetermined time, and receives simultaneous access control permission from the first redundancy agent. And a step of returning to the redundancy memory file system. 제 12항에 있어서, 상기 이중화 메모리 파일시스템의 이중화 방법은The method of claim 12, wherein the redundant method of the redundant memory file system 상기 이중화 프로세스가 상기 제2호스트의 상기 제2이중화 에이전트와 연결된 후에, 상기 제2이중화 에이전트가 이중화 담당 쓰레드를 생성하는 단계를 더 구비하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 방법.And after the redundancy process is connected with the second redundancy agent of the second host, the second redundancy agent creating a thread for redundancy. 제1이중화 에이전트, 제1 메모리 파일시스템 라이브러리, 및 제1 메모리 파일시스템을 구비하는 제1호스트 및 제2이중화 에이전트, 제2 메모리 파일시스템 라이브러리, 및 제2 메모리 파일시스템을 구비하는 제2호스트를 구비하며,A first host having a first redundancy agent, a first memory file system library, and a first memory file system, and a second host having a second redundancy agent, a second memory file system library, and a second memory file system. Equipped, 상기 제1 메모리 파일시스템 라이브러리 및 제2 메모리 파일시스템 라이브러리는 각각 내부인터페이스, 파일 입출력 모듈, 및 이중화 모듈을 구비하고,The first memory file system library and the second memory file system library each have an internal interface, a file input / output module, and a redundancy module. 상기 제1 메모리 파일시스템 라이브러리의 제1이중화 모듈은 상기 제1이중화 에이전트와 연결하고 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받으며, 제2이중화 에이전트와 연결하고 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받으며, 상기 제2이중화 에이전트로 작업메시지를 전송하고,The first redundancy module of the first memory file system library connects to the first redundancy agent and receives simultaneous access control permission from the first redundancy agent, connects to a second redundancy agent and simultaneously controls access from the second redundancy agent. With permission, send a work message to the second redundancy agent, 상기 제2이중화 에이전트는 상기 수신된 작업메시지를 내부인터페이스 및 파 일 입출력 모듈을 통해 제2 메모리 파일시스템에 반영하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 시스템.And wherein the second redundancy agent reflects the received work message to the second memory file system through an internal interface and a file input / output module. 제 18항에 있어서, 상기 제1이중화 모듈이 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받기 위해,19. The method of claim 18, wherein the first redundancy module is configured to receive concurrent access control permission from the first redundancy agent. 상기 제1 이중화 모듈이 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고,The first redundancy module sends a setup message to prepare for work with the first redundancy agent, 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 제1 이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있지 않은 경우에 상기 제1 이중화 모듈로 허락 메시지를 전송하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 시스템.The first redundancy agent transmits a permission message to the first redundancy module when an access request for the same file as the file to be accessed by the first redundancy module is not registered with the first redundancy agent. Redundancy system of redundant memory file system. 제 18항에 있어서, 상기 제1이중화 모듈이 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받기 위해,19. The method of claim 18, wherein the first redundancy module is configured to receive concurrent access control permission from the first redundancy agent. 상기 제1이중화 모듈이 상기 제1이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고,The first redundancy module sends a setup message for preparing a job to the first redundancy agent, 상기 제1이중화 에이전트가 상기 제1이중화 에이전트에 상기 제1이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는 경우에 상기 제1이중화 모듈로 거절 메시지를 전송하고,The first redundancy agent transmits a rejection message to the first redundancy module when an access request for the same file as the file to be accessed by the first redundancy module is registered with the first redundancy agent; 상기 제1이중화 모듈이 상기 거절 메시지를 수신하면 상기 제1이중화 에이전 트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고, 소정의 시간 동안 대기 후 다시 상기 셋업 메시지를 전송하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 시스템.When the first redundancy module receives the rejection message, the first redundancy module transmits an access request cancellation message for the file to be accessed to the first redundancy agent, and transmits the setup message again after waiting for a predetermined time. Redundancy system of redundant memory file system. 제 18항에 있어서, 상기 제1이중화 모듈이 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받기 위해,19. The method of claim 18, wherein the first redundancy module is configured to receive concurrent access control permission from the second redundancy agent. 상기 제1이중화 모듈이 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고, The first redundancy module sends a setup message for preparing a job to the second redundancy agent, 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 제1이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있지 않은 경우에 상기 제1이중화 모듈로 허락 메시지를 전송하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 시스템.The second redundancy agent transmits a permission message to the first redundancy module when an access request for the same file as the file to be accessed by the first redundancy module is not registered in the second redundancy agent. Redundancy system of redundant memory file system. 제 18항에 있어서, 상기 제1 이중화 모듈이 상기 제2이중화 에이전트로부터 동시접근제어 허락을 받기 위해,19. The method of claim 18, wherein the first redundancy module receives concurrent access control permission from the second redundancy agent. 상기 제1 이중화 모듈이 상기 제2이중화 에이전트로 작업을 준비하기 위한 셋업 메시지를 전송하고,The first redundancy module sends a setup message to prepare for work with the second redundancy agent, 상기 제2이중화 에이전트가 상기 제2이중화 에이전트에 상기 제1 이중화 모듈이 접근하고자 하는 파일과 동일한 파일에 대한 접근 요청이 등록되어있는 경우에 제2이중화 에이전트가 상기 제1 이중화 모듈로 거절 메시지를 전송하고,The second redundancy agent sends a reject message to the first redundancy module when the second redundancy agent registers an access request for the same file as the file to be accessed by the first redundancy module in the second redundancy agent. and, 상기 제1 이중화 모듈이 상기 거절 메시지를 수신하면 상기 제1이중화 에이전트로 상기 접근하고자 하는 파일에 대한 접근 요청 취소 메시지를 전송하고, 소정의 시간 동안 대기 후 다시 상기 제1이중화 에이전트로부터 동시접근제어 허락을 받기 위해 셋업 메시지를 전송하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 시스템.When the first redundancy module receives the rejection message, it transmits an access request cancellation message for the file to be accessed to the first redundancy agent, and allows simultaneous access control from the first redundancy agent again after waiting for a predetermined time. Redundancy system of a redundant memory file system, characterized in that for transmitting a setup message to receive. 제 18항에 있어서, 상기 제2이중화 에이전트는19. The method of claim 18, wherein the second redundancy agent is 상기 제1 이중화 모듈이 상기 제2이중화 에이전트와 연결된 후에 이중화 담당 쓰레드를 생성하는 것을 특징으로 하는 이중화 메모리 파일시스템의 이중화 시스템.The redundancy system of the redundant memory file system, characterized in that for creating a thread for the redundancy after the first redundancy module is connected to the second redundancy agent. 제 1항 또는 제 2항, 제 12항 내지 제 17항 중 어느 하나의 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 기록매체.18. A recording medium having recorded thereon a program for carrying out the method of any one of claims 1 or 2 and 12 to 17.
KR1020060038263A 2006-04-27 2006-04-27 Method for providing replicated memory file system in distributed network and system thereof KR100766561B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060038263A KR100766561B1 (en) 2006-04-27 2006-04-27 Method for providing replicated memory file system in distributed network and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060038263A KR100766561B1 (en) 2006-04-27 2006-04-27 Method for providing replicated memory file system in distributed network and system thereof

Publications (1)

Publication Number Publication Date
KR100766561B1 true KR100766561B1 (en) 2007-10-11

Family

ID=39420151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060038263A KR100766561B1 (en) 2006-04-27 2006-04-27 Method for providing replicated memory file system in distributed network and system thereof

Country Status (1)

Country Link
KR (1) KR100766561B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003000400A (en) * 2001-06-22 2003-01-07 Itoki Crebio Corp Body supporter such as chair and manufacturing method thereof
JP2005000200A (en) * 2003-06-09 2005-01-06 Kyoraku Sangyo Game machine
JP2005234919A (en) 2004-02-20 2005-09-02 Hitachi Ltd Cluster memory file system
KR20070021849A (en) * 2005-08-20 2007-02-23 삼성전자주식회사 A method for managing a flash memory and a flash memory system
KR20070034762A (en) * 2005-09-26 2007-03-29 삼성전자주식회사 File access method in file system with floating position meta information table

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003000400A (en) * 2001-06-22 2003-01-07 Itoki Crebio Corp Body supporter such as chair and manufacturing method thereof
JP2005000200A (en) * 2003-06-09 2005-01-06 Kyoraku Sangyo Game machine
JP2005234919A (en) 2004-02-20 2005-09-02 Hitachi Ltd Cluster memory file system
KR20070021849A (en) * 2005-08-20 2007-02-23 삼성전자주식회사 A method for managing a flash memory and a flash memory system
KR20070034762A (en) * 2005-09-26 2007-03-29 삼성전자주식회사 File access method in file system with floating position meta information table

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문(2003.04.00)
논문(2005.02.00)

Similar Documents

Publication Publication Date Title
US7870353B2 (en) Copying storage units and related metadata to storage
US9785518B2 (en) Multi-threaded transaction log for primary and restore/intelligence
JP4799936B2 (en) Conditional snapshot acquisition method and system
US7487228B1 (en) Metadata structures and related locking techniques to improve performance and scalability in a cluster file system
KR100439675B1 (en) An efficient snapshot technique for shated large storage
JP4776342B2 (en) Systems and methods for generating object level snapshots in storage systems
US9122397B2 (en) Exposing storage resources with differing capabilities
US20130290248A1 (en) File storage system and file cloning method
US20050234867A1 (en) Method and apparatus for managing file, computer product, and file system
JP2014517363A (en) Clone file creation method and file system using it
US20070192375A1 (en) Method and computer system for updating data when reference load is balanced by mirroring
JP4400653B2 (en) Information system and information storage method of information system
JP2012137977A (en) Snap shot collection program, server and snap shot collection method
JP2004295465A (en) Computer system
JP2008102672A (en) Computer system, management computer, and method of setting operation control information
JP2008217281A (en) Exclusive storage use method
US20040254962A1 (en) Data replication for enterprise applications
Abramson et al. A BeeGFS-based caching file system for data-intensive parallel computing
JP2023518136A (en) FILE PROCESSING METHOD, APPARATUS, ELECTRONIC DEVICE, STORAGE MEDIUM, AND PROGRAM
US20070233972A1 (en) Methods and apparatus for transferring content to multiple destinations
KR100766561B1 (en) Method for providing replicated memory file system in distributed network and system thereof
JP2004252957A (en) Method and device for file replication in distributed file system
JP2007172365A (en) Data duplicate system, duplicate data processing program and duplicate data processing method
JP5760592B2 (en) Storage access control method for shared file system
KR100820772B1 (en) Method of recovering replicated memory file system in distributed network and system thereof

Legal Events

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

Payment date: 20111005

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20120926

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee