1.jpg

 

스토리지 개발자 컨퍼런스인 SDC(Storage Developer Conference)가 미국 캘리포니아주 실리콘 밸리 산타 클라라에 위치한 하야트 리젠시 호텔에서 2015년 9월 21일~24일까지 열렸습니다.

 

 

24Gbps의 차세대 SAS-4

http://pc.watch.impress.co.jp/docs/news/event/20150924_722252.html

 

첫날인 21일 오후에는 스토리지 인터페이스 표준인 SAS 의 업데이트 정보에 대한 강연이 SCSI 규격 책정 단체 SCSI Trade Association(STA)에 의해 열렸습니다다. 강사는 2명으로 Rick Kutcipal 사장과 Greg McSorley 부사장이며, 강연 제목은 SCSI Standards and Technology Update입니다.

 

2.jpg

 


SCSI Trade Association (STA)의 강연 항목


 

24Gbps SAS는 2017년에

 

우선 SAS 규격의 로드맵이 제시됐습니다. SAS 규격의 최신 세대는 데이터 전송 속도가 최대 12Gbps인 SAS(물리 계층의 표준 이름은 SAS-3)입니다. 여기에선 12Gbps SAS라고 부르겠습니다. 12Gbps SAS의 플러그 테스트는 2012년 중반에 처음으로 시작됐으며, 12Gbps SAS를 준수하는 최초의 스토리지는 최초의 플러그 테스트가 있은 후 1년 반이 지난 2013년 하반기~2014년 초에 등장하기 시작했습니다. 즉 플러그 테스트부터 

 

과거 SAS 표준은 데이터 전송 속도를 1세대마다 2배식 늘려 왔습니다. 1세대인 1Gbps SAS(SAS-1)로 시작해서 2세대의 6Gbps SAS(SAS-2), 그리고 3세대인 12Gbps SAS(SAS-3)로 진화했습니다. 차세대(4세대)의 SAS는 데이터 전송 속도가 최대 24Gbps인 24Gbps SAS (SAS-4)가 됩니다. 24Gbps SAS(SAS-4)의 첫 플러그 테스트는 2017년이 될 예정입니다.

 

3.jpg

 

SAS 규격 개발 로드맵

 

최신 세대인 12Gbps SAS 규격의 설명을 봅시다. 12Gbps SAS는 프로토콜 계층을 규정한 SPL-2와 SPL-3, 물리 계층을 규정한 SAS-3로 구성됩니다. SPL-3 규격의 발행은 2014년 11월 SAS-3 규격의 발행은 10월입니다.

 

4.jpg

 

12Gbps SAS 프로토콜 레이아웃

 

5.jpg

 

12Gbps SAS 물리 계층

 

 

에러 정정과 서비스 기능을 강화

 

차세대(4세대) SAS인 24Gbps SAS(SAS-4)'에선 2019년까지 이 규격을 따르는 스토리지가 등장하는 걸 목표로 합니다. 최대 데이터 전송 속도는 앞서 말한대로 기존 세대(3세대)의 2배인 24Gbps(3GB/sec)입니다.

 

24Gbps SAS는 기존의 SAS와 호환성을 갖고 있습니다. 구체적으로는 2세대 6Gbps SAS(SAS-2)와 3세대 12Gbps SAS(SAS-3)와 호환성을 유지합니다.

 

24Gbps SAS 기능은 미래의 스토리지를 상정해서 책정됐습니다. 오류 정정 기능의 강화, 1,000개 이상의 스토리지 연결, SATA 스토리지와 SAS 스토리지를 모두 연결 가능한 스토리지, 케이블의 추가와 제거의 서비스 기능의 향상 등이 포함됩니다.

 

구체적으로 명시된 내용은 대략 다음과 같습니다. 실제 전송 속도는 22.5Gbps입니다. 128bit/130bit의 암호화 처리가 들어가기에 겉으로 보이는 전송 속도는 24Gbps지만 실제 데이터 전송 속도는 약간 낮아집니다.

 

오류 정정 기능은 20bit의 포워드 오류 정정을 추가됩니다. 오류 정정 후 실현되는 전송 신호 대 노이즈의 목표는 30ㅇB입니다.

 

6.jpg

 

24Gbps SAS의 목적

 

7.jpg

 

24Gbps SAS의 개요

 

24Gbps SAS의 커넥터는 외부 케이블, 내부 케이블, 미​​드 플레인 용인 SFF (Small Form Factor) 규격으로 정해져 있습니다.

 

외부 케이블 용 커넥터 규격은 SFF-8674(Mini SAS HD)와 SFF-8665(QSFP + 28)가 있습니다. SFF-8674는 24Gbps의 신호 전송에, SFF-8665는 28Gbps의 신호 전송을 지원하는 커넥터입니다.

 

8.jpg

 


SAS 규격의 세대와 커넥터(외부 케이블)의 로드맵. 케이블 길이는 패시브 구리 케이블이 6m, 활성 구리 케이블 20m, 광섬유 케이블이 100m 이상입니다. 이러한 케이블 길이는 차세대 24Gbps SAS 규격에서도 유지할 것이라 합니다.

 

내부 케이블 용 커넥터 규격은 SFF-8621(MiniLink)와 SFF-8673(Mini SAS HD) 등이 있습니다. SFF-8621 및 SFF-8673는 모두 24Gbps의 신호 전송을 지원하는 커넥터입니다.

 

9.jpg

 


SAS 규격의 세대와 커넥터(내부 케이블)의 로드맵. 케이블 길이는 1m


미드 플레인용 커넥터 규격은 다기능 커넥터가 SFF-8638, MultiLink SAS 커넥터가 SFF-8640, 표준 듀얼 포트 커​​넥터가 SFF-8681입니다.

 

10.jpg

 


SAS 규격의 세대와 커넥터(미드 플레인) 로드맵

 

 

SSD를 지능적으로 만들어 성능을 높이고 수명을 연장하는 신기술

http://pc.watch.impress.co.jp/docs/news/event/20150924_722291.html

 

현재 컴퓨터 시스템은 스토리지와 관련된 다양한 과제를 해결해야 합니다. 앞으로 호스트에 스토리지의 주류는 HDD 대신 SSD가 될 것이 분명하며, 또한 실제로 그렇게 되고 있습니다.

 

SSD는 HDD와 비슷하게 생겼지만 기본적인 원리는 다릅니다. SSD의 장점을 유지하고 단점을 완화하려면 HDD가 주류였던 시절과 다른 사고 방식을 SSD에 도입할 필요가 있습니다.

 

스토리지 개발자 컨퍼런스에서 삼성은 SSD를 보다 지능적으로 만들어 시스템과 SSD의 성능을 향상하고, SSD의 수명을 늘리거는 방법을 공개했습니다. 강연 제목은 Storage Intelligence in SSDs and Standards며 강연자는 수석 엔지니어인 Bill Martin과 Changho Choi입니다.

 

11.jpg

 


스토리지 시스템이 안고있는 여러 과제를 지능적인 기술로 해결해 나갈 것


Bill Martin과 Changho Choi는 구체적으로 4가지 기술을 SSD와 스토리지 시스템에 도입하는 것을 설명했습니다. (1) SSD의 백그라운드 작업을 호스트 제어하는​​ 기능, (2) SSD에 기록하는 데이터의 스트림 처리 (3) 스토리지 오브젝트 (4) 스토리지 내부에서의 컴퓨팅입니다. 아래에서 좀 더 자세히 설명하도록 하겠습니다.

 

12.jpg

 

SSD의 지능화 기술

 

 

백그라운드 작업을 멈춰 SSD의 속도를 높이다


우선 SSD의 백그라운드 동작부터 시작해 봅시다. 일반적으로 백그라운드 동작에 호스트는 관여하지 않습니다. 그 경우 어떤 문제가 생기냐 하면, SSD가 백그라운드 작업을 수행할 때 호스트가 SSD에 데이터를 읽고 쓰는 성능이 떨어지게 됩니다. 중요한 처리를 할 경우 이러한 성능 저하는 꽤 심각합니다.

 

14.jpg

 

그래서 호스트에서 SSD의 백그라운드 동작을 제어할 수 있도록 합니다. 구체적으로는 백그라운드 동작을 제어하는 모드를 준비하고, 그 모드에서 백그라운드 작업을 중단하거나 다시 시작하는 등 호스트 쪽에서 관리하게 됩니다. 이렇게 하면 중요한 데이터를 읽고 쓸 때 SSD의 성능 저하를 미리 예방할 수 있습니다.

 

15.jpg

 

강연에선 대표적인 백그라운드 동작인 가비지 컬렉션을 수행하는 동안 랜덤 쓰기의 입출력 성능(IOPS)을 비교했습니다. 가비지 컬렉션을 제어하자 IOPS는 7배 정도로 크게 향상됐습니다.

 


처리량 향상과 수명 연장을 기대할 수 있는 스트림 처리

 

다음은 쓰기 데이터를 스트림으로 만들어 처리하는 것입니다. SSD에 기록되는 데이터는 보통 다양한 응용 프로그램에서 발생하게 됩니다. 여러 응용 프로그램을 소스로 하는 데이터가 다양한 시점에 SS로 전송됩니다. SSD는 데이터가 도착한 순서대로 기록해 나갑니다.

 

 SSD의 물리적인 주소로 따졌을 때 서로 다른 응용 프로그램의 데이터가 인접한 물리 주소에 기록됩니다. 인접한 부분(또는 페이지)의 데이터 사이에는 아무런 관계도 없습니다.

 

여기에서 응용 프로그램이 (호스트를 통해) SSD에 액세스하여 데이터를 다시 작성합니다. 수정된 섹터의 물리적 주소는 여전히 제각각입니다. SSD는 삭제 블럭마다 데이터를 갱신하기에 실제로는 더 큰 데이터 덩어리(삭제 대상 블럭 전체)를 일단 복사하고 해당 블럭을 지운 후 다시 데이터를 섞어 새로 작성합니다. 실제 데이터 용량보다 많은 데이터가 실제로 쓰여지고 대체되기에 라이트 앰프 프로그램이 일어나는데, 이는 SSD의 쓰기 수명을 줄이는 것이라 그다지 손호하는 건 아닙니다.

 

SSD의 데이터 쓰기를 효율적으로 처리하기 위해 삼성이 설명한 내용은 호스트 쪽에서 데이터에 태그를 붙이는 것입니다. 그래서 애플리케이션 단위로 데이터를 정리하지요. 정리된 데이터를 물리적인 주소에 연속적으로 기록합니다. 이것이 스트림 처리입니다.


강연에선 가상 머신 A, 데이터베이스 D, 가상 머신 C의 3가지 응용 프로그램이 동시에 데이터를 기록했다고 가정하고, 스트림 처리에 따라 SSD 내부에서 데이터의 배치(물리적 주소)가 어떻게 달라지는지를 설명했습니다.

 

데이터를 3개의 스트림으로 구성하면 쓰기 동작은 무작위가 아니라 순차적으로 가까워집니다. 그러면 쓰기 처리량이 늘어납니다.

 

그리고 기록 데이터를 스트림 처리하면 인접한 물리적 주소를 지닌 덩어리가 되서 데이터가 SSD에 기록됩니다. 기록된 데이터를 가상 머신 A가 모두 동작할 경우, 수많은 삭제된 블럭에서 데이터 갱신이 이루어집니다. 그런다 스트림 처리하면 다시 쓰기 작업을 해야 하는 삭제 블럭의 수가 크게 줄어들고, 최적의 경우 1개의 블럭만 지우는 것만으로 끝나게 됩니다. 그 결과 라이트 앰프 프로그램이 크게 줄어들기에 SSD의 쓰기 수명이 늘어납니다.

 

16.jpg

 

데이터 쓰기에 관련된 해결해야 할 문제와 쓰기 데이터의 스트림 처리

 

17.jpg

 

데이터 스트림 처리에 대한 SSD 내부에서의 데이터 배치(물리적 주소)의 차이. 위는 스트림 처리를 하지 않았을 때, 아래는 스트림 처리된 데이터 기록.

 

18.jpg

 

데이터 스트림 처리에 의한 효과. 쓰기 처리량이 9배의 생산성 증가, 라이트 앰프 프로그램의 실행 수준이 1/3으로 감소(기록 수명이 3배 늘어남)이라는 실험 결과를 보여줬습니다.

 

19.jpg

 

백그라운드 동작 제어와 데이터 스트림 처리에 대한 표준의 책정 상황

 

 

오브젝트 스토리지로 호스트 부담을 줄이기

 

20.jpg

 

오브젝트 스토리지는 호스트에서 실행 중인 스토리지에 대한 맵핑과 데이터 로깅 등의 처리를 스토리지에 전달하는 것입니다.

 

21.jpg

 

그럼 호스트에서 처리해야 하는 양이 줄어들면서 호스트 메모리도 절약할 수 있습니다.

 

 

스토리지 컴퓨팅

 

22.jpg

 

호스트 측 컴퓨팅의 부담을 더 줄이는 것과 동시에 데이터 입출력의 병목 현상을 해소하는 역할을 스토리지 컴퓨팅이 노리고 있습니다. 최근에는 인 스토리지 컴퓨팅이라고 부르는 경우도 늘었는데요.

 

호스트가 대량의 데이터를 스토리지에서 불러와 연산 처리를 실시하고, 결과를 출력한 후 저장하는 응용 프로그램을 가정해 봅시다. 호스트 쪽에서 원하는 건 데이터가 아니라 연산 결과입니다. 이를 위해 대량의 데이터를 스토리지에서 호스트로 이동합니다. 데이터의 이동량이 늘어나면 데이터 이동에 걸리는 시간과 소비 전력은 무시할 수 없습니다.

 

23.jpg

 

반면 SSD는 프로세서와 버퍼 메모리를 탑재하고 있기에, 컴퓨팅 능력을 갖추고 있으며 프로세서의 가동률을 대게 낮은 편입니다. 그리고 SSD의 내부에선 NAND 플래시 메모리의 데이터를 매우 빠르게 호출합니다. SSD 내부에 연산이 필요한 데이터가 갖춰져 있다면 SSD의 계산 능력을 활용해 연산을 수행한 후 결과, 원래 데이터보다 훨씬 작은 데이터만 호스트에 출력하거나 SSD에 저장합니다.

 

24.jpg

 

다수의 SSD에 병렬로 스토리지 컴퓨팅을 실행하면 호스트 쪽의 CPU의 부담을 크게 줄이는 것과 동시에 데이터의 이동에 따른 시간 소비와 전력 소비 문제를 해결할 수 있습니다. 많은 스토리지에 저장된 데이터를 검색하는 과정을 스토리지 내부에서 실행해, 그 결과만 호스트 쪽에 출력하는 식의 용도가 매우 적합하다고 하네요. 미리 검색 프로그램을 스토리지에 저장하면 매우 높은 효율로 검색 작업을 수행 할 수있게 됩니다.

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.