KR100823734B1 - iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템 - Google Patents

iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템 Download PDF

Info

Publication number
KR100823734B1
KR100823734B1 KR1020060064072A KR20060064072A KR100823734B1 KR 100823734 B1 KR100823734 B1 KR 100823734B1 KR 1020060064072 A KR1020060064072 A KR 1020060064072A KR 20060064072 A KR20060064072 A KR 20060064072A KR 100823734 B1 KR100823734 B1 KR 100823734B1
Authority
KR
South Korea
Prior art keywords
data
controller
processing
tcp
ipsec
Prior art date
Application number
KR1020060064072A
Other languages
English (en)
Other versions
KR20080005009A (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 KR1020060064072A priority Critical patent/KR100823734B1/ko
Priority to US11/769,813 priority patent/US20080008205A1/en
Priority to JP2007179846A priority patent/JP2008016037A/ja
Publication of KR20080005009A publication Critical patent/KR20080005009A/ko
Application granted granted Critical
Publication of KR100823734B1 publication Critical patent/KR100823734B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Abstract

본 발명은 iSCSI 데이터 가속 장치 및 이를 이용한 iSCSI 저장 시스템에 관한 것으로, 본 발명은 I/O프로세서와, TOE (TCP/IP Offload Engine) 콘트롤러와, IPSec 콘트롤러를 하나의 내부 PCI 버스를 통해 연결하고, 메모리를 상기 I/O 프로세서에 장착한 하드웨어 구조의 데이터 가속 장치를 구현하여, iSCSI 저장 시스템의 호스트 CPU 대신에 상기 데이터 가속 장치가, 복잡하고 처리시간이 오래 걸리는 TCP/IP 프로토콜 처리 및 IPsec 프로토콜 처리를 수행하도록 함으로써, 호스트 CPU의 부하를 경감시키면서, 고속 데이터 입출력 및 데이터 보호를 가능하게 한다.
I/O 프로세서, TOE(TCP/IP Off-load Engine) 콘트롤러, iSCSI(Internet Simple computer System Interface), IPSec(IP Security Protocol) 콘트롤러

Description

iSCSI를 위한 데이터 가속 장치 및 이를 이용한 iSCSI 저장 시스템{Data acceleration apparatus for iSCSI and iSCSI storage system using the same}
도 1은 본 발명에 의한 iSCSI를 위한 데이터 가속 장치의 블록 구성도이다.
도 2는 본 발명에 의한 iSCSI를 위한 데이터 가속 장치를 이용한 iSCSI 저장 시스템을 나타낸 블록 구성도이다.
도 3은 본 발명의 iSCSI를 위한 데이터 가속 장치에 의한, 데이터 읽기 과정을 보인 도면이다.
도 4는 본 발명의 iSCSI를 위한 데이터 가속 장치에 의한, 데이터 쓰기 과정을 나타낸 도면이다.
* 도면의 주요 부분에 대한 부호의 설명 *
105: PCI 브리지 I/O 프로세서
106: 메모리
107: 내부 PCI 버스
108: TOE(TCP/IP Offload Engine) 콘트롤러
109: IPsec(IP security protocol) 콘트롤러
110 : 데이터 가속 장치
본 발명은 데이터 저장 기술에 관한 것으로서, 더욱 상세하게는 고속의 입출력 처리를 수행할 수 있고 호스트 CPU의 부하를 줄일 수 있는 iSCSI(Internet Small Computer Systems Interface)를 위한 데이터 가속 장치 및 이를 이용한 iSCSI 저장 시스템에 관한 것이다.
서버에 저장되는 데이터 양이 기하급수적으로 증가함에 따라 데이터 저장장치에 요구되는 성능도 계속 증가하게 되었으며, 이에 따라 이전의 서버가 직접 연결된 저장 장치에 데이터를 저장하는데 한계가 발생하여, 네트워크를 통해 서버와 저장 장치를 연결하는 방법이 고안되었다.
현재 널리 사용되고 있는 네트워크를 이용한 저장 장치와 서버의 연결방법으로는 전통적인 NFS(Network File System), NAS(Network Attached Storage), SAN(Storage Area Network) 등이 존재한다.
NFS는 일반적인 서버와 서버 사이에서 TCP 연결을 통해 파일 단위로 데이터를 저장하는 것을 말한다. 그러나, 상기 방법은 파일 시스템에서의 부하가 커져 전송성능이 떨어진다는 단점이 있다.
NAS는 NFS와 비슷하게 TCP 연결을 사용하여 파일 단위로 저장하지만, 전용의 하드웨어를 사용함으로써 서버에 걸리는 부하를 줄여준 것이다. 하지만, 파일 단위 저장 방법의 한계로 인한 파일 시스템의 부하가 타겟 장치에서 저장 성능을 향상시키는데 병목이 된다.
SAN은 상술한 NAS나 NFS와 달리, 전용 네트워크를 통하여 저장 장치와 서버를 연결하고, 블록 단위 저장을 통해 파일 시스템의 부하를 서버 쪽에서 담당함으로써, 저장장치의 부하를 줄여서 입출력 성능을 높인 것이다. 그러나, 상기 SAN은 전용 네트워크 구성에 비용이 많이 들고, 광대역에 걸쳐서 연결망을 구성하기가 어렵다는 단점이 있다.
이에, 상기 SAN의 단점을 해결하기 위하여 iSCSI(Internet Small Computer System Interface)이 제안되었다. 상기 iSCSI는 SCSI 명령을 TCP/IP 패킷으로 캡슐화하고 IP 네트워크를 통한 블록 데이터 전송을 지원하는 IETF 표준 프로토콜으로서, 블록단위 저장방식을 채용하되, 연결망은 기존의 IP네트워크를 통하여 구성함으로써 NAS와 SAN의 장점을 채용하여, SAN을 수월하게 구현하고 확장할 수 있도록 한다.
그런데, 상기 iSCSI 프로토콜에 따르면, 저장 장치와 서버가 IP 네트워크를 통하여 연결되기 때문에, TCP/IP 프로토콜 처리에서 많은 부하를 발생시킨다.
이와 관련하여, Yoshihiro Saito 가 발명하고 NEC corporation이 미합중국 특허청에 2004년 2월 23일자로 출원하여 2004년 9월9일자로 공개된 공개특허 제 2004-0174893호에는 'iSCSI 장치 및 그 통신 제어 방법'에 대하여 기술되어 있다. 상기 공개 특허에서는, iSCSI 저장 시스템에서 지능형 네트워크 콘트롤러를 사용하여 들어오는 패킷을 분류하고, 상기 분류 결과 iSCSI 패킷이 아닌 경우에는 첫번째 프로세서가 처리하고, iSCSI 패킷인 경우에는 iSCSI 프로토콜 처리만을 수행하는 두번째 프로세서가 처리함으로써, 일반 패킷이 많이 들어오더라도 iSCSI 입출력성능이 저하되지 않도록 하고 있다. 그러나, 상기 공개특허에서는 서버의 또 다른 중요한 요소인 CPU의 TCP/IP 프로토콜 처리에 따른 부하를 경감하기 위한 방법이 제시되어 있지 않다. 따라서, 두 개의 프로세서를 사용하여 부하를 분산시켜, 네트워크 성능을 향상시킬 수는 있으나, TCP/IP 처리를 위한 해당 프로세서의 부하는 여전히 높아지게 된다.
다른 기술로서, John Shigeto Minami 외 다수가 발명하고 미국 특허청에 2003년 6월 5일자로 출원하여 2004년 4월 1일자로 공개된 미국 공개 특허 제 2004-0062267호에는 iSCSI와 IPSec프로토콜을 지원하는 기가비트 이더넷 어댑터에 대하여 개시되어 있다. 상기 공개 특허에서는, 기가비트 이더넷 콘트롤러에 프로세서와 메모리, 프로그램을 추가하여, TCP/IP프로토콜 처리를 포함하여 iSCSI나 IPSec과 같은 프로토콜 처리를 수행하도록 함으로써 성능을 향상시키는 기술을 제시하고 있다. 그러나, TCP/IP프로토콜 처리의 경우, 일반 프로세서와 프로그램을 사용하여 처리할 경우에는 전용 TOE 콘트롤러에 비해 성능이 저하되는 문제가 있고, 상기와 같이 모든 프로토콜에 대한 처리 프로그램이 이더넷 콘트롤러 내부에 포함될 경우 성능이 더 떨어질 가능성도 있다.
특히, iSCSI 저장 장치의 iSCSI 입출력을 고속으로 처리할 뿐만아니라, 호스트 CPU의 부하 경감 및 iSCSI 입출력 데이터의 이동 경로의 최적화가 성능 향상에 도움이 되므로, 상술한 기존의 기술로는 최적의 성능을 나타내기 어렵다.
더하여, iSCSI 저장 장치에 있어서는, iSCSI 프로토콜을 통하여 수신된 데이터를 저장할 때, 로컬 시스템의 PCI 버스를 통하여 로컬 시스템의 메모리로 데이터가 옮겨간 다음에 디스크 콘트롤러로 데이터가 전송되어야 하므로, 데이터의 이동 경로 상에서 병목이 발생할 가능성이 있다.
본 발명은 상술한 문제점들을 해결하기 위하여 제안된 것으로서, 그 목적은, iSCSI 저장 장치에 있어서, 데이터 이동 경로를 최적화하고 데이터 보호뿐만 아니라 호스트 CPU의 부하를 경감시키고 처리속도를 향상시킬 수 있는 iSCSI를 위한 데이터 가속 장치 및 이를 이용한 iSCSI 저장 시스템을 제공하는 것이다.
상술한 목적을 달성하기 위한 구성 수단으로서, 본 발명은, PCI 버스를 통해 iSCSI(Internet Small Computer System Interface) 저장 시스템에 연결되고, PCI 브리지 및 메모리 콘트롤을 수행하는 I/O(Input/Output) 프로세서; 상기 I/O 프로세서의 콘트롤에 따라서 데이터를 저장하여, IPsec 프로토콜 처리 및 TCP/IP 프로토콜 처리를 위한 버퍼링 및 데이터 저장 장소를 제공하는 메모리; 상기 iSCSI 저장 시스템에서 읽기/쓰기 되는 데이터를 상기 I/O 프로세서를 통해 전달받아, TCP/IP 스택을 전부 오프로딩하여 TCP/IP 프로토콜 처리를 수행하는 TOE(TCP/IP offload Engine) 콘트롤러; 및 상기 입출력되는 데이터에 대한 IPsec(IP security protocol) 처리를 수행하는 IPsec 콘트롤러;로 이루어지는 iSCSI를 위한 데이터 가속 장치를 제공한다.
더하여, 본 발명은 상술한 데이터 가속 장치가, 상기 I/O 프로세서와, 메모리와, TOE 콘트롤러와, IPsec 콘트롤러 간을 상호 연결하는 내부 PCI 버스를 더 포함하여 이루어진다.
또한, 본 발명에 의한 데이터 가속 장치는, 데이터 읽기 동작시, 상기 I/O 프로세서가 iSCSI 저장 시스템의 저장 수단으로부터 해당 데이터를 읽어와 상기 메모리에 저장하면, 상기 IPsec 콘트롤러에서 암호화한 후, TOE 콘트롤러에서 상기 암호화된 데이터를 TCP/IP 처리하여 출력시키는 것을 특징으로 하며, 데이터 쓰기 동작시, 상기 TOE 콘트롤러가 해당 데이터를 입력 받아 TCP/IP 처리를 수행하고, 상기 IPsec 콘트롤러에서 상기 TCP/IP 처리된 데이터를 복호화한 후, iSCSI 저장 시스템의 저장 수단에 전송하는 것을 특징으로 한다.
또한, 상기 데이터 가속 장치에 있어서, 상기 TOE 콘트롤러와 IPsec 콘트롤러는 하드웨어로 구현되는 것을 특징으로 한다.
또한, 본 발명은 상기 목적을 달성하기 위한 다른 구성 수단으로서, iSCSI 프로토콜에 따라 데이터 읽기 쓰기를 제어하여 데이터 저장 관리를 제어하는 호스트 CPU; 상기 호스트 CPU에 연결되어 호스트 CPU의 처리를 위한 버퍼링 및 저장 공간을 제공하는 호스트 메모리; 외부 네트워크와 연결되어 외부 네트워크로의 데이터 전송 및 수신을 처리하는 네트워크 콘트롤러; 데이터 저장 수단인 디스크에서의 데이터 읽기 및 디스크로의 데이터 쓰기 동작을 처리하는 디스크 콘트롤러; 상기 호스트 CPU 및 호스트 메모리와, 네트워크 콘트롤러 및 디스크 콘트롤러를 연결하는 브리지; 상기 브리지와 네트워크 콘트롤러와 디스크 콘트롤러를 상호 연결하는 메인 PCI 버스; 및 상기 메인 PCI 버스에 연결되어, 상기 호스트 CPU로부터의 데이터 읽기 쓰기 명령에 따라서 상기 디스크 콘트롤러에서 읽기 및 쓰기되는 데이터에 대한 TCP/IP 프로토콜 처리 및 IPsec 프로토콜 처리를 수행하는 데이터 가속 장치;를 포함하는 iSCSI 저장 시스템을 제공한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세하게 설명하고자 한다. 실시 예의 설명에 있어서, 이해의 편의를 돕기 위하여 동일한 구성요소에 대해서는 다른 도면에 도시되어 있더라도 동일한 부호를 부여하였으며, 본 발명의 기술적 요지를 불명확하게 할 수 있는 일반적인 기술에 대해서는 상세한 설명을 생략한다.
도 1은 본 발명에 의한 iSCSI를 위한 데이터 가속 장치를 나타낸 블록구성도로서, 도시된 바와 같이, 본 발명에 의한 데이터 가속 장치는, I/O(Input/Output) 프로세서(105)와, 메모리(106)와, TOE(TCP/IP offload Engine) 콘트롤러(108)와, IPsec(IP security protocol) 콘트롤러(109)로 이루어진다. 상기 I/O 프로세서(105)와, 메모리(106)와, TOE 콘트롤러(108)와, IPsec 콘트롤러(109)는 내부 PCI 버스(107)을 통해 상호 연결된다.
I/O 프로세서(105)는 iSCSI 저장 장치의 메인 PCI 버스에 연결되는 것으로서, PCI 브리지 기능 및 메모리 콘트롤러 기능을 수행한다. 더 구체적으로는, I/O 프로세서(105)는 parity 계산시 XOR엔진을 사용하여 XOR연산을 수행하고, 디스크 저장시 안정성과 성능 향상을 위하여 RAID기능을 구현함에 있어서 호스트 CPU의 부하를 경감시킬 수 있다. 또한 상기 I/O 프로세서(105)가 호스트 CPU 대신에 iSCSI 프로토콜 처리의 필수적인 부분인 패리티 연산을 고속으로 수행함으로써 호스트 CPU의 부하를 경감시키고 iSCSI 프로토콜 처리를 가속할 수 있다.
메모리(106)는 입출력되는 데이터의 IPsec 프로토콜 및 TCP/IP 프로토콜 처리를 위한 버퍼링 및 데이터 저장을 담당한다.
TOE 콘트롤러(108)는 상기 I/O 프로세서(105)의 제어에 따라서 입출력 데이터에 대한 인터넷 표준 프로토콜(TCP/IP)의 처리를 담당한다. 더 구체적으로 상기 TOE 콘트롤러(108)는 CPU의 TCP/IP 패킷 처리의 부하를 NIC 하드웨어인 TOE가 처리하는 TCP/IP 가속 장치로서, 기존에 소프트웨어가 담당하던 Transport, Network 계층을 하드웨어인 상기 TOE 콘트롤러(108)가 담당한다.
IPsec 콘트롤러(109)는 상기 I/O 프로세서(105)의 제어에 따라서 입출력되는 데이터의 암호화 및 복호화를 수행한다. 더 구체적으로는 외부 네트워크로부터 iSCSI 저장 시스템으로 입력되는 데이터는 복호화하고, IP 네트워크를 통해 전송되는 데이터에 대해서는 사전에 설정된 키를 이용하여 암호화한다. 이와 같이 IPsec 콘트롤러(109)는 호스트 CPU(101) 대신에 데이터 입출력에서의 암호화/복호화 처리를 수행함으로써, iSCSI 저장 시스템의 메인 CPU의 부하를 경감시키고, 고속의 iSCSI 입/출력을 구현한다.
상기와 같이 구성된 본 발명에 의한 데이터 가속 장치의 구성 요소들, 특히 TOE 콘트롤러(108)와 IPsec 콘트롤러(109)는 하드웨어로 구현된다.
더하여, 상술한 구성을 포함하는 본 발명의 데이터 가속장치는 하나의 PC(Personal Computer) 형태로 구현되며, 내부의 각 수단들은 상기 내부 PCI 버스(107)에 의하여 상호 연결된다.
도 2는 본 발명의 다른 실시 예로서, 상기 데이터 가속 장치를 이용한 iSCSI 저장 시스템을 나타낸 블록 구성도이다.
도 2를 참조하면, 본 발명에 의한 iSCSI 저장 시스템은, iSCSI 프로토콜에 따라 데이터 읽기 쓰기를 제어하여 데이터 저장 관리를 제어하는 호스트 CPU(101)와, 상기 호스트 CPU(101)에 연결되어 호스트 CPU(101)의 처리를 위한 버퍼링 및 저장 공간을 제공하는 호스트 메모리(102)와, 상기 호스트 CPU(101) 및 호스트 메모리(102)로의 접근을 처리하는 브리지(103)와, 외부 네트워크와 연결되어 외부 네트워크로의 데이터 전송 및 수신을 처리하는 네트워크 콘트롤러(111)와, 데이터 저장 수단인 디스크에서의 데이터 읽기 및 디스크로의 데이터 쓰기 동작을 처리하는 디스크 콘트롤러(112)와, 상기 브리지(103)와 네트워크 콘트롤러와 디스크 콘트롤러를 상호 연결하는 메인 PCI 버스(201)와, 상기 메인 PCI 버스(201)에 연결되어, 상기 호스트 CPU(101)로부터의 데이터 읽기 쓰기 명령에 따라서 상기 디스크 콘트롤러(112)에서 읽기 및 쓰기되는 데이터에 대한 TCP/IP 프로토콜 처리 및 IPsec 프로토콜 처리를 수행하는 데이터 가속 장치(110)로 이루어진다.
상기 데이터 가속 장치(110)는 상기 도 1에서 설명한 바와 같이, I/O 프로세서(105)와, 메모리(106)와, 내부 PCI 버스(107)와, TOE 콘트롤러(108)와, IPsec 콘트롤러(109)를 포함하여 구성되며, 상기 I/O 프로세서(105)는 iSCSI 저장 시스템의 메인 PCI 버스(104)를 통하여, 네트워크 콘트롤러(111)와, 브리지(103)와, 디스크 콘트롤러(112)에 연결된다.
상기에서, 브리지(103)는 iSCSI 저장 시스템의 전반적인 제어 및 관리를 수행하는 호스트 CPU(101)와, 상기 호스트 CPU(101)에 연결된 호스트 메모리(102)와, 다른 장치, 즉, 네트워크 콘트롤러(111) 및 디스크 콘트롤러(112)들 간을 접속하여 데이터 교환을 가능하게 하며, 상기 네트워크 콘트롤러(111)는 외부 네트워크와의 연결을 담당하며, 외부 네트워크로 입출력되는 데이터에 대한 TCP 체크섬(checksum) 및 Scatter/Gather 전송을 지원하고, 메모리(106) 상의 데이터에 대해 무복사(zero-copy) 전송을 수행함으로써, 메모리간 복사를 배제하여 네트워크 전송 성능을 향상시킨다. 그리고, 상기 디스크 콘트롤러(112)는 해당 iSCSI 저장 시스템의 저장 수단인 디스크로의 데이터 읽기/쓰기를 수행한다.
상술한 바와 같이, 본 발명의 데이터 가속 장치(110)는 메인 PCI 버스(104)를 통하여 iSCSI 저장 시스템에 연결된다.
상술한 구성에 있어서, 상기 데이터 가속 장치(110)는 디스크로부터의 데이터 읽기가 이루어지는 경우, 상기 디스크 콘트롤러(112)로부터 읽어진 데이터를 메모리(106)에 저장한 후, TOE 콘트롤러(108) 및 IPsec 콘트롤러(109)를 통해 TCP/IP 처리 및 IPsec 처리를 수행하여 네트워크 콘트롤러(111)로 전달하며, 반대로 네트 워크 콘트롤러(111)로 입력된 데이터에 대한 디스크로의 쓰기가 이루어지는 경우에는, 상기 입력된 데이터를 메모리(106)에 저장하여, TOE 콘트롤러(108)와 IPsec 콘트롤러(109)를 통해 TCP/IP 및 IPsec 처리를 수행한 후에, 디스크 콘트롤러(112)에 전달한다.
상기에 의하면, iSCSI 저장 시스템에 있어서, 호스트 CPU(101)가 TCP/IP 처리 및 IPsec 처리를 수행하지 않아도 되므로, 호스트 CPU(101)의 부하를 경감시킬 수 있으며, 또한, 입출력되는 데이터의 브리지(103) 통과 횟수를 최소화함으로써, 병목 현상을 제거할 수 있다.
도 3 및 도 4는 본 발명에 의한 데이터 가속 장치를 이용한 데이터 읽기/쓰기 처리 과정을 나타낸 도면이다.
먼저, 도 3을 참조하여 데이터 읽기 과정을 설명한다.
iSCSI 저장 시스템에서 디스크로부터의 데이터 읽기가 요구된 경우, 호스트 CPU(101)로부터 데이터 가속 장치(110)로 데이터 읽기 명령이 전달되고, 이 경우 상기 데이터 가속 장치(110)는 저장 수단, 즉, 디스크로부터 데이터를 읽어서 네트워크를 통해 iSCSI 이니시에이터(initiator)로 전달하게 된다.
이때, 데이터의 고속 입출력을 위한 데이터 처리는 다음과 같은 순서로 이루어진다.
1. 디스크 콘트롤러(112)에서 요청된 데이터를 디스크에서 읽어, 상기 데이터 가속 장치(110)의 I/O 프로세서(105)를 통하여 메모리(106)에 저장한다(201). 이때 저장되는 데이터는 TOE 처리 및 IPsec 처리가 이루어지지 않은 상태이다.
2. 이어 IPSec 콘트롤러(109)에서 상기 I/O 프로세서(105)를 통해 상기 메모리(106)에 저장된 데이터를 입력받아, 사전에 결정되어 있는 키를 사용하여 해당 데이터를 암호화한 후, 다시 I/O 프로세서(105)를 통해서 상기 메모리(106)에 저장한다(202).
3. TOE 콘트롤러(108)는 상기 I/O 프로세서(105)를 통해서 상기 메모리(106)에 저장된 암호화된 데이터를 읽어서, 호스트 CPU(101)의 간섭 없이, MAC(Media Access Control)을 직접 핸들링할 뿐만 아니라, TCP/IP 스택 전부를 오프로딩한 후, 상기 오프로딩된 데이터를 네트워크 콘트롤러(111)로 전송한다(203).
즉, 본 발명에 의한 데이터 가속 장치(110)를 포함하지 않은 iSCSI 저장 시스템에서는 데이터 읽기를 처리하고자 하는 경우, 디스크에 저장된 데이터를 브리지를 통해 가져와 호스트 메모리에 저장한 후, 호스트 CPU가 암호화 처리 및 TCP/IP 처리를 수행하고, 상기 암호화 및 TCP/IP 처리된 데이터를 다시 브리지를 통해 네트워크 콘트롤러로 전송하여야 하기 때문에, 호스트 CPU(101)의 부하가 증가하고, 브리지에서 병목현상이 발생하였으나, 본 발명에 의한 데이터 가속 장치(110)이 구비된 iSCSI 저장 시스템은, 상기 호스트 CPU(101)가 데이터의 읽기 명령을 데이터 가속 장치(110)로 전달하기만 하면, 상기 데이터 가속 장치(110)에 의해서, 디스크 콘트롤러(112)와 데이터 가속 장치(110)와 네트워크 콘트롤러(111)의 상호 작용만으로 IPsec 및 TCP/IP 처리를 포함한 데이터 읽기 처리가 이루어지므로, 고속 데이터 처리가 가능할 뿐만 아니라, 데이터가 브리지(103)를 통과할 필요가 없으므로 브리지(103)에서의 병목 현상이 해결될 수 있고, 또한 호스트 CPU(101)의 부하가 감소된다.
이어서, 도 4를 참조하여 본 발명에 의한 iSCSI 저장 시스템에서의 데이터 쓰기 과정을 설명한다.
iSCSI 저장 시스템으로의 데이터 쓰기 요구가 있는 경우, 호스트 CPU(101)로부터 데이터 가속 장치(110)로 쓰기 명령이 전달되며, 이에 상기 데이터 가속 장치(110)는 네트워크를 통하여 iSCSI 이니시에이터로부터 전달되어 오는 데이터를 입력받아 TCP/IP 처리 및 복호화 처리를 수행한 후에 디스크에 저장한다.
데이터의 고속 입출력을 위한 iSCSI 쓰기 명령 처리 과정을 더 구체적으로 설명하면, 아래와 같은 순서로 이루어진다.
1. 외부 네트워크로부터 디스크에 쓰여지기 위해 전송된 데이터는 네트워크 콘트롤러(111)로 입력된 후, 브리지(103)을 통해 호스트 메모리(102)에 저장된다(301). 이는 외부 네트워크로 입력된 데이터가 보안 공격(즉, 해킹) 데이터인지 아닌 지 등의 기본 처리를 수행하기 위한 것으로서, 이는 호스트 CPU(101)에 의해 수행된다. 여기서, 상기 호스트 CPU(101)의 처리 결과 정상 데이터로 판단되면, 데이터 가속 장치(110)로 데이터 쓰기 명령이 전달되고, 정상 데이터가 아니라고 판단되면 해당 데이터를 그대로 폐기한다.
2. 상기 데이터 가속 장치(110)의 TOE 콘트롤러(108)는 I/O 프로세서(105)를 통해서 호스트 메모리(102)에 저장된 상기 외부 네트워크로부터의 입력 데이터를 읽어서, 호스트 CPU(101)의 간섭 없이 TCP/IP 스택의 전부를 오프로딩한 후, 다시I/O 프로세서(105)를 통해 메모리(106)에 저장한다(302).
3. 이어 IPSec 콘트롤러(109)는 상기 TOE 콘트롤러(108)에 의해 처리되어 메모리(106)에 저장된 데이터를 입력받아, 사전에 결정되어 있는 키를 사용하여 복호한 후, 디스크 콘트롤러(112)로 전송하여, 디스크에 저장한다(303).
이상과 같은 데이터 쓰기 동작에 의하면, 호스트 CPU(101)는 정상 데이터, 비정상(공격) 데이터의 확인 처리만을 수행한 후, 정상 데이터에 대한 쓰기 명령을 데이터 가속 장치(110)에 전달하는 것으로서, 데이터 가속 장치(110)와 디스크 콘트롤러(112)에 의해서 데이터 쓰기 동작이 완료된다. 이에 의하면, 호스트 CPU(101)의 부하를 감소시키고, 고속 데이터 처리를 가능하게 한다.
상술한 바에 의하면, 본 발명은, 데이터 저장장치의 구현에 있어서 데이터보호 및 병목이 되는 TCP/IP 프로토콜 처리, RAID기능 지원, 패리티 연산, IPsec 프로토콜 처리를 iSCSI 저장 시스템의 호스트 CPU를 대신하여 처리해줌으로써, 데이터 입출력을 하드웨어적으로 가속시켜, 호스트 CPU의 부하 경감 및 고속 데이터 입출력을 가능하게 한다.
또한, 본 발명은 iSCSI 프로토콜 처리시의 메모리 간 복사의 회수를 최소화하여 성능을 최적화할 수 있을 뿐 아니라, 데이터가 PCI버스를 이동하는 횟수를 최소로 유지함으로써 PCI 버스에서 발생할 수 있는 병목 현상을 제거하는 우수한 효과가 있다.

Claims (13)

  1. iSCSI(Internet Small Computer System Interface) 저장 시스템의 메인 PCI 버스에 연결되어, 상기 iSCSI 저장 시스템의 읽기 데이터가 상기 iSCSI 저장 시스템의 네트워크 콘트롤러를 통해 출력되거나, 쓰기 데이터가 상기 iSCSI 시스템의 디스크에 저장되기 전에 TCP/IP 처리 및 IPsec(IP security protocol) 처리되도록 PCI 브리지 및 메모리 콘트롤을 수행하는 I/O(Input/Output) 프로세서;
    하드웨어로 구현되어, 상기 I/O 프로세서의 콘트롤에 따라서 상기 읽기 데이터 및 쓰기 데이터에 대한 TCP/IP 스택을 전부 오프로딩하여 TCP/IP 처리를 수행하는 TOE(TCP/IP offload Engine) 콘트롤러; 및
    하드웨어로 구현되어, 상기 I/O 프로세서의 콘트롤에 따라서 상기 읽기 데이터 및 쓰기 데이터에 대한 IPsec 처리를 수행하는 IPsec 콘트롤러; 및
    상기 IPsec 처리 및 TCP/IP 처리를 위한 버퍼링 및 데이터 저장 장소를 제공하는 메모리;
    로 이루어지는 iSCSI를 위한 데이터 가속 장치.
  2. 제1항에 있어서,
    상기 I/O 프로세서와, 메모리와, TOE 콘트롤러와, IPsec 콘트롤러 간을 상호 연결하는 내부 PCI 버스를 더 포함하는 것을 특징으로 하는 iSCSI를 위한 데이터 가속 장치.
  3. 제1항에 있어서,
    데이터 읽기 동작시에는, 상기 I/O 프로세서가 상기 iSCSI 저장 시스템의 저장 수단으로부터 상기 읽기 데이터를 읽어와 상기 메모리에 저장하고, 상기 IPsec 콘트롤러에서 상기 메모리에 저장된 데이터를 암호화하고, 상기 TOE 콘트롤러에서 상기 암호화된 데이터를 TCP/IP 처리한 후, 상기 I/O 프로세서에서 상기 네트워크 콘트롤러로 출력시키는 것을 특징으로 하는 iSCSI를 위한 데이터 가속 장치.
  4. 제1항에 있어서,
    데이터 쓰기 동작시에는, 상기 I/O 프로세서가 상기 iSCSI 저장 시스템의 호스트 메모리로부터 쓰기 데이터를 가져오고, 상기 TOE 콘트롤러가 상기 쓰기 데이터를 TCP/IP 처리를 수행한 후 메모리에 저장하면, 상기 IPsec 콘트롤러가 상기 TCP/IP 처리된 쓰기 데이터를 복호화한 후, 상기 I/O 프로세서를 통해 상기 iSCSI 저장 시스템의 저장 수단에 전송하는 것을 특징으로 하는 iSCSI를 위한 데이터 가속 장치.
  5. 제1항에 있어서,
    상기 I/O 프로세서는 RAID 기능 구현시 XOR 엔진을 사용하여 XOR 연산을 수행하는 것을 특징으로 하는 iSCSI를 위한 데이터 가속 장치.
  6. 제1항에 있어서,
    상기 I/O 프로세서는 iSCSI 프로토콜 처리의 패리티 연산을 더 수행하는 것을 특징으로 하는 iSCSI를 위한 데이터 가속 장치.
  7. 삭제
  8. iSCSI 프로토콜에 따라 데이터의 읽기 및 쓰기를 제어하여 데이터 저장 관리를 제어하는 호스트 CPU;
    상기 호스트 CPU에 연결되어 호스트 CPU의 처리를 위한 버퍼링 및 저장 공간을 제공하는 호스트 메모리;
    외부 네트워크와 연결되어 쓰기 데이터를 수신받거나, 읽기 데이터를 송신하는 네트워크 콘트롤러;
    데이터 저장 수단인 디스크에서의 데이터 읽기 및 디스크로의 데이터 쓰기 동작을 처리하는 디스크 콘트롤러;
    상기 호스트 CPU 및 호스트 메모리와, 네트워크 콘트롤러 및 디스크 콘트롤러를 연결하는 브리지;
    상기 브리지와 네트워크 콘트롤러와 디스크 콘트롤러를 상호 연결하는 메인 PCI 버스; 및
    하드웨어로 구현된 TOE(TCP/IP offload Engine) 콘트롤러 및 IPsec(IP security protocol) 콘트롤러를 포함하고, 상기 메인 PCI 버스에 연결되어, 상기 호스트 CPU로부터의 데이터 읽기 명령 및 데이터 쓰기 명령에 따라서, 읽기 데이터가 상기 네트워크 콘트롤러를 통해 출력되거나, 쓰기 데이터가 상기 디스크 콘트롤러를 통해 저장되기 전에 상기 TOE 콘트롤러 및 IPsec 콘트롤러를 통해 TCP/IP 처리 및 IPsec 처리하는 데이터 가속 장치;
    를 포함하는 iSCSI 저장 시스템.
  9. 제8항에 있어서, 상기 데이터 가속 장치는,
    상기 메인 PCI 버스에 연결되고, 상기 읽기 데이터가 상기 네트워크 콘트롤러를 통해 출력되거나, 쓰기 데이터가 디스크에 저장되기 전에 TCP/IP 처리 및 IPsec 처리되도록 PCI 브리지 및 메모리 콘트롤을 수행하는 I/O(Input/Output) 프로세서;
    상기 I/O 프로세서의 콘트롤에 따라서 데이터를 저장하여, 상기 IPsec 프로토콜 처리 및 TCP/IP 프로토콜 처리를 위한 버퍼링 및 데이터 저장 장소를 제공하는 메모리;
    하드웨어로 구현되어, 상기 I/O 프로세서의 콘트롤에 따라서 TCP/IP 스택을 전부 오프로딩하여 상기 읽기 데이터 및 쓰기 데이터의 TCP/IP 처리를 수행하는 TOE 콘트롤러; 및
    하드웨어로 구현되어, 상기 I/O 프로세서의 콘트롤에 따라서 상기 IPsec 처리를 수행하는 IPsec 콘트롤러;
    로 이루어지는 iSCSI 저장 시스템.
  10. 제9항에 있어서, 상기 데이터 가속 장치는,
    상기 I/O 프로세서와, 메모리와, TOE 콘트롤러와, IPsec 콘트롤러 간을 상호 연결하는 내부 PCI 버스를 더 포함하는 것을 특징으로 하는 iSCSI 저장 시스템.
  11. 제9항에 있어서,
    상기 데이터 가속 장치는, 상기 호스트 CPU로부터 데이터 읽기 명령시, 상기 I/O 프로세서가 상기 디스크 콘트롤러로부터 해당 데이터를 읽어와 상기 메모리에 저장하고, 상기 IPsec 콘트롤러에서 암호화하고, TOE 콘트롤러에서 상기 암호화된 데이터를 TCP/IP 처리한 후, 상기 네트워크 콘트롤러로 출력시키는 것을 특징으로 하는 iSCSI 저장 시스템.
  12. 제9항에 있어서,
    상기 데이터 가속 장치는, 상기 호스트 CPU로부터 데이터 쓰기 명령시, 상기 쓰기 데이터를 상기 호스트 메모리로부터 입력받아 상기 TOE 콘트롤러에서 TCP/IP 처리를 수행하고, 상기 IPsec 콘트롤러에서 상기 TCP/IP 처리된 데이터를 복호화한 후, 상기 디스크 콘트롤러에 전송하는 것을 특징으로 하는 iSCSI 저장 시스템.
  13. 삭제
KR1020060064072A 2006-07-07 2006-07-07 iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템 KR100823734B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060064072A KR100823734B1 (ko) 2006-07-07 2006-07-07 iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템
US11/769,813 US20080008205A1 (en) 2006-07-07 2007-06-28 DATA ACCELERATION APPARATUS FOR iSCSI AND iSCSI STORAGE SYSTEM USING THE SAME
JP2007179846A JP2008016037A (ja) 2006-07-07 2007-07-09 iSCSIのためのデータ加速装置及びこれを用いたiSCSI記憶システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060064072A KR100823734B1 (ko) 2006-07-07 2006-07-07 iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템

Publications (2)

Publication Number Publication Date
KR20080005009A KR20080005009A (ko) 2008-01-10
KR100823734B1 true KR100823734B1 (ko) 2008-04-21

Family

ID=38919084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060064072A KR100823734B1 (ko) 2006-07-07 2006-07-07 iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템

Country Status (3)

Country Link
US (1) US20080008205A1 (ko)
JP (1) JP2008016037A (ko)
KR (1) KR100823734B1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793399B1 (en) * 2008-08-06 2014-07-29 Qlogic, Corporation Method and system for accelerating network packet processing
JP5204195B2 (ja) * 2010-10-29 2013-06-05 株式会社東芝 データ送信システムおよびデータ送信プログラム
US9600429B2 (en) 2010-12-09 2017-03-21 Solarflare Communications, Inc. Encapsulated accelerator
US9003053B2 (en) 2011-09-22 2015-04-07 Solarflare Communications, Inc. Message acceleration
US10873613B2 (en) 2010-12-09 2020-12-22 Xilinx, Inc. TCP processing for devices
US9674318B2 (en) 2010-12-09 2017-06-06 Solarflare Communications, Inc. TCP processing for devices
US9258390B2 (en) 2011-07-29 2016-02-09 Solarflare Communications, Inc. Reducing network latency
US8996644B2 (en) 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US8990560B2 (en) * 2011-06-17 2015-03-24 The Boeing Company Multiple independent levels of security (MILS) host to multilevel secure (MLS) offload communications unit
US10505747B2 (en) 2012-10-16 2019-12-10 Solarflare Communications, Inc. Feed processing
EP2722767B1 (en) * 2012-10-16 2018-03-21 Solarflare Communications Inc Encapsulated accelerator
WO2014077451A1 (ko) * 2012-11-13 2014-05-22 주식회사 유투엔 Iscsi 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
US9250954B2 (en) * 2013-01-17 2016-02-02 Xockets, Inc. Offload processor modules for connection to system memory, and corresponding methods and systems
US9712541B1 (en) 2013-08-19 2017-07-18 The Boeing Company Host-to-host communication in a multilevel secure network
KR101531564B1 (ko) * 2013-11-27 2015-06-26 주식회사 유투앤 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 부하 분산 방법 및 시스템
KR101589122B1 (ko) * 2013-11-27 2016-01-27 주식회사 유투앤 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 장애 복구 방법 및 시스템
KR102237991B1 (ko) 2015-03-20 2021-04-08 한국전자통신연구원 Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치
WO2017019104A1 (en) * 2015-07-30 2017-02-02 Hewlett Packard Enterprise Development Lp Network device emulation
US11868638B2 (en) * 2020-08-31 2024-01-09 Micron Technology, Inc. Inter-memory movement in a multi-memory system
CN112964165B (zh) * 2021-02-08 2021-12-14 合肥工业大学 一种移动荷载作用下的桥梁位移重构方法
US20240053891A1 (en) * 2022-08-12 2024-02-15 Advanced Micro Devices, Inc. Chipset Attached Random Access Memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265328A (ja) 1998-03-18 1999-09-28 Nec Corp 出力高速化装置及び方法
KR20020021415A (ko) * 2000-09-14 2002-03-21 문홍주 오디오/비디오 스트리밍 가속 장치의 구성방법 및 그 시스템
KR20040056309A (ko) * 2002-12-23 2004-06-30 한국전자통신연구원 네트워크를 통해 스트리밍 데이터를 고속으로 송수신하기위한 네트워크-스토리지 연결 장치
KR20060066596A (ko) * 2004-12-13 2006-06-16 한국전자통신연구원 데이터 고속 입출력을 위한 데이터 입출력 가속 장치 및 그운용 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001296331A1 (en) * 2000-09-29 2002-04-08 Alacritech, Inc. Intelligent network storage interface system and devices
JP4346850B2 (ja) * 2001-01-23 2009-10-21 インターナショナル・ビジネス・マシーンズ・コーポレーション Osイメージごとに論理分割された論理分割データ処理システム
US7535913B2 (en) * 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
JP2003316715A (ja) * 2002-04-24 2003-11-07 Hitachi Ltd 複数ポートを有するコンピュータの制御方法、複数ポートを有するコンピュータ、コンピュータシステムの制御方法
US7587587B2 (en) * 2002-12-05 2009-09-08 Broadcom Corporation Data path security processing
US20040133595A1 (en) * 2003-01-08 2004-07-08 Black Karl S. Generation of persistent document object models
JP3797363B2 (ja) * 2003-03-03 2006-07-19 日本電気株式会社 iSCSI装置及びその通信制御方法
JP2005018100A (ja) * 2003-06-23 2005-01-20 Fujitsu Ltd ネットワークファイルサーバ、情報処理装置並びにプログラム
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US7349999B2 (en) * 2003-12-29 2008-03-25 Intel Corporation Method, system, and program for managing data read operations on network controller with offloading functions
US7313721B2 (en) * 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
CN1747444A (zh) * 2004-09-10 2006-03-15 国际商业机器公司 数据处理系统网络中从主机单元分担数据流的方法及引擎
JP4478000B2 (ja) * 2004-11-30 2010-06-09 日本電信電話株式会社 データ仲介方法およびデータ仲介装置
US7475167B2 (en) * 2005-04-15 2009-01-06 Intel Corporation Offloading data path functions
US7526558B1 (en) * 2005-11-14 2009-04-28 Network Appliance, Inc. System and method for supporting a plurality of levels of acceleration in a single protocol session

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265328A (ja) 1998-03-18 1999-09-28 Nec Corp 出力高速化装置及び方法
KR20020021415A (ko) * 2000-09-14 2002-03-21 문홍주 오디오/비디오 스트리밍 가속 장치의 구성방법 및 그 시스템
KR20040056309A (ko) * 2002-12-23 2004-06-30 한국전자통신연구원 네트워크를 통해 스트리밍 데이터를 고속으로 송수신하기위한 네트워크-스토리지 연결 장치
KR20060066596A (ko) * 2004-12-13 2006-06-16 한국전자통신연구원 데이터 고속 입출력을 위한 데이터 입출력 가속 장치 및 그운용 방법

Also Published As

Publication number Publication date
US20080008205A1 (en) 2008-01-10
JP2008016037A (ja) 2008-01-24
KR20080005009A (ko) 2008-01-10

Similar Documents

Publication Publication Date Title
KR100823734B1 (ko) iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템
US10375166B2 (en) Caching device and method thereof for integration with a cloud storage system
JP4698982B2 (ja) 暗号処理を行うストレージシステム
US20170373848A1 (en) Method and apparatus for cryptographic conversion in a data storage system
US8099470B2 (en) Remote direct memory access for iSCSI
US8788726B2 (en) Data transmission system, storage medium and data transmission program
US20050060538A1 (en) Method, system, and program for processing of fragmented datagrams
US7676607B2 (en) Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus
US20080126578A1 (en) Method, system, and program for managing data read operations
KR20170103627A (ko) 개인 디바이스 및 클라우드 데이터의 분산된 보안 백업
US20130054841A1 (en) Multiple i/o request processing in a storage system
TW201514749A (zh) 用於保全電腦大容量儲存資料的方法和裝置
US20140012948A1 (en) Data transferring apparatus, data transmission system and data transmitting method
KR100676674B1 (ko) 데이터 고속 입출력을 위한 데이터 입출력 가속 장치 및 그운용 방법
US11080409B2 (en) SSD content encryption and authentication
KR100723879B1 (ko) TOE를 이용한 iSCSI 타겟 시스템 상의 하드웨어가속 장치 및 그 장치를 이용한 읽기/쓰기 명령 수행방법
KR20210097016A (ko) 암호화를 오프로드하기 위한 장치 및 방법
US8868674B2 (en) Streaming and bulk data transfer transformation with context switching
US11966355B2 (en) Network adapter with a common queue for both networking and data manipulation work requests
US20190171612A1 (en) Network adapter with a common queue for both networking and data manipulation work requests
US7984306B1 (en) System and method for reducing processing latency in a security appliance
Jianzhong et al. iOBS3: An iSCSI-Based Object Storage Security System

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: 20110411

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee