SSD(solid state DISK)

SSD(solid state disk)를 서버에 탑재 한다고 SSD 서버 되나?

SSD 광장 2009. 11. 26. 14:27

제목과 같이 SSD, 쉬운말로 "메모리 디스크"라 칭한다. 3년전만해도 메모리 디스크는 SDRAM  즉 서버나 PC에서 활용하는 main Memory소자로 만든 DISK를 주로 "메모리 디스크라" 불렀다.

 

대략 2년전부터 SDRAM(휘발성메모리)이 아닌 NAND Memory(비휘발성메모리, Data를 기억 하고 있는 메모리) 를 기반으로 SSD가 출시 되고 있었다.

 

NAND SSD는 하드디스크 인터페이스를 활용 한다는 장점과 데이타를 보관 할 수 있다는 장점, SDRAM보다 가격이 저렴하다는 여러 긍정적인 상황으로 알려지게 된 것 같다.

 

컴퓨터의 역사가 대략 40년 이라면, 이때 부터 활용되었던 기억장치가 바로 하드디스크(HDD)이다.

지금 까지 컴퓨터 하면 하드디스크  뗄레야 뗄수 없는 바늘과 실의 사이다.

 

컴퓨터로 처리 해야 일들이 이제는 기본이며, 정보처리의 방법이 "문자, 숫자"에서 "이미지" 최근에는 영상으로 정보를 교환하고 처리 한다.

 

그만큼 컴퓨터가 처리 해야할 data들이 무거워지고 있다는 현실적인 상황이다.

그리고 최근 "그린 IT"란 환경보호 차원에서의 컴퓨팅을 세계적으로 한목소리를 내고 있다.

 

작은 데이타(DB)는 넘처나고, 큰데이타(이미지, 동영상)는 많아지고 결국은 고속으로 빠르게 처리 하거나

한꺼번에 많이 처리 해야하는 현실에 직시 하고 있는 실정이다.

 

이에 SSD(아래부터 SSD는 NAND기반 디스크를 SSD라 칭한다.)가 업무적으로 꼭 필요한 분들께서 검토도 하고 있고, 또한 언론기관 및 여러 기관에서 SSD에 대하여 관심에 대상이 되었다.

 

쉬운 말로 가격대비 성능, 안정성, 호환성 아다리가 맞느냐? 검토까지 되는 고무적인 상황이 지금의 현실이다.

물론 반대 세력들이 만만치 않은 상황이다.

NAND 메모리는 불안해서 못쓴다. 데이타를 보관하는데 한계가 있다. 일반 서버와 궁합이 안 맞는다. 등등

무수한 부정적인 얘기들이 많다. 왜! 그럴까? 정말 불안 한가? SSD는 PC수준에서 쓰는 디스크 인가???

 

위의 얘기들이 나오는 것을 잘 생각해보면 기술적인 부분도 있지만, HDD제조사나 타 경쟁사들에서 나온 얘기라는것을 이해 할수 있었다.

또한 HDD빼고 SSD만 서버에 탑재한다고 SSD서버가 되는것은 아니다. 일부 HDD회사들이 고객의 요청으로

SSD서버 한번보자 했을때 서버에 SSD만 탑재해서 납품하거나 test시 문제가 많이 발생 하여 불안하다는 의견들이 나온것으로 이해를 할 수 있었다.

 

기술적인 얘기를 해보자면, HDD나 SSD는 동일한 SATA interface를 활용하고 있다.

HDD는 기본단위가 512B이고 SSD의 경우는 4KB단위이다.

SSD는 모든 HDD와 동일하게 Interface를 위해 내부 controller가 하는 일들이 아주 많다.

HDD가 내부에서 하는 일보다 아주 많은 다른일들이 한다.

그 이유는 위에서 부정적으로 언급된 여러 요소의 얘기들을 해결하기위한 또 다른 일들을 한다.

그중 제일 중요한 일이 성능도 유지하면서 NAND소자가 고르게 마모 되도록 하게 하는 중요한 일을 한다.

이것을 "웨어레벨링"이라고 한다.

 

결과적으로 HDD와 동일하게 정보교환을 할 수 있도록 하면서 SSD의 자체 특성을 컴퓨터와 유기적인 통신을 하도록 하려는 노력을 해왔으며, 더욱더 문제없이 통신을 할 수 있도록 진화 되고 있는 현실이다.  

 

지금은 위에서 언급된 여러 부정적인 얘기들이 과연 현실 일까?

HDD제조회사들 대부분이 SSD를 개발, 제조, 판매를 하고 있고, 굴지의 삼성이나, 인텔도 SSD를 판매 하고 있다. 시대의 흐름이 NAND기반 SSD로 가고 있다는 것은 IT에 계시는 분들께선 알고 있는 사실이라고 나는 생각 한다.  

 

또한 SDRAM기반 SSD회사들도 대부분에 NAND 메모리 SSD를 함께 혼용하여 제품화를 하고 있고 판매를 하고 있는 상황이다.

 

이제는 더 이상 NAND SSD에 대한 근거 없는 부정적인 의견이 없었으면 한다.

단, 근거가 있는 문제가 있다면 그것은 정확하게 의견 제시가 되어 보완이 되어야 할것이다.

 

그리고 제목과 같이 NAND기반 SSD 기반으로 서버나, 스토리지를 제조, 판매를 한다면, 기술적인 검토를 많이 해야 한다는 의견을 드리고 싶다.

 

HDD와 동일한 Interface를 활용하지만, 실제 내부 Transaction은 다르다.

무엇이 다른지, 어떤 내부 프로토콜이 도는지, 확인 내부 code가 무엇인지,,, 사실 일반 서버에 SSD를 HDD와 같이 안정적으로 운영하지 위해선 기술이 필요하다.

특히 NAND기반 SSD 중 MLC Type은 DISK IO가 많은 업무에는 치명적인 문제가 있다는 사실을 알아야 할것이다. 이 이유를 알고 싶다면, SLC Type과 MLC Type의 SSD구조를 이해 하여야 하며, SSD controller에서

처리 하기엔 한계가 있는 이유를 알아야 할것이다.

 

차기 NAND기반 SSD즉 2012년 이후에 나올 계획인 제품들은 MLC Type 이더라도 DISK IO가 많은 업무에 적용 할 수 있는 방법이 있다. 현재의 SSD controllerr기능으론 문제가 있다.

소자간 간극현상이나, 지금 방법의 "균등마모방법"등 문제의 소지가 있다.

 

한번더 언급을 하지만, 임의 읽기, 특히 임의 쓰기가 많은 업무(DBMS)에는 MLC Type SSD 활용을 해서는

SSD불안 하다는 얘기가 끊임없이 나올 것이다.

이 MLC SSD는 읽기 업무가 많은 부분에 적용이 용이 하도록 되어 있다고 까지 언급하고 싶다.

SSD제조사 중 인텔과 삼성만이 MLC SSD는 PC나 노트북 그리고 읽기 업무가 많이 부분에 적용 하라고 권장 하고 있는 실정이다.

 

그리고 SSD는 메인보드에서 지원하는 레이드 활용을 권장 하지 않는다.

그 이유도 기술적인 검토를 많이 해야 한다.

메인보드에서 지원하는 SATA 레이드는 레이드 기능만을 지원한다. Data의 안전성을 위한 여러 기능이 미흡하며, 메인보드 내부 프로세스에 부하를 주며, 특히 Data의 안전성확보를 SSD 자체가 하다보니 DISK Fail이나, 레이드가 풀리는 현상이 있는것이다. 임의 쓰기가 많은 경우는 반드시 문제가 생긴다는것을 여러 부분에서 나온 결과이다.

 

HW기반 레이드도 마찬가지다. SSD에는 내부 특정 code가 있다. 모든레이드가 이 code를 100%지원 하는것은 아니다. 무시하고 Transaction을 한다면, 또 문제가 생길것이다,

 

결과적으로 표준 SATA Interface 를 활용하지만, SSD 제조 회사마다 특성이 있고 HW레이드도 특성이 있고. 서로 궁합을 마추는것은 매우 중요한 기술이다, 일명 SSD 전용 레이드가 필요하다는 의견이다.

또한 Interface에 잘 되도록 code Generation을 반드시 마추어야 할것이다.

 

추가로 OS별로 지원되는 Drive도 SSD특성에 맞게 지원이 되어야 함을 꼭 명심해야 한다.

보이지 않게 NAND기반 SSD가 기 기득권을 가지고 있는 HDD기반 서버, 스토리지의 모든 것을 수용해야 하는

것을 기본으로 하여 스스로 어려움이 많이 있는것이 사실이다. 100% NAND기반 특성에 맞는 SSD가 활용되어질 그때까지는 HDD기반에 모든것을 수용해야 한다.

 

언젠가 NAND기반 SSD가 대중화되는 그때는 모든 프로그램(응용, 시스템, BIOS등등등)들이 SSD 특성에 잘 어울어지도록 자연스레 될 것이다.

그날을 기다리며,

NAND기반 SSD가 대중화 될때까지 이 분야에 종사 하고 계신 우리는 기술력을 극대화하여 HDD기반의 모든것을 수용하면서도 성능이 우수하고 가격이 저렴해 질수 있도록 노력해야 할 것이다.

 

이 블로그 주인의 소신있는 의견을 글로 적어 보았습니다.

감사 합니다.