호스트 컨트롤러에 따라 하드 디스크 드라이브가 필요에 따라 512e (4k 섹터의 512 바이트 에뮬레이션)를 설정합니까?


13

물리적 섹터 크기가 4k (고급 형식) 인 4TB 하드 디스크가 있고 두 개의 SATA 호스트 컨트롤러 (하나는 내부 및 하나는 USB 인클로저에 있음)에 연결했습니다. (이전, 약 2010 년)에는 512B 논리 섹터 크기로 나타나지만 실제 섹터는 4096 바이트라고보고합니다. 최근 USB 인클로저에서 4096B의 논리적 및 물리적 크기를 갖는 것으로보고됩니다.

# internal host controller
sd 4:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
sd 4:0:0:0: [sdd] 4096-byte physical blocks

# USB enclosure
sd 18:0:0:0: [sdd] 976754646 4096-byte logical blocks: (4.00 TB/3.63 TiB)

"내부"컨트롤러는 이전에 본 동작을 보여줍니다. 일반적으로 드라이브의 펌웨어는 섹터를 물리적으로 쓰지 않더라도 드라이브의 펌웨어가 512 섹터 LBA 주소를 에뮬레이트하는 "512e"라고합니다. 운영 체제 (및 관리자)는 (작은) 쓰기 명령을 그룹화하여 디스크를 물리 섹터의 일부로 쓰는 대신 디스크 전체 섹터를 덮어 쓸 수 있도록 파티션을 정렬 할 수 있습니다. 내용의 첫번째.

그러나 드라이브 (USB 엔클로저)에서 "4k 기본"동작을 보는 것은 나에게 새로운 것이었고 처음 생각한 것은 엔클로저가 드라이브의 에뮬레이트 된 512B 에뮬레이션에서 4096B 주소를 에뮬레이트하고 있다는 것입니다.

4k 개의 논리 섹터에 등록 된 USB 스토리지 기능이있는 웹 검색에서 찾을 수있는 유일한 항목입니다. 512e 이상 4k를 에뮬레이트하므로 MBR 파티션 테이블을 허용하여 MBR + FAT32 USB 대용량 저장 장치 만 지원하는 레거시 / 임베디드 장치 (스마트 TV 및 기타 장치)에서 큰 드라이브를 사용할 수 있습니다.

제조업체에 연락 한 후 드라이브가 실제로 에뮬레이션되지 않은 (네이티브) 4k 모드에서 작동한다고 주장했으며 USB SATA 컨트롤러도 전혀 에뮬레이션을 수행하지 않습니다. 이를 위해서는 호스트 컨트롤러가 4KB의 섹터 크기 주소 지정을 지원하는지 여부를 감지하기 위해 드라이브의 펌웨어가 필요합니다. SATA 표준의 공개 문서에서 이것에 대해 아무것도 찾을 수 없습니다. 그래서 나는 묻습니다.

  • SATA 컨트롤러에서 "4096 바이트 논리 블록"을 본 사람이 있습니까?
  • 드라이브는 실제로 주문형 에뮬레이션 활성화 / 비활성화를 지원합니까? 그렇다면,
    • 이 결정은 어떻게 작동합니까?
    • 플래그를 통해 드라이브에서 대체 할 수 있습니까?
    • 드라이버 / 플래그를 통해 호스트 컨트롤러에서 재정의 할 수 있습니까?

드라이브의 로고에 "AF"또는 "4Kn"이 표시됩니까?
Jamie Hanrahan

이 질문에는 실제로 고품질의 현대적인 답변이 필요합니다.
Hashim

답변:


2

하드 드라이브 유효성 검사 산업에서 작동하는 4Kn SATA 드라이브가 몇 개있는 것을 보았지만 하드웨어 및 소프트웨어 지원이 제한적이고 고객 요구가 부족하여 고객에게 배송하는 것을 알지 못했습니다.

물리적 섹터 크기와 논리적 섹터 크기에 대한 두 가지 경쟁 매핑이 있습니다. 긴 논리 섹터 기능은 장치가 512B보다 긴 논리 섹터를 가질 수있게하며 (예 : 4Kn), 긴 물리 섹터 기능을 사용하면 장치가 물리적 섹터 (예 : 512e) 당 여러 논리 섹터를 가질 수 있지만 반드시 상호 배타적이지는 않습니다. 제조업체가 드라이브가 4Kn이라고 주장하는 경우 이전 시스템은 단순히 4Kn 형식을 지원하지 않기 때문에 이전 컨트롤러는 이전 응용 프로그램 및 하드웨어에 대해 읽기-수정-쓰기와 같은 에뮬레이션 계층을 제공 할 수 있습니다.

그만큼 sg_sat_identifysg3_utils 패키지 명령은 필요한 정보를 제공 할 것입니다 (물리적 섹터 크기 / 논리적 섹터 크기 정보는 106-108을 확인하십시오).

SATA 드라이브가 주문형 에뮬레이션을 자체적으로 지원하는 것처럼 보이지는 않지만 드라이브가 실제로 4Kn 대신 512e를 사용하는 경우 읽기 / 쓰기를 제한하는 드라이버 (또는 USB SATA 컨트롤러)에 의해 성능 최적화가 최대화됩니다. 4K 경계 (예 : 하위 3 비트가 0 인 LBA에서 전송이 시작되고 하위 3 비트가 1 인 LBA에서 끝남)

start_lba & 0x3 == 0
end_lba & 0x3 == 1

따라서 기본적으로 드라이브에 에뮬레이션을 시작하거나 중지하도록 지시 할 수있는 "스위치"가 없습니다. 최종 사용자 관점에서 볼 때 가장 좋은 방법은 드라이브에서 사용하는 드라이브에 가장 적합한 파일 시스템을 사용하고 드라이브가 올바르게 정렬되어 있는지 확인하는 것입니다. 다음 사이트는 공통 파일 시스템과 성능에 대한 통계와 다른 파일 시스템의 블록 정렬에 대한 통계를 제공합니다. http://www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.