||1

1페이지

하드드라이브 기술 소개

소개

성능적인 관점에서 보자면, 하드드라이브는 데스크탑 시스템에서 가장 경시하는 컴포넌트이다. 하드드라이브가 그렇게 매력적이지 않은가?결국, 새롭고 빛나는 그래픽 카드와 프로세서들의 경쟁은 막연한 사각 상자에 당신이 어떤 것을 집어 넣었는가가 중요한 힘든 비즈니스이다.

많은 사람들이 간단히 하드드라이브를 그들의 시스템의 성능 컴포넌트라기 보다는 유틸리티로 보는 경향이 있는데, (속도에 반하는) 용량을 더 중요하게 여긴다. 당연히, 많은 상황에서 이런 관점은 틀린것이 아니다. - 모든 사진, 음악 그리고 영화를 하드드라이브에 저장함에 있어 고성능은 필요치 않다.

이들 상황에서 고려해야할 주 관점은 간단히 얼마만큼의 돈으로 얼마만큼의 하드드라이브를 구입할 수 있는가이다. OS 디스크로는, 그러나, 드라이브마다 다른데 이것은 성능의 레벨차이를 의미한다. 하드웨어 매니악들은 그들의 예산에서 어떤 프로세서, 그래픽 카드 그리고 메모리가 최고의 구성인지에 대한 연구를 함에 있어 많은 시간을 할애하지만, 하드드라이브에 대해서는 그렇게 많은 고려를 하지 않는다.



최근 하드드라이브의 개발과 특징은 이런 생각을 고치게 만들기 시작 하였지만, 또한 하드드라이브 성능에서 어떤 것이 중요한 것인지를 잘못 이해 하는 것이 몇몇 가지 있다. 현재의 몇몇 하드드라이브의 특징은 아주 좋아 보이며, 문서 상으로는, 엄청난 성능 향상을 가져다주는 듯 하다. 현실은, 그러나, 이들 특징은 실세계 데스크탑 성능 향상에 그렇게 반드시 동일하게 적용되지 않는다.

특정 기능과 특정 하드드라이브는 특정 상황에 쓰인다는 것을 의미하는데, 그들이 다른 방법으로 사용할 때, 성능 이득은 여기에서 얻을 수 없다. 아주 빠른 기업형 하드디스크를 예로 들자면, 빠른 부팅 시간, 게임 로딩 시간 그리고 당신의 가정용 컴퓨터에서 느낄 만한 일반적인 체감 성능에 대한 최적화가 되어 있지 않다.

그렇다면, 이 모든 멋진 글자는 무엇을 의미하는 것인가? NCQ, TCQ, RAID, IDE, SCSI, SATA, MTBF...이 약자들은 가상적으로 끝없이 나오며 이것은 아주 혼란스럽게 하는 단어들이다. 제조사와 판매자들은 이런것에 대한 것을 말해주지 않을 것인데 그들이 사용하는 이런 흥미로운 멋진 단어들은 당신에게 실제적으로 도움이 되지 않는다. 이제 몇몇 하드드라이브 기술을 살펴보고 어떻게 데스크탑 성능에 영향을 끼치는지 알아보도록 하자.



2페이지.

Native Command Queuing

Native Command Queuing, NCQ라고도 불리우는 이 기능은 많은 소매 SATA 드라이브에 지난 몇년간 내장되어 왔다. Command Queuing은 1994년에 TCQ(tagged Command Queuing)으로 SCSI2 표준에 소개되었는데, 그러므로 이것은 새로운 개발이 아님을 의미한다.

이 기술은 확실한 성능 향상을 이끌어 내는데, 서버 환경에서는 드라이브에 재정렬 명령을 드라이브에 보낼 때 쓰이며, 그들을 최적화 시켜 명령을 수행할 때 적게 헤드를 움직일 수 있게 한다.

간단한 예제를 들자면, 4개의 요청이 드라이브에 보내지는데, 그 요청마다 (읽거나 써야 하는) 데이터 액세스가 트랙 8, 4, 7 과 1에 있다고 가정해보자. 이 예제에서, 우리는 드라이브의 R/W 헤드가 요청이 드라이브에 보내지기 전에 트랙 1에 있다고 친다.

TCQ나 NCQ를 사용하는 드라이브가 이것들을 1, 4, 7, 8로 재배열 하는데 반해 커맨드 큐잉이 없는 드라이브는 명령 안의 이 요청을 순서대로 처리한다. 이 예제에서의 경우에는, 헤드가 1개 트랙을 옮겨가는데 1ms가 소요된다고 간단히 설정하자. 아래 표에서 볼 수 있듯이 커맨드 큐잉은 4개 요청이 서비스 되는데 걸리는 시간이 21ms에서 8ms로 극적으로 떨어짐으로 인해 확실히 성능을 향상시키는 것을 볼 수 있다.

이 경우에, 커맨드 큐잉은 어떠한 상황에서도 우수하다, 맞나? 꼭 그렇지도 않은 것이, 커맨드 큐잉은 드라이브 액세스 시간에서 약간의 오버헤드를 포함시킨다. 표준 서버 환경에서, 큐 깊이는 높고 요청은 무작위적이므로, 커맨드 큐잉에서의 성능 향상은 오버헤드를 무마시키고도 남는다. 데스크탑 환경에서, 드라이브는 서비스에 1번에 1번 이상의 극히 적은 요청만을 함으로, NCQ가 사용되면 대부분의 시간에 드라이브는 "재정렬"을 1번 요청에 끝낸다. 심지어 많은 드라이브 액세스가 있는 멀티태스킹 시나리오 때라도, 큐 깊이는 보통 다수개 요청으로 초과되지 않는다.



큐 깊이가 4개 요청보다 크고 이것들이 NCQ나 TCQ의 오버헤드가 아주 적다면 성능상의 향상이 나타날 수 있다. 커맨드 큐잉을 사용할 때 데스크탑 어플리케이션은 보통 5~10% 정도의 드라이브 성능 하락을 겪게된다. 이런 성능 저하를 느낄 수 있는가? 아마 인지하지 못할테지만, CPU나 그래픽 카드를 약간 오버한 것과 같은 정도이다. 이것을 사용하지 않음으로 기술적으로는 빨라지는데, 당신이 결정할 일이다.

"그러나 나는 내 컴퓨터를 멀티태스킹으로 더 서버같이 사용한다고!"

보통 사람들로서는 이런 생각을 하기 힘든데, 저런 생각은 보통 PC 사용자보다 훨씬 더 많은 디스크 접근 요청을 만드는 파워유저만이 가능하다. 맞는 말이긴 한데, 큐 깊이는 여전히 데스크탑 접근 패턴의 영역 안에서 머물 뿐이다. 심지어 디스크 조각 모음 시에 바이러스 스캔을 하거나, HD 비디오 스트리밍을 하면서 포토샵을 사용하고 게임을 하고 등등의 동작을 하더라도, 큐 깊이는 여전히 전체 성능 향상을 제공하기 위함 커맨드 큐잉에 훨씬 못미친다.

서버 접근 패턴은 수백이나 수천명 정도의 많은 사용자들을 포함한 것인데, 디스크 상의 무작위 장소에서의 데이터 생성 요청을 한다. 서버에서의 평균 큐 깊이는 2자리 수 부터 몇백개 요청까지 다양한데, 이것은 여기에서 30% 정도의 성능 이득을 위해 커맨드 큐잉을 사용한다는 이 글에서 알맞은 것이다.

현재로써는 싱글 유저 하드드라이브의 성능을 기술적으로 향상시키기 위해서는 적응형 NCQ(Adaptive NCQ)를 도입하는 것이 한 방법이다. 우리는 큐 깊이가 대부분의 경우 향상이 되기에는 너무 얕아 NCQ를 끄는 것이 데스크탑에서의 성능 향상에 일조가 된다는 것을 이미 알고 있지만, 큐 깊이로 인해 NCQ로 얻을 수 있는 이득이 있을까?

적응형 NCQ 형식은 간단히 큐 깊이가 4개 이상일 때 작동되며 그 이하일 때에는 작동되지 않는 형태이다. 이 전환하는 형식을 사용하는 경우 성능 이득에 비해 너무 많은 오버헤드를 주게 된다. - 이것이 왜 지금까지 안쓰여지게 된 것인지에 관한 이유이다.

3페이지.

SATA-IO

SATA II 라는 단어가 가끔씩 부적절하게 쓰이는데, 이것이 마치 드라이브가 300MB/sec 의 인터페이스를 가진것 같이 쓰인다는 것이다. 협회는 SATA II라는 새로운 기능의 SATA 표준을 출원 하였는데 이것이 혼란을 가져다 준 근원이다.; 이 일므은 제조사로 하여금 잘못된 단어 사용을 중단 시키려 SATA-IO라는 이름으로 바뀐 상태이다.

300MB/sec 인터페이스는 가장 최근의 SATA 표준이 가지고 있는 많은 사양 중의 하나일 뿐이다. 최근 SATA 사양의 기능의 전부가 아래에 있다.

3Gb/s 인터페이스 대역폭 - 모두가 친숙한 300MB/sec 대역폭이다.

Click Connect - 드라이브 커넥터를 고정하는 것으로, 이더넷 커넥터에 있는 클립과 비슷한 것이다. 드라이브에 연결하는 SATA 케이블 끝에는 작은 금속 클립이 있어 이것이 케이블이 사고로 빠지는 것을 방지하게 된다.

eSATA와 xSATA - 외장 SATA 사양으로, 내부 SATA 보다 길어진 케이블 길이(각각 2미터와 8미터) 케이블의 디자인이 다르다.



Hot-plugging - 호스트 시스템이 동작 중일 때 드라이브의 삽입/해지를 할 수 있는 기능이다.

NCQ - 이전 페이지에서 설명 하였다.

Link Power Management - 이것은 기기에 추가적인 전력 관리 기능을 제공한다.

Staggered spin-up - 이 기능은 큰 RAID 배열에 쓰인다. 하드드라이브는 idle 상태일 때보다 전원 인가 중에 더 전력을 많이 쓴다. Staggered spin-up 은 모든 배열이 동시에 켜지는 대신 드라이브에 전원을 1개씩 인가 함으로써 전원 인가 중에 전원 공급기에 가중되는 부하를 줄이게 된다.

Asynchronous Notification - 이것은 기기로 하여금 컨트롤러에게 주의를 요구하는 통지를 보내는 것을 가능하게 한다.

이런 대부분의 기능에 대해 그렇게 특별히 숙지하고 있어야 할 필요는 없다. 인터페이스 대역폭은 대부분 쉽게 볼 수 있는데, 이것은 SATA II라는 단어로 하여금 이것을 지칭하게 만드는 이유가 되기도 한다. 추가된 대역폭은 대부분의 사람들이 SATA II 드라이브를 산 후에서나 알 수 있는 기능이다. 예전 드라이브의 2배 대역폭은 엄청난 성능 향상을 가리키는 것 같지만, 그렇지도 않다.

300MB/sec 인터페이스는 드라이브가 실제적으로 이 정도의 대역폭을 사용할 능력을 갖고 있다는 것이 아니다. ; 사실, 현재로써 SATA 드라이브 중 예전 SATA 인터페이스의 속도인 150MB/sec의 속도에도 근접하게 만족 시킬만한 드라이브는 없다. 현재 드라이브에서 가능한 전송 속도는 ATA/133 인터페이스에서 제공하는 대역폭 조차도 넘지 못한다.

SATA/150 드라이브와 SATA/300 드라이브간의 성능 차이라고는 드라이브의 캐시가 쓰고 읽을 수 있는 속도 뿐이다. 이것의 성능이 향상되면, 이것이 한계폭을 최대로 증가시킨다. 추가된 대역폭은 미래에 나올 기기의 공간을 제공하는 것이다. 곧 600MB/sec 정도의 인터페이스가 300MB/sec가 병목이 되기 전에 나올 것이다.

4페이지

SCSI vs SATA

SCSI나, 이것의 새로운 형식인 serial attached SCSI (SAS)가 모든 상황에서 SATA보다 빠르다는 것이 공통적인 일반적 인식이다. 서버 사용 패턴에서는 맞는 말이 되겠으며, 데스크탑 어플리케이션에서는 어쩌다 맞기도 하겠지만, 모두에 적용되지는 않는다. SCSI 디스크들은 서버에서의 사용을 목적으로 하기 때문에 드라이브들은 상요 모델에 따라 특별하게 트윅되어 있다.

높은 RPM SCSI 디스크들의 낮은 접근 시간은 데스크탑에서 엄청난 성능 향상을 얻을 수 있다는 말로 들린다. 그러나, 데스크탑 접근 패턴은 간단히 15000rpm 드라이브가 제공하는 낮은 검색(seek) 타임에서 이득이 얻어지는 것이 아니다. 데스크탑 접근 패턴은 특성상 국소지역에 한정되어 있는데, 이것은 PC상에서 프로그램이나 게임을 로딩할 때, 드라이브는 대부분의 데이터를 플래터의 같은 위치에서 읽어들인다는 것을 의미한다.

이런 상황에서는, 아주 적은 검색만으로도 가능해진다. 대부분의 접근 요청이 각기 아주 적은 MB 단위이기 때문에, 덩어리진 것들은, 드라이브 내의 캐시에서 서비스되기 딱 좋은 형태이다. 드라이브 펌웨어내의 영리한 미리 읽기 알고리즘은 시스템이 드라이브에서 특정 데이터 조각을 요청한 이후 어떤 데이터를 원할지를 추측하는데, 대부분 맞게 떨어진다. (왜 드라이브의 조각모음이 잘 되어 있어야 하는지를 설명한다.)

예를들어 대용량 수용성(mass scalability) 같은, 최근의 SAS 설정에서 당신에게 보여 줄 더 많은 추가된 기능 이 많지만, 가정용 컴퓨팅 환경에서 적용할만한 것은 없다.

MTBF

이것은 하드드라이브의 신뢰성을 측정하는 것으로 가끔씩 엄청나게 잘못 이해되곤 한다. mean time between failures라고 불리우는 MTBF는, 많은 갯수의 드라이브에 대해 검사된 고장 비율로 나오는 시간의 길이이다. 예를들어, 드라이브 A가 600,000 시간의 MTBF를 가지고 있으며 드라이브 B는 1,200,000 시간의 MTBF를 갖고 있다고 해도, 드라이브 A가 68년을 가고 드라이브 B가 137년을 갈 것이라고 추측하면 안되며, 게다가 이렇게까지 갈 리도 없다.

MTBF는 몇백개나, 몇천개의 큰 묶음의 드라이브가 동작할 때에만 적용되며, 이 때 얼마나 드라이브 고장이 자주 나는가를 측정하게 된다. 2천개의 드라이브 묶음에서, 만약 평균적으로 25일마다 드라이브가 1개씩 고장난다면, 드라이브의 MTBF는 1,200,000 시간이 된다. 불행하게도, 이정도로 단순한 것이다.

이것은 보통 조건을 대체함으로 테스트가 가속되는 경우가 있는데, 예를 들면, 온도를 높이는 것이다. 가속된 요인들에 고도 의존이 된 종료 결과는 정확하다. 몇몇개의 드라이브가 테스트 된 것은 또한 표준화되지 않으므로, 제조사들은 이상적인 MTBF 등급을 얻기 위해 드라이브의 양을 늘리거나 줄이는 것을 맘대로 한다.

이들 요인은 이 형식의 정확성에 쉽게 의문점을 던질 수 있게 되며 MTBF가 높은 드라이브는 낮은 MTBF를 가진 드라이브보다 더이상 신뢰도에 의하여서는 그리 필요가 없게 된다. 시장에서 다른 드라이브들과 비슷한 MTBF 등급을 가진, 역사상 가장 신뢰성이 낮은 드라이브로, 유명하지 않은 IBM의 'deathstar' 60GXP와 75GXP를 기억하는가?



대체로 말해서, 드라이브의 MTBF를 인용하는 것은 그들 제조사로 하여금 이것의 시장 위치를 판명하게 한다. 위 예제의 드라이브 B는, 아마 SCSI/SAS드라이브의 엔터프라이즈 급에 포함될 것이다. 이것의 1,200,000 시간의 MTBF는 단순히 제조사가 말하는 "이 드라이브는 1주일 24시간 내내 데이터 센터 환경에서 동작이 가능하다." 라는 것이다. 드라이브 A는 데스크탑 드라이브에 들어갈 것인데, 낮은 MTBF는 랩탑 드라이브에 들어갈 것이다.

MTBF 형식이 아주 명백한 경우에는, 대부분의 SCSI 드라이브들이나 대부분의 ATA 드라이브 들이나 끼리끼리 있게 된다. 간단히 말해, 당신이 서버를 가지고 있다면 SCSI를 쓰고 데스크탑 시스템을 갖고 있다면 ATA를 쓴다는 것이다. 오늘날, 드라이브 클래스 간의 이 라인은 확실히 선이 그어지지 않고 경계가 모호해지고 있다. SATA 에서의 개발이 의미하는 것은, 성능 측면에서, 특정 서버 환경에서는 SCSI를 대체할 것이 제공되고 있다는 것이며, 엔터프라이즈 등급의 MTBF 형식을 제공하는 몇몇개의 SATA 드라이브가 이런 것을 반영하는 것은 그렇게 놀랄만한 일이 아니다.


출처: http://www.bit-tech.net/hardware/2007/03/12/introduction_to_hard_drive_technology/1


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