funktioniert "atacontrol attach" als hotplug

Frank

Anfänger
Hallo,

kann ich gefahrlos einen Festplattenwechselrahmen an einen sata-Port hängen
und dann im laufenden Betrieb:

Festplatte in den Rahmen schieben

# atacontrol attach ata_irgendwas
# mount /dev/irgendwas /mnt_backup
# cp /wichtigedaten /mnt_backup
# umount /dev/irgendwas
# atacontrol dettach atairgenwas

Festplatte aus dem Rahmen ziehen

Oder ist das keine gute Idee.
Es hat funktioniert.
Ich Frage mich nur ob es der Platte oder den Daten auf Dauer etwas ausmachen kann?
 
Es kommt drauf an. Bis einschließlich 8.0 ist es der richtige und einzige Weg, es funktioniert also einwandfrei. Bei einem halbwegs aktuellen 8-STABLE würde ich aber das neue atacam aka "ahci.ko" nutzen. Dann kannst du die Platten reinschieben und rausziehen, musst atacontrol(8) nicht mehr aufrufen. :)
 
Moment, heißt das ich kann (e)SATA Platten im laufenden Betrieb rein- und rausschieben ohne atacontrol zu verwenden? Wann habe ich das denn verpasst?!
 
Das geht mit atacam, wie ich sagte. Es geht nicht in 8.0, da ist atacam zwar enthalten aber eben noch experimentell und wenn man nicht auf hohes Risiko und Schmerzen steht sollte man es nicht nutzen. In 9-CURRENT und 8-STABLE ist es aber nicht mehr experimentell, es ist produktiv nutzbar und in beiden Zweigen etwa auf dem gleichen Stand. Mit atacam bekommst du alle Vorteile des CAM-Frameworks für S-ATA-Platten. NCQ, echtes Hotplugging, TRIM für SSDs und massiv höheren Durchsatz. Hier beim alten ATA 56mb/s bei atacam nun plötzlich 126mb/s.

atacam unterstützt im Moment AHCI und einige neuere Silicon Image Controller. Es unterstützt keine IDE-Controller und keine S-ATA-Controller ohne AHCI, mit Außnahme der Silicon Image Modelle in siis(4).Die alten ATA-Treiber sollen nach und nach auf das neue Framework portiert werden, das ist im Moment aber noch nicht geschehen. Das alles zu nutzen ist ganz einfach:

"ahci_load="YES" in /boot/loader.conf schreiben. Dann rebooten, dabei aber beachten, dass die Gerätenamen sich ändern! Aus /dev/ad wird /dev/ada. Sollte er nicht booten, stattdessen an Timeout scheitern oder keine Platten finden, im Loader "hint.ahci.0.msi=0" setzen. Es gibt BIOSe, die MSI als unterstützt angeben, es aber nicht unterstützen, was dann Probleme macht. Danach geht es. Statt atacontrol(8) muss man dann aber camcontrol(8) nutzen.

Sonderfalls CDs: CD-Laufwerke und ihre Abarten am AHCI-Controller werden anschließend nur noch von cd(4) unterstützt, acd(4) ist dann tot. Das gilt nicht für Laufwerke, die am IDE hängen.
 
Na dann, probiere ich das nachher mal aus, ich habe ja gestern erst meinen Kernel aktualisiert. Danke für die Info. Labels sei Dank sind mir die Namen der Device Nodes ziemlich egal.
 
Habs gelesen und direkt ausprobiert. :)
Auf meinem ThinkPad R61i läufts 1a und ist wie Yamagi geschrieben hat spürbar schneller.
Aus den Gerätenamen wurde /dev/ada0 statt wie vorher /dev/ad4. Hier sollte man Labels benutzen, wenn man keine Lust auf den Single-User-Modus hat.

EDIT:
dd gibt mir ne Transferrate von ca. 50MB/s bei einer 5400rpm Platte (SATA1). Zu den vorherigen 30MB/s n spürbarer unterschied. :)
 
Zuletzt bearbeitet:
Jut zu wissen!!!

Ich wunder mich immer wieder über Euer Wissen.
Großen Respekt.

@yamagi
Ich frage mich immer, wie und wo Du Dein beeindruckendes Wissen holst...

Danke.

EDIT:
@dark_angel
Kannste Du mir bitte mal kurz Deinen dd Befehlfür den micro-bench posten...würde mir das Lesen ersparen.
 
Ich werde das dann auch mal ausprobieren.

dd if=/dev/zero of=test.file bs=1m count=500

Damit teste ich das.
 
Ich habe dd if=/dev/zero of=~/testfile bs=1M count=2000 benutzt.
Mit dem von r2d2 komme ich auf 52MB/s, also etwas mehr.
 
Frank schrieb:
@yamagi
Ich frage mich immer, wie und wo Du Dein beeindruckendes Wissen holst...

Offiziell habe ich ja einfach PSI-Kräfte :) Aber eigentlich ist es ganz einfach. Ich habe ein sehr gutes Gedächtnis, ich kann mir praktisch alles merken, was ich mal gehört oder gelesen habe. Ich lese also die Commit-Logs auf svn-src-all@freebsd.org und schon weiß ich praktisch alles. Außerdem habe ich noch einige andere, weniger öffentliche Quellen. :)
 
soo, hab das ganze mal umgestellt, die Festplatte (SSD) ist ca. 15MB/s schneller, und komme damit nun auf ca. 150MB/s.
Dann stell ich das mal auf meinem Desktop Rechner auch um....
 
Ich benutze diese Methode mit dem atacontrol de/attach schon seit einigen Jahren für meine Backup Platte. Einziges Problem was ich damit jemals hatte war mit einer wirklich billigen externen S-ATA Karte, die das im laufenden Betrieb nicht mag, wenn ich die Platte reinstecke (unter 6.x). Ab 7.x funktioniert das allerdings einwandfrei und sollte (theoretisch) kein Risiko beinhalten.
 
So, die eingebildete Performance ist schon mal besser. Vielleicht finde ich ja am Wochenende Zeit da was auszumessen.

Random seek Performance wäre halt noch interessant, da sollte NCQ ja richtig was bringen.

Update:
Mist, meine Platte unterstützt kein NCQ.
 
Zuletzt bearbeitet:
Noch ein grund mal 8-STABLE zu bauen. Sehr schön! Muss ich dann doch gleich mal machen wenn ich wieder daheim bin.
 
Hi,

von den ahci.ko Nutzern wuerde mich interessieren, wie sich Eure SMART Power-Off_Retract_Count Werte [1] ueber Zeit (nach einem Aus- und wieder Einschalten) veraendern? Bei allen Rechnern die ich bisher in der Hand hatte (ThinkPad R40, ThinkPad T400 und eine EEE Box) melden sich die Festplatten beim Power-off immer mit einem deutlichen Klack-Geraeusch kurz bevor der Rechner komplett ausgeht. Nach meinen bescheidenen Recherchen ist der Power-Off_Retract_Count der Zaehler, der erhoeht wird, wenn die Platte ihre Lesekoepfe ohne externe Stromzufuhr noch unbedingt von den Tellern fortbewegen muss. Das ganze nennt sich auch Emergency Unload und ist sehr viel unkontrollierter und mechanisch belastender als wenn man eine Festplatte vernuenftig ausschaltet. Zum Vergleich: Meine Platte ist fuer 600000 normale Unloads, aber nur fuer 20000 Emergency Unloads ausgelegt. Im Datenblatt der Platte steht auch wie man sie (aus Sicht des Host Systems) richtig ausschaltet: Standby, Standby-Immediate und abschliessend Sleep. FreeBSD macht (uebrigens auch mit dem ad-Treiber) in den entsprechenden shutdown-Funktionen der Trieber (ad, ada) nur ein Flush-Cache. Dazu sagt das Data Sheet allerdings explizit: "Note: Do not use the Flush Cache command for the power off sequence because this command does not invoke Unload." Ein einfaches Flush-Cache ist also nicht ausreichend, was akustisch auch entsprechend kommentiert wird.

Das Thema wurde bereits mehrfach auf den Mailinglisten angesprochen (z.b. [2]), aber bislang hat das scheinbar noch niemand gefixt. Ich persoenlich muss gestehen dort auch noch nicht richtig nachgehakt zu haben. Damals ([2]) schienen die Treiber wohl noch nicht so weit zu sein. Selber habe ich seit 4 Jahren immer noch zumindest das Standby-Immediate in den ad-Treiber gepatcht, um Nachts besser schlafen zu koennen. Das hat das Emergency Unload Problem fuer mich auch bislang ohne Datenverluste zuverlaessig behoben.

Da die AHCI-Sache aber noch in Bewegung ist, waere es vielleicht ganz sinnvoll, wenn man sich zusammenschliesst und der Sache noch einmal nett Nachdruck verleiht. Mit mehreren betroffenen Benutzen kann man da sicherlich mehr erreichen als alleine. Vielleicht wird das Problem dann auch nicht so schnell wieder wegdiskutiert, wie es in der Vergangenheit den Anschein hatte (wenn man es mal boese formuliert).

Aber eins nach dem anderen. Zunaechst interessieren mich nur die Power-Off_Retract_Count Werte bzw. deren Veraenderung ueber mehrere Power-Zyklen hinweg.


teuk


[1]
Code:
# smartctl -a /dev/DEVICE | grep "^192"

[2] http://lists.freebsd.org/pipermail/freebsd-hackers/2009-March/027879.html
 
Zuletzt bearbeitet:
Der Power-Off_Retract_Count steht bei mir auf 169.

Was in meinen Augen unangenehm aussieht ist meine Seek_Error_Rate von 13116847669
13 Milliarden ist doch ziemlich krass!
 
Für den Fall wurde letztens in -CURRENT ein Sysctl eingefügt. Setzt man es, werden die Platten vor dem endgültigen Abschalten des Rechners separat per ATA/SAS-Commando deaktiviert. So, wie auch einige Linux-Distributionen es machen. Auf den ersten Blick scheint es aber noch nicht ins 8-STABLE zurückgeflossen zu sein.
 
@Yamagi: Erinnerst du dich zufaellig noch den Namen des entsprechenden Sysctls oder grob den Zeitraum in dem das committet wurde? Das wuerde mir beim durchforsten von svn-src-head@ etwas Arbeit ersparen.

@Kamikaze: Wie veraendert sich der Count nach dem Aus- und Einschalten? Meiner ist momentan bei 77 und wird, wie erwaehnt, immer um 1 inkrementiert, wenn ich den Rechner mit ungepatchten ad oder dem aktuellen ada Aus- und Einschalte.

teuk
 
@Kamikaze: Wie veraendert sich der Count nach dem Aus- und Einschalten? Meiner ist momentan bei 77 und wird, wie erwaehnt, immer um 1 inkrementiert, wenn ich den Rechner mit ungepatchten ad oder dem aktuellen ada Aus- und Einschalte.
Seitdem ich das geschrieben habe, wurde der Rechner ein paar mal ausgeschaltet. Der Zähler steht aber weiterhin bei 169.
 
Zurück
Oben