SATA는 어떤 의미에서 SCSI와 "대화"합니까? SCSI와 ATA 간에 얼마나 많은 리소스가 공유됩니까?

SATA는 어떤 의미에서 SCSI와 "대화"합니까? SCSI와 ATA 간에 얼마나 많은 리소스가 공유됩니까?

이것은 새로운 것이 아닙니다. 적어도 저에게는 SATA가 실제로 SCSI와 "대화"하므로 이러한 SATA 장치는 Linux에서 SCSI 장치로 나타납니다.

관련 질문은 이전에 요청되었습니다.내 SATA 장치가 /proc/scsi/scsi 아래에 표시되는 이유는 무엇입니까?

그러나 제가 본 이전 토론에서는 SATA와 SCSI의 구체적인 관계와 차이점에 대한 언급이 없었습니다.

나는 그들이 호환되는 케이블을 공유하지 않기 때문에 물리적 계층에서 다르다는 것을 당연하게 생각합니다.

하지만 스택을 높이면 어떨까요? 나는 Linux가 SATA 및 심지어 IDE 디스크를 최신 커널의 SCSI 하위 시스템으로 어떻게 표현하는지 알고 있습니다. 하지만 버스에서 사용되는 실제 프로토콜은 어떻습니까?

ATAPI가 SCSI용 패키지라는 것도 알고 있지만 일반 ATA는 어떻습니까? NCQ, FUA, DPO 등과 같은 SCSI 기능(기억이 정확하다면)이 SCSI에서 채택되었다는 것을 알았습니다. 그러나 SCSI 명령 세트 중 "얼마나"가 실제로 공유되거나 유사한지는 확실하지 않습니다.

최신 SATA 장치와 해당 ATA 사양은 SCSI 명령 세트의 하위 집합을 구현하지만 캡슐화(예: ATAPI)로 구현합니까? 똑같은 세트인가요? 슈퍼그룹? 아니면 선택한 기능만 동일하지 않은 변형으로 구현될 수도 있나요?

이에 대한 명확한 정보, 특히 Linux 커널과의 관계는 어디에서 찾을 수 있습니까? 일종의 드라이버 개발 튜토리얼이면 좋겠지만, 모든 세부 사항을 완전히 건너뛰지 않는 개요만으로도 충분합니다. 실제 사양을 읽을 수 있다는 것을 알고 있지만 이는 너무 상세하고 실제로 원하는 것을 찾기 어렵고 시간적 측면에서 저와 아마도 대부분의 다른 사용자에게는 비실용적입니다.

답변1

SCSI와 ATA는 완전히 다른 표준입니다. 그들은 현재정보 기술 연구소표준 조직이지만 다른 그룹에 의해 조직되었습니다. SCSI 소속 기술위원회T10, ATA가 있는 동안T13. 1

ATA는 하드 드라이브만을 염두에 두고 설계되었습니다. SCSI는 더 광범위하고 오래되었으며 대용량 저장 장치, 테이프 드라이브, 이동식 광학 미디어 드라이브(CD, DVD, Blu-ray...), 스캐너 및 컴퓨터를 제어하는 ​​표준 방법입니다.기타 다양한 장치 유형.

1980년대 중반, IDE가 PC 세계에 도입되었을 때 SCSI가 컴퓨팅 세계의 변두리로 밀려나고 있다는 사실은 분명하지 않았습니다. SCSI는 더욱 성숙해지고 더욱 강력해졌습니다.유닉스 워크스테이션그리고매킨토시수십 년 동안 컴퓨터에는 SCSI 하드 드라이브가 장착되어 있었습니다. 고급형 PC에는 일반적으로 주변 장치용으로 하나 이상의 SCSI 카드가 있으며 시스템 HDD용으로도 사용되는 경우가 많습니다. 개인용 컴퓨터용 초기 CD-ROM 및 테이프 드라이브는 SCSI의 형태로 처음 등장했습니다.

그러나 현재 PC 업계에서는 SCSI를 더 저렴한 ATA 표준으로 교체하려는 움직임이 진행되고 있습니다. 원래 타협안은 다음과 같습니다.ATAPI는 내부적으로 SCSI를 이해하는 장치가 ATA 인터페이스를 통해 이러한 SCSI 명령을 수신할 수 있도록 하는 ATA의 확장입니다. 이에 대한 자세한 내용은 아래에서 확인하세요.

몇 년 후 SCSI는ATA 명령 전달기본적으로 ATAPI와 반대되는 기능을 통해 SCSI 버스를 통해 ATA 명령을 실행할 수 있습니다. 이 기능의 용도 중 하나는 ATA를 터널링하는 것입니다.영리한SCSI를 통해 명령을 실행합니다.smartmontools이 작업을 수행, 예를 들어.

나중에 INCITS T10 위원회는 SCSI 명령을 ATA 명령으로 또는 그 반대로 변환하는 SAT(SCSI/ATA Translation)라는 표준을 개발했습니다. 2 리눅스 커널libata도서관Linux용 SAT 구현을 제공합니다.다른 것들.

SCSI와 ATA 프로토콜은 둘 다 하드 드라이브를 제어하기 때문에 논리적으로 중복되는 부분이 있습니다. 분명히 두 가지 모두 특정 하드 드라이브 섹터를 찾고 해당 섹터의 내용을 검색하는 등의 방법이 필요합니다. 그러나 명령 형식은 완전히 다릅니다. 그렇지 않으면 이러한 변환 및 전달 메커니즘이 필요하지 않습니다.

SATA는 실제로 SCSI와 "대화"합니다.

이는 "차는 핑크색이다"라는 말만큼이나 사실이다.일부차가 핑크색이네요.

ATAPI, ATA Direct 및 SAT는 이야기의 일부일뿐입니다. 계속 읽어주세요.

나는 그들이 호환되는 케이블을 공유하지 않기 때문에 물리적 계층에서 다르다는 것을 당연하게 생각합니다.

옛날엔 그게 맞았지병렬 SCSI하지만 SATA가 PATA를 대체한 것처럼,SAS병렬 SCSI를 교체했습니다.

SAS와 SATA는 동일한 드라이브 커넥터를 공유하며 전기적으로 호환됩니다. SAS 컨트롤러는 SAS 및 SATA 장치와 모두 통신할 수 있지만 SAS 드라이브는 SATA 전용 컨트롤러와 함께 사용할 수 없습니다. 차이점은 협상이며 케이블 양쪽 끝에 있는 장치가 통신하는 내용을 파악한 후에 사용할 수 있는 명령입니다.

실제로 많은 "SATA RAID" 컨트롤러는 실제로 SAS RAID 컨트롤러입니다. 이러한 컨트롤러에는 일반적으로 하나 이상의SFF-8087카드에는 SAS 결합 커넥터가 있지만 SFF-8087 - 4× SATA 브레이크아웃 케이블을 사용하여 SATA 드라이브를 카드에 연결할 수 있습니다. 따라서 두 개의 SFF-8087 결합 커넥터가 있는 SAS/SATA RAID 카드는 최대 8개의 드라이브를 제어할 수 있습니다.

또 다른 일반적인 상황은 핫스왑 가능한 드라이브 인클로저 또는 SAS가 있는 컴퓨터 인클로저입니다.백플레인. 일반적으로 백플레인에는 SFF-8087 커넥터가 있어 간단한 8087~8087 케이블을 백플레인에서 디스크 컨트롤러까지 연결할 수 있습니다. 핫 스왑 가능한 트레이의 드라이브가 SATA라면 상관없습니다. SAS 컨트롤러는 드라이브를 SAS 후면판에 연결하는 드라이브 슬레드에 있으므로 SAS 케이블을 통해 통신할 수 있습니다. 그러나 이러한 드라이브는 여전히 SATA 드라이브이며 SCSI가 아닌 ATA 프로토콜을 사용합니다.

ATAPI가 SCSI용 패키지라는 것도 알고 있습니다.

맞습니다. 하지만 ATAPI는 기기 전용입니다.다른하드 드라이브보다 표준이 존재하는 주된 이유는 ATA 인터페이스가 테이프 드라이브의 스트리밍 데이터 명령, 광학 드라이브의 "미디어 꺼내기" 명령 또는 CD 오디오 디스크의 "트랙 재생" 명령과 같은 SCSI 명령을 전송할 수 있도록 하기 위한 것입니다.

ATAPI를 통해 SCSI를 전송하는 데 사용된 비HDD 장치가 사라지거나 다른 인터페이스로 이동함에 따라 이 사실은 덜 중요해졌습니다. 저가형 테이프 드라이브는 더 이상 존재하지 않으므로 이제 테이프 드라이브는 모두 SAS입니다. 4 요즘 거의 모든 스캐너에는 USB 인터페이스가 있습니다.광학 미디어 드라이브USB 연결을 선호하여 컴퓨터 케이스에서 벗어나거나 완전히 사라지고 점점 더 희귀해지는 ATAPI 지원 내부 광학 드라이브만 남습니다.

그럼에도 불구하고 ATAPI를 통해 SCSI를 이해하는 SATA 장치는 제한된 방식으로만 "SCSI 장치"일 뿐입니다. 이러한 장치는 대부분의 이점을 얻지 못합니다.SATA 대비 SAS의 장점. ATAPI임에도 불구하고 이러한 기능은 SAS를 SATA에 비해 확실한 가치로 만듭니다.

자동차에 비유하자면, 타원형 트랙에서 내 차를 달릴 수 있다는 사실이 그것이 경주용 자동차라는 의미는 아닙니다.

NCQ, FUA, DPO 등과 같은 SCSI 기능(기억이 정확하다면)이 SCSI에서 채택되었다는 것을 알았습니다. 그러나 SCSI 명령 세트 중 "얼마나"가 실제로 공유되거나 유사한지는 확실하지 않습니다.

대부분의 경우 이것은 저가형 모방에 해당합니다.NCQ와 TCQ는 다릅니다, 예를 들어. 드라이브가 SAS 장치인 경우 TCQ가 있는 드라이브만 얻을 수 있습니다. NCQ 지원 SATA 드라이브를 SAS 컨트롤러에 연결하면 갑자기 TCQ 기능을 얻지 못합니다.

즉, 최신 SATA 장치는 10년 전의 SCSI 장치보다 훨씬 더 강력할 가능성이 높습니다. 확실히 더 높은 수준의 I/O를 지원할 수 있습니다.

이 모든 것이 혼란스럽고 중복됩니다. 왜냐하면 이것이 PC 하드웨어 세계의 특성이기 때문입니다. 광학 드라이브 제조업체(하나의 하위 산업에만 해당)는 실제로 두 개의 완전히 다른 드라이브(하나는 최고 성능의 SAS를 사용하고 다른 하나는 SATA를 사용)를 만들고 싶어하지 않기 때문에 명확한 선이 없습니다. 그래서 그들은 타협했습니다. 그들은 SAS 버스에 SATA 드라이브를 장착할 수 있는 단일 표준을 만들기 위해 이러한 표준을 정의하는 위원회에 로비를 했고 모두가 매우 기뻐했습니다.

이에 대한 명확한 정보, 특히 Linux 커널과의 관계는 어디에서 찾을 수 있습니까?

궁극적으로 당신이 원하는Linux 소스 코드 읽기. 이것libATA개발자 가이드또한 도움이 될 것입니다.

나는 이것이 어떻게 작동하는지에 대한 간단한 요약을 모릅니다. 그 디자인은 쉽지 않습니다. 이는 30년 간의 하드웨어 개발, 경쟁 표준 및 다양한 목표를 수용하도록 설계되었습니다. 게다가 그 디자인에는 마술적인 선견지명이 부족했습니다. 한마디로 엉망이다. 혼란이 어떻게 작동하는지 정말로 알아야 하는 유일한 사람은 운영 체제 커널을 구축하는 사람, 하드웨어를 설계하는 사람, 그리고 그 정도는 덜하지만 운영 체제 커널용 드라이버를 작성하는 사람입니다. 이렇게 작지만 엘리트 간부 팀의 경우 표준과 작업 사양이면 충분합니다.

오늘날 Linux에서는 대부분의 재기록 가능한 대용량 저장 장치를 "대량 저장 장치"라고 부릅니다 /dev/sd?. "SD"는 한때 "SCSI 디스크"를 의미했는데, 이는 /dev/hd?"하드 디스크"의 일반적인 의미와 구별하기 위해 존재했지만 대부분의 경우 PATA를 암시합니다. 이러한 구별은 오늘날에는 또 다른 관련 없는 문제입니다. 이제 SSD, USB 썸 드라이브,가상 하드 디스크,iSCSI/dev/sd?"SD"를 "저장 장치"의 줄임말로 생각하고 장치가 SATA 대신 ATA를 지원하는지 걱정하시기 바랍니다 .이더넷을 통한 ATA,USB를 통한 SCSI, ATAPI를 통한 SCSI, SAS를 통한 SCSI, IP를 통한 SCSI(iSCSI) 등이 있습니다.

핵심 문제는 명명 체계가 체계 뒤에 숨은 이유보다 오래 지속되는 경향이 있다는 것입니다. 에서 이를 볼 수 있습니다 /dev/scd0. 오늘날 노드에 연결된 장치는 /dev광학 드라이브보다 DVD 또는 Blu-ray 드라이브일 가능성이 높습니다.

/dev각 노드에 연결된 장치의 정확한 유형을 기반으로 각 노드의 이름을 지정하는 대체 접근 방식에는 고유한 문제가 있습니다. /dev노드가 사용하는 하위 수준 프로토콜을 기반으로 노드 이름을 지정 하면 정말 좋을까요? /dev/atapi0, /dev/sas0,등? 아니면 /dev/atapibluray0기다리는 걸 선호하시나요? 멀티미디어 드라이브는 어떻습니까? /dev/atapicd0Blu-ray 드라이브에 디스크를 삽입하는 경우에도 동일한 드라이버를 노출해야 합니까? 혼란스러운 계획을 다른 계획으로 바꾸는 것뿐입니다.

Linux /dev/sd?추상화는 완벽하지는 않지만 유용합니다. 예를 들어, /dev/sda이름 뒤의 케이블 연결, 인터페이스 프로토콜 및 미디어에 대해 걱정할 필요 없이 이름이 부팅 드라이브일 가능성이 높다는 것을 알 수 있습니다 . 특정 Linux 상자에 시스템 드라이브, 광학 드라이브, 때로는 USB 썸 드라이브가 연결되어 있다고 말하면 해당 드라이브가 /dev/sda, /dev/sdb및 이라고 불릴 것이라고 확신할 수 있습니다 /dev/sdc.


각주:

  1. SCSI와 ATA는 원래 동일한 상위 표준 조직을 공유하지 않았습니다. 원래는 독점 하드 드라이브 컨트롤러였습니다. SCSI 출신슈가르트 협회'사시, 그리고 ATA/IDE의 탄생이후 디자인 협업Western Digital, Compaq 및 CDC 사이.

    미국 국립표준협회둘 다 나중에 표준화되었으며 약 8년 후에 ATA-1이 SCSI-1의 뒤를 따랐습니다.

    INCITS 예ANSI 자매단체. INCITS는 US ANSI를 통해 최종 표준을 발표하고,ISO/IEC JTC 1세계적인.

  2. 현재 표준은토-3, 2015년 5월 출판, SAT-4 및 SAT-5 포함진행 중이 글은 2018년 7월 중순에 쓴 글입니다. 후자의 링크를 클릭하면 진행 중인 버전의 초안으로 이동됩니다.

  3. 나는 무시한다SATA 포트 승수,SAS 확장기, 등.

  4. 이전 병렬 SCSI 시스템과의 호환성을 위해 설계된 모델은 예외입니다.

관련 정보