(19) 대한민국특허청 (KR) (12) 등록특허공보 (B1) (45) 공고일자 2015년12월03일 (11) 등록번호 10-1573375 (24) 등록일자 2015년11월25일 (51) 국제특허분류 (Int. Cl.) G06F 12/08 (2006.01) (21) 출원번호 10-2013-0131411 (22) 출원일자 2013 년 10 월 31 일 심사청구일자 2013 년 11 월 21 일 (65) 공개번호 10-2015-0050764 (43) 공개일자 2015 년 05 월 11 일 (56) 선행기술조사문헌 KR1020100092590 A* KR1020110115759 A US20100211731 A1 KR100755700 B1 * 는심사관에의하여인용된문헌 (73) 특허권자 전자부품연구원 경기도성남시분당구새나리로 25 ( 야탑동 ) (72) 발명자 김영환 경기도용인시수지구풍덕천동 170-1 현대아파트 102 동 103 호 전기만 경기성남시분당구미금로 63, 309 동 1705 호 ( 구미동, 무지개마을 3 단지아파트 ) 이윤규 서울관악구은천로 39 길 28, 401 호 ( 봉천동, 관악럭스빌 ) (74) 대리인 남충우, 노철호전체청구항수 : 총 7 항심사관 : 강철수 (54) 발명의명칭스토리지서버환경에서지역성기반 SSD 캐시모듈 (57) 요약 서버환경에서지역성기반 SSD 캐시모듈이제공된다. 본발명의실시예에따른 SSD 캐시모듈은, 서버시스템에서 SSD 를 OS 의캐시에서사용하는블록크기로구획하여 SSD 캐시로사용및관리한다. 이에의해, SSD 캐시의성능을극대화할수있다. 대표도 - 도 3-1 -
이발명을지원한국가연구개발사업 과제고유번호 10047088 부처명 미래창조부 연구관리전문기관 한국산업기술평가관리원 연구사업명 산업융합원천기술개발 연구과제명 단일노드 48TB 이상을지원하는개방형하둡스토리지어플라이언스 (Hadoop Storage Appliance) 개발 기여율 1/1 주관기관 전자부품연구원 연구기간 2013.09.01 ~ 2014.08.31-2 -
명세서청구범위청구항 1 제1 스토리지 ; 제2 스토리지 ; 및상기제1 스토리지에데이터를저장하고, 상기제2 스토리지에데이터를저장하는프로세서 ; 를포함하고, 상기프로세서에는, 상기제2 스토리지를스토리지캐시로사용및관리하는스토리지캐시모듈이실행되고, 상기스토리지캐시모듈은, 상기스토리지캐시의블록들을, 사용블록, 빈블록및싱크블록으로구분하여, 이중연결리스트 (Double Linked List) 로관리하며, 상기스토리지캐시를 OS(Operating System) 의캐시에서사용하는블록크기로구획하되, 2KB 이하의데이터 request가발생된경우에도 4KB 블록을할당하는것을특징으로하는서버시스템. 청구항 2 제 1항에있어서, 상기스토리지캐시모듈은, 상기 OS의캐시와상기제1 스토리지사이에서미들웨어로기능하는것을특징으로하는서버시스템. 청구항 3 삭제청구항 4 제 1항에있어서, 상기프로세서는, Extended File System으로상기제1 스토리지의데이터저장을관리하는것을특징으로하는서버시스템. 청구항 5 삭제청구항 6 제 1항에있어서, 상기스토리지캐시모듈은, 빈블록의개수가정해진개수미만이면, 사용빈도를기준으로일부의블록들을상기제1 스토리지에옮기는것을특징으로하는서버시스템. - 3 -
청구항 7 제 1항에있어서, 상기스토리지캐시모듈은, 파워-오프명령시, 상기스토리지캐시에저장된블록들을상기제1 스토리지에플러싱 (flushing) 하는것을특징으로하는서버시스템. 청구항 8 제 1항에있어서, 상기제1 스토리지는, HDD(Hard Disk Drive) 이고, 상기제2 스토리지는, SSD(Solid State Disk) 인것을특징으로하는서버시스템. 청구항 9 제1 스토리지에데이터를저장하는단계 ; 및제2 스토리지를, 스토리지캐시로사용및관리하는단계 ; 를포함하고, 상기사용및관리단계는, 상기스토리지캐시의블록들을, 사용블록, 빈블록및싱크블록으로구분하여, 이중연결리스트 (Double Linked List) 로관리하고, 상기스토리지캐시를 OS(Operating System) 의캐시에서사용하는블록크기로구획하되, 2KB 이하의데이터 request가발생된경우에도 4KB 블록을할당하는것을특징으로하는스토리지캐시관리방법. 발명의설명 [0001] 기술분야 본발명은캐시모듈에관한것으로, 더욱상세하게는서버환경에서지역성기반으로 SSD(Solid State Disk or Drive) 를캐시로관리하는 SSD 캐시모듈및이를적용한서버시스템에관한것이다. [0002] [0003] [0004] 배경기술한편, 현재서버환경에서 Extended File System이많이사용되고있으며, Extended File System은지역성을기반으로하여 Block Group이라는논리적인묶음으로설계되어있기때문에 HDD 환경에서성능상이점을제공하고있다. 도 1은 HDD 환경에서 6개의파일시스템을성능평가한결과이며 Extended File System이 HDD 환경에서성능상의이점을제공하는것을확인할수있다. 도 1을분석해보면 BTRFS가 Intial Write와 Rewrite에대하여다른 File System과비교하여월등한성능을나타내는것을보이나, 전체적인성능을평가하였을경우매우낮은성능을보이는것을알수있다. 한편, SSD는 HDD에비교하여성능상큰이점을보이지만, 가격과수명으로인하여서버환경에서 Primary Storage Device로사용상어려움이존재한다. 현재까지설계된파일시스템의경우, 성능상의이유로특정영역이다른영역에비하여많은 write 횟수를보이고있으며, 이런지역성의특성은 SSD의수명에큰영향을주는문제가있다. - 4 -
발명의내용 [0005] 해결하려는과제본발명은상기와같은문제점을해결하기위하여안출된것으로서, 본발명의목적은, HDD 특성을반영하고있는대다수의파일시스템을사용하는스토리지서버환경에서지역성을기반으로하는특성을고려하여, SSD를캐시로이용함에있어그성능을극대화할수있는방법및시스템을제공함에있다. [0006] [0007] [0008] [0009] [0010] [0011] [0012] [0013] [0014] 과제의해결수단상기목적을달성하기위한본발명의일실시예에따른, 서버시스템은, 제1 스토리지 ; 제2 스토리지 ; 및상기제1 스토리지에데이터를저장하고, 상기제2 스토리지에데이터를저장하는프로세서 ; 를포함하고, 상기프로세서에는, 상기제2 스토리지를, OS(Operating System) 의캐시에서사용하는블록크기로구획하여스토리지캐시로사용및관리하는스토리지캐시모듈이실행된다. 그리고, 상기스토리지캐시모듈은, 상기 OS의캐시와상기제1 스토리지사이에서미들웨어로기능할수있다. 또한, 상기스토리지캐시를구성하는블록크기의하한은 4KB일수있다. 그리고, 상기프로세서는, Extended File System으로상기제1 스토리지의데이터저장을관리할수있다. 또한, 상기스토리지캐시모듈은, 상기스토리지캐시의블록들을이중연결리스트 (Double Linked List) 로관리할수있다. 그리고, 상기스토리지캐시모듈은, 빈블록의개수가정해진개수미만이면, 사용빈도를기준으로일부의블록들을상기제1 스토리지에옮길수있다. 또한, 상기스토리지캐시모듈은, 파워-오프명령시, 상기스토리지캐시에저장된블록들을상기제1 스토리지에플러싱 (flushing) 할수있다. 그리고, 상기제1 스토리지는, HDD(Hard Disk Drive) 이고, 상기제2 스토리지는, SSD(Solid State Disk) 일수있다. 한편, 본발명의다른실시예에따른, 스토리지캐시관리방법은, 제1 스토리지에데이터를저장하는단계 ; 및제2 스토리지를, OS(Operating System) 의캐시에서사용하는블록크기로구획하여스토리지캐시로사용및관리하는단계 ; 를포함한다. [0015] [0016] 발명의효과이상설명한바와같이, 본발명의실시예들에따르면, SSD의블록크기를 OS의캐쉬와동일하게하여 SSD 캐시의성능을극대화할수있고, 이중연결리스트에의한블록관리로블록써치시의오버헤드를최소화시킬수있다. 아울러, 빈블록의개수가부족해지면, LRU 블록교체정책에의거최근사용빈도가낮은블록들의데이터를 HDD로옮겨, 합리적인저장공간관리가가능하고, 파워-오프명령시 SSD 캐시에저장된모든블록들을 HDD에플러싱하여안정적인데이터관리가가능하다. [0017] 도면의간단한설명 도 1 은 HDD 환경파일시스템성능평가비교를나타낸그래프, 도 2 는 Linux 기반의 SSD 캐쉬아키텍쳐의설명에제공되는도면, 도 3 은 SSD 캐시모듈의아키텍쳐를도시한도면, - 5 -
도 4 는 Read/Write Request I/O 처리과정을도시한흐름도, 도 5 는 Read/Write Request I/O 에연동한블록관리수행과정의일예를도시한도면, 그리고, 도 6 은본발명의일실시예에따른서버시스템의블록도이다. [0018] [0019] [0020] [0021] [0022] [0023] [0024] [0025] [0026] [0027] [0028] [0029] [0030] [0031] [0032] [0033] 발명을실시하기위한구체적인내용이하에서는도면을참조하여본발명을보다상세하게설명한다. 도 2는 Linux 기반의 SSD(Solid State Drive or Disk) 캐쉬아키텍쳐의설명에제공되는도면이다. 도 2의상부에는 SSD를캐쉬관리를위한 SSD 캐시모듈 (SSD Cache Module) 을제외한아키텍쳐를도시하였고, 도 2의하부는 SSD 캐시모듈을포함시킨아키텍쳐를도시하였다. 도시된바와같이, SSD 캐시모듈은 OS(Operating System) 의페이지캐시 (Page Cache) 와 HDD(Hard Disk Drive) 사이에서미들웨어로기능한다. HDD는 File System에의해데이터 / 파일저장이관리되는데, File System은 Extended File System이다. 즉, SSD 캐시모듈은지역성을특성으로하는 Extended File System을사용하는 HDD를기반으로하는서버환경에서동작한다. SSD 캐시모듈은 SSD를 OS의페이지캐시에서사용하는블록크기로구획하여 SSD 캐시로사용한다. 이때, SSD 캐시를구성하는블록크기의하한은 4KB로관리한다. Linux 기반서버환경에서 Extended File System이요청되는 make_request 요청을분석한결과 99% 이상이 4KB 이상의 write 또는 read request로판명되었기때문이다. 한편, 1% 미만의 0~2KB 크기 request size를갖는 request는 Extended File System의 metadata access request로분석되었다. 이에따라, SSD 캐시모듈은 4KB 미만의데이터 request가발생하면 4KB 블록을할당하여해당영역에저장하고, 4KB 보다클경우 request의정보를분할하여 write한다. 한편, 서버시스템에대한파워-오프명령이있는경우, SSD 캐시모듈은 SSD 캐시에저장된모든블록들을 HDD에플러싱 (flushing) 한다. 안정적인데이터저장을위함이다. 도 3은 SSD 캐시모듈의아키텍쳐를도시한도면이다. 도 3에도시된바와같이, SSD 캐시모듈은 SSD 캐시비트맵, DIT(Device Interface Translator) 및 SSD 캐시블록관리모듈을포함한다. SSD 캐시비트맵은 SSD 캐시블록들의사용상황이비트들로나타나있고, DIT는 SSD와 HDD 간의경로 ( 주소 ) 변환을담당하며, SSD 캐시블록관리모듈은 SSD 캐시를구성하는블록들을사용블록, 빈블록및싱크블록으로구분하여관리한다. SSD 캐시블록관리모듈에서 SSD 캐시의블록들은이중연결리스트 (Double Linked List) 로관리된다. 이는, 블록써치시에오버헤드를최소화시켜그속도를향상시키기위함이다. 또한, SSD 캐시블록관리모듈은빈블록의개수가부족해지면 ( 정해진개수미만이되면 ), LRU(Least Recently Used) 블록교체정책에의거, 최근사용빈도가낮은블록들의데이터를 HDD로옮긴다. 도 4는 Read/Write Request I/O 처리과정을도시한흐름도이다. 도 4에도시된바와같이, Read Request의경우, 비트맵을통해 SSD 캐시에저장되지않은데이터에대한 Read Request로판단되면, HDD에액세스하여데이터를획득한다. 반면, 비트맵을통해 SSD 캐시에저장된데이터에대한 Read Request로판단되면, SSD에액세스하여데이터를획득한다. 한편, Write Request의경우, 비트맵을통해해당블록이존재하지않음이확인된경우, SSD 캐시블록관리모듈에서빈블록을써치하여데이터를기록한다. SSD 캐시블록관리모듈에서 SSD 캐시의빈블록들은이중연결리스트로관리되므로, 빈블록써치에많은오버헤드가발생하지않는다. 반면, 비트맵을통해해당블록이존재함이확인된경우, SSD 캐시블록관리모듈에서해당블록을써치하여해당블록에데이터를기록한다. SSD 캐시블록관리모듈에서 SSD 캐시의사용블록들은이중연결리스트로관리되므로, 사용블록써치에많은오버헤드가발생하지않는다. - 6 -
[0034] [0035] [0036] [0037] [0038] [0039] [0040] [0041] [0042] 도 5는 Read/Write Request I/O에연동하여 SSD 캐시블록관리모듈이블록관리를수행하는과정의일예를도시한도면이다. 도 2에도시된 Linux 기반의 SSD 캐쉬아키텍쳐가적용가능한서버시스템에대해, 이하에서도 6을참조하여상세히설명한다. 도 6은본발명의일실시예에따른서버시스템의블록도이다. 본실시예에따른서버시스템 (100) 은, 도 6에도시된바와같이, 통신인터페이스 (110), 사용자입력부 (120), 프로세서 (130), SSD(140) 및 HDD(150) 를포함한다. 통신인터페이스 (110) 는인터넷을통해클라이언트시스템과통신연결하는수단이고, 사용자입력부 (120) 는사용자입력을위한수단으로, 도 2의 User Inerface에연동된다. SSD(140) 와 HDD(150) 는모두데이터저장을위한수단으로, SSD(140) 는 SSD 캐시로활용된다. SSD(140) 와 HDD(150) 는, 각각도 2의 Solid State Disk와 Hard Disk Drive에해당한다. 프로세서 (130) 는서버시스템 (100) 에서 SSD(140) 와 HDD(150) 에데이터를저장하고읽어들이는수단으로, 도 2에도시된 User Inerface, File System, SSD Cache Module, Block Device Module은프로세서 (130) 에서실행된다. 도 2에도시된 Page Cache는프로세서 (130) 내에구비시킬수도있고, 외부에별도의하드웨어로구현할수도있다. 한편, SSD(140) 와 HDD(150) 는스토리지의일종으로예시한것으로, 다른종류의스토리지로대체될수있음은물론이다. 또한, 이상에서는본발명의바람직한실시예에대하여도시하고설명하였지만, 본발명은상술한특정의실시예에한정되지아니하며, 청구범위에서청구하는본발명의요지를벗어남이없이당해발명이속하는기술분야에서통상의지식을가진자에의해다양한변형실시가가능한것은물론이고, 이러한변형실시들은본발명의기술적사상이나전망으로부터개별적으로이해되어져서는안될것이다. [0043] 부호의설명 100 : 서버시스템 110 : 통신인터페이스 120 : 사용자입력부 130 : 프로세서 140 : SSD(Solid State Disk) 150 : HDD(Hard Disk Drive) - 7 -
도면 도면 1-8 -
도면 2-9 -
도면 3-10 -
도면 4-11 -
도면 5 도면 6-12 -