SCSI และ ATA นั้นมีมาตรฐานที่แตกต่างกันอย่างสิ้นเชิง พวกเขากำลังพัฒนาภายใต้การอุปถัมภ์ขององค์กรมาตรฐานINCITSแต่โดยกลุ่มต่าง ๆ SCSI อยู่ภายใต้คณะกรรมการด้านเทคนิคT10ขณะ ATA อยู่ภายใต้T13 1
ATA ได้รับการออกแบบโดยคำนึงถึงฮาร์ดดิสก์เป็นหลักเท่านั้น SCSI เป็นทั้งกว้างและรุ่นเก่าเป็นวิธีมาตรฐานในการควบคุมอุปกรณ์เก็บข้อมูลขนาดใหญ่, เทปไดรฟ์แบบถอดได้ไดรฟ์สื่อแสง (CD, DVD, Blu-Ray ... ), สแกนเนอร์และหลายประเภทอุปกรณ์อื่น ๆ
มันไม่ชัดเจนในช่วงกลางทศวรรษ 1980 - เมื่อ IDE ถูกนำเข้าสู่โลก PC - SCSI จะถูกผลักไปสู่ระยะขอบของโลกคอมพิวเตอร์ SCSI มีชื่อเสียงและมีความสามารถมากขึ้น เวิร์กสเตชัน Unixและคอมพิวเตอร์Macintosh ที่จัดส่งมาพร้อมกับฮาร์ดดิสก์ไดรฟ์ SCSI มานานหลายทศวรรษ พีซีระดับสูงมักจะมีการ์ด SCSI สำหรับอุปกรณ์ต่อพ่วงเป็นอย่างน้อยและสำหรับ HDD ระบบเช่นกัน ซีดีรอมและเทปไดร์ฟต้นสำหรับคอมพิวเตอร์ส่วนบุคคลออกมาในรูปแบบ SCSI ก่อน
อย่างไรก็ตามอุตสาหกรรมพีซีเป็นสิ่งที่เป็นอยู่แม้ว่าจะมีการผลักดันให้ใช้มาตรฐาน ATA ที่ราคาถูกกว่าแทน SCSI การประนีประนอมเบื้องต้นนั้นเรียกว่าATAPIซึ่งเป็นส่วนขยายของ ATA ที่อนุญาตให้อุปกรณ์ที่เข้าใจ SCSI ภายในเพื่อรับคำสั่ง SCSI ภายในผ่านอินเตอร์เฟส ATA เพิ่มเติมเกี่ยวกับเรื่องนี้ด้านล่าง
หลายปีต่อมา SCSI ได้รับคุณสมบัติการส่งผ่านคำสั่ง ATAโดยพื้นฐานแล้วสิ่งที่ตรงกันข้ามกับ ATAPI ทำให้สามารถสั่งคำสั่ง ATA ผ่านบัส SCSI ได้ สิ่งหนึ่งที่ใช้สำหรับสิ่งอำนวยความสะดวกนี้คือการใช้คำสั่งทันเนล ATA SMARTผ่าน SCSI smartmontools
ทำสิ่งนี้เช่น
ต่อมาคณะกรรมการ INCITS T10 ได้พัฒนามาตรฐานที่เรียกว่าการแปล SCSI / ATA (SAT) ซึ่งแปลคำสั่ง SCSI ไปเป็นคำสั่ง ATA และในทางกลับกัน 2ลินุกซ์เคอร์เนลของlibata
ห้องสมุดให้การดำเนินงานของ SAT สำหรับลินุกซ์ในหมู่สิ่งอื่น ๆ
มีการเหลื่อมกันแบบลอจิคัลในโพรโทคอล SCSI และ ATA เนื่องจากทั้งคู่ควบคุมฮาร์ดดิสก์ไดรฟ์ เห็นได้ชัดว่าทั้งสองต้องการวิธีในการค้นหาเซ็กเตอร์ฮาร์ดไดรฟ์เรียกเนื้อหาของเซกเตอร์ ฯลฯ อย่างไรก็ตามรูปแบบคำสั่งนั้นแตกต่างกันโดยสิ้นเชิง ไม่เช่นนั้นเราไม่จำเป็นต้องใช้กลไกการแปลและการส่งต่อเหล่านี้
SATA จริง "พูดถึง" SCSI
นั่นเป็นเรื่องจริงตามที่ยืนยันว่า "รถยนต์เป็นสีชมพู" รถยนต์บางคันเป็นสีชมพู
ATAPI, ATA pass-through และ SAT เป็นเพียงส่วนหนึ่งของเรื่องราว อ่านต่อ.
ฉันคิดว่ามันใช้เพื่อยอมรับว่าพวกเขาแตกต่างกันในชั้นกายภาพเนื่องจากพวกเขาไม่ได้ใช้สายเคเบิลที่ใช้ร่วมกันได้
นั่นเป็นความจริงในโลกSCSI แบบขนานเก่าแต่เช่นเดียวกับ SATA แทนที่ PATA, SASแทนที่ SCSI แบบขนาน
SAS และ SATA ใช้ตัวเชื่อมต่อไดรฟ์เดียวกันและเข้ากันได้กับระบบไฟฟ้า คอนโทรลเลอร์ SAS สามารถพูดคุยกับอุปกรณ์ SAS และ SATA ได้ แต่ไดรฟ์ SAS ไม่สามารถทำงานกับคอนโทรลเลอร์ SATA เท่านั้น ความแตกต่างคือในการเจรจาและในคำสั่งที่คุณสามารถใช้หลังจากอุปกรณ์ที่ปลายแต่ละด้านของสายเคเบิลระบุว่าพวกเขากำลังพูดถึงอะไร
ในความเป็นจริงคอนโทรลเลอร์ "SATA RAID" จำนวนมากเป็นคอนโทรลเลอร์ SAS RAID จริงๆ คอนโทรลเลอร์ดังกล่าวมักจะมีตัวเชื่อมต่อการผสมพันธุ์SFF-8087 SAS หนึ่งตัวหรือมากกว่านั้น แต่คุณสามารถเชื่อมต่อไดรฟ์ SATA เข้ากับพวกเขาได้ด้วยสายเคเบิลฝ่าวงล้อม SFF-8087 ถึง 4 × SATA ดังนั้นการ์ด SAS / SATA RAID ที่มีตัวเชื่อมต่อการผสมพันธุ์ SFF-8087 สองตัวควบคุมได้สูงสุด 8 ไดรฟ์ 3
อีกสถานการณ์ทั่วไปเป็นสิ่งที่แนบมาไดรฟ์ hot-swap หรือกรณีที่เครื่องคอมพิวเตอร์กับ SAS backplane แบ็คเพลนมักจะมีตัวเชื่อมต่อ SFF-8087 ที่สามารถใช้สายเคเบิล 8087-to-8087 อย่างง่ายจากแบ็คเพลนไปยังคอนโทรลเลอร์ของดิสก์ หากไดรฟ์ในถาด hot-swap เป็น SATA นั่นไม่ใช่เรื่องสำคัญ คอนโทรลเลอร์ SAS สามารถพูดคุยกับพวกเขาผ่านสายเคเบิล SAS ขณะที่พวกเขานั่งอยู่บนแคร่เลื่อนของไดรฟ์ที่เสียบไดรฟ์เข้ากับแบ็คเพลน SAS ไดรฟ์นั้นยังคงเป็นไดรฟ์ SATA แต่พูดถึงโปรโตคอล ATA ไม่ใช่ SCSI
ฉันยังรู้ว่า ATAPI เป็น encapsulation สำหรับ SCSI
จริง แต่ ATAPI ใช้สำหรับอุปกรณ์อื่นที่ไม่ใช่ฮาร์ดดิสก์เท่านั้น เหตุผลหลักที่มาตรฐานนี้มีอยู่คืออนุญาตให้อินเตอร์เฟส ATA ส่งคำสั่ง SCSI เช่นคำสั่งสตรีมข้อมูลสำหรับเทปไดร์ฟคำสั่ง "eject media" สำหรับออปติคัลดิสก์ไดรฟ์หรือคำสั่ง "play track" สำหรับแผ่นซีดีเพลง .
ความจริงเรื่องนี้มีความเกี่ยวข้องน้อยลงเนื่องจากอุปกรณ์ที่ไม่ใช่ HDD ที่ใช้พูด SCSI ผ่าน ATAPI นั้นหายไปหรือย้ายไปยังส่วนต่อประสานอื่น เทปไดร์ฟโลว์เอนด์ไม่มีอยู่แล้วเทปไดร์ฟจึงเป็น SAS ทั้งหมดในตอนนี้ 4เครื่องสแกนเนอร์เป็นแบบ USB เท่านั้นในปัจจุบัน สื่อออปติคัลไดรฟ์กำลังเคลื่อนที่นอกเคสคอมพิวเตอร์เพื่อเชื่อมต่อผ่าน USB หรือหายไปทั้งหมดทำให้เหลือเพียงออปติคัลไดรฟ์ภายในที่พูดยากขึ้นเรื่อย ๆ ที่พูดถึง ATAPI
ไม่ว่าอุปกรณ์ SATA ที่เข้าใจ SCSI ผ่าน ATAPI นั้นเป็น "อุปกรณ์ SCSI" ในทางที่ จำกัด เท่านั้น อุปกรณ์ดังกล่าวจะไม่ได้รับประโยชน์จากส่วนใหญ่ของข้อได้เปรียบของ SAS กว่า SCSI ความสามารถเหล่านี้ทำให้ SAS มีค่าอย่างชัดเจนเมื่อเทียบกับ SATA ATAPI ถึงแม้ว่า
หากคุณต้องการเปรียบเทียบรถคันอื่นความจริงที่ว่าฉันสามารถขับรถของฉันในสนามแข่งวงรีไม่ได้ทำให้มันเป็นรถแข่ง
ฉันสังเกตเห็นว่าฟีเจอร์จาก SCSI เช่น NCQ, FUA, DPO และอื่น ๆ (ถ้าฉันจำไม่ผิด) ได้ถูกนำมาใช้จาก SCSI แต่มันไม่ชัดเจนว่าชุดคำสั่ง "มาก" ของ SCSI นั้นถูกแชร์หรือคล้ายกัน
ส่วนใหญ่จำนวนนี้จะล้อเลียนต่ำสุด ตัวอย่างเช่นNCQ นั้นไม่เหมือนกับ TCQ คุณจะได้รับฮาร์ดไดรฟ์ที่มี TCQ หากเป็นอุปกรณ์ SAS เสียบไดรฟ์ SATA ที่ใช้งานได้กับ NCQ เข้ากับคอนโทรลเลอร์ SAS และไม่ได้รับความสามารถ TCQ ในทันที
ที่กล่าวว่าอุปกรณ์ SATA ที่ทันสมัยอาจมีความสามารถมากกว่าอุปกรณ์ SCSI เมื่อสิบปีที่แล้ว แน่นอนว่ามันจะมีความสามารถในระดับที่สูงขึ้นของ I / O
ทั้งหมดนี้ทำให้เกิดความสับสนและทับซ้อนกันเพราะนั่นคือลักษณะของโลกฮาร์ดแวร์พีซี ไม่มีเส้นที่ชัดเจนเนื่องจากผู้ผลิตออปติคัลไดรฟ์ - เพียงเพื่อเลือกในอุตสาหกรรมย่อย - ไม่ต้องการสร้างไดรฟ์ที่แตกต่างกันทั้งหมดสองตัว SAS หนึ่งตัวกำลังพูดถึงนิพจน์ที่สูงที่สุดและ SATA ที่พูดอีกตัว ดังนั้นพวกเขาประนีประนอม พวกเขาล็อบบี้ในคณะกรรมการที่กำหนดมาตรฐานดังกล่าวเพื่อสร้างมาตรฐานเดียวที่ช่วยให้พวกเขาวางไดรฟ์ SATA ของพวกเขาบนรถบัส SAS และทุกคนมีความสุขที่สุด
ฉันจะหาข้อมูลที่ชัดเจนเกี่ยวกับเรื่องนี้ได้อย่างไรและโดยเฉพาะอย่างยิ่งเกี่ยวข้องกับเคอร์เนล Linux อย่างไร
ในที่สุดคุณต้องการที่จะอ่านแหล่งที่มาของลินุกซ์ libATA
คู่มือนักพัฒนาซอฟต์แวร์ยังควรจะเป็นประโยชน์
ฉันไม่ได้ตระหนักถึงการสรุปง่ายๆว่าการทำงานทั้งหมดนี้เป็นอย่างไร มันไม่ได้ออกแบบมาให้ง่าย มันถูกออกแบบมาเพื่อรองรับสามทศวรรษของการพัฒนาฮาร์ดแวร์มาตรฐานการแข่งขันและเป้าหมายที่แตกต่างกัน นอกจากนี้ยังได้รับการออกแบบโดยไม่มีการคาดการณ์ล่วงหน้า ในระยะสั้นมันเป็นระเบียบ มีเพียงคนเดียวเท่านั้นที่ต้องรู้ว่าระเบียบทำงานอย่างไรพวกที่สร้างเมล็ด OS, ผู้ออกแบบฮาร์ดแวร์และในระดับที่น้อยกว่าพวกที่เขียนไดรเวอร์สำหรับเมล็ด OS สำหรับคนกลุ่มเล็กที่มีความสามารถสูงมาตรฐานและรหัสการทำงานก็เพียงพอแล้ว
/dev/sd?
วันนี้ลินุกซ์เรียกอุปกรณ์เก็บข้อมูลขนาดใหญ่ที่เขียนทับได้มากที่สุด "SD" ครั้งเดียว/dev/hd?
หมายถึง " ดิสก์ SCSI" และมีอยู่เพียงเพื่อแยกความแตกต่างจากความหมายทั่วไป "ฮาร์ดดิสก์" แต่หมายถึง PATA ในกรณีส่วนใหญ่ ความแตกต่างนี้เป็นสิ่งที่ไม่เกี่ยวข้องกับการปฏิบัติในปัจจุบัน ตอนนี้เรามี SSDs ไดรฟ์ USB หัวแม่มือฮาร์ดไดรฟ์เสมือน , iSCSI/dev/sd?
อุปกรณ์และเรียกอื่น ๆ ทั้งหมด ฉันขอแนะนำให้คุณเริ่มคิดว่า "SD" ย่อมาจาก "อุปกรณ์จัดเก็บข้อมูล" แทนที่จะกังวลว่าอุปกรณ์จะพูด ATA ผ่าน SATA, ATA ผ่าน Ethernet , SCSI ผ่าน USB , SCSI ผ่าน ATAPI, SCSI ผ่าน SAS, SCSI ผ่าน IP (iSCSI ) หรืออะไรที่มีคุณ
ปัญหาหลักคือแผนการตั้งชื่อมักจะอยู่ได้นานกว่าเหตุผลเบื้องหลังโครงร่าง /dev/scd0
คุณเห็นนี้ อุปกรณ์ที่เชื่อมต่อกับ/dev
โหนดนั้นมีแนวโน้มที่จะเป็นไดรฟ์ DVD หรือ Blu-Ray มากกว่าไดรฟ์ Compact Disc ในปัจจุบัน
ทางเลือก - ที่คุณตั้งชื่อแต่ละ/dev
โหนดหลังจากประเภทอุปกรณ์ที่แน่นอนที่เชื่อมต่อกับมัน - มีปัญหาของตัวเอง มันจะดีกว่านี้หรือไม่ถ้าเราตั้งชื่อ/dev
โหนดหลังจากใช้โปรโตคอลระดับต่ำ /dev/atapi0
, /dev/sas0
ฯลฯ หรือบางทีคุณอาจต้องการ/dev/atapibluray0
และเช่น? สิ่งที่เกี่ยวกับไดรฟ์มัลติมีเดีย? ต้องใช้ไดรเวอร์เดียวกันนี้/dev/atapicd0
ในกรณีที่คุณเลื่อนแผ่นคอมแพคดิสก์ลงในไดรฟ์ Blu-Ray หรือไม่? นั่นเป็นเพียงการแทนที่รูปแบบหนึ่งที่สับสนด้วยอีก
/dev/sd?
สิ่งที่เป็นนามธรรมของ Linux นั้นไม่สมบูรณ์แบบ แต่ก็มีประโยชน์ ตัวอย่างเช่นคุณสามารถเรียนรู้ข้อเท็จจริงที่/dev/sda
เป็นไปได้มากที่สุดว่าไดรฟ์สำหรับบูตโดยไม่ต้องกังวลว่าจะต้องเดินสายเคเบิลอินเทอร์เฟซโปรโตคอลและสื่อใดอยู่เบื้องหลังชื่อนั้น ถ้าผมบอกคุณได้ว่าได้รับกล่อง Linux มีไดรฟ์ระบบเดียวออปติคัลไดรฟ์และบางครั้งยังไดรฟ์ USB หัวแม่มือเสียบเข้ากับมันคุณมีความมั่นใจสามารถคาดเดาว่าพวกเขาจะเรียกว่า/dev/sda
, /dev/sdb
และ/dev/sdc
ตามลำดับ
เชิงอรรถ :
SCSI และ ATA ไม่ได้เริ่มต้นแบ่งปันองค์กรมาตรฐานหลัก พวกเขาทั้งคู่เริ่มต้นจากการเป็นผู้ควบคุมฮาร์ดดิสก์ที่เป็นกรรมสิทธิ์ SCSI วิวัฒนาการมาจากSASIของShugart Associatesและ ATA / IDE มาจากความร่วมมือในการออกแบบระหว่าง Western Digital, Compaq และ CDC
ANSI มาตรฐานในภายหลังทั้งสองด้วย ATA-1 ตาม SCSI-1 ประมาณ 8 ปีต่อมา
INCITS เป็นชนิดขององค์กรน้องสาว ANSI INCITS เผยแพร่มาตรฐานขั้นสุดท้ายผ่าน ANSI ในสหรัฐอเมริกาและISO / IEC JTC 1ทั่วโลก
มาตรฐานปัจจุบันคือSAT-3 ที่เผยแพร่ในเดือนพฤษภาคม 2558 โดยมี SAT-4 และ SAT-5 อยู่ระหว่างดำเนินการเนื่องจากฉันเขียนสิ่งนี้ในกลางเดือนกรกฎาคม 2561 ลิงก์หลังนำคุณไปสู่ร่างฉบับที่กำลังดำเนินการ
ฉันไม่สนใจตัวคูณพอร์ต SATA , อุปกรณ์ขยาย SASฯลฯ
ยกเว้นรุ่นที่สร้างขึ้นเพื่อความเข้ากันได้กับระบบ SCSI แบบขนานเก่า