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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/145—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools 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
Description
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.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
메모리 상에 파일시스템을 구현하는 기존의 기술에는 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
도 2를 참조하면, 본 발명에 따른 이중화 메모리 파일시스템 구현 시스템(100)은 메인 메모리(160) 상에 구현된 메모리 파일시스템(110) 및 사용자 응용프로그램 프로세스(130)로부터 상기 메모리 파일시스템(110)의 접근을 요청받고 상기 접근요청에 대응하는 작업을 수행하는 메모리 파일시스템 라이브러리(120)를 구비한다. 상기 이중화 메모리 파일시스템 구현 시스템(100)은 상기 메모리 파일시스템(110)의 이중화를 담당하기 위한 서버 프로세서인 이중화 에이전트(140)를 더 구비할 수 있다. Referring to FIG. 2, the redundant memory file
수퍼블럭의 일실시예와 페이지 영역의 일실시예가 도 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
상기 수퍼블럭(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
상기 페이지 영역(113)은 도 5에서 도시한 바와 같이 소정의 동일한 크기의 페이지들로 분할되는 것이 바람직하고, 미사용 페이지들은 링크드 리스트(linked-list)의 형태로 관리할 수 있다. 모든 페이지는 초기에는 미사용 리스트(free-list)로 관리되고 있다가 할당 요청에 따라 첫 번째 미사용 페이지의 주소가 할당되고 미사용 리스트에서 제거된다. 이렇게 할당된 페이지는 검색트리의 형태로 관리 될 수 있다. 미사용 페이지들은 임의의 위치의 페이지를 찾을 필요가 없기 때문에 리스트 형태로 관리해도 되지만, 사용되는 페이지는 파일의 특정 위치를 임의 접근할 수 있어야 하므로, 순차적으로 접근 가능한 리스트 보다는 검색트리의 형태로 관리되는 것이 바람직하다. 상기 검색트리는 B트리, B+트리, B*트리, T트리 등으로 구현될 수 있다. As shown in FIG. 5, the
다시 도 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
상기 인터페이스(121)는 일반적인 응용프로그램들이 메모리 파일시스템 라이브러리(120)를 이용할 수 있도록 해준다. 상기 인터페이스(121)는 운영체제 표준인 POSIX(Portable Operating System Interface for Computer Environment)에 규정된 표준 API(Application programming interface)에서 제공되는 기능을 포함하는 것이 바람직하다.The
상기 파일 입출력 모듈(125)은 상기 메모리 파일시스템(110)으로부터 파일을 입력하거나 출력하는 기능을 구비한다.The file input /
상기 이중화 모듈(129)은 상기 메모리 파일시스템(110)을 이중화에 참여하는 다른 호스트에서도 동일하게 유지하는 기능을 한다. 분산네트워크 환경에서는 이중화에 참여하는 호스트가 다수일 수 있으나, 적어도 두 개의 호스트는 이중화에 참여하는 것이 바람직하다. 동일한 메모리 파일시스템(110)을 유지하기 위해, 응용프로그램 프로세스(130)가 쓰기 연산을 수행할 때에는 해당 호스트의 메모리 파일시 스템(110)을 변경하고, 이중화에 참여하는 다른 호스트의 메모리 파일시스템도 변경해야 한다. 응용프로그램 프로세스(130)이 읽기 연산을 수행할 때에는 해당 호스트의 메모리 상의 파일시스템에만 접근하면 되므로 상기 이중화 모듈(129)은 어떠한 동작도 취하지 않아도 된다.The
상기 내부 인터페이스(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
상기 로깅 모듈(127)은 상기 메모리 파일시스템(110)과 디스크장치(150)의 동기화 기능을 제공하여, 메모리에 존재하는 파일시스템을 동일하게 생성해서 시스템의 재구동 이후에도 다시 파일시스템을 사용할 수 있도록 한다.The
상기 이중화 에이전트(140)는 이중화에 참여하는 각각의 호스트에 하나씩 실행되고 있는 것이 바람직하다. 상기 이중화 에이전트(140)는 원격 호스트에서 발생되어 전송된 변경내역을 해당 지역 호스트에 위치한 메모리 파일시스템(110)에 적 용하는 역할을 한다. 또한, 상기 이중화 에이전트(140)는 메모리 파일시스템(110)에 장애가 발생한 경우 이중화에 참여하는 다른 호스트의 이중화 에이전트와 연결되면서 장애를 복구하는 작업을 할 수 있다. 또한, 상기 이중화 에이전트(140)는 메모리 파일시스템(110)상의 동일한 객체(파일 또는 디렉터리)에 대한 접근을 제어하여 동시에 변경 작업이 수행되지 않도록 제어하는 기능을 가질 수 있다.The
도 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
도 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
도 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)
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)
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 |
-
2006
- 2006-04-27 KR KR1020060038263A patent/KR100766561B1/en not_active IP Right Cessation
Patent Citations (5)
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)
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 |