KR20070061259A - Object-based storage system using pmem useful for high speed transmission with dma and method thereof - Google Patents

Object-based storage system using pmem useful for high speed transmission with dma and method thereof Download PDF

Info

Publication number
KR20070061259A
KR20070061259A KR1020060076360A KR20060076360A KR20070061259A KR 20070061259 A KR20070061259 A KR 20070061259A KR 1020060076360 A KR1020060076360 A KR 1020060076360A KR 20060076360 A KR20060076360 A KR 20060076360A KR 20070061259 A KR20070061259 A KR 20070061259A
Authority
KR
South Korea
Prior art keywords
block
pmem
unit
available
data
Prior art date
Application number
KR1020060076360A
Other languages
Korean (ko)
Other versions
KR100825724B1 (en
Inventor
이상민
김영균
김준
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20070061259A publication Critical patent/KR20070061259A/en
Application granted granted Critical
Publication of KR100825724B1 publication Critical patent/KR100825724B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]

Landscapes

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

Abstract

An object-based storage system using a PMEM capable of high speed transfer applied to a DMA mode and a transfer method thereof are provided to perform the high speed transfer among a block storage device, a network device, and the PMEM through the DMA mode by installing the PEMM and a dedicated bus between the block storage device and the network device. Each user process part(210) performs a file transfer service. A data storing part(230) stores object data transferred to the network device and permits DMA access to the user process part. A driver part(220) manages the data storing part to enable the DMA access by reporting a storage state. The data storing part includes a block storing part storing the object data in a block unit, a network interface part connecting to the network to transfer the object data from the user process part, and a PEMM part. The PEMM part temporarily stores and outputs the object data in the block unit by respectively connecting to the block storing part and the network interface part through the DMA mode.

Description

직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)를 이용한 객체 기반 저장시스템 및 그 시스템에서의 전송 방법{Object-based storage system using PMEM useful for high speed transmission with DMA and method thereof}Object-based storage system using PMEM useful for high speed transmission with DMA and method approximately}

도 1은 객체기반 저장 시스템의 전체 구성을 보여주는 도면이다.1 is a diagram showing the overall configuration of an object-based storage system.

도 2는 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)를 이용한 객체 기반 저장시스템의 구성을 보여주는 블록도이다.FIG. 2 is a block diagram illustrating a configuration of an object-based storage system using PMEM (PCI Memory) capable of high-speed transmission using the direct access method according to the present invention.

도 3은 도 2의 데이터저장부의 상세 기능 블록도이다.3 is a detailed functional block diagram of the data storage unit of FIG. 2.

도 4는 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 PMEM을 이용한 객체 기반 저장시스템의 다른 구성을 보여주는 블록도이다.4 is a block diagram showing another configuration of an object-based storage system using PMEM capable of high-speed transmission using the direct access method according to the present invention.

도 5는 도 4의 하드웨어 플랫폼의 구성을 보여주는 블록도이다.5 is a block diagram illustrating a configuration of a hardware platform of FIG. 4.

도 6은 본 발명에 의한 PMEM 블록 배치를 설명하기 위한 도면이다.6 is a view for explaining a PMEM block arrangement according to the present invention.

도 7은 본 발명에 의한 PMEM 블록 관리를 위한 가용리스트 배치도이다.7 is a layout view of available lists for PMEM block management according to the present invention.

도 8은 본 발명에 의한 PMEM 블록 관리를 위한 할당리스트 배치도이다.8 is a layout view of allocation list for PMEM block management according to the present invention.

도 9는 본 발명에 의한 사용자 프로세스의 zero-copy를 설명하기 위한 도면이다.9 is a diagram for explaining zero-copy of a user process according to the present invention.

도 10은 본 발명에 의한 PMEM을 이용한 파일 쓰기 zero-copy를 설명하기 위 한 도면이다. 10 is a view for explaining a file write zero-copy using PMEM according to the present invention.

도 11은 본 발명에 의한 전송 방법의 과정을 보여주는 흐름도이다.11 is a flowchart illustrating a process of a transmission method according to the present invention.

도 12는 본 발명에 의한 전송 방법의 과정을 보다 상세하게 보여주는 흐름도이다.12 is a flowchart showing the process of the transmission method according to the present invention in more detail.

본 발명은 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)를 이용한 객체 기반 저장시스템 및 그 저장시스템에서의 데이터 전송 방법에 관한 것으로서, 보다 상세하게는 객체기반 저장 시스템에서 사용자 파일 관리자가 네트워크 장치를 통한 파일 전송 처리시 블록기반 저장장치에서 직접 네트워크 장치로 보내기 위해서 이들 장치 사이에 PMEM 장치를 두어 CPU와 시스템 버스의 부하를 최소화 할 수 있는 시스템 및 그 방법에 관한 것이다. The present invention relates to an object-based storage system using a PMEM (PCI Memory) capable of high-speed transmission using a direct access method, and a data transmission method in the storage system, and more particularly to a user file manager in an object-based storage system. The present invention relates to a system and a method capable of minimizing the load on the CPU and the system bus by placing a PMEM device between these devices in order to directly transfer the data from the block-based storage device to the network device.

종래에는 SAN(Storage Area Network) 저장장치와 수십 개의 고성능 CPU로 구성된 시스템들을 클러스터 형태의 미들웨어 소프트웨어를 통해서 구현하였다. 또 다른 방식은 특정한 파일 형태(예, 대용량 멀티미디어 객체) 서비스에 대해서 이에 맞는 구성 및 배치를 통해 효율적인 객체 서비스를 가능한 것이 있다. 그러나 특정한 전송에 대해 최적화된 저장 구조의 가지므로 여러 종류를 지원할 수 없어서 범용성이 많이 떨어지는 문제점이 있다. 또한 일반적인 컴퓨터시스템에서 네트워크로 데이터 송신 처리를 할 때, 많은 시간을 사용자 주소공간과 운영체제 주소공간의 데이터 복사를 처리하는 데 많은 시간을 보내는 문제점이 있다.Conventionally, systems consisting of storage area network (SAN) storage and dozens of high-performance CPUs have been implemented through clustered middleware software. Another method is to provide efficient object service through configuration and arrangement for a specific file type (eg, large multimedia object) service. However, since there is a storage structure optimized for a specific transmission, there is a problem that the generality is poor because it cannot support several types. In addition, when the data transmission process from a general computer system to the network, there is a problem that spends a lot of time to process the data copy of the user address space and the operating system address space.

본 발명이 이루고자 하는 기술적 과제는 상기의 문제점을 해결하기 위하여 안출된 것으로서, 블록 저장장치와 네트워크 장치 사이에 PMEM 메모리 장치를 두고 이들 사이에는 CPU와는 독립적인 전용 버스를 두고 블록 저장장치 및 네트워크 장치와 PMEM 메모리 장치 사이에는 직접전송방식(DMA)을 통해 고속으로 전송할 수 있는 시스템 및 그 시스템을 이용한 전송 방법을 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and includes a PMEM memory device between a block storage device and a network device, and a dedicated bus independent of the CPU between the block storage device and the network device. The present invention provides a system capable of high-speed transfer through a direct transfer method (DMA) between PMEM memory devices and a transfer method using the system.

상기의 기술적 과제를 이루기 위하여 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)를 이용한 저장시스템은 파일전송 서비스를 수행하는 적어도 하나 이상의 사용자 프로세스부; 네트워크장치로 전송하기 위한 객체데이터를 저장하며, 상기 사용자 프로세스부가 직접접속방식으로 액세스할 수 있는 데이터저장부; 및 저장상태를 알려주어 상기 직접접속방식의 액세스가 가능하도록 상기 데이터저장부를 관리하는 드라이버부;를 포함하는 것을 특징으로 한다.In order to achieve the above technical problem, a storage system using PMEM (PCI Memory) capable of high-speed transmission using the direct access method according to the present invention includes at least one user processor for performing a file transfer service; A data storage unit for storing object data for transmission to a network device and accessible by the user process unit in a direct connection method; And a driver unit for managing the data storage unit to inform the storage state so that the direct access method can be accessed.

상기의 기술적 과제를 이루기 위하여 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 저장시스템에서의 전송 방법은 시스템 버스와 시스템 내부의 입출력버스와는 독립적인 버스로 접속하는 블록기반저장장치와 PMEM 그리고 네트워크 인터페이스 장치를 구비하는 직접접속방식을 적용하는 고속 전송이 가능한 저장시스템에서 파일전송을 수행하는 방법에 있어서, PMEM의 적어도 하나 이상의 블록중 가용상태인 블록을 목록화한 가용리스트와, 데이터가 차있는 블록을 목록화한 할당목록으로 포함하는 블록정보를 구비하는 단계; 사용자 프로세스로부터 파일 쓰기 요청이 있으면 상기 가용리스트를 참조하여 가용 블록을 탐색한 후 존재하면 사용자 공간 주소로 매핑하고 상기 블록정보를 갱신하는 단계; 상기 사용자 프로세스가 상기 사용자 공간 주소를 기초로 상기 저장장치에 저장되어 있는 객체 데이터를 상기 매핑된 가용 블록에 전송한 후 상기 네트워크 인터페이스를 거쳐 전송하는 단계; 및 더 이상의 전송을 요하는 데이터가 없으면 상기 매핑된 가용블록의 주소공간을 해제하고 상기 할당목록에서 삭제하여 가용블록상태로 환원하는 단계;를 포함하는 것을 특징으로 한다.In order to achieve the above technical problem, a transmission method in a storage system capable of high-speed transmission using the direct access method according to the present invention includes a block-based storage device and a PMEM connected to a bus independent of a system bus and an input / output bus inside the system. In the method for performing file transfer in a storage system capable of high-speed transfer using a direct access method including a network interface device, an available list listing available blocks among at least one block of the PMEM and data Providing block information including a list of the full blocks as an allocation list; Searching for an available block by referring to the available list when a file write request is received from a user process, mapping the user block to a user space address, and updating the block information if present; Transmitting, by the user process, the object data stored in the storage device based on the user space address to the mapped available block and then through the network interface; And if there is no data requiring further transmission, releasing the address space of the mapped available blocks and deleting them from the allocation list to return to the available block state.

이하 첨부한 도면을 참조하면서 본 발명의 바람직한 일 실시예를 상세하게 설명하도록 한다. 도 1은 객체기반 저장 시스템의 전체 구성을 보여주는 도면이다.객체기반 스토리지 시스템은 도 1과 같이 n개의 사용자 파일 관리자(100,101), 메타데이터 관리 서버(110), 그리고 n'개의 객체기반 저장 장치(120,121)로 구성되어 있다. 사용자 파일 관리자(100,101)는 사용자의 파일관련 요청을 받아서 메타데이터는 메타데이터 관리 서버에게, 파일의 실제 데이터는 객체기반 저장 장치들에게 요구한다. 객체로 구성된 파일의 구성정보를 관리하는 메타데이터 관리 서버는 사용자 파일 관리자 요청의 타당성을 검사하고 요청한 메타데이터(즉, 파일의 객체 구성정보)를 네트워크를 통해 보낸다. 마찬가지로 객체를 관리하는 객체기반 저장장치는 사용자 파일 관리자에게 객체 데이터를 넘겨준다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. FIG. 1 is a diagram illustrating an overall configuration of an object-based storage system. As shown in FIG. 1, an object-based storage system includes n user file managers 100 and 101, a metadata management server 110, and n ′ object-based storage devices. 120,121). The user file managers 100 and 101 receive a user's file-related request and request metadata from a metadata management server and actual data of a file from object-based storage devices. The metadata management server that manages the configuration information of the file composed of objects checks the validity of the user file manager request and sends the requested metadata (that is, the object configuration information of the file) through the network. Similarly, object-based storage that manages objects passes object data to the user's file manager.

도 2는 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)를 이용한 객체 기반 저장시스템의 구성을 보여주는 블록도이고, 도 3은 도 2의 데이터저장부의 상세 기능 블록도이다. 먼저 도 2를 참조하면, 사용자 프로세스부(210)는 파일전송 서비스를 수행하며, 데이터저장부(230)는 객체 기반 저장 시스템과 접속되는 네트워크장치로 전송하기 위한 객체데이터를 저장하며, 드라이버부(220)는 데이터의 저장상태를 알려주어 직접접속방식(DMA)의 액세스가 가능하도록 상기 데이터저장부(230)를 관리한다. 그리고 사용자 프로세스부(210)는 시스템 버스와는 독립적인 입출력버스로 상기 데이터저장부(230)를 직접접속방식으로 액세스한다. FIG. 2 is a block diagram showing the configuration of an object-based storage system using PMEM (PCI Memory) capable of high-speed transmission according to the present invention. FIG. 3 is a detailed functional block diagram of the data storage unit of FIG. . First, referring to FIG. 2, the user processor 210 performs a file transfer service, and the data storage 230 stores object data for transmission to a network device connected to an object-based storage system. 220 manages the data storage unit 230 to inform the storage state of the data to enable direct access (DMA) access. In addition, the user processor 210 accesses the data storage 230 in a direct connection manner through an input / output bus independent of the system bus.

데이터저장부(230)의 상세 구성을 살펴본다. 먼저 블록저장부(310)는 객체데이터를 블록단위로 저장한다. 네트워크 인터페이스부(320)는 상기 사용자 프로세스부(210)가 전송하고자 하는 객체데이터를 전송하기 위하여 망에 접속하는 기능을 수행한다. PMEM부(330)는 상기 블록저장부(310) 및 네트워크 인터페이스부(320)와 각각 직접접속방식으로 접속하여 상기 객체데이터를 블록단위로 임시 저장하여 출력한다. PMEM부(330)는 상기 블록의 시작 주소를 포함하는 정보를 담고 있는 블록정보부(331), 상기 블록정보부가 참조하는 주소의 블록이 빈 상태인지 알려주는 자유블록부(333), 그리고 데이터가 차 있는 블록의 목록을 알려주는 할당블록부(335)로 구성되어, 궁극적으로 메모리를 하나 이상의 블록 단위로 분할하여, 각 블록 단위 메모리의 가용 여부를 상기 사용자 프로세스부(210)에게 제공한다. 한편 상기 PMEM부(330)은 저장하고자 하는 객체 데이터의 특성에 따라 상기 블록 단위(예를들면 128KByte, 256Kbyte,...,등)를 결정한다.Look at the detailed configuration of the data storage unit 230. First, the block storage unit 310 stores the object data in units of blocks. The network interface 320 performs a function of accessing a network in order to transmit object data to be transmitted by the user processor 210. The PMEM unit 330 is connected to the block storage unit 310 and the network interface unit 320 in a direct connection method, respectively, and temporarily stores and outputs the object data in block units. The PMEM unit 330 may include a block information unit 331 containing information including a start address of the block, a free block unit 333 indicating whether a block of an address referred to by the block information unit is empty, and the data is different from each other. It is composed of an allocation block unit 335 that informs the list of blocks, and ultimately divides the memory into one or more block units, and provides the user processor 210 with the availability of each block unit memory. The PMEM unit 330 determines the block unit (eg, 128 KByte, 256 Kbyte, ..., etc.) according to the characteristics of the object data to be stored.

이제, 도 4 내지 도 10을 참조하면서 보다 상세하게 살펴본다. 도 4는 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 PMEM을 이용한 객체 기반 저장시스템의 다른 구성을 보여주는 블록도이고, 도 5는 도 4의 하드웨어 플랫폼의 구성을 보여주는 블록도이다. 도 6 내지 도 8은 PMEM 블록에 관한 것으로서, 도 6은 본 발명에 의한 PMEM 블록 배치를 설명하기 위한 도면이고, 도 7은 본 발명에 의한 PMEM 블록 관리를 위한 가용리스트 배치도이며, 도 8은 본 발명에 의한 PMEM 블록 관리를 위한 할당리스트 배치도이다. 그리고 도 9는 본 발명에 의한 사용자 프로세스의 zero-copy를 설명하기 위한 도면이며, 도 10은 본 발명에 의한 PMEM을 이용한 파일 쓰기 zero-copy를 설명하기 위한 도면이다. Now, look in more detail with reference to Figures 4 to 10. FIG. 4 is a block diagram showing another configuration of an object-based storage system using PMEM capable of high-speed transmission using the direct access method according to the present invention. FIG. 5 is a block diagram showing the configuration of the hardware platform of FIG. 6 to 8 relate to a PMEM block, FIG. 6 is a diagram illustrating a PMEM block arrangement according to the present invention, FIG. 7 is an available list arrangement diagram for PMEM block management according to the present invention, and FIG. An allocation list arrangement diagram for managing PMEM blocks according to the present invention. 9 is a view for explaining the zero-copy of the user process according to the present invention, Figure 10 is a view for explaining a file write zero-copy using PMEM according to the present invention.

도 4를 참조하면 소프트웨어적인 측면(400 내지 460)과 하드웨어적인 측면(470)으로도 구분하여 볼 수 있다. 소프트웨어적인 측면으로는 PMEM의 관리를 담당하는 PMEM 드라이버(440)와 블록 데이터를 제어하는 블록 장치 드라이버(430)가 있다. TOE(TCP/IP Offload Engine) 드라이버(460)는 PMEM 블록을 사용하여 PMEM 데이터를 zero-copy 방식으로 네트워크 통해 직접전송방식(DMA) 전송을 한다. iSCSI initiator 드라이버(450)는 TOE 드라이버(460)를 통해 객체 데이터를 zero-copy를 통해 객체기반 저장장치에게 전송한다. MEM 문자 드라이버(410)는 파일 전송 서비스를 제공하는 사용자 프로세스들(400, 401)에게 운영체제 주소공간의 PMEM 드라이버 서비스 요청을 전달해준다. 또한 사용자 프로세스에게 여러 개의 PMEM 메모리 장치에 대한 정보를 알려주기 위해서 /proc(420)이 있다. Referring to Figure 4 may also be divided into the software side (400 to 460) and the hardware side (470). In terms of software, there are a PMEM driver 440 that manages PMEM and a block device driver 430 that controls block data. The TCP / IP Offload Engine (TOE) driver 460 uses the PMEM block to directly transmit the PMEM data through the network in a zero-copy manner. The iSCSI initiator driver 450 transmits object data to the object-based storage device through zero-copy through the TOE driver 460. The MEM character driver 410 delivers a PMEM driver service request in an OS address space to user processes 400 and 401 providing a file transfer service. In addition, there is a / proc 420 to inform the user process about multiple PMEM memory devices.

하드웨어적인 측면에 대한 보다 상세한 구성은 도 5에 나타나 있다. 블록 기 반 저장 장치(510)와 네트워크 장치(509)에 PMEM 메모리 장치(511)를 두고 이들 사이에는 호스트 CPU(500 내지 501)와는 독립적인 전용 버스(506)를 두어서, PMEM 메모리를 저장 장치와 네트워크 장치로 CPU(500 내지 501)와 CPU가 사용하는 시스템 버스(502, 504)에 대한 간섭 없이 직접전송방식(DMA)을 통해 고속으로 전송할 수 있다.A more detailed configuration of the hardware aspect is shown in FIG. A PMEM memory device 511 is provided in the block-based storage device 510 and the network device 509, and a dedicated bus 506 independent of the host CPUs 500 to 501 is disposed between the PMEM memory devices. It is possible to transmit at high speed through the direct transfer method (DMA) without interfering with the CPU 500 to 501 and the system buses 502 and 504 used by the CPU.

PMEM(600 내지 630) 메모리를 객체의 특성에 따라 여러 가지 크기(2M, 1M, 512K, 256K, 128K)의 블록(601 내지 606, 611 내지 616, 621 내지 626, 631 내지 636)으로 나누어서 도 6과 같이 관리한다. PMEM 블록 크기는 PMEM 메모리에서 블록 저장 장치(510) 혹은 네트워크 장치로의 직접전송방식(DMA) 전송의 단위가 된다. The PMEM (600 to 630) memory is divided into blocks (601 to 606, 611 to 616, 621 to 626, 631 to 636) of various sizes (2M, 1M, 512K, 256K, and 128K) according to the characteristics of the object. Manage as follows. The PMEM block size is a unit of direct transfer (DMA) transfer from the PMEM memory to the block storage device 510 or a network device.

하나 이상의 사용자 프로세스들이 파일 전송 서비스를 제공하기 위해서 PMEM 메모리 장치를 동시에 접근할 수 있어야 한다. 하나의 PMEM 블록이 여러 사용자 프로세스들이 동시에 읽기/쓰기를 하게 되면 공용자원인 PMEM 블록은 정확한 정보를 담을 수 없게 된다. 이를 위해서 소유자 식별자, 물리 시작 주소와 같은 PMEM 블록에 대한 정보를 pmem_list_entry(701 내지 704)를 통해서 표현한다. 각 pmem_list_entry(701 내지 704)는 PMEM의 블록(711 내지 715)을 각각 지정하고 있다. 사용되지 않는 PMEM 블록에 대해서는 이에 대한 pmem_list_entry를 free_list_head(700)에 넣어 놓는다. 이 free_list_head(700)는 각 PMEM 장치에 대한 PMEM 블록에 대한 것만을 관리하게 된다. 이렇게 함으로써 사용자 프로세스들이 어느 PMEM 장치에 가용한 PMEM 블록이 있는지 알 수가 있다. PMEM의 블록들(821 내지 835)중에서 할당된 PMEM 블록(821, 822, 831)은 이에 대한 pmem_list_entry(810 내지 812)를 free_list_head에서 꺼내어 alloc_list_head(800)에 넣어서 도 8과 같이 관리한다. alloc_list_head(800)는 도 7에 나타나 있는 free_list_head(700)와 다르게 단 하나의 리스트가 존재한다. More than one user process must be able to access the PMEM memory device simultaneously to provide file transfer services. If a PMEM block reads / writes several user processes at the same time, the common resource PMEM block cannot contain accurate information. For this purpose, information about a PMEM block such as an owner identifier and a physical start address is expressed through pmem_list_entry (701 to 704). Each pmem_list_entry 701 to 704 designates blocks 711 to 715 of PMEM, respectively. For unused PMEM blocks, pmem_list_entry for this is put in free_list_head (700). This free_list_head 700 manages only the PMEM block for each PMEM device. This allows the user processes to know which PMEM blocks are available on which PMEM devices. The PMEM blocks 821, 822, and 831 allocated among the blocks 821 to 835 of the PMEM take out pmem_list_entry 810 to 812 from the free_list_head, and put them in the alloc_list_head 800 to manage them as shown in FIG. Alloc_list_head 800 has only one list different from free_list_head 700 shown in FIG. 7.

파일 전송 서비스를 하는 사용자 프로세스들은 PMEM 드라이버를 통해서 할당 받은 PMEM 블록은 운영체제 주소공간(920)을 거치지 않고 사용자 주소공간(910)으로 복사를 하지 않고서는 직접적으로 접근할 수 없다. 이를 위해서 도 9와 같이 PMEM 물리주소공간중의 PMEM 블록들(930,931,932)중에서 할당 받은 PMEM(931) 블록을 mmap이라는 system call을 사용해서 파일 전송 서비스 프로세스들에게 직접적인 접근 수단을 제공한다. 이러한 방식은 사용자 주소 공간(910)으로부터 운영체제로의 복사 및 운영체제에서 사용자로의 복사를 없앨 수 있다. PMEM blocks allocated through the PMEM driver cannot be directly accessed without copying into the user address space 910 without going through the operating system address space 920. For this purpose, the PMEM 931 blocks allocated from the PMEM blocks 930, 931 and 932 in the PMEM physical address space are provided to the file transfer service processes by using a system call called mmap. This approach can eliminate copying from the user address space 910 to the operating system and copying from the operating system to the user.

도 10은 파일 전송 서비스 프로세스가 PMEM 블록(1041)을 통해 객체 데이터를 보내는 것을 보여주고 있다. 이러한 방식은 PMEM 블록을 할당 받고 직접 접근할 수 있는 사용자 프로세스들이 CPU와 CPU가 사용하는 시스템 버스, 그리고 다른 입출력 버스를 간섭하지 않고 직접전송방식(DMA)을 통해 전송할 수 있다.10 shows a file transfer service process sending object data via PMEM block 1041. This approach allows user processes that are allocated and directly accessible to the PMEM block to transmit via direct transfer (DMA) without interfering with the CPU, the system bus used by the CPU, and other I / O buses.

도 7을 참조하면, 읽기와 쓰기 명령에 의하여 PMEM 블록(1034)을 통한 블록 스토리지 장치(1033)에 있는 객체 데이터(1040,1041,1042)를 네트워크 인터페이스 카드(1035)를 통해 직접전송방식으로 이동하는 모습을 알 수 있다. 각 블록 스토리지 장치(1033)는 블록 스토리지 제어기(1031)에 의하여, PMEM(1034)는 PMEM 제어기(1032)에 의하여, 네트워크 인터페이스 카드(1035)와 직접접속방식에 의하여 연결되고 있다. 여기서 사용자 주소 공간(1001)과 PMEM 물리주소공간중의 PMEM 블록 들(1010,1011,1012)와 하드웨어적인 PMEM 블록(1034)으로의 맵핑은 도 9에서와 동일하므로 설명은 생략한다. Referring to FIG. 7, the object data 1040, 1041, 1042 in the block storage device 1033 through the PMEM block 1034 is transferred to the direct transfer method through the network interface card 1035 by reading and writing commands. You can see how. Each block storage device 1033 is connected by a block storage controller 1031 and a PMEM 1034 by a PMEM controller 1032 to the network interface card 1035 by a direct connection method. Since the mapping between the PMEM blocks 1010, 1011, and 1012 and the hardware PMEM block 1034 in the user address space 1001 and the PMEM physical address space is the same as in FIG. 9, description thereof is omitted.

이제, 도 11 내지 도 12를 참조하면서 본 발명에 의한 전송 방법의 바람직한 일 실시예를 설명하도록 한다. 그리고 도 11은 본 발명에 의한 전송 방법의 과정을 보여주는 흐름도이고, 도 12는 본 발명에 의한 전송 방법의 과정을 보다 상세하게 보여주는 흐름도이다.Now, a preferred embodiment of a transmission method according to the present invention will be described with reference to FIGS. 11 to 12. 11 is a flowchart illustrating a process of the transmission method according to the present invention, and FIG. 12 is a flowchart showing the process of the transmission method according to the present invention in more detail.

위에서 설명한 바와 같이, 시스템 버스와 시스템 내부의 입출력버스와는 독립적인 버스로 접속하는 블록기반저장장치와 PMEM(PCI Memory) 그리고 네트워크 인터페이스 장치를 구비하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM를 이용한 저장시스템에서, 먼저 상기 PMEM을 객체 데이터의 특성에 따라 적어도 하나 이상의 블록으로 분할한 후, PMEM의 적어도 하나 이상의 블록중 가용상태인 블록을 목록화한 가용리스트와, 데이터가 차있는 블록을 목록화한 할당목록으로 포함하는 블록정보를 준비한다(1111). As described above, a PMEM capable of high-speed transfer using a direct access method including a block-based storage device, a PMEM (PCI Memory), and a network interface device connected to a bus independent of the system bus and the I / O bus inside the system is provided. In the storage system used, first, the PMEM is divided into at least one block according to the characteristics of object data, and then an available list listing the available blocks among at least one block of the PMEM and a list of blocks filled with data are listed. The block information included in the allocated allocation list is prepared (1111).

다음으로, 사용자 프로세스로부터 파일 쓰기 요청이 있으면 상기 가용 블록이 존재하는지 판단하고, 그 결과 존재하면 그 가용 블록의 정보를 상기 할당목록에 이식함과 동시에 가용리스트에서 삭제한 후, 상기 가용 블록의 물리적 시작 주소를 사용자 프로세스 공간에 매핑하고, 상기 사용자 프로세스로 매핑된 사용자 공간 주소를 제공한 후에 상기 블록정보를 갱신한다(1113). Next, if there is a file write request from a user process, it is determined whether the available block exists, and if so, the information of the available block is transferred to the allocation list and deleted from the available list, and then the physical of the available block is deleted. After the start address is mapped to the user process space and the user space address mapped to the user process is provided, the block information is updated (1113).

이제, 사용자 프로세스가 상기 사용자 공간 주소를 기초로 상기 저장장치에 저장되어 있는 객체 데이터를 상기 매핑된 가용 블록에 전송한 후 상기 네트워크 인터페이스를 거쳐 전송하되, 저장장치에서 상기 매핑된 가용 블록으로 직접전송방식에 의하여 전송한다(1115). 마지막으로 더 이상의 전송을 요하는 데이터가 없으면 상기 매핑된 가용블록의 주소공간을 해제하고 상기 할당목록에서 삭제하여 가용블록상태로 환원하여 초기상태로 돌아간다(1117).Now, the user process transmits the object data stored in the storage device to the mapped available block based on the user space address and then transmits it through the network interface, but directly from the storage device to the mapped available block. The transmission method 1115. Finally, if there is no data requiring further transmission, the address space of the mapped available block is released, deleted from the allocation list, returned to the available block state, and returned to the initial state (1117).

이제, 도 12를 참조하면서 보다 세부적으로 살펴본다. 파일 전송 사용자 프로세스로부터 한 파일에 대한 쓰기 요청이 오면(1200) 메터데이터 관리 서버에게 요청한 객체에 대한 정보를 요청한다(1201). 이러한 정보 파일에는 어느 객체기반 저장 장치에 어떤 객체로 구성되어 있는지에 대한 정보가 있다. 객체기반 저장 장치에 그 객체가 존재하는지 확인한다(1202). 만약에 없으면 파일 쓰기의 요구에 대해서 존재하지 않는다는 메시지를 만든다(1204). 요청한 객체가 존재하면 PMEM을 통해서 보내기 위해서 PMEM 문자드라이버를 통해서 PMEM 블록 할당 요청을 PMEM 드라이버에게 보낸다(1203). 여기에서 PMEM 드라이버는 free_list_head(700)에서 첫 번째 가용 PMEM 블록을 검색하여(1205 내지 1206), 있으면 이에 대한 free_pmem_entry를 꺼내어서 alloc_list_head(800)에 넣는다(1207 내지 1209). 그리고 PMEM 문자 드라이버는 mmap를 통해서 PMEM 요청한 파일 쓰기를 요청한 사용자 프로세스에게 매핑된 사용자 프로세스 공간의 시작주소를 준다(1211 내지 1213). 이 주소를 통해 사용자 프로세스는 할당한 PMEM 블록에 접근할 수 있다. 그러나 한정된 자원인 PMEM 블록이 모두 다 사용되어서 할당할 수 없을 경우가 존재한다. 이 경우에는 주어진 시간만큼 기다려서 다시 PMEM 블록을 요청한다(1208). Now, look at in more detail with reference to FIG. When a write request for a file comes from a file transfer user process (1200), the metadata management server requests information about the requested object (1201). These information files contain information about which objects are organized in which object-based storage devices. It is checked whether the object exists in the object-based storage device (1202). If not, a message is generated (1204) that the request does not exist for the file write request. If the requested object exists, a PMEM block allocation request is sent to the PMEM driver through the PMEM character driver (1203). Here, the PMEM driver retrieves the first available PMEM block from the free_list_head 700 (1205 to 1206), and, if there is, free_pmem_entry for it, puts it into alloc_list_head 800 (1207 to 1209). The PMEM character driver gives the start address of the mapped user process space to the user process requesting the writing of the PMEM request file through mmap (1211 to 1213). This address allows the user process to access the allocated PMEM block. However, there is a case where all the limited resources, PMEM blocks, are used up and cannot be allocated. In this case, wait for the given time and request the PMEM block again (1208).

할당한 PMEM 블록에 접근할 수 있는 파일 전송 사용자 프로세스는 전송하고 자 하는 데이터가 저장되어 있는 블록 저장장치 디바이스 드라이버에게 PMEM 블록만큼의 읽기 요청을 보낸다(1215). 이 디바이스 드라이버는 저장장치에게 직접전송방식(DMA)을 통해 PMEM 블록으로 전송하라는 명령을 수행한다(1217). 직접전송방식(DMA)으로 전송된 데이터를 받은 PMEM 블록은 TOE 드라이버에게 다시 직접전송방식(DMA)으로 PMEM 블록에서 네트워크 장치로 전송하라는 명령을 보낸다(1218). 요청한 파일의 크기가 할당한 PMEM 블록의 크기보다 크면 계속해서 디스크로 읽어서 DMA로 네트워크 장치로 내 보낸다(1219). 객체의 쓰기 요청에 대한 서비스가 끝나면 매핑된 PMEM 블록의 사용자 주소영역을 unmap을 통해서 해제한 후(1210), alloc_list_head(800)에서 할당된 PMEM 블록의 list_pmem_entry를 찾아서 그 PMEM 블록이 속하는 free_list_head(700)에 넣어서 PMEM 블록을 해제한다(1212). 이러한 모든 절차가 성공적으로 끝나면 사용자에게 읽기를 성공적으로 마쳤다는 메시지를 만든 후(1214), 이를 사용자에게 보냄으로써 모든 절차를 종료한다(1216).The file transfer user process that can access the allocated PMEM block sends a read request as many as PMEM blocks to the block storage device driver in which data to be transferred is stored (1215). The device driver instructs the storage device to transmit a PMEM block to the PMEM block through a direct transfer method (DMA) (1217). The PMEM block receiving the data transmitted by the direct transmission method (DMA) sends a command to the TOE driver to transmit the data directly from the PMEM block to the network device by the direct transmission method (DMA) (1218). If the size of the requested file is larger than the size of the allocated PMEM block, it is continuously read to disk and exported to the network device by DMA (1219). After the service for the write request of the object is finished, the user address area of the mapped PMEM block is released through unmap (1210), and then all_oclist_head (800) finds list_pmem_entry of the allocated PMEM block and free_list_head (700) to which the PMEM block belongs. To release the PMEM block (1212). After all of these procedures have been successfully completed, a message is generated (1214) that the user has successfully read, and the procedure is terminated by sending them to the user (1216).

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

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

이상에서 살펴본 바와 같이, 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 저장시스템 및 그 시스템에서의 전송 방법은, 객체기반 스토리지 시스템의 사용자 파일 관리자를 구현하는 경우에 CPU와 시스템 버스의 간섭을 최소한으로 줄이면서 저장장치에서 네트워크장치로 객체의 데이터를 쓰기를 하기 위하여, 블록기반 저장장치와 네트워크 장치 사이에 PMEM 장치를 두고, 사용자 프로세스가 관리된 PMEM 메모리를 접근할 수 있는 방법과 직접전송방식(DMA)을 통해서 CPU의 부하를 줄일 수 있어, 비교적 낮은 비용으로 고성능 사용자 파일 관리자를 실현할 수 있다. As described above, a storage system capable of high-speed transmission using the direct access method according to the present invention and a transmission method in the system, when the user file manager of the object-based storage system is implemented, the interference between the CPU and the system bus In order to write object data from the storage device to the network device with the minimum amount of data, a PMEM device is placed between the block-based storage device and the network device, and the user process can access the managed PMEM memory and transfer it directly. Through the DMA, the CPU load can be reduced, and a high performance user file manager can be realized at a relatively low cost.

Claims (12)

파일전송 서비스를 수행하는 적어도 하나 이상의 사용자 프로세스부;At least one user processor for performing a file transfer service; 네트워크장치로 전송하기 위한 객체데이터를 저장하며, 상기 사용자 프로세스부가 직접접속방식으로 액세스할 수 있는 데이터저장부; 및 A data storage unit for storing object data for transmission to a network device and accessible by the user process unit in a direct connection method; And 저장상태를 알려주어 상기 직접접속방식의 액세스가 가능하도록 상기 데이터저장부를 관리하는 드라이버부;를 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 PMEM(PCI Memory)을 이용한 고속 전송이 가능한 저장시스템.And a driver unit for managing the data storage unit to inform the storage state so that the direct access method can be accessed. The storage system capable of high-speed transmission using PMEM (PCI Memory) to apply the direct access method. 제1항에 있어서, 상기 데이터저장부는The method of claim 1, wherein the data storage unit 객체데이터를 블록단위로 저장하는 블록저장부;Block storage unit for storing the object data in block units; 상기 사용자 프로세스부가 전송하고자 하는 객체데이터를 전송하기 위하여 망에 접속하기 위하여 망에 접속하는 네트워크 인터페이스부; 및A network interface unit connected to a network to access the network for transmitting the object data to be transmitted by the user processor; And 상기 블록저장부 및 네트워크 인터페이스부와 각각 직접접속방식으로 접속하여 상기 객체데이터를 블록단위로 임시 저장하여 출력하는 PMEM부;를 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템.A PMEM unit configured to connect to the block storage unit and the network interface unit in a direct connection method, respectively, and temporarily store and output the object data in block units; Storage system using PCI Memory. 제1항에 있어서, 상기 사용자 프로세스부는The method of claim 1, wherein the user processor 시스템 버스와 독립적인 입출력버스로 상기 데이터저장부를 직접접속방식으 로 액세스하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템.A storage system using a PMEM (PCI Memory) capable of high-speed transfer applying a direct connection method characterized in that the data storage unit is accessed by a direct connection method with an input / output bus independent of a system bus. 제2항에 있어서, 상기 PMEM부는The method of claim 2, wherein the PMEM unit 메모리를 적어도 하나 이상의 블록 단위로 분할하여, 각 블록 단위 메모리의 가용 여부를 상기 사용자 프로세스부에게 제공하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템.A storage system using a PMEM (PCI Memory) capable of high-speed transfer applying a direct access method characterized by dividing a memory into at least one block unit and providing the availability of each block unit memory to the user processor. 제4항에 있어서, 상기 PMEM부는The method of claim 4, wherein the PMEM unit 객체 데이터의 특성에 따라 상기 블록 단위를 결정하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템.A storage system using PMEM (PCI Memory) capable of high-speed transmission applying the direct access method characterized in that the block unit is determined according to the characteristics of object data. 제4항에 있어서, 상기 PMEM부는The method of claim 4, wherein the PMEM unit 상기 블록의 시작 주소를 포함하는 정보를 담고 있는 블록정보부;A block information unit containing information including a start address of the block; 상기 블록정보부가 참조하는 주소의 블록이 빈 상태인지 알려주는 자유블록부; 및A free block unit for indicating whether a block of an address referred to by the block information unit is empty; And 데이터가 차 있는 블록의 목록을 알려주는 할당블록부;를 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템.Allocating block unit for indicating a list of blocks filled with data; Storage system using a PMEM (PCI Memory) capable of high-speed transmission applying a direct access method comprising a. 시스템 버스와 시스템 내부의 입출력버스와는 독립적인 버스로 접속하는 블록기반저장장치와 PMEM(PCI Memory) 그리고 네트워크 인터페이스 장치를 구비하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM을 이용한 저장시스템에서 파일전송을 수행하는 방법에 있어서,In a storage system using PMEM that enables high-speed transfer using a direct access method that includes a block-based storage device connected to the system bus and an I / O bus inside the system, and a PMEM (PCI Memory) and a network interface device. In the method of performing the transmission, (a) PMEM의 적어도 하나 이상의 블록중 가용상태인 블록을 목록화한 가용리스트와, 데이터가 차있는 블록을 목록화한 할당목록으로 포함하는 블록정보를 구비하는 단계;(a) having an available list listing available blocks among at least one block of the PMEM, and block information including an allocation list listing the blocks filled with data; (b) 사용자 프로세스로부터 파일 쓰기 요청이 있으면 상기 가용리스트를 참조하여 가용 블록을 탐색한 후 존재하면 사용자 공간 주소로 매핑하고 상기 블록정보를 갱신하는 단계; (b) searching for an available block by referring to the available list when a file write request is received from a user process, mapping the user block to a user space address if present, and updating the block information; (c) 상기 사용자 프로세스가 상기 사용자 공간 주소를 기초로 상기 저장장치에 저장되어 있는 객체 데이터를 상기 매핑된 가용 블록에 전송한 후 상기 네트워크 인터페이스를 거쳐 전송하는 단계; 및(c) the user process transmitting object data stored in the storage device to the mapped available block based on the user space address and then transmitting the data through the network interface; And (d) 더 이상의 전송을 요하는 데이터가 없으면 상기 매핑된 가용블록의 주소공간을 해제하고 상기 할당목록에서 삭제하여 가용블록상태로 환원하는 단계;를 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)를 이용한 저장시스템에서의 전송 방법.(d) if there is no data requiring further transmission, releasing the address space of the mapped available block and deleting it from the allocation list to return to the available block state; Transmission method in storage system using PMEM (PCI Memory) which enables high speed transmission. 제7항에 있어서, 상기 (a)단계는The method of claim 7, wherein step (a) 상기 PMEM을 객체 데이터의 특성에 따라 적어도 하나 이상의 블록으로 분할하는 단계;를 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템에서의 전송 방법.Dividing the PMEM into at least one block according to the characteristics of the object data; A transmission method in a storage system using a PMEM (PCI Memory) capable of high-speed transmission applying a direct access method characterized in that it comprises a. 제7항에 있어서,The method of claim 7, wherein 상기 (a)단계 전에 메타 데이터를 관리하는 서버에게 상기 파일에 대한 객체 정보를 요청하여 입수되는 경우에만 상기 전송 절차를 진행하는 단계;를 더 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템에서의 전송 방법.The step of transmitting the direct access method further comprises the step; the step of proceeding the transmission process only if the request is obtained by requesting the object information about the file to the server managing the metadata before the step (a) Transfer method in a storage system using PMEM (PCI Memory). 제7항에 있어서, 상기 (b)단계는The method of claim 7, wherein step (b) (b1) 상기 가용 블록이 존재하는지 판단하는 단계;(b1) determining whether the available block exists; (b2) 존재하면 그 가용 블록의 정보를 상기 할당목록에 이식함과 동시에 가용리스트에서 삭제하는 단계; 및(b2) if present, transplanting information of the available blocks to the allocation list and deleting them from the available list; And (b3) 상기 가용 블록의 물리적 시작 주소를 사용자 프로세스 공간에 매핑하고, 상기 사용자 프로세스로 매핑된 사용자 공간 주소를 제공하는 단계;를 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템에서의 전송 방법.(b3) mapping a physical start address of the available block to a user process space and providing a user space address mapped to the user process; PMEM capable of high speed transmission using a direct access method comprising: Transmission method in storage system using (PCI Memory). 제7항에 있어서, 상기 (c)단계는The method of claim 7, wherein step (c) 상기 저장장치에서 상기 매핑된 가용 블록으로 직접전송방식에 의하여 전송하는 것을 특징으로 하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템에서의 전송 방법.The transmission method in a storage system using a PMEM (PCI Memory) capable of high-speed transmission, characterized in that the transmission from the storage device to the mapped available block by a direct transmission method. 시스템 버스와 시스템 내부의 입출력버스와는 독립적인 버스로 접속하는 블록기반저장장치와 PMEM 그리고 네트워크 인터페이스 장치를 구비하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템에서의 전송 방법에 있어서,In a storage system using PMEM (PCI Memory) that enables high-speed transfer using a direct connection method that includes a block-based storage device connected to the system bus and an I / O bus inside the system, and a PMEM and a network interface device. In the transmission method, (a) PMEM의 적어도 하나 이상의 블록중 가용상태인 블록을 목록화한 가용리스트와, 데이터가 차있는 블록을 목록화한 할당목록으로 포함하는 블록정보를 구비하는 단계;(a) having an available list listing available blocks among at least one block of the PMEM, and block information including an allocation list listing the blocks filled with data; (b) 사용자 프로세스로부터 파일 쓰기 요청이 있으면 상기 가용리스트를 참조하여 가용 블록을 탐색한 후 존재하면 사용자 공간 주소로 매핑하고 상기 블록정보를 갱신하는 단계; (b) searching for an available block by referring to the available list when a file write request is received from a user process, mapping the user block to a user space address if present, and updating the block information; (c) 상기 사용자 프로세스가 상기 사용자 공간 주소를 기초로 상기 저장장치에 저장되어 있는 객체 데이터를 상기 매핑된 가용 블록에 전송한 후 상기 네트워크 인터페이스를 거쳐 전송하는 단계; 및(c) the user process transmitting object data stored in the storage device to the mapped available block based on the user space address and then transmitting the data through the network interface; And (d) 더 이상의 전송을 요하는 데이터가 없으면 상기 매핑된 가용블록의 주소공간을 해제하고 상기 할당목록에서 삭제하여 가용블록상태로 환원하는 단계;를 포함하는 것을 특징으로 하는 직접접속방식을 적용하는 고속 전송이 가능한 PMEM(PCI Memory)을 이용한 저장시스템에서의 전송 방법을 컴퓨터에서 실행시킬 수 있는 프로그램을 기록한 컴퓨터가 읽을 수 있는 저장매체.(d) if there is no data requiring further transmission, releasing the address space of the mapped available block and deleting it from the allocation list to return to the available block state; A computer-readable storage medium that records a program that enables a computer to execute a transfer method in a storage system using PMEM (PCI Memory) capable of high speed transfer.
KR1020060076360A 2005-12-08 2006-08-11 Object-based storage system using PMEM useful for high speed transmission with DMA and method thereof KR100825724B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050120059 2005-12-08
KR1020050120059 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061259A true KR20070061259A (en) 2007-06-13
KR100825724B1 KR100825724B1 (en) 2008-04-29

Family

ID=38357196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060076360A KR100825724B1 (en) 2005-12-08 2006-08-11 Object-based storage system using PMEM useful for high speed transmission with DMA and method thereof

Country Status (1)

Country Link
KR (1) KR100825724B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ544663A (en) * 2003-08-13 2008-09-26 Microsoft Corp Routing hints
US7617256B2 (en) * 2004-07-19 2009-11-10 Microsoft Corporation Remote file updates through remote protocol

Also Published As

Publication number Publication date
KR100825724B1 (en) 2008-04-29

Similar Documents

Publication Publication Date Title
US7707337B2 (en) Object-based storage device with low process load and control method thereof
CN101419535B (en) Distributed virtual magnetic disc system of virtual machine
US7366835B2 (en) Data access responding system, storage system, client apparatus, cache apparatus, and method for accessing data access responding system
US5845147A (en) Single lock command for an I/O storage system that performs both locking and I/O data operation
US6954839B2 (en) Computer system
US20060123203A1 (en) Network device, fiber channel switch, method for shared memory access control, and computer product
US20090193207A1 (en) Computer system, remote copy method and first computer
CN112632069B (en) Hash table data storage management method, device, medium and electronic equipment
EP1107132A2 (en) Method and apparatus for reducing network traffic for remote file append operations
JP2000347982A (en) Recording medium recording program to be executed by information processor and computer
US20050235005A1 (en) Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof
JPWO2009066611A1 (en) Data storage system for virtual machine, data storage method, and data storage program
US7155492B2 (en) Method and system for caching network data
KR100663827B1 (en) Storage control apparatus and storage control method
CN116955219A (en) Data mirroring method, device, host and storage medium
CN115563075B (en) Virtual file system implementation method based on microkernel
US7827194B2 (en) Access to shared disk device on storage area network
US6516344B1 (en) Reducing network traffic for remote file system accesses by keeping track of unallocated regions in files
JP2006164218A (en) Storage system and its cache control method
KR100825724B1 (en) Object-based storage system using PMEM useful for high speed transmission with DMA and method thereof
CN114518962A (en) Memory management method and device
US6834281B1 (en) Method and apparatus to support multi-node direct access to file system data
US5802557A (en) System and method for caching information in a digital data storage subsystem
CN112748854B (en) Optimized access to a fast storage device
EP1839148A2 (en) Transferring data between system and storage in a shared buffer

Legal Events

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

Payment date: 20120330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee