SATA - e-SATA

Theodoros V. Kalamatianos thkala at softlab.ece.ntua.gr
Thu Oct 21 14:35:50 EEST 2010


On Thu, 21 Oct 2010, Nick Demou wrote:

> 2010/10/19 Theodoros V. Kalamatianos <thkala at softlab.ece.ntua.gr>
>       [...]
>       Το AHCI αφορά περισσότερο την επικοινωνία υπολογιστή/ελεγκτή παρά την επικοινωνία ελεγκτή/δίσκου.
> 
> Θοδωρή νομίζω ότι σε αυτό κάνεις λάθος.

Δεν νομίζω :-)

> Παραθέτω τις 3εις πρώτες γραμμές από το "Serial ATA AHCI 1.0 
> Specification":
>
> # 1 Introduction
> #
> # 1.1 Overview
> #
> # AHCI describes a PCI class device that acts as an interface between 
> system memory and SATA devices.

Ακριβώς. Το AHCI είναι host-controller interface, όπως λέει και το όνομά 
του. Προτυποποιεί τους καταχωρητές και τη δομή του ελεγκτή έτσι ώστε να 
υπάρχει ένα κοινό interface για το λογισμικό. Δες και την περίληψη στο

http://www.intel.com/technology/serialata/ahci.htm

To AHCI δεν ειναι μέρος του SATA specification, όπως και το OHCI δεν ειναι 
μέρος του προτύπου ΙΕΕΕ-1394. Στο κείμενο των εκδόσεων 1.0a και 2.6 του 
SATA specification που έχω δει το AHCI δεν αναφέρεται καν.

Πριν το AHCI προτυποποιηθεί διάφοροι κατασκευαστές ελεγκτών SATA είχαν 
αναπτύξει τα δικά τους interfaces για να ξεφύγουν από το IDE emulation.

Άλλοι κατασκευαστές εξακολουθούν να παράγουν κάρτες SATA με άλλο interface 
για λόγους απόδοσης (π.χ. σε ακριβές κάρτες RAID), κόστους (το AHCI είναι 
πνευματική ιδιοκτησία της Intel, με τα ανάλογα royalties), ΝΙΗ και άλλους.

Αυτός είναι και ο λόγος που το Linux έχει και άλλους οδηγούς για ελεγκτές 
SATA εκτός του AHCI. Δες και το

https://ata.wiki.kernel.org/index.php/Hardware,_driver_status

Αναγνωρίζω όμως ότι το AHCI είναι το defacto πρότυπο που θα συναντήσει 
κανείς στις περισσότερες περιπτώσεις.

> Επίσης αφήνεις να εννοηθεί ότι hot pluging μπορείς να έχεις μόνο με 
> eSATA ενώ κάτι τέτοιο δεν ισχύει. Στο ίδιο specification του AHCI (λίγες 
> γραμμές παρακάτω) θα δεις ότι έχει το Hot Pluging στα βασικά features 
> χωρίς να έχει καμιά αναφορά στο eSATA.

Α. το AHCI είναι σε υψηλότερο επίπεδο από το SATA, οπότε περιλαμβάνει 
πράγματα που είναι προαιρετικά στο SATA αυτό καθεαυτό, ενώ δεν το 
ενδιαφέρουν καθόλου οι λεπτομέρειες του φυσικού επιπέδου του SATA.

Β. το AHCI δεν είναι το μοναδικό HCI για ελεγκτές SATA. Υπάρχουν 
παλαιότεροι ελεγκτές με ελλιπή υποστήριξη hot-plug. Ο λόγος; Δες το (C).

C. Το SATA επιβάλλει υποστήριξη hot-plug μόνο σε συσκευές Gen[123][mx] 
(ναι, regular expression), δηλαδή μόνο σε συσκευές που μπορεί να είναι 
εξωτερικές ή να μπουν σε backplane. Εδώ βρίσκονται όλοι ο δίσκοι και οι 
συσκευές eSATA. Για συσκευές με "cable interface" (Gen[123]i) όπως είναι 
όλοι οι ελεγκτές το hot-plug είναι προαιρετικό.

D. Για το λόγο αυτό τα βύσματα στις μητρικές και στα τροφοδοτικά δεν είναι 
hot-plug compatible. Επειδή όμως μπορεί σε αυτά να συνδέσεις backplane 
(π.χ. ένα hot-swap bay), οι περισσότεροι κατασκευαστές ελεγκτών φροντίζουν 
τα ηλεκτρονικά τους να το υποστηρίζουν. Δυστυχώς όμως δεν το υποστήριζαν 
πάντα όλοι ο ελεγκτές - και εντελώς τυπικά εξακολουθούν να είναι στο 
γράμμα του προτύπου, αν και όχι στο πνεύμα του.

E. Εκτός από το eSATA, βύσματα σχεδιασμένα για hot-plug θα βρεις κατά 
κανόνα μόνο σε hot-swap bays. Τα βύσματα αυτά δίνουν "ταυτόχρονα" ρεύμα 
και δεδομένα - στην πραγματικότητα συνδέουν πρώτα τη γείωση, μετά το ρεύμα 
και μετά τα δεδομένα και αποσυνδέονται αντίστροφα.

Έχω δει τέτοια βύσματα για χρήση στο εσωτερικό του κουτιού χωρίς bay, 
αλλά:

1. τα έχω βρει μόνο σε σελίδες στο Διαδίκτυο

2. είναι πανάκριβα σε σχέση με απλά καλώδια SATA και μερικές φορές μπορεί 
να πλησιάζουν το κόστος ενός bay.

3. έχουν το πλάτος ενός συνδυασμένου βύσματος power/data όπως αυτά των 
bays, με ένα καλώδιο SATA να πηγαίνει στον ελεγκτή και μια υποδοχή για το 
βύσμα του ρεύματος από το τροφοδοτικό. Το πρόβλημα είναι ότι πιάνουν 
επιπλέον χώρο πίσω από το δίσκο. Δεν ξέρω πώς είναι τα δικά σας κουτιά, 
αλλά στο δικό μου κάτι τέτοιο δύσκολα θα χωρούσε.

3. δυσκολεύομαι να σκεφτώ περίπτωση όπου μπορεί να χρειάζεται κανείς κάτι 
τέτοιο, αφού:

α. Για περιπτώσεις συστηματικού swapping είναι μακράν καλύτερα τα bays. 
Για αντικατάσταση χαλασμένων δίσκων (π.χ. RAID) αρκούν και τα trayless. 
Για επαγγελματικές εφαρμογές (backup, data recovery κλπ) είναι καλύτερα 
αυτά με tray - οι δίσκοι είναι πιο σταθεροί, και έχεις καλύτερη απαγωγή 
θερμότητας στο σασί. Extra πόντοι αν έχουν caddy για ακόμα καλύτερη 
προστασία του δίσκου όταν βγει από το bay - αυτό συνήθως το βρίσκεις μόνο 
σε μαμίσιους δίσκους για rack-mount servers.

β. Σε πολλά (φθηνά & μέσα) κουτιά είναι σχεδόν αδύνατον να αφαιρέσεις 
δίσκο χωρίς να κλείσεις το PC. Είτε γιατί οι δίσκοι βρίσκουν στις κάρτες 
PCI, είτε γιατί φοβάσαι μην σου πάρει κανά δάχτυλο κανάς ανεμιστήρας, είτε 
γιατί πρέπει να διαλύσεις το μισό κουτί για να τους βγάλεις. Άσε που 
τραντάγματα, κατσαβίδια και ιδρωμένα δάχτυλα δεν είναι και ό,τι καλύτερο 
για ένα αναμμένο σύστημα.

γ. Αν στο κουτί έχεις το χώρο για τις μανούβρες του hot-swapping με 
καλώδια, κατά 99% έχεις το χώρο και για ένα bay. Οπότε γυρνάμε στο (α).

δ. Αν η μέθοδος hot-swapping για την οποία προορίζονται είναι με ένα μάτσο 
δίσκους κρεμασμένους σαν πλοκάμια δίπλα σε ένα ανοικτό κουτί, ελπίζω 
πραγματικά να μην πρόκειται για σύστημα παραγωγής.

Η μόνη περίπτωση χρήσης που μπορώ να φανταστώ για τέτοια καλώδια είναι σε 
υπηρεσίες υποστήριξης όπου μπορεί για κάποιο λόγο να θέλουν να κάνουν 
hot-swap στο μηχάνημα ενός πελάτη αλά (δ).

Τώρα από εκεί και πέρα, οι περισσότεροι ελεγκτές και δίσκοι μάλλον έχουν 
αρκετές ανοχές ώστε να μπορεί να γίνει hot-swapping με οποιοδήποτε καλώδιο 
υπάρχει, αλλά τότε κανείς δεν εγγυάται τίποτα.

Αυτά (τα όχι-και-τόσο-ολίγα) :-)

Φιλικά,

Θοδωρής


More information about the Linux-greek-users mailing list