KR100662256B1 - 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법 - Google Patents

낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법 Download PDF

Info

Publication number
KR100662256B1
KR100662256B1 KR1020040108967A KR20040108967A KR100662256B1 KR 100662256 B1 KR100662256 B1 KR 100662256B1 KR 1020040108967 A KR1020040108967 A KR 1020040108967A KR 20040108967 A KR20040108967 A KR 20040108967A KR 100662256 B1 KR100662256 B1 KR 100662256B1
Authority
KR
South Korea
Prior art keywords
memory block
list
available
object data
based storage
Prior art date
Application number
KR1020040108967A
Other languages
English (en)
Other versions
KR20060070283A (ko
Inventor
이상민
김성운
김명준
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020040108967A priority Critical patent/KR100662256B1/ko
Priority to US11/193,285 priority patent/US7707337B2/en
Publication of KR20060070283A publication Critical patent/KR20060070283A/ko
Application granted granted Critical
Publication of KR100662256B1 publication Critical patent/KR100662256B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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

Abstract

1. 청구범위에 기재된 발명이 속하는 기술분야
본 발명은, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치 및 그 제어 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 객체기반 스토리지 장치를 구현하는데 있어서, 주 메모리 및 시스템 버스와는 별도의 메모리(PMEM : PCI Memory) 및 독립적인 전용 버스를 이용하여 블록 스토리지 장치에서 네트워크 장치로 데이터를 직접 전송할 수 있도록 함으로써, 사용자 주소공간과 운영체제 주소공간 간에 데이터 복사를 제거하여 중앙처리장치(CPU) 점유율과 시스템 버스의 부하를 줄이기 위한, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치 및 그 제어 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결 방법의 요지
본 발명은, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치에 있어서, 객체 기반으로 데이터를 저장하기 위한 저장 수단; 주메모리와는 별도로 구비된 고속의 액세스가 가능한 임시 저장 수단; 시스템 버스와는 별도로 구비된 데이터 전달이 가능한 전송 수단; 외부로부터의 객체 읽기 요청 신호에 따라 상기 저장 수단에 저장되어 있는 해당 객체 데이터를 읽어 들여 상기 전송 수단을 이용하여 직접전송방식으로 제 2 제어 수단으로 전달하고, 외부로부터의 객체 쓰기 요청 신호에 따라 상기 제 2 제어 수단으로부터 직접전송방식을 이용하여 전달받은 객체 데이터를 상기 저장 수단에 저장시키기 위한 제 1 제어 수단; 및 상기 전송 수단을 통하여 상기 제 1 제어 수단으로부터 전달받은 객체 데이터를 상기 임시 저장 수단에 임시 저장하였다가 상기 전송 수단을 이용하여 직접전송방식으로 네트워크 장치로 전달하고, 외부로부터의 객체 쓰기 요청 신호에 따라 상기 네트워크 장치로부터 직접전송방식으로 전달받은 객체 데이터를 상기 임시 저장 수단에 임시 저장하였다가 상기 전송 수단을 이용하여 직접전송방식으로 상기 제 1 제어 수단으로 전달하되, 상기 임시 저장 수단을 객체의 특성에 따라 다양한 블록 단위로 분할하여 가용한 블록을 가용리스트로 관리하고 상기 가용리스트 중에서 읽기/쓰기를 위해 할당된 블록을 할당리스트로 관리하기 위한 상기 제 2 제어 수단을 포함함.
4. 발명의 중요한 용도
본 발명은 객체기반 저장장치 등에 이용됨.
객체기반 스토리지, PMEM(PCI Memory), 가용리스트, 할당리스트

Description

낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치 및 그 제어 방법{Object-based Storage Device and its control method for having low process load}
도 1은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치의 일실시예 구성도,
도 2는 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치 중 하드웨어 플랫폼의 일실시예 구성도,
도 3은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치에서 PMEM의 블록 배치에 대한 일실시예 설명도,
도 4는 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치에서 PMEM 블록 관리를 위한 가용리스트에 대한 일실시예 설명도,
도 5는 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치에서 PMEM 블록 관리를 위한 할당리스트에 대한 일실시예 설명도,
도 6은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법 중 OSD 사용자 프로세스가 제로-카피(zero-copy)를 통한 객체 읽기/쓰기하는 과정에 대한 일실시예 설명도,
도 7은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법 중 OSD 사용자 프로세스가 PMEM 블록을 통하여 객체 데이터를 송수신하는 과정에 대한 일실시예 설명도,
도 8은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법 중 OSD 객체의 읽기 처리 과정에 대한 일실시예 흐름도,
도 9는 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법 중 OSD 객체의 쓰기 처리 과정에 대한 일실시예 흐름도이다.
* 도면의 주요 부분에 대한 부호 설명
130 : SDA 블록 디바이스 131 : SDA 문자 디바이스
132 : NS 문자 디바이스 133 : /proc
140 : IPSec 드라이버 150 : TOE 드라이버
160 : SDA 드라이버 161 : PMEM 드라이버
170 : 하드웨어 플랫폼 200 : 중앙처리장치(CPU)
201 : 제 1 기억장치
202 : 시스템 버스 203 : 메모리 제어 허브
204 : 제 1 PCI 입출력 버스 205 : PCI 브리지
206 : 제 2 PCI 입출력 버스 207 : 블록 스토리지 제어기
208 : PMEM 제어기 209 : 네트워크 인터페이스 카드
210 : 블록 스토리지 장치
211 : 제 2 기억장치(PMEM : PCI Memory)
본 발명은, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 객체기반 스토리지 장치를 구현하는데 있어서, 주 메모리 및 시스템 버스와는 별도의 메모리(PMEM : PCI Memory) 및 독립적인 전용 버스를 이용하여 블록 스토리지 장치에서 네트워크 장치로 데이터를 직접 전송할 수 있도록 함으로써, 사용자 주소공간과 운영체제 주소공간 간에 데이터 복사를 제거하여 중앙처리장치(CPU) 점유율과 시스템 버스의 부하를 줄이기 위한, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치 및 그 제어 방법에 관한 것이다.
객체기반 스토리지(OSD : Object-based Storage Device)는 현재의 블록기반 스토리지의 대안으로 등장한 기술로서, 기존의 블록기반 스토리지가 파일을 불러내는데 필수적인 메타데이터의 생성이 모두 서버단에서 이뤄지는 반면에, 객체기반 스토리지는 메타데이터의 생성을 스스로 실행하는 지능형 스토리지이다. 즉, 현재 데이터의 물리적인 위치를 나타내는 메타데이터는 서버에서 운영되는 파일시스템이나 데이터베이스와 같은 응용프로그램으로부터 생성되지만 객체기반 스토리지는 파일시스템이나 메타데이터 관리 등과 같이 스토리지 운영에 필요한 기본적인 기능을 보유하고 있어 서버의 부담이 줄고 데이터 접근속도가 빨라질 뿐 아니라 이기종 플랫폼을 지원할 수 있는 유연성을 제공한다.
종래에는 SAN(Storage Area Network) 저장장치와 수십 개의 고성능 CPU로 구성된 시스템을 클러스터 형태의 미들웨어 소프트웨어를 통하여 객체기반 스토리지 장치를 구현하였다. 이 때, 객체기반 저장장치가 네트워크로부터 데이터를 수신하고 송신하기 위해서는 사용자 주소공간과 운영체제 주소공간 간에 데이터를 복사하는 과정을 거쳐야만 하는데, 이 과정에서 프로세스 점유율이 높은 문제점이 있었다.
또는, 특정한 객체(예를 들어, 대용량 멀티미디어 객체) 서비스에 최적화된 구성 및 배치를 가지는 객체기반 스토리지 장치를 구현하기도 하였으나, 특정한 전송 서비스 객체에 최적화되었으므로 여러 종류의 객체를 지원할 수 없는 문제점이 있었다.
본 발명은, 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 객체기반 스토리지 장치를 구현하는데 있어서, 주 메모리 및 시스템 버스와는 별도의 메모리(PMEM : PCI Memory) 및 독립적인 전용 버스를 이용하여 블록 스토리지 장치에서 네트워크 장치로 데이터를 직접 전송할 수 있도록 함으로써, 사용자 주소공간과 운영체제 주소공간 간에 데이터 복사를 제거하여 중앙처리장치(CPU) 점유율과 시스템 버스의 부하를 줄이기 위한, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장 치 및 그 제어 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기의 목적을 달성하기 위한 본 발명의 장치는, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치에 있어서, 객체 기반으로 데이터를 저장하기 위한 저장 수단; 주메모리와는 별도로 구비된 고속의 액세스가 가능한 임시 저장 수단; 시스템 버스와는 별도로 구비된 데이터 전달이 가능한 전송 수단; 외부로부터의 객체 읽기 요청 신호에 따라 상기 저장 수단에 저장되어 있는 해당 객체 데이터를 읽어 들여 상기 전송 수단을 이용하여 직접전송방식으로 제 2 제어 수단으로 전달하고, 외부로부터의 객체 쓰기 요청 신호에 따라 상기 제 2 제어 수단으로부터 직접전송방식을 이용하여 전달받은 객체 데이터를 상기 저장 수단에 저장시키기 위한 제 1 제어 수단; 및 상기 전송 수단을 통하여 상기 제 1 제어 수단으로부터 전달받은 객체 데이터를 상기 임시 저장 수단에 임시 저장하였다가 상기 전송 수단을 이용하여 직접전송방식으로 네트워크 장치로 전달하고, 외부로부터의 객체 쓰기 요청 신호에 따라 상기 네트워크 장치로부터 직접전송방식으로 전달받은 객체 데이터를 상기 임시 저장 수단에 임시 저장하였다가 상기 전송 수단을 이용하여 직접전송방식으로 상기 제 1 제어 수단으로 전달하되, 상기 임시 저장 수단을 객체의 특성에 따라 다양한 블록 단위로 분할하여 가용한 블록을 가용리스트로 관리하고 상기 가용리스트 중에서 읽기/쓰기를 위해 할당된 블록을 할당리스트로 관리하기 위한 상기 제 2 제어 수단을 포함하는 것을 특징으로 한다.
또한, 본 발명의 방법은, 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법에 있어서, 주메모리와 별도로 구비된 메모리의 가용한 메모리 블록 정보를 가용리스트로 연결하여 관리하는 가용리스트 관리 단계; 객체 읽기/쓰기 요청 신호에 따라 상기 가용리스트에서 임의의 메모리 블록 정보를 선택하여 할당리스트로 이동시킨 후, 상기 이동시킨 메모리 블록 정보에 상응하는 메모리 블록을 이용하여 직접전송방식으로 해당 객체 데이터를 저장 수단으로부터 읽어 들여 직접전송방식으로 요청측에 전달하고, 읽기가 완료되면 상기 할당리스트의 해당 메모리 블록 정보를 상기 가용리스트로 반환하는 객체 데이터 읽기 단계; 및 객체 쓰기 요청 신호에 따라 상기 가용리스트에서 임의의 메모리 블록 정보를 선택하여 상기 할당리스트로 이동시킨 후, 외부로부터 전달받은 객체 데이터를 상기 선택한 메모리 블록 정보에 상응하는 메모리 블록을 이용하여 직접전송방식으로 상기 저장 수단으로 전달하여 기록되도록 하고, 쓰기가 완료되면 상기 할당리스트의 해당 메모리 블록 정보를 상기 가용리스트로 반환하는 객체 데이터 쓰기 단계를 포함하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명 이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치의 일실시예 구성도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치는, 크게 소프트웨어와 하드웨어로 구성된다.
먼저, 본 발명에 따른 객체기반 스토리지 장치의 소프트웨어는 PMEM(PCI Memory)에 접근하여 객체 관련 서비스를 제공하기 위한 객체기반 스토리지(OSD) 사용자 프로세스(100 내지 104), PMEM(PCI Memory)를 관리하기 위한 PMEM 드라이버(161), 여러 개의 동일한 디스크를 스트라이핑하여 고성능 디스크 성능을 보장하는 SDA(Stream Disk Array) 블록 드라이버(130), 버퍼링을 하지 않는 SDA(Stream Disk Array) 문자 드라이버(131), PMEM 블록을 이용하여 PMEM 데이터를 기억장치 직접 접근(DMA : Direct Memory Access) 방식에 따라 제로-카피(zero-copy) 방식으로 직접전송하기 위한 TOE(TCP/IP Offload Engine) 드라이버(150), 인터넷 프로토콜 보안(IPSec : Internet Protocol Security)을 지원하기 위한 IPSec 드라이버(140), 운영체제 주소공간의 PMEM 드라이버 서비스 요청을 객체기반 스토리지(OSD) 사용자 프로세스(100 내지 104)로 전달해주기 위한 NS 문자 드라이버(132), 및 PMEM에 대한 정보를 객체기반 스토리지(OSD) 사용자 프로세스(100 내지 104)로 알리기 위한 /proc(133)를 포함한다.
한편, 본 발명에 따른 객체기반 스토리지 장치의 하드웨어는, 도 2에 도시된 바와 같이, 프로세서를 구동시키기 위한 중앙처리장치(CPU)(200), 시스템 버스(System Bus)(202), 제 1 기억장치인 주 메모리(201), 메모리 제어 허브(Memory Controller Hub)(203), 제 1 PCI 입출력 버스(PCI I/O Bus)(204), PCI 브리지(205), 제 2 PCI 입출력 버스(PCI I/O Bus)(206), 블록 스토리지 제어기(207), PMEM 제어기(208), 네트워크 인터페이스 카드(NIC : Network Interface Card)(209), 블록 스토리지 장치(210), 및 제 2 기억장치(PMEM : PCI Memory)(211)를 포함한다.
상기 블록 스토리지 장치(207)와 네트워크 인터페이스 카드(209)는 PMEM 제어기(208)와 전용 버스, 즉 중앙처리장치(CPU)와는 독립적인 제 2 PCI 입출력 버스(206)를 이용하여, 중앙처리장치(CPU)가 사용하는 시스템 버스(202) 및 제 1 PCI 입출력 버스(204)의 간섭 없이 직접전송방식(DMA)을 이용하여 데이터를 고속으로 전송한다.
상기 PMEM 제어기(208)는 상기 제 2 기억장치(Memory)(211)를 도 3에 도시된 바와 같이, 객체의 특성에 따라 4가지 크기(2M, 1M, 512k, 256k)의 블록으로 나누어서 관리한다. 이 때, PMEM 블록 크기는 상기 제 2 기억장치(Memory)(211)에서 상기 블록 스토리지 장치(210) 또는 네트워크 인터페이스 카드(209)로 직접전송방식(DMA)에 의하여 전송하기 위한 단위가 된다.
한편, 다수의 객체기반 스토리지(OSD) 사용자 프로세스(100 내지 104)는 객체기반 저장장치의 객체 관련 서비스를 제공하기 위하여 PMEM 메모리에 동시에 접 근할 수 있어야 한다. 하나의 PMEM 블록에 여러 사용자 프로세스(100 내지 104)가 동시에 읽기/쓰기하게 되면 공용자원인 PMEM 블록은 정확한 정보를 저장할 수 없게 된다.
이를 방지하기 위하여, 소유자 식별자와 물리 시작 주소 등과 같은 PMEM 블록에 대한 정보를 도 4에 도시된 바와 같은 "pmem_list_entry"(401 내지 405)를 통하여 표현한다. 이 때, 사용되지 않은 PMEM 블록에 대한 정보는 가용리스트("free_list_head"(400))에 연결시킨다. 이로써, 객체기반 스토리지(OSD) 사용자 프로세스(100 내지 104)는 어느 PMEM 장치에 가용한 PMEM 블록이 있는지를 파악할 수 있게 된다. 이 때, 가용리스트("free_list_head"(400))는 각 PMEM에 대하여 하나씩 존재한다.
한편, 할당된 PMEM 블록에 대한 정보는 도 5에 도시된 바와 같은 할당리스트("alloc_list_head"(500))에 연결시킨다. 즉, PMEM 블록이 할당되면 가용리스트("free_list_head"(400))로부터 PMEM 블록 정보("pmem_list_entry")를 꺼내어 할당리스트("alloc_list_head"(500))에 포함시킨다. 이 때, 할당리스트("alloc_list_head"(500))는 가용리스트("free_list_head"(400))와 달리 단 하나의 리스트가 존재한다.
한편, 종래의 객체기반 스토리지(OSD) 사용자 프로세스(100 내지 104)가 PMEM 드라이버(161)를 통하여 할당받은 PMEM 블록에 접근하기 위해서는 운영체제 주소공간에서 사용자 주소공간으로 복사하여야만 하였다. 즉, 운영체제 주소공간을 사용자 주소공간으로 복사하지 않고서는 직접적으로 접근할 수 없었다.
이러한 문제를 해결하기 위하여 본 발명에서는 도 6에 도시된 바와 같이 PMEM 블록을 "mmap"이라는 시스템 호출(system call)을 이용하여 객체기반 스토리지(OSD) 사용자 프로세스(100 내지 104)가 직접적으로 객체기반 스토리지(OSD)에 접근할 수 있도록 한다. 이는 사용자 주소공간으로부터 운영체제 주소공간으로의 복사, 또는 운영체제 주소공간으로부터 사용자 주소공간으로의 복사를 없앨 수 있게 한다.
도 7은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법 중 OSD 사용자 프로세스(100 내지 104)가 PMEM 블록을 통하여 객체 데이터를 송수신하는 과정에 대한 일실시예 설명도이다.
도 7에 도시된 바와 같이, 객체기반 스토리지 장치를 구현함에 있어서, 블록 스토리지 장치(207)와 네트워크 인터페이스 카드(209) 사이에 PMEM을 두고, 직접전송방식(DMA)을 이용하여 직접적인 액세스가 가능하도록 함으로써, 중앙처리장치(CPU)와 시스템 버스의 간섭을 최소한으로 줄이면서, 블록 스토리지 장치(207)에서 네트워크 인터페이스 카드(209)로 데이터를 읽기/쓰기할 수 있도록 한다.
이하에서는 도 8 및 도 9를 참조하여 OSD 객체에 대한 읽기/쓰기를 처리하는 과정에 대하여 좀 더 상세히 살펴보기로 한다.
도 8은 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법 중 OSD 객체의 읽기 처리 과정에 대한 일실시예 흐름도이다.
먼저, OSD 사용자 프로세스(100 내지 104)가 특정 객체에 대한 읽기 요청 신호를 입력받으면(800), 객체 관리자(104)에게 객체 정보를 요청한다(801). 이 때, 객체 정보로는 객체가 블록 스토리지 장치(207)의 어디에 저장되어 있는지에 대한 위치 정보, 권한 정보, 크기, 생성시간, 최종변경시간 등이 포함된다.
한편, 객체 관리자(104)는 OSD 사용자 프로세스(100 내지 104)가 요청한 객체가 존재하는지를 확인하여(802), 요청한 객체가 존재하지 않으면 객체가 존재하지 않는다는 메시지를 생성하여 사용자에게 응답한 후(804) 종료한다.
상기 확인 결과(802), 요청한 객체가 존재하고 읽기 권한이 있으면 상기 객체의 블록 스토리지 장치(210)의 시작주소를 획득한 후, NS 문자 드라이버(132)를 통하여 PMEM 블록 할당 요청을 PMEM 드라이버(161)로 전송한다(803).
그러면, PMEM 드라이버(161)는 가용리스트("Free_list_head"(400))에서 첫번째 가용 PMEM 블록을 찾는다(805). 그 결과, 가용한 PMEM 블록이 존재하는지를 확인하여(806), 가용한 PMEM 블록이 존재하지 않으면, 즉 한정된 자원인 PMEM 블록이 모두 사용중이면, PMEM 블록이 가용할 때까지 기설정된 시간만큼 대기한 후(808), "806" 과정으로 진행하여 가용한 PMEM 블록이 존재하는지를 확인하는 과정을 소정주기로 반복 수행한다.
한편, 가용한 PMEM 블록이 존재하면 선택한 PMEM 블록의 정보(free_pmem_entry)를 가용리스트("Free_list_head"(400))로부터 제거한 후(807), 상기 제거한 PMEM 블록의 정보(free_pmem_entry)를 할당리스트("allo_list_head"(500))에 추가한다(809). 그리고, PMEM 블록의 물리 시작 주소를 사용자 공간주소로 매핑한다(810). 이후, NS 문자 드라이버(132)가 시스템 호출(mmap)을 이용하여 상기 매핑한 사용자 저장공간의 시작주소를 상기 OSD 사용자 프 로세스(100 내지 104)로 전달한다(811). 이 때, "mmap" 명령어는 메모리의 내용을 파일이나 디바이스에 대응시키기 위하여 사용하는 시스템 호출이다.
한편, NS 문자 드라이버(132)로부터 사용자 저장공간의 시작주소를 전달받은 상기 OSD 사용자 프로세스(100 내지 104)는 블록 저장장치 디바이스 드라이버인 SDA 문자 디바이스(131) 또는 SDA 블록 디바이스(130)로 PMEM 블록 읽기를 요청한다(812). 그러면, 상기 블록 저장장치 디바이스 드라이버(131,132)는 블록 스토리지 장치(210)에 저장되어 있는 해당 객체 데이터가 직접전송방식(DMA)을 이용하여 제 2 기억장치(PMEM : PCI Memory)(211)로 전송되도록 블록 스토리지 제어기(207)를 제어한다(813).
그러면, 상기 PMEM 제어기(208)는 상기 블록 스토리지 제어기(207)를 통하여 블록 스토리지 장치(210)로부터 객체 데이터를 전달받아 제 2 기억장치(PMEM : PCI Memory)(211)에 저장한다. 그리고, 상기 PMEM 제어기(208)는 상기 전달받은 객체 데이터를 직접전송방식(DMA)을 이용하여 네트워크 인터페이스 카드(209)로 전송하라는 명령을 TOE 드라이버(150)로 전달한다(814).
그러면, 블록 스토리지 장치(210)에 저장되어 있는 해당 블록의 데이터가 직접전송방식(DMA)에 따라 네트워크 인터페이스 카드(209)로 전송된다(815). 한편, 읽기 요청한 객체를 모두 읽어들였는지를 확인하여(816), 모두 읽어들이지 않았으면 상기 "812" 내지 "815"과정을 반복 수행하여, 객체 데이터를 모두 읽어들인다.
한편, 상기 확인 결과(816), 모든 객체 데이터를 읽어들였으면 시스템 호출(unmap)을 이용하여 사용자 공간주소로 매핑된 PMEM 블록의 주소공간을 해제한 후 (817), 상기 해제한 PMEM 블록의 정보를 할당 리스트에서 삭제하고 가용리스트에 추가한다(818). 이후, 읽기 요청이 성공적으로 완료되었음을 알리는 메시지를 생성한 후, 객체 읽기를 요청한 OSD 사용자 프로세스(100 내지 104)로 전송한다(819).
한편, OSD 객체에 대한 쓰기를 처리하는 과정에 대하여서는 도 9를 참조하여 좀 더 상세히 살펴보기로 한다.
도 9는 본 발명에 따른 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법 중 OSD 객체의 쓰기 처리 과정에 대한 일실시예 흐름도이다.
먼저, OSD 사용자 프로세스(100 내지 104)가 특정 객체에 대한 쓰기 요청 신호를 입력받으면(900), 객체 관리자(104)에게 객체 정보를 요청한다(901). 이 때, 객체 정보로는 객체가 어디에 저장되어 있는지에 대한 위치 정보, 권한 정보, 크기, 생성시간, 최종변경시간 등이 포함된다.
한편, 객체 관리자(104)는 요청한 객체가 존재하는지를 확인하여(902), 요청한 객체가 존재하지 않으면 객체가 존재하지 않는다는 메시지를 생성하여 사용자에게 응답한 후(905) 종료한다.
상기 확인 결과(902), 요청한 객체가 존재하고 쓰기 권한이 있으면 상기 객체의 블록 스토리지 장치(210)의 시작주소를 획득한 후, 네트워크 인터페이스 카드(209)를 통하여 쓰여질 데이터를 읽어 들여 주 메모리(제 1 기억장치)에 저장한다(903).
그리고, PMEM 드라이버(16)로 PMEM 블록을 요청하고(904), 상기 PMEM 드라이버(161)는 가용리스트("Free_list_head"(400))에서 가용 PMEM 블록을 찾는다(906). 그 결과, 가용한 PMEM 블록이 존재하는지를 확인하여(907), 가용한 PMEM 블록이 존재하지 않으면, 즉 한정된 자원인 PMEM 블록이 모두 사용중이면, PMEM 블록이 가용할 때까지 기설정된 시간만큼 대기한 후(909), "907" 과정으로 진행하여 가용한 PMEM 블록이 존재하는지를 확인하는 과정을 소정주기로 반복 수행한다.
한편, 가용한 PMEM 블록이 존재하면 선택한 PMEM 블록의 정보(free_pmem_entry)를 가용리스트("Free_list_head"(400))로부터 제거한 후(908), 상기 제거한 PMEM 블록의 정보(free_pmem_entry)를 할당리스트("allo_list_head"(500))에 추가한다(910). 그리고, PMEM 블록의 물리 시작 주소를 사용자 공간주소로 매핑한다(911). 이후, NS 문자 드라이버(132)가 시스템 호출(mmap)을 이용하여 상기 매핑한 사용자 저장공간의 시작주소를 상기 OSD 사용자 프로세스(100 내지 104)로 전달한다(912). 이 때, "mmap" 명령어는 메모리의 내용을 파일이나 디바이스에 대응(mapping)시키기 위하여 사용하는 시스템 호출이다.
이후, 상기 "903" 과정에서 네트워크 인터페이스 카드(209)를 통하여 읽어들인 객체 데이터를 직접전송방식(DMA)을 이용하여 주 메모리(제 1 기억장치)에서 제 2 기억장치(PMEM : PCI Memory)(211)로 전송한다(913).
그리고, PMEM 블록의 데이터를 직접전송방식(DMA)에 따라 블록 스토리지 제어기(207)로 전달하여 블록 스토리지 장치(210)에 쓰기 명령을 내리도록 한다(914).
그러면, 제 2 기억장치(PMEM : PCI Memory)(211)에 저장되어 있는 해당 PMEM 블록의 데이터가 직접전송방식(DMA)에 블록 스토리지 장치(210)로 전송된다(915). 한편, 쓰기 요청한 객체가 모두 쓰여졌는지를 확인하여(916), 모두 쓰여지지 않았으면 상기 "913" 내지 "915"과정을 반복 수행하여, 객체 데이터를 모두 쓴다.
한편, 상기 확인 결과(916), 모든 객체 데이터를 썼으면 시스템 호출(unmap)을 이용하여 사용자 공간주소로 매핑된 PMEM 블록의 주소공간을 해제한 후(917), 상기 해제한 PMEM 블록의 정보를 할당 리스트에서 삭제하고 가용리스트에 추가한다(918). 이후, 쓰기 요청이 성공적으로 완료되었음을 알리는 메시지를 생성한 후, 전송한다(919).
이처럼, 본 발명에 따른 객체기반 스토리지 장치는 주 메모리 및 시스템 버스와는 별도의 메모리(PMEM : PCI Memory) 및 독립적인 전용 버스를 이용하여 블록 스토리지 장치에서 네트워크 장치로 데이터를 직접 전송할 수 있도록 함으로써, 사용자 주소공간과 운영체제 주소공간 간에 데이터 복사를 처리하기 위한 프로세스가 중앙처리장치(CPU)를 점유하는 것을 크게 줄일 수 있으며, 시스템 버스의 부하를 줄일 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같이 본 발명은, 객체기반 스토리지 장치를 구현하는데 있어서, 주 메모리 및 시스템 버스와는 별도의 메모리(즉, PMEM(PCI Memory)) 및 독립적인 전용 버스를 이용하여 블록 스토리지 장치에서 네트워크 장치로 데이터를 직접 전송할 수 있도록 함으로써, 사용자 주소공간과 운영체제 주소공간 간에 데이터 복사를 제거하여 중앙처리장치(CPU) 점유율과 시스템 버스의 부하를 줄일 수 있는 효과가 있다.

Claims (10)

  1. 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치에 있어서,
    객체 기반으로 데이터를 저장하기 위한 저장 수단;
    주메모리와는 별도로 구비된 고속의 액세스가 가능한 임시 저장 수단;
    시스템 버스와는 별도로 구비된 데이터 전달이 가능한 전송 수단;
    외부로부터의 객체 읽기 요청 신호에 따라 상기 저장 수단에 저장되어 있는 해당 객체 데이터를 읽어 들여 상기 전송 수단을 이용하여 직접전송방식으로 제 2 제어 수단으로 전달하고, 외부로부터의 객체 쓰기 요청 신호에 따라 상기 제 2 제어 수단으로부터 직접전송방식을 이용하여 전달받은 객체 데이터를 상기 저장 수단에 저장시키기 위한 제 1 제어 수단; 및
    상기 전송 수단을 통하여 상기 제 1 제어 수단으로부터 전달받은 객체 데이터를 상기 임시 저장 수단에 임시 저장하였다가 상기 전송 수단을 이용하여 직접전송방식으로 네트워크 장치로 전달하고, 외부로부터의 객체 쓰기 요청 신호에 따라 상기 네트워크 장치로부터 직접전송방식으로 전달받은 객체 데이터를 상기 임시 저장 수단에 임시 저장하였다가 상기 전송 수단을 이용하여 직접전송방식으로 상기 제 1 제어 수단으로 전달하되, 상기 임시 저장 수단을 객체의 특성에 따라 다양한 블록 단위로 분할하여 가용한 블록을 가용리스트로 관리하고 상기 가용리스트 중에서 읽기/쓰기를 위해 할당된 블록을 할당리스트로 관리하기 위한 상기 제 2 제어 수단
    을 포함하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치.
  2. 제 1 항에 있어서,
    상기 임시 저장 수단은,
    주메모리와는 별로도 구비된 랜덤액세스메모리(RAM : Random Access Memory)인 것을 특징으로 하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 전송 수단은,
    시스템 버스와는 별도로 구비된 PCI(peripheral component inter-connect) 입출력 버스; 및
    프로세스와 상기 입출력 버스를 연결하기 위한 PCI(peripheral component inter-connect) 브리지
    를 포함하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치.
  4. 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법에 있어서,
    주메모리와 별도로 구비된 메모리의 가용한 메모리 블록 정보를 가용리스트로 연결하여 관리하는 가용리스트 관리 단계;
    객체 읽기 요청 신호에 따라 상기 가용리스트에서 임의의 메모리 블록 정보를 선택하여 할당리스트로 이동시킨 후, 상기 이동시킨 메모리 블록 정보에 상응하는 메모리 블록을 이용하여 직접전송방식으로 해당 객체 데이터를 저장 수단으로부터 읽어 들여 직접전송방식으로 요청측에 전달하고, 읽기가 완료되면 상기 할당리스트의 해당 메모리 블록 정보를 상기 가용리스트로 반환하는 객체 데이터 읽기 단계; 및
    객체 쓰기 요청 신호에 따라 상기 가용리스트에서 임의의 메모리 블록 정보를 선택하여 상기 할당리스트로 이동시킨 후, 외부로부터 전달받은 객체 데이터를 상기 선택한 메모리 블록 정보에 상응하는 메모리 블록을 이용하여 직접전송방식으로 상기 저장 수단으로 전달하여 기록되도록 하고, 쓰기가 완료되면 상기 할당리스트의 해당 메모리 블록 정보를 상기 가용리스트로 반환하는 객체 데이터 쓰기 단계
    를 포함하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법.
  5. 제 4 항에 있어서,
    상기 메모리 블록은,
    객체의 특성에 따라 다양한 단위로 분할되어 있는 것을 특징으로 하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법.
  6. 제 4 항 또는 제 5 항에 있어서,
    상기 객체 데이터 읽기 단계는,
    사용자 프로세서로부터의 객체 데이터 읽기 요청 신호에 따라 가용리스트에서 가용한 메모리 블록을 선택하는 단계;
    상기 선택한 메모리 블록에 해당하는 메모리 블록 정보를 상기 가용리스트로부터 제거하고, 상기 할당리스트에 추가하는 단계;
    상기 추가한 메모리 블록 정보에 해당하는 메모리 블록을 사용자 주소공간으로 매핑하여 상기 사용자 프로세서로 전달하는 단계;
    상기 사용자 프로세서의 명령에 따라 저장 수단에 저장되어 있는 해당 객체 데이터를 상기 매핑한 메모리 블록을 이용하여 직접전송방식으로 읽어들이는 단계;
    상기 읽어들인 객체 데이터를 직접전송방식을 이용하여 네트워크 장치로 전달하는 단계; 및
    객체 데이터를 읽어들이는 작업이 완료됨에 따라 상기 매핑한 사용자 주소공간을 해제한 후, 상기 할당리스트에서 해당 메모리 블록 정보를 제거하고, 상기 가용리스트로 반환하는 단계
    를 포함하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법.
  7. 제 6 항에 있어서,
    상기 메모리 블록을 사용자 주소공간으로 매핑하고 해제하는 과정은,
    "mmap" 명령어 및 "unmap" 명령어를 이용하는 것을 특징으로 하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법.
  8. 제 4 항 또는 제 5 항에 있어서,
    상기 객체 데이터 쓰기 단계는,
    사용자 프로세서로부터의 객체 데이터 쓰기 요청 신호에 따라 가용리스트에서 가용한 메모리 블록을 선택하는 단계;
    상기 선택한 메모리 블록에 해당하는 메모리 블록 정보를 상기 가용리스트로부터 제거하고, 상기 할당리스트에 추가하는 단계;
    상기 추가한 메모리 블록 정보에 해당하는 메모리 블록의 물리적 주소공간을 사용자 주소공간으로 매핑하여 상기 사용자 프로세서로 전달하는 단계;
    상기 사용자 프로세서의 전송명령에 따라 네트워크 장치로 전달받은 객체 데이터를 상기 매핑한 메모리 블록을 이용하여 직접전송방식으로 읽어들이는 단계;
    상기 읽어들인 객체 데이터를 직접전송방식을 이용하여 상기 저장 수단으로 전달하여 저장시키는 단계; 및
    객체 데이터를 쓰는 작업이 완료됨에 따라 상기 매핑한 사용자 주소공간을 해제한 후, 상기 할당리스트에서 해당 메모리 블록 정보를 제거하고, 상기 가용리스트로 반환하는 단계
    를 포함하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법.
  9. 제 8 항에 있어서,
    상기 메모리 블록을 사용자 주소공간으로 매핑하고 해제하는 과정은,
    "mmap" 명령어 및 "unmap" 명령어를 이용하는 것을 특징으로 하는 낮은 프로세스 점유율을 가지는 객체기반 스토리지 제어 방법.
  10. 삭제
KR1020040108967A 2004-12-20 2004-12-20 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법 KR100662256B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040108967A KR100662256B1 (ko) 2004-12-20 2004-12-20 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법
US11/193,285 US7707337B2 (en) 2004-12-20 2005-07-28 Object-based storage device with low process load and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040108967A KR100662256B1 (ko) 2004-12-20 2004-12-20 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20060070283A KR20060070283A (ko) 2006-06-23
KR100662256B1 true KR100662256B1 (ko) 2006-12-28

Family

ID=36597610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040108967A KR100662256B1 (ko) 2004-12-20 2004-12-20 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법

Country Status (2)

Country Link
US (1) US7707337B2 (ko)
KR (1) KR100662256B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8296337B2 (en) 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US20100251355A1 (en) * 2009-03-31 2010-09-30 Inventec Corporation Method for obtaining data for intrusion detection
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
CN101854398B (zh) * 2010-06-07 2014-12-10 中兴通讯股份有限公司 文件副本均衡分布的方法、装置及系统
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
KR101702366B1 (ko) 2010-12-22 2017-02-03 삼성전자주식회사 동적으로 확장 가능한 기능을 제공하는 스토리지 장치 및 그것의 동작 방법
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265925A (ja) * 1992-03-24 1993-10-15 Nec Corp データ転送制御装置
KR19990065664A (ko) * 1998-01-15 1999-08-05 구본준 직접 메모리 액세스 제어 장치
JP2000040057A (ja) 1998-07-23 2000-02-08 Nec Eng Ltd 計算機システム、バッファ制御装置及び転送方法
KR20020051545A (ko) * 2000-12-22 2002-06-29 오길록 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법
KR20040056309A (ko) * 2002-12-23 2004-06-30 한국전자통신연구원 네트워크를 통해 스트리밍 데이터를 고속으로 송수신하기위한 네트워크-스토리지 연결 장치
KR20040068338A (ko) * 2001-12-20 2004-07-30 프랑스 텔레콤 캐쉬 관리를 이용한 서버와 클라이언트 단말기 사이의오브젝트 전송 방법 및 대응하는 전송 시스템, 서버 및단말기

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038641A (en) * 1988-12-30 2000-03-14 Packard Bell Nec Two stage cache memory system and method
US6567926B2 (en) 1995-10-24 2003-05-20 Seachange International, Inc. Loosely coupled mass storage computer cluster
US5768618A (en) * 1995-12-21 1998-06-16 Ncr Corporation Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space
US5974496A (en) * 1997-01-02 1999-10-26 Ncr Corporation System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card
KR20020005154A (ko) 2000-07-08 2002-01-17 주식회사 인터넷전략연구소 인터넷 광고를 이용한 비즈니스 시스템 및 회원관리 방법
KR100372915B1 (ko) 2001-01-02 2003-02-19 김한규 네트워크에 직접 부착 가능한 디스크 시스템
JP2003271439A (ja) * 2002-03-13 2003-09-26 Seiko Epson Corp 情報処理装置およびプログラム
US7206915B2 (en) * 2004-06-03 2007-04-17 Emc Corp Virtual space manager for computer having a physical address extension feature
US7602798B2 (en) * 2004-08-27 2009-10-13 Intel Corporation Techniques to reduce latency in receive side processing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265925A (ja) * 1992-03-24 1993-10-15 Nec Corp データ転送制御装置
KR19990065664A (ko) * 1998-01-15 1999-08-05 구본준 직접 메모리 액세스 제어 장치
JP2000040057A (ja) 1998-07-23 2000-02-08 Nec Eng Ltd 計算機システム、バッファ制御装置及び転送方法
KR20020051545A (ko) * 2000-12-22 2002-06-29 오길록 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법
KR20040068338A (ko) * 2001-12-20 2004-07-30 프랑스 텔레콤 캐쉬 관리를 이용한 서버와 클라이언트 단말기 사이의오브젝트 전송 방법 및 대응하는 전송 시스템, 서버 및단말기
KR20040056309A (ko) * 2002-12-23 2004-06-30 한국전자통신연구원 네트워크를 통해 스트리밍 데이터를 고속으로 송수신하기위한 네트워크-스토리지 연결 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1020040056309 *

Also Published As

Publication number Publication date
US20060136779A1 (en) 2006-06-22
US7707337B2 (en) 2010-04-27
KR20060070283A (ko) 2006-06-23

Similar Documents

Publication Publication Date Title
KR100662256B1 (ko) 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법
JP6796304B2 (ja) 最終レベルキャッシュシステム及び対応する方法
JP4303688B2 (ja) データアクセス応答システムおよびデータアクセス応答システムへのアクセス方法
KR100758272B1 (ko) 데이터 무 복사 파일 이동 방법
US8001323B2 (en) Network storage system, management method therefor, and control program product therefor
JP2008269282A (ja) 情報処理装置および方法、並びにプログラム
US10552936B2 (en) Solid state storage local image processing system and method
US10007464B1 (en) Method and apparatus for integration of non-volatile memory
US20190004968A1 (en) Cache management method, storage system and computer program product
US20140281072A1 (en) Link layer virtualization in sata controller
US10761736B2 (en) Method and apparatus for integration of non-volatile memory
CN103595720B (zh) 卸载数据传输方法、装置和客户端
JPH04313126A (ja) 分散ファイルシステムのファイル入出力方式
JP6584529B2 (ja) ファイルにアクセスするための方法および装置、ならびに記憶システム
CN111881104A (zh) 一种nfs服务器及其数据写入方法、装置和存储介质
JP4150854B2 (ja) ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント
US10289550B1 (en) Method and system for dynamic write-back cache sizing in solid state memory storage
US6516344B1 (en) Reducing network traffic for remote file system accesses by keeping track of unallocated regions in files
EP1839148A2 (en) Transferring data between system and storage in a shared buffer
US8234651B2 (en) Information processing method and apparatus using the same
KR100785774B1 (ko) 객체 기반 파일 입출력 시스템 및 방법
KR100825724B1 (ko) 직접접속방식을 적용하는 고속 전송이 가능한PMEM(PCI Memory)를 이용한 객체 기반저장시스템 및 그 시스템에서의 전송 방법
JP2003316589A (ja) 実記憶利用方法
CN112003860B (zh) 适用于远程直接内存访问的内存管理方法、系统及介质
US20240103897A1 (en) Diversified virtual memory

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
LAPS Lapse due to unpaid annual fee