602 정보과학회논문지 : 컴퓨팅의실제및레터제 18 권제 8 호 (2012.8) 저장장치내처리를위한 SSD 소프트웨어플랫폼시뮬레이터 (SSD Software Platform Simulator for In-Storage Processing) 박대동 이재수 (Daedong Park) 홍성수 (Seongsoo Hong) (Jaesoo Lee) 요약 In-storage processing(isp) 는저장장치용 I/O 인터페이스의병목현상으로인한전체시스템성능저하문제를해결하기위해고안된기법이다. 특히최근의플래시메모리기반저장장치들의내부데이터전송속도가 I/O 인터페이스의발전에비해매우빠르게증가하기때문에 ISP 의필요가더욱증대되고있다. 그러나기존연구들은특정시스템이나응용에제한되어있어서 SSD 에적용및범용적응용개발이어렵다. 우리는이런문제를해결하기위해 ISP 를위한 SSD 소프트웨어플랫폼을제안한다. 제안된플랫폼은 ISP 응용의동적관리뿐만아니라이벤트서비스를통한동적기능확장이가능하다. 우리는먼저프로그래밍모델을제안하고다음으로이를지원하는 SSD 소프트웨어플랫폼을고안한다. 마지막으로제안하는플랫폼을검증하기위한시뮬레이터를구현하고실험을통해성능및기능확장을확인한다. 실험결과 ISP 를사용하는 본연구는삼성전자메모리사업부의지원을받아수행하였음 (No. 0421-20100068, SSD를위한컴포넌트기반의내장형고성능소프트웨어플랫폼연구 ) 이논문은제38회추계학술발표회에서 In-Storage Processing을위한 SSD 소프트웨어플랫폼 의제목으로발표된논문을확장한것임 비회원 : 서울대학교전기컴퓨터공학부 ddpark@redwood.snu.ac.kr (Corresponding author 임 ) 비회원 : 삼성전자메모리사업부책임연구원 jaesoo.lee@samsung.com 종신회원 : 서울대학교전기컴퓨터공학부교수 sshong@redwood.snu.ac.kr 논문접수 : 2011년 12월 29일심사완료 : 2012년 4월 17일 CopyrightC2012 한국정보과학회ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : 컴퓨팅의실제및레터제18권제8호 (2012.8) 응용의응답속도가 52.7% 감소하였으며 SSD 에동적으로새로운기능을추가하는것이가능함을확인하였다. 키워드 :SSD 소프트웨어플랫폼, ISP, OSD Abstract In-storage processing (ISP) was developed to solve the performance degradation problem of I/O interface. Recently, the problem is getting worse because the speed of internal data bus of SSD has been improved much more than that of I/O interfaces. However, it is hard to use the existing ISP mechanisms for SSD because they aimed on specific systems or applications. In this paper, we propose SSD software platform to solve this problem. By using the proposed platform, user can dynamically install and remove various ISP applications and extend functionality through event service. We first propose a programming model and then design a SSD software platform. Finally, we implement a platform simulator and perform experiments to verify its performance enhancement and functional extensibility. The results show that the average response time of applications with ISP are decreased by 52.7% compared to that of without ISP. Also, user can dynamically attach a new functionality to SSD. Key words : SSD Software Platform, ISP, OSD 1. 서론 최근저장장치의발달로인해플래시메모리기반의 SSD(Solid State Drive) 사용이크게증가하고있다. 플래시칩과버스의다양한병렬화기법덕분에 SSD내부의데이터전송속도는기존의하드디스크에비해매우빠를뿐만아니라현재도그속도가증가하고있다. 반면저장장치와호스트시스템사이의 I/O 인터페이스는기존의하드디스크를위한인터페이스를공유하고있으며발전속도는 SSD의발전속도를따라가지못하고있다. 그결과 I/O 인터페이스가데이터전송의병목구간이되어전체시스템의성능을저하시킨다. 단순히 I/O 인터페이스의성능을끌어올리는것은프로세서에너무많은인터럽트를발생시키게되므로다른방법의접근이필요하다. 일반적으로대량의데이터전송이필요한프로그램의실제연산은간단한경우가많다. 예를들어대용량데이터베이스에서특정조건을만족하는값들을모두찾는경우데이터의변환과값의비교연산이모든데이터에대해반복적으로수행된다. 이런연산을저장장치내에서수행하면 I/O 인터페이스를통해전송되는데이터의양을크게줄일수있다. 이처럼저장장치내에서응용의일부를수행하는 ISP 기법의연구가이루어졌다 [1-3]. 그러나기존연구들은특정시스템이나응용에만제한되어 SSD에적용하기어렵고, 범용적이고다양한응용을개발하기힘들다는문제가존재한다.
저장장치내처리를위한 SSD 소프트웨어플랫폼시뮬레이터 603 본논문에서는이러한문제를해결하기위해 ISP를위한 SSD 소프트웨어플랫폼을제안한다. 먼저응용개발자를위한 SSD 프로그래밍모델을고안하고이를지원하는 SSD 소프트웨어플랫폼을설계한다. 고안된프로그래밍모델은 ISP 응용뿐만아니라저장장치내의특정이벤트발생시동작할이벤트처리기의개발을가능하게한다. 또한플랫폼사용자는쉽게 3rd 파티응용을저장장치내에설치하고관리할수있다. 우리는제안하는플랫폼의성능및기능확장을검증하기위해시뮬레이터를구현하고실험을수행했다. 실험결과많은양의 I/O가발생하는데이터베이스응용의 select 쿼리응답시간이 47.3% 로감소하였다. 이논문의나머지부분은다음과같이구성된다. 2장에서는본연구의관련연구를정리하고 3장에서는해결하고자하는문제를정의한다. 4장과 5장에서는 SSD 프로그래밍모델과소프트웨어플랫폼에대해각각설명한다. 6장에서는실험을통한검증을보이고마지막으로 7장에서결론을내린다. 2. 관련연구저장장치의성능및기능향상을위해서 ISP를사용하는방법과파일시스템의개선을통한방법들이활발하게연구되어왔다. 전자에는프로세서의처리능력한계로인한성능저하문제를 ISP로해결 [1,2] 하는연구와분산시스템에서느린네트워크로인한성능저하문제를데이터가위치한노드에서연산을수행함으로써해결 [3] 하는연구들이있다. 그러나이들연구는매우제한된프로그래밍모델로작성된 ISP 응용또는미리정해진 ISP 응용만을수행할수있을뿐만아니라특정파일시스템의구조에종속되어있다. 따라서 3rd 파티가다양한목적의 ISP 응용을개발하고동적으로설치및수행하기어렵다. 파일시스템을통한성능및기능확장연구들은주로특정목적의파일시스템을개발하는것에중점을두었다. 범용목적을위한일부연구중대표적인것으로 Object-based storage[4,5] 는모든데이터를객체로저장장치에기록하고각객체마다목적에맞는다양한속성을부여한다. 또한플래시메모리와같은주요저장매체의변화에최적화된파일시스템도 [6] 개발되었다. 그러나이들연구들은 3rd 파티에게이를활용할수있는프로그래밍모델을제공하고있지못하다. 그림 1 시스템모델스트시스템은대상시스템으로데이터읽기및쓰기명령을요청한다. 대상시스템은 ISP 응용및이벤트처리기가동작하는 SSD 시스템이다. 두시스템은 SATA 와같은 I/O 인터페이스를통해서로연결된다. 3.2 문제정의및해결방안최근개발되고있는 SSD 내부의데이터전송버스속도는 6 Gbit/s 이상이며현재도그속도가증가하고있다. 하지만현재가장많이사용되는 SATA2 인터페이스의최대속도는 3 Gbit/s일뿐만아니라실제동작속도는일반적으로이보다낮다. 이로인해데이터전송이많은프로그램의동작시호스트시스템과 SSD 사이의 I/O 인터페이스가성능병목구간이된다. 우리는그림 2와같이 ISP응용및 ISP 지원플래시컨트롤러를통해호스트시스템으로전송되는데이터의양을줄인다. 그림에서화살표의굵기가데이터전송량을의미한다. 먼저여러개의플래시칩에서전송되는데이터를사용해 ISP 지원플래시컨트롤러가간단한연산을병렬적으로수행한다. 이를위해 ISP 지원플래시컨트롤러는특수한명령어셋을지원한다. 다음으로 ISP 응용을통해데이터에대한복잡한연산을수행함으로써호스트시스템으로전송되는데이터의총량을최소화한다. 이경우병목구간은 SSD 내부로변경된다. 뿐만아니라제안하는시스템은기존 ISP 기법들이가지는문제점을해결할수있도록동적응용설치및이벤트서비스를지원한다. 4장에서먼저 ISP 응용개발자를위한 SSD 프로그래밍모델을제안하고 5장에서는 SSD 소프트웨어플랫폼의설계를기술한다. 3. 문제정의 3.1 시스템모델전체시스템은그림 1과같이호스트시스템과대상시스템으로구성된다. 호스트시스템은사용자와직접상호작용하는시스템으로데스크톱 PC가그예이다. 호 그림 2 해결방안개괄
604 정보과학회논문지 : 컴퓨팅의실제및레터제 18 권제 8 호 (2012.8) 4. SSD 프로그래밍모델본장에서는제안하는 SSD 프로그래밍모델을설명한다. SSD를사용하는프로그램은그림 1의회색블록과같이호스트프로그램, ISP 응용, 이벤트처리기의세종류로분류된다. 4.1 호스트프로그램인터페이스호스트프로그램은호스트시스템에서수행되며 SSD 에데이터를읽고쓰는프로그램이다. 호스트프로그램은다음세종류의인터페이스를사용한다. 1) ISP 응용관리인터페이스, 2) ISP 응용과통신하기위한인터페이스, 3) SSD에저장된데이터접근인터페이스가그것이다. 본연구에서는 2) 를위한인터페이스를별도로정의하지않고 SSD의특정위치에데이터를기록하여호스트프로그램과 ISP 응용이통신하는간단한메커니즘을사용하였다. 따라서호스트프로그램을위해다음두가지인터페이스를구체적으로정의한다. ISP 응용관리인터페이스호스트프로그램은 ISP 응용을설치, 제거, 실행, 중지하거나 ISP 응용의상태를감시할수있어야한다. 이를위해 install, start 등의 ISP 응용관리인터페이스를정의한다. 이들은범용성을높이기위해 C 라이브러리로구현되며 RPC를사용해대상시스템과통신한다. SSD에저장된데이터접근인터페이스호스트프로그램은대상시스템의데이터를읽고쓸수있어야한다. 대상시스템은호스트시스템에서일반적인저장장치로보이기때문에운영체제가정의하는파일시스템인터페이스를사용한다. 본연구에서는 open, creat 등의리눅스의파일시스템관련시스템함수들을사용한다. 4.2 ISP 응용인터페이스 ISP 응용은대상시스템에서수행되며호스트프로그램의기능일부를나누어담당한다. 제안하는시스템에서 ISP 응용은다음세종류의인터페이스를사용한다. 각각은 1) 저장장치의데이터접근을위한인터페이스, 2) 호스트프로그램과통신하기위한인터페이스, 3) HW 지원데이터병렬처리를위한인터페이스이다. 앞에서설명한대로 2) 를위한인터페이스는별도로정의하지않고 1) 을위한인터페이스를사용한다. 따라서 ISP 응용을위해다음두가지인터페이스를정의한다. 저장장치의데이터접근인터페이스 ISP 응용은이들인터페이스를통해 SSD에저장된데이터에접근할수있다. 우리가제안하는 SSD는 OSD (Object-based Storage Device) 파일시스템 [4] 을사용하므로모든데이터는객체로플래시메모리에저장된다. 이객체들에접근하기위해 OSD-2 표준 [7] 이정의하는 create_object, remove_object 등의명령어를사용한다. HW 지원데이터병렬처리인터페이스대상시스템에는간단한연산을병렬적으로수행하여대용량데이터를빠르게처리하는 HW가추가된다. 이 HW 연산장치는여러개의플래시메모리칩에서동시에데이터를받아서산술연산, 비교등을수행하고그결과를 ISP 응용으로전달한다. 따라서이런동작을수행하는 HW 명령어들을호출하기위한인터페이스를정의한다. 4.3 이벤트처리기인터페이스이벤트처리기는대상시스템에서수행되며 SSD 내에서특정이벤트가발생했을때자동으로수행되는프로그램이다. SSD 내부의이벤트에는파일시스템의동작에의해발생하는이벤트, FTL(Flash Translation Layer) 의동작에의해발생하는이벤트, ISP 응용의동작및예외상황발생으로인한이벤트가있다. 객체의생성이나수정, 플래시메모리의쓰레기수집 (garbage collection) 이나 hotspot 검출, ISP응용의메모리오류등이 SSD 내부이벤트의예이다. 이벤트처리기의개발을위해제공되는인터페이스는다음세종류가있다. 이벤트처리기관리를위한인터페이스이벤트처리기는 register, unregister 와같은인터페이스를통해자신을특정이벤트발생시호출되도록등록하거나반대로해제할수있다. 또한시스템에등록된이벤트처리기들의상태를파악하기위한인터페이스를사용할수있다. 이들인터페이스는유틸리티프로그램에의해호출될수도있다. 대상시스템의데이터접근인터페이스이벤트처리기는 SSD에저장된데이터에접근하기위한인터페이스를사용할수있다. ISP 응용을위한인터페이스와동일하게 OSD-2 표준명령어를사용한다. HW 지원데이터병렬처리인터페이스 ISP 응용과마찬가지로이벤트처리기역시대용량의데이터를처리할수있다. 따라서데이터의병렬처리를위해추가된 HW를활용하기위한인터페이스를사용한다. 5. SSD 소프트웨어플랫폼본장에서는제안하는 SSD 소프트웨어플랫폼에대해설명한다. 그림 3은전체시스템의소프트웨어블록다이어그램이다. 그림에서볼수있듯이 SSD 소프트웨어플랫폼은다음두종류의서브시스템블록들로구분된다. 호스트시스템소프트웨어플랫폼의서브시스템대상시스템소프트웨어플랫폼의서브시스템 5.1 호스트시스템호스트시스템의소프트웨어플랫폼을구성하는네가지서브시스템들은다음과같다. H1. 호스트시스템매니저호스트프로그램에게 ISP 응용을관리하는인터페이
저장장치내처리를위한 SSD 소프트웨어플랫폼시뮬레이터 605 그림 3 소프트웨어블록다이어그램스를제공하고이들인터페이스가호출되면 RPC를통해대상시스템으로명령을전달한다. H2. OSD 파일시스템 ( 호스트시스템부분 ) 호스트시스템에위치하는 OSD 파일시스템으로 Linux 표준파일인터페이스를유저레벨프로그램에게제공한다. 인터페이스가호출되면이를알맞은 OSD-2 명령어로변환해 SCSI 드라이버로전송한다. H3. SCSI 드라이버 OSD-2 명령어를 SCSI CDB(Command Descriptor Block) 으로변환하여하단에위치한 Serial Attached SCSI로전송한다. H4. Serial Attached SCSI SCSI CDB를 SATA 패킷으로변환하고 SATA 인터페이스를통해대상시스템과패킷을주고받는다. 5.2 대상시스템대상시스템소프트웨어플랫폼을구성하는서브시스템들은다음과같다. T1. 대상시스템매니저호스트시스템매니저와통신하면서 ISP 응용관리인터페이스호출을실제로처리한다. 호스트시스템과의통신은 RPC를사용한다. T2. OSD 파일시스템 ( 대상시스템부분 ) 대상시스템에위치하는 OSD 파일시스템으로 OSD-2 명령어인터페이스를제공한다. SCSI 드라이버로부터 OSD-2 명령어를전달받고저장매체에기록된 object 에직접접근하여알맞은동작을수행한다. Object를생성, 수정, 제거하고 object의 attribute를설정하는작업등을담당한다. T3. SCSI 드라이버 Serial Attached SCSI에서전달된 SCSI CDB패킷을분해하여 OSD-2 명령어를추출한다. 추출된명령어에따라 OSD 파일시스템인터페이스를호출한다. T4. 커맨드서비스호스트프로그램과 ISP 응용간의통신을지원한다. 이를위해대상시스템초기화시에두개의특수객체를생 성한다. 하나는호스트프로그램이 ISP 응용으로명령을전송할때쓰는명령어수신객체이며다른하나는 ISP 응용의처리결과를호스트프로그램으로전송할때쓰는응답객체이다. 커맨드서비스는주기적으로명령어수신객체를감시하여새로운명령어가들어왔는지검사하고새명령어가수신되면알맞은 ISP 응용을찾아서수행한다. T5. 이벤트서비스 SSD 내의이벤트발생을감시하고이벤트발생시해당이벤트에등록된이벤트처리기를자동으로호출한다. 이벤트처리기의등록, 해제및감시를위한인터페이스를제공한다. T6. Serial Attached SCSI SATA 인터페이스로들어온 ATA 패킷을분해하여 SCSI CDB를검출하고이를 SCSI 드라이버로보낸다. T7. 블록장치드라이버블록장치에읽기및쓰기명령을내린다. 본연구에서는 SSD용드라이버가사용된다. 이장치드라이버는블록캐시, FTL 및기타기능을포함한다. 6. 구현및검증본장에서는제안하는소프트웨어플랫폼검증을위한시뮬레이터의구현에대해설명한후성능향상및동적기능확장검증실험결과를설명한다. 6.1 SSD 소프트웨어플랫폼시뮬레이터구현우리는그림 4와같은하드웨어위에제안하는 SSD 소프트웨어플랫폼시뮬레이터를구현하였다. 기존의상용 SSD는범용프로세서와메모리가없기때문에본시스템을위해사용할수없다. 따라서우리는프로세서및메모리를탑재한 NAS(Network Attached Storage) 를사용하여 ISP가가능한 SSD를에뮬레이션하였다. 실험환경과제안한시스템은병목구간과연산성능에차이가존재한다. 다음은차이를극복한방법이다. 병목구간의차이실험환경의병목구간은 NAS와 SSD 사이의인터페이스이다. 우리는 TCP 흐름제어기술을통해호스트시스템과 NAS 사이가병목구간이되도록속도를조절하였다. 연산성능제안하는시스템은 SSD에탑재되는 400 MHz의프로세서와데이터병렬처리를위해특별히설계된 HW 그림 4 실험하드웨어환경
606 정보과학회논문지 : 컴퓨팅의실제및레터제 18 권제 8 호 (2012.8) 를연산장치로사용한다. 별도의 HW 장치없이제안한시스템의가능성을확인하기위해시뮬레이터는강력한성능의프로세서를사용하였다. 6.2 성능및기능검증우리는제안하는시스템의성능및기능검증을위해두가지실험을수행하였다. 먼저 ISP를통한성능향상을검증하기위해간단한데이터베이스프로그램을구현하고사용자의명령에대한응답시간을측정하였다. 실험에사용한데이터베이스는 { 계좌, 이름, 나이, 성별, 잔고 } 를임의로생성하여구축하였으며특정조건을만족하는데이터들을검출하는 select 명령을입력했을때결과가나오기까지의시간을측정했다. 비교대상은호스트프로그램만으로구현된경우와 select 쿼리처리를 ISP 응용으로분리해구현한경우다. ISP 응용은일반적인 select 쿼리를처리할수있도록구현되었으며동적으로 SSD내에설치및제거가가능하다. 성능실험결과는그림 5와같다. 가로축은데이터베이스의크기 (MB) 이고세로축은 select 명령의응답시간 (sec) 이다. 실험결과 ISP 응용을사용하였을때응답시간이호스트프로그램만을사용하였을때보다평균 52.7% 감소하였다. 이를통해병목구간이 SSD 내부프로세서로변경된것을확인할수있다. 다음으로이벤트처리기를통한동적기능확장을검증하였다. 실험에서는 SSD에저장되는 mp3 데이터의품질을자동으로변환하는이벤트처리기를동적으로설치하고동작을확인하였다. 구현한이벤트처리기는 SSD의여러이벤트중파일시스템의 write_object 명령어발생이벤트에등록된다. 이벤트처리기가호출되면데이터가기록될때그헤더를검사하고 mp3 데이터인경우 bitrate를 128 Kbps로변환한다. 이벤트처리기등록후사용자가 320 Kbps의 mp3 데이터를 SSD로복사하면잠시후에자동으로 128 Kbps의 mp3 데이터로변환되어기록되는것을확인할수있었다. 이와같은성능및기능향상을얻기위해서발생하는추가비용은 SSD 컨트롤러에범용프로세서를추가하고플래시컨트롤러의기능을확장하기위해발생한그림 5 DB 응용의 select 쿼리응답시간 다. 2012년현재유통되는 Silicon Motion사의 SM2250 SSD 컨트롤러는개당 $3.5 수준으로 SSD에서차지하는비중이매우적다. 본연구에서제안하는 400 MHz 성능의 ARM 프로세서는개당 $1 미만이며간단한산술연산회로정도를플래시컨트롤러에추가하는것으로발생하는생산비용의증가는매우미미하다. 따라서본연구결과를적용함으로써발생하는추가비용은 $1 미만이될것으로예측된다. 7. 결론 우리는 SSD 프로그래밍모델을제안하고이를지원하는 SSD 소프트웨어플랫폼을설계하였다. 또한시뮬레이션을통해제안된 SSD 소프트웨어플랫폼의유용성을검증하였다. 제안된 SSD 소프트웨어플랫폼은 3rd 파티 ISP 응용의동적다운로드및상태관리가가능할뿐만아니라 3rd 파티이벤트처리기의등록을통해동적기능확장이가능하다. 또한이를적용하기위해발생하는 SSD의생산비용증가폭은매우작을것으로예측된다. 따라서본연구결과를활용하여고성능의 SSD 개발및 SSD를위한다양한응용개발이이루어질수있을것으로기대한다. 향후연구에서는 HW 지원병렬연산처리활용의극대화를위한 FTL 및플래시컨트롤러의데이터저장기법을연구할예정이다. 참고문헌 [1] A. Acharya, M. Uysal, and J. Saltz, "Active Disks: Programming Model, Algorithms and Evaluation," ACM SIGPLAN Notices, vol.33, no.11, pp.81-91, 1998. [2] E. Riedel, C. Faloutsos, G. Gibson, and D. Nagle, "Active disks for large-scale data processing," IEEE Computer, vol.34, no.6, pp.68-74, 2001. [3] R. Reambasu, A. A. Levy, T. Kohno, A. Krishnamurthy, and H. M. Levy, "Comet: An Active Distributed Key-Value Store," In Proc. of OSDI, 2010. [4] M. Mesnier, G. R. Ganger, and E. Riedel, "Object-Based Storage," IEEE Communications Magazine, vol.41, no.8, pp.84-90, 2003. [5] F. Wang, S. Brandt, E. Miller, and D. Long, "OBFS:a file system for object-based storage devices," In Proc. of 12th NASA Goddard, 21st IEEE Conference on Mass Storage Systems and Technologies, Apr. 2004. [6] S. Ahn, J. Choi, D. Lee, S. H. Noh, S. Min, and Y. Cho, "Design, Implementation, and Performance Evaluation of Flash Memory-based File System on Chip," Journal of Information Science and Engineering, vol.23, no.6, pp.1865-1887, 2007. [7] T10, "The Object-Based Storage Device Commands-2," INCITS, 2009.