SCSI dan ATA adalah standar yang sama sekali berbeda. Keduanya saat ini dikembangkan di bawah naungan organisasi standar INCIT tetapi oleh kelompok yang berbeda. SCSI berada di bawah komite teknis T10 , sementara ATA di bawah T13 . 1
ATA dirancang dengan mempertimbangkan hard disk drive. SCSI lebih luas dan lebih tua, menjadi cara standar untuk mengendalikan perangkat penyimpanan massal, tape drive, drive media optik yang dapat dilepas (CD, DVD, Blu-Ray ...), pemindai, dan banyak jenis perangkat lainnya .
Itu tidak jelas pada pertengahan 1980-an - ketika IDE diperkenalkan ke dunia PC - bahwa SCSI akan terdorong ke batas dunia komputasi. SCSI mapan dan lebih mampu. Unix workstation dan komputer Macintosh dikirimkan bersama hard disk SCSI selama beberapa dekade. PC kelas atas sering memiliki kartu SCSI untuk periferal setidaknya, dan sering juga untuk HDD sistem. CD-ROM dan tape drive awal untuk komputer pribadi keluar dalam bentuk SCSI terlebih dahulu.
Namun, industri PC menjadi seperti itu, ada dorongan untuk menggunakan standar ATA yang lebih murah daripada SCSI. Kompromi awal disebut ATAPI , ekstensi ke ATA yang memungkinkan perangkat yang memahami SCSI secara internal untuk menerima perintah-perintah SCSI melalui antarmuka ATA. Lebih lanjut tentang ini di bawah ini.
Beberapa tahun kemudian, SCSI mendapat fitur pass-through perintah ATA , pada dasarnya kebalikan dari ATAPI, memungkinkan perintah ATA melalui bus SCSI. Satu kegunaan untuk fasilitas ini adalah untuk tunnel perintah ATA SMART melalui SCSI. smartmontools
lakukan ini , misalnya.
Kemudian, komite INCITS T10 mengembangkan standar yang disebut Terjemahan SCSI / ATA (SAT), yang menerjemahkan perintah SCSI ke perintah ATA dan sebaliknya. 2 libata
Pustaka kernel Linux menyediakan implementasi SAT untuk Linux, antara lain .
Ada beberapa tumpang tindih logis dalam protokol SCSI dan ATA, karena keduanya mengontrol hard disk drive. Keduanya jelas membutuhkan cara untuk mencari ke sektor hard drive tertentu, mengambil konten sektor itu, dll. Namun demikian, format perintahnya sama sekali berbeda; jika tidak, kita tidak akan membutuhkan mekanisme penerjemahan dan pass-through ini.
SATA sebenarnya "berbicara" SCSI
Itu hampir sama dengan pernyataan bahwa "Mobil berwarna merah muda." Beberapa mobil berwarna merah muda.
ATAPI, ATA pass-through, dan SAT hanya bagian dari cerita. Baca terus.
Saya berasumsi bahwa mereka berbeda pada lapisan fisik, karena mereka tidak berbagi kabel yang kompatibel.
Itu benar di dunia SCSI paralel lama , tetapi sama seperti SATA menggantikan PATA, SAS menggantikan SCSI paralel.
SAS dan SATA berbagi konektor drive yang sama, dan keduanya kompatibel secara elektrik. Pengontrol SAS dapat berbicara dengan perangkat SAS dan SATA, tetapi drive SAS tidak dapat bekerja dengan pengontrol hanya-SATA. Perbedaannya adalah dalam negosiasi, dan dalam perintah yang dapat Anda gunakan setelah perangkat di setiap ujung kabel mengetahui apa yang mereka bicarakan.
Faktanya, banyak pengontrol "SATA RAID" benar-benar pengontrol SAS RAID. Pengontrol seperti itu sering memiliki satu atau lebih konektor kawin SFF-8087 SAS pada kartu, tetapi Anda dapat menghubungkan drive SATA ke mereka dengan kabel pelarian SFF-8087 hingga 4 × SATA. Jadi, kartu SAS / SATA RAID dengan dua konektor kawin SFF-8087 mengontrol hingga 8 drive. 3
Situasi umum lainnya adalah casing hot-swap drive atau casing komputer dengan SAS backplane . Backplane biasanya memiliki konektor SFF-8087 di atasnya, memungkinkan penggunaan kabel 8087-ke-8087 sederhana dari backplane ke pengontrol disk. Jika drive dalam nampan hot-swap adalah SATA, itu tidak masalah. Pengontrol SAS dapat berbicara dengan mereka melalui pemasangan kabel SAS, karena mereka duduk di sleds drive yang menghubungkan drive ke SAS backplane. Drive masih drive SATA, berbicara protokol ATA, bukan SCSI.
Saya juga tahu bahwa ATAPI adalah enkapsulasi untuk SCSI
Benar, tapi ATAPI hanya digunakan untuk perangkat lain selain hard disk drive. Alasan utama standar ini ada adalah untuk memungkinkan antarmuka ATA untuk mengangkut perintah SCSI seperti perintah data streaming untuk tape drive, perintah "eject media" untuk drive disk optik, atau perintah "play track" untuk disk audio CD .
Fakta ini menjadi kurang relevan karena perangkat non-HDD yang digunakan untuk berbicara SCSI melalui ATAPI menghilang atau beralih ke antarmuka lain. Tape drive low-end tidak ada lagi, jadi tape drive semuanya SAS sekarang. 4 Scanner cukup banyak USB-hanya hari ini. Drive media optik bergerak di luar kasing komputer untuk dihubungkan melalui USB, atau menghilang seluruhnya, hanya menyisakan drive optik internal yang semakin jarang berbicara dengan ATAPI.
Apapun, perangkat SATA yang memahami SCSI melalui ATAPI adalah "perangkat SCSI" hanya secara terbatas. Perangkat semacam itu tidak akan mendapat manfaat dari sebagian besar keunggulan SAS dibandingkan SCSI . Kemampuan ini membuat SAS jelas berharga dibandingkan dengan SATA, walaupun ATAPI.
Jika Anda ingin analogi mobil lain, fakta bahwa saya dapat menjalankan mobil saya di lintasan balap oval tidak menjadikannya mobil balap.
Saya perhatikan bahwa fitur dari SCSI seperti NCQ, FUA, DPO, dll (jika saya tidak salah ingat) telah diadopsi dari SCSI. Tetapi tidak jelas berapa "banyak" dari set perintah SCSI sebenarnya dibagikan atau serupa.
Sebagian besar ini sama dengan mimikri kelas bawah. NCQ tidak sama dengan TCQ , misalnya. Anda hanya akan mendapatkan hard drive dengan TCQ jika itu adalah perangkat SAS. Colokkan drive SATA yang berkemampuan NCQ ke controller SAS, dan itu tidak tiba-tiba mendapatkan kemampuan TCQ.
Yang mengatakan, perangkat SATA modern mungkin jauh lebih mampu daripada perangkat SCSI dari satu dekade lalu. Ini tentu akan mampu tingkat I / O yang jauh lebih tinggi.
Semua ini membingungkan dan tumpang tindih karena itulah sifat dunia perangkat keras PC. Tidak ada garis yang jelas karena produsen drive optik - hanya untuk memilih pada satu sub-industri - benar-benar tidak ingin membangun dua drive yang sama sekali berbeda, satu berbicara SAS dengan ekspresi tertinggi, dan yang lain berbicara SATA. Jadi, mereka berkompromi. Mereka melobi di komite yang mendefinisikan standar seperti itu untuk menciptakan standar tunggal yang memungkinkan mereka menjatuhkan drive SATA mereka pada bus SAS, dan kebanyakan orang senang.
Di mana saya dapat menemukan beberapa informasi yang jelas tentang ini, dan terutama bagaimana hubungannya dengan kernel Linux?
Pada akhirnya, Anda ingin membaca sumber-sumber Linux . Panduan libATA
Pengembang juga harus membantu.
Saya tidak mengetahui ringkasan mudah tentang bagaimana semua ini bekerja. Itu tidak dirancang agar mudah. Itu dirancang untuk mengakomodasi tiga dekade evolusi perangkat keras, standar yang bersaing, dan tujuan yang berbeda. Lebih lanjut, itu dirancang tanpa tingkat pandangan ke depan magis. Singkatnya, ini berantakan. Satu-satunya orang yang benar-benar harus tahu cara kerja kekacauan adalah mereka yang membangun kernel OS, mereka yang merancang perangkat keras, dan pada tingkat lebih rendah, mereka yang menulis driver untuk kernel OS. Untuk kader kecil yang terdiri atas orang-orang berkemampuan tinggi, standar dan kode kerja sudah cukup.
Saat ini, Linux menyebut sebagian besar perangkat penyimpanan massal yang dapat ditulis ulang /dev/sd?
. "SD" pernah berdiri untuk "disk SCSI," dan ada hanya untuk membedakan dari yang /dev/hd?
secara umum berarti "Hard Disk," tetapi menyiratkan PATA dalam banyak kasus. Perbedaan ini adalah ketidakrelevanan praktis lainnya saat ini. Sekarang kami memiliki SSD, USB thumb drive, hard drive virtual , perangkat iSCSI dan banyak lagi yang disebut /dev/sd?
. Saya sarankan Anda mulai menganggap "SD" sebagai kependekan dari "perangkat penyimpanan," daripada mengkhawatirkan apakah perangkat berbicara ATA melalui SATA, ATA melalui Ethernet , SCSI melalui USB , SCSI melalui ATAPI, SCSI melalui SAS, SCSI melalui IP (iSCSI ), atau apa yang Anda miliki.
Masalah intinya adalah bahwa skema penamaan sering kali lebih lama dari alasan di balik skema tersebut. Anda lihat dalam ini /dev/scd0
. Perangkat yang terhubung ke /dev
simpul itu lebih cenderung berupa drive DVD atau Blu-Ray daripada drive Compact Disc saat ini.
Alternatif - tempat Anda memberi nama setiap /dev
node setelah jenis perangkat yang terhubung - memiliki masalah sendiri. Apakah ini benar-benar lebih baik jika kita menamai /dev
node tersebut setelah protokol tingkat rendah yang digunakannya? /dev/atapi0
,, /dev/sas0
dll? Atau mungkin Anda lebih suka /dev/atapibluray0
dan semacamnya? Bagaimana dengan drive multi-media? Apakah driver yang sama juga perlu diekspos /dev/atapicd0
jika Anda memasukkan Compact Disc ke drive Blu-Ray? Itu hanya menggantikan satu skema yang membingungkan dengan yang lain.
/dev/sd?
Abstraksi Linux tidak sempurna, tetapi bermanfaat. Misalnya, Anda dapat mempelajari fakta bahwa /dev/sda
kemungkinan besar boot drive tanpa perlu khawatir tentang kabel, protokol antarmuka, dan media apa yang ada di balik nama itu. Jika saya memberi tahu Anda bahwa kotak Linux tertentu memiliki drive sistem tunggal, drive optik, dan kadang-kadang USB thumb drive dicolokkan ke dalamnya, Anda dapat dengan yakin menebak bahwa mereka dipanggil /dev/sda
, /dev/sdb
dan /dev/sdc
, masing-masing.
Catatan kaki :
SCSI dan ATA tidak memulai berbagi organisasi standar induk. Keduanya dimulai sebagai pengontrol hard disk yang dipatenkan. SCSI berevolusi dari Shugart Associates ' SASI , dan ATA / IDE keluar dari kolaborasi desain yang jauh lebih baru antara Western Digital, Compaq dan CDC.
ANSI kemudian membuat standar keduanya, dengan ATA-1 mengikuti SCSI-1 sekitar 8 tahun kemudian.
INCIT adalah sejenis organisasi saudara untuk ANSI . INCIT menerbitkan standar akhir melalui ANSI di AS, dan ISO / IEC JTC 1 di seluruh dunia.
Standar saat ini adalah SAT-3 , diterbitkan pada Mei 2015, dengan SAT-4 dan SAT-5 sedang berlangsung saat saya menulis ini pada pertengahan Juli 2018. Tautan terakhir membawa Anda ke konsep versi dalam proses.
Saya mengabaikan pengganda port SATA , ekspander SAS , dll.
Kecuali model yang dibuat untuk kompatibilitas dengan sistem SCSI paralel lama.
/dev/sd?
abstraksi Linux .