2013-09-03 2 views
3

고성능 데이터베이스를 개발 중이며 동시에 여러 헤드가있는 특정 트랙/실린더에 직접 쓰려고합니다. SATA 버스를 통해 Linux에서 SATA 디스크를 사용하는 방법은 무엇입니까? 모든 문서, 당신이 추천 할 수있는 예?magentic 디스크의 트랙/헤드/실린더에 쓰기

+0

일반 HDD는 한 번에 하나의 읽기 또는 쓰기 작업 만 수행 할 수 있습니다. 최적화 된 블록 작업을 수행하기 위해서는 아마도 자신 만의 파일 시스템을 작성해야 할 것입니다. 그러나 대부분의 (또는 모든?) 현대의 HDD는 영역 레코딩과 불량 섹터 재 매핑을 사용하기 때문에 트랙이 끝나는 위치와 "다음"(인접한) 섹터의 액세스가 탐색 및/또는 회전 지연을 포함하는지 여부를 확신 할 수 없습니다 . – sawdust

답변

5

직접 할 수 없습니다. 현대 드라이브의 경우 물리적 드라이브 레이아웃이 드라이브 컨트롤러에 의해 추상화됩니다.이 드라이브 컨트롤러는 지난 20 년 동안 만들어진 모든 디스크가 드라이브 자체 내에 있습니다. 호스트 컴퓨터가 보는 인터페이스는 선형 논리 블록 주소로 정의됩니다 (드라이브가보고 한 C/H/S 값은 호환성을위한 것이며 하드웨어 레이아웃과 아무런 관련이 없습니다).

그러나 드라이브가 빠른 선형 쓰기를 수행하기 위해 최적화되는 경향이 있기 때문에 인접한 논리 블록의 블록을 쓰는 것 (재 매핑 된 블록이없는 경우)이 가장 빠른 옵션 일 수 있습니다.

관련 문제