KR100825724B1 - 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 PDFInfo
- Publication number
- KR100825724B1 KR100825724B1 KR1020060076360A KR20060076360A KR100825724B1 KR 100825724 B1 KR100825724 B1 KR 100825724B1 KR 1020060076360 A KR1020060076360 A KR 1020060076360A KR 20060076360 A KR20060076360 A KR 20060076360A KR 100825724 B1 KR100825724 B1 KR 100825724B1
- Authority
- KR
- South Korea
- Prior art keywords
- pmem
- block
- unit
- user
- available
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral 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
본 발명에 의한 직접접속방식을 적용하는 PMEM(PCI Memory)를 이용한 고속 전송이 가능한 저장시스템 및 그 시스템에서의 전송 방법은 파일전송 서비스를 수행하는 적어도 하나 이상의 사용자 프로세스부; 네트워크장치로 전송하기 위한 객체데이터를 저장하며, 상기 사용자 프로세스부가 직접접속방식으로 액세스할 수 있는 데이터저장부; 및 저장상태를 알려주어 상기 직접접속방식의 액세스가 가능하도록 상기 데이터저장부를 관리하는 드라이버부;를 포함하는 것을 특징으로 하며, 객체기반 스토리지 시스템의 사용자 파일 관리자를 구현하는 경우에 CPU와 시스템 버스의 간섭을 최소한으로 줄이면서 저장장치에서 네트워크장치로 객체의 데이터를 쓰기를 하기 위하여, 블록기반 저장장치와 네트워크 장치 사이에 PMEM 장치를 두고, 사용자 프로세스가 관리된 PMEM 메모리를 접근할 수 있는 방법과 직접전송방식(DMA)을 통해서 CPU의 부하를 줄일 수 있어, 비교적 낮은 비용으로 고성능 사용자 파일 관리자를 실현할 수 있다. A storage system capable of high-speed transmission using PMEM (PCI Memory) applying the direct access method according to the present invention and a transmission method in the system include at least one user process unit 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, and in case of implementing a user file manager of an object-based storage system. In order to write object data from the storage device to the network device with minimal interference, a PMEM device is placed between the block-based storage device and the network device, and the user can directly access the managed PMEM memory. Through the transfer method (DMA), the CPU load can be reduced, and a high performance user file manager can be realized at a relatively low cost.
저장장치, 파일 관리자, 객체기반 저장장치, 스토리지 Storage, File Manager, Object-Based Storage, Storage
Description
도 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
도 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
데이터저장부(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
이제, 도 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
하드웨어적인 측면에 대한 보다 상세한 구성은 도 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(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
하나 이상의 사용자 프로세스들이 파일 전송 서비스를 제공하기 위해서 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 드라이버를 통해서 할당 받은 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
도 10은 파일 전송 서비스 프로세스가 PMEM 블록(1041)을 통해 객체 데이터를 보내는 것을 보여주고 있다. 이러한 방식은 PMEM 블록을 할당 받고 직접 접근할 수 있는 사용자 프로세스들이 CPU와 CPU가 사용하는 시스템 버스, 그리고 다른 입출력 버스를 간섭하지 않고 직접전송방식(DMA)을 통해 전송할 수 있다.10 shows a file transfer service process sending object data via
도 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
이제, 도 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 (e.g., transmission over the Internet). . The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the present invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
이상에서 살펴본 바와 같이, 본 발명에 의한 직접접속방식을 적용하는 고속 전송이 가능한 저장시스템 및 그 시스템에서의 전송 방법은, 객체기반 스토리지 시스템의 사용자 파일 관리자를 구현하는 경우에 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)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050120059 | 2005-12-08 | ||
KR20050120059 | 2005-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070061259A KR20070061259A (en) | 2007-06-13 |
KR100825724B1 true 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) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060053864A (en) * | 2004-07-19 | 2006-05-22 | 마이크로소프트 코포레이션 | Remote file update through remote protocol |
KR20060070529A (en) * | 2003-08-13 | 2006-06-23 | 마이크로소프트 코포레이션 | Routing hints |
-
2006
- 2006-08-11 KR KR1020060076360A patent/KR100825724B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060070529A (en) * | 2003-08-13 | 2006-06-23 | 마이크로소프트 코포레이션 | Routing hints |
KR20060053864A (en) * | 2004-07-19 | 2006-05-22 | 마이크로소프트 코포레이션 | Remote file update through remote protocol |
Also Published As
Publication number | Publication date |
---|---|
KR20070061259A (en) | 2007-06-13 |
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 | |
KR100825721B1 (en) | System and method of time-based cache coherency maintenance in user file manager of object-based storage system | |
JP3704573B2 (en) | Cluster system | |
US6954839B2 (en) | Computer system | |
US8001323B2 (en) | Network storage system, management method therefor, and control program product therefor | |
US20090193207A1 (en) | Computer system, remote copy method and first computer | |
JPH0962558A (en) | Method and system for database management | |
JP2000347982A (en) | Recording medium recording program to be executed by information processor and computer | |
US20220382672A1 (en) | Paging in thin-provisioned disaggregated memory | |
US20050235005A1 (en) | Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof | |
US20030217114A1 (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 | |
JPH07239808A (en) | Distributed data managing system | |
JP2006164218A (en) | Storage system and its cache control method | |
US6516344B1 (en) | Reducing network traffic for remote file system accesses by keeping track of unallocated regions in files | |
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 |
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 |