Manteniment de discs durs
De Guifi.net - Wiki Català
Els disc durs són components estadísticament susceptibles de fallar al cap d'un temps sobretot d'ús ininterromput. Altres components que fallen més són les fonts d'alimentació i, en segon lloc les plaques bases de portàtils i d'ordinadors de sobretaula, però una fallada de disc dur pot ser molt més problemàtica, per això és important:
- Escollir els discs durs més adients al servei que durem a terme
- Connectar la corrent que necessiten
- Comprovar periòdicament el seu funcionament (i apagar-los quan no es facin servir)
- Fer còpies de seguretat periòdiques de les dades
- Estar molt tranquil·la quan canviïs el disc dur per un de nou quan succeeixi el fatídic final
Addicionalment, per a servidors o per ordinadors que treballin amb dades sensibles, a mode de previsió s'ha de valorar també:
Afegir un RAID i/o afegir LVM i/o decidir el sistema d'arxius més adient per les tasques que realitzaran
Contingut
- 1 Comparativa de disc durs segons la utilitat
- 2 Connexió de corrent
- 3 Comprovació de funcionament de discs durs
- 3.1 fsck
- 3.2 smartmontools
- 3.3 badblocks
- 3.3.1 Identificar els blocs fets malbé dins d'una partició
- 3.3.2 Identificar blocs fets malbé a un disc dur i fer una partició nova on no els faci servir
- 3.3.3 Veure els blocs fets malbé a un sistema d'arxius
- 3.3.4 Esborrar les dades dels inodes que marquen els blocs fets malbé
- 3.3.5 Enllaços per a ampliar informació sobre badblocks
- 3.4 Identificació de tipus d'error
- 4 Còpies de seguretat
- 5 Copiar les dades no afectades d'una partició amb blocs defectuosos amb gddrescue
- 6 Formateig de disc i particions
- 7 Actualitzar firmware
- 8 Enllaços externs generals
Comparativa de disc durs segons la utilitat
Els discs SSD (Unitat d'eStat Sòlid)
- Avantatges: Són els millors discs en termes de consum i vida útil (al no tenir components mecànics, l'erosió i desgast es produeix molt més a poc a poc i no té motor que pugui fallar).
- Inconvenients: Són cars i tenen poca capacitat amb relació als SATA.
Recomanables si no es necessita massa capacitat, per exemple per a enrutadors, portàtils o servidors que només facin servir sistema operatiu.
Discs SATA
Són els discs durs per a servidors que requereixen gran capacitat. De discos SATA existeixen dues versions actualment: SATA2 i SATA3. La velocitat de transferència de dades és fins a 300 MB/s i 600MB/s respectivament. Es poden connectar a l'ordinador de diverses maneres: directament amb el connector SATA o externament, bé sigui amb el connector eSATA o amb un adaptador USB2 o USB3, respectivament. Els discos SATA3 són compatibles amb els connectors SATA2 i viceversa, tot i que si es fa servir algun component SATA2, la velocitat que s'usa és la d'aquest (màxim de 300MB/s).
Discs IDE
Antic connector de discs durs que encara es poden trobar a plaques de routers. Actualment en desús per l'ús massiu del connector SATA, com a curiositat val a dir que la connexió que fa servir Compact Flash és una adaptació d'IDE, per tant les targetes Compact Flash porten una controladora IDE integrada.
- Inconvenients: Velocitat de transmissió de dades molt lenta. Baixa capacitat. Tecnologia antiga: moltes de les noves plaques base ja no tenen connectors IDE o només en tenen un.
Només recomanables en cas de cost zero (reciclatge).
Discs SCSI
Discs durs dissenyats principalment per a servidors. Els avantatges d'aquests discos són la seva llarga durabilitat, la ràpida velocitat de resposta i l'enorme velocitat de transferència de dades. Els seus inconvenients són l'alt preu dels discs i de les seves controladores, així com una capacitat reduïda en comparació amb els discs SATA.
Només recomanables en cas de cost zero (reciclatge).
Connexió de corrent
No per obvi menys important: la connexió dels discs durs ha de ser la del seu voltatge i amperatge procurant garantint-la de forma constant amb fonts d'alimentació adients. En discs durs amb parts mecàniques les seves necessitats de corrent són als de 3,5" (habituals) als 5 i als 12 Volts amb un amperatge que sol anar dels 0,65 als 0,72 Ampers als 5 volts i dels 0,35 al 0,6 Ampers als 12 Volts; i als de 2,5" (els de portàtils) als 5 Volts amb un amperatge al voltant dels 0,55 Ampers. Està inscrit sempre a la part superior dels discs durs. La dada de l'Amperatge defineix la quantitat d'energia que consumirà el disc dur (però en principi no és més que orientativa i no definirà si el disc dur gastarà més o menys electricitat, ja que hi ha altres factors com la quantitat d'accessos a disc o la tecnologia d'aquest, per exemple fer servir la tecnologia NCQ evita fer voltes de més als discs durs i poden reduir temps i energia.
Un context on connectar la corrent adient és important és en el cas de discs externs de 2,5" on, alguns d'ells poden funcionar habitualment amb la única connexió de 5 Volts del mateix USB per on porten les dades. No està en absolut de més connectar el connector d'energia auxiliar (abans de connectar el connector de dades) en el cas dels discs durs que tinguin dos connexions USB, ja que encara que el connector de l'USB pot donar tota la energia en connectar-se, en algun cas li podria faltar energia al estar fent molts accessos a disc, amb el conseqüent risc de corrupció del sistema d'arxius o disc.
Comprovació de funcionament de discs durs
Hi ha tres eines fonamentals per a la comprovació dels discs durs:
- fsck: comprova la integritat del sistema d'arxius
- smartmontools: conjunt d'eines per visualitzar i rebre avisos sobre discs durs que pugin ser susceptibles de fallar en breu
- badblocks: detecta blocs amb errors i els pot marcar per a no fer-los servir
I una eina addicional que és la proveïda pel seu fabricant.
fsck
Fa una comprovació de l'estat del sistema d'arxius (útil per a relocalitzar dades després d'una apagada sobtada del disc dur)
fsck /dev/partició_del_disc
On partició_del_disc pot ser sda1, per exemple.
Per, a més, comprovar si el disc dur té blocs amb errors es fa servir el:
fsck -c /dev/partició_del_disc
Nota: fsck és una eina comú per a tots els tipus de sistemes de fitxers. En realitat, fsck fa una crida al programa propi del sistema de fitxers. Així, per exemple, quan es comprova un sistema de fitxers ext2 o reiserfs, fsck fa una crida a e2fsck o reiserfsck respectivament. Aquestes funcions específiques de cada sistema de fitxers tenen opcions extres per al seu seguiment i gestió.
smartmontools
Smartmontools és un conjunt d'eines de monitorització de discs durs. Es compon de dos programes principals: smartctl per visualitzar dades a temps real per pantalla i smartd, per a rebre avisos. smartctl seria el primer programa que hauries de fer córrer en cas de que estiguessis reciclant un disc dur.
Instal·lació:
apt-get install smartmontools smart-notifier
Visualitzar dades d'un disc dur:
smartctl -a /dev/discdur
La sortida s'interpreta de la següent manera:
SMART overall-health self-assessment test result
indica l'estat del disc dur. PASSED significa que el disc dur està en bon estat.
Power_Cycle_Count
indica el número de vegades que ha arrancat el disc dur
Power_On_Half_Minutes
o
Power_On_Hours
indica el temps total que ha treballat el disc dur
Reallocated_Sector_Ct
indica els sectors danyats que s'han pogut corregir internament. Els disc durs tenen uns quants sectors extra per a poder-los utilitzar les primeres vegades que es detecta un sector danyat. Aquestes correccions es fan sense que el sistema operatiu hagi de fer res. Un cop no té més sectors per a relocalitzar, és quan comencen a aparèixer sectors danyats visibles al sistema de fitxers.
A la part final llista els errors enregistrats al disc dur.
La presència d'errors a la visualització smartmontools no et parla sobre errors presents reals d'un disc dur. Encara que smartmontools et digui que no ha passat el test, el disc dur pot continuar funcionant, però es tracta d'un avís òptim sobre un disc dur que has de jubilar en no massa temps. Per a errors reals del disc es fa servir l'eina badblocks.
Una eina gràfica que corre smartmontools per sota és smart-gui, poc recomanable per servidors, ja que necessita un entorn de X.
També es pot fer seguiment de l'estat SMART dels discos fent ús de l'eina d'estadístiques del sistema Munin.
- Manual sobre la reparació de particions i discos amb smartmoontols (en)
- Manual complet d'S.M.A.R.T. a Guia-Ubuntu (es)
- Interpretació de la sortida d'S.M.A.R.T. (en)
badblocks
Badblocks forma part dels programes per a veure el funcionament del disc dur per tal de fer una prevenció i, per sí, no repara errors en blocs defectuosos, de fet cap programari ho fa per sí. Per intentar tornar a fer servir les dades d'una partició no utilitzable afectada per blocs defectuosos es pot intentar recuperarles amb el programa gddrescue.
Identificar els blocs fets malbé dins d'una partició
Si el que volem és salvar el que quedi del disc, al mateix temps que intentar no fer malbé les dades:
badblocks -svn /dev/sdb1 -o llista-badblocks.txt
Corre el programa de forma no destructiva.
Els paràmetres:
- -s ens mostra el procés d'escaneig del disc, amb el percentatge de blocs comprovats.
- -v mode verbose
- -n mode no destructiu, és a dir, que si es recuperaren els blocs fets malbé la informació al disc dur no serà feta malbé o eliminada.
- -o addicionalment ens guarda un llistat dels blocs fets malbé, per si l'hem de tornar a necessitar
Nota: addicionalment l'argument -w
de "write" duu a terme una escriptura destructiva, és a dir, esborra les dades al discs dur. Només fer-ho servir en cas que volguem provar d'arreglar el disc dur per a dur a terme un nou formateig sense que ens importin les dades, encara que això és poc recomanable, ja que un cop apareixen blocs fets malbé, en continuaran apareixent, doncs el motiu pel qual han aparegut continua existint i es faran malbé més blocs. El millor és no tornar-ho a fer servir, tot i que si hem identificat que la causa de l'error està fóra del disc, podria no ser mala idea del tot. L'argument -w
és més ràpid que el no-destructiu.
Identificar blocs fets malbé a un disc dur i fer una partició nova on no els faci servir
badblocks /dev/disc_dur > llista-badblocks.txt
Això pot trigar hores.
Després fer la partició, per exemple ext3:
mkfs.ext3 -l llista-badblocks.txt /dev/partició_del_disc_dur
Veure els blocs fets malbé a un sistema d'arxius
dumpe2fs -b filesystemname
Esborrar les dades dels inodes que marquen els blocs fets malbé
Això és útil en cas que els discs hagin estat amb badblocks per error. Podria fer perdre dades:
debugfs -w /dev/sdc1 clri <1> quit
Això en realitat lo que fa és netejar l'inode número 1 (el primer que conté el llistat de blocs fets malbé marcats) del teu sistema d'arxius.
Després has de fer córrer fsck
Enllaços per a ampliar informació sobre badblocks
- Resetejar els blocs fets malbé (en)
- Manual de manteniment d'un sistema d'arxius fent servir eines com tune2fs o debug2fs (en)
- Fer servir badblocks en discos moderns (en)
Identificació de tipus d'error
Error de partició
Error físic de blocs de disc
Buffer I/O error on device sdc5, logical block XXXXXXXX
Fes-li un e2fsck -c
o un badblocks
.
Error físic de motor de disc
Error de la controladora de la placa base
A vegades la controladora de la placa base pot fallar, un error d'aquest tipus pot significar un error per part de la placa base:
Dec 11 18:41:25 npx-desktop kernel: [ 325.010436] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 Dec 11 18:41:25 npx-desktop kernel: [ 325.010447] ata1.00: BMDMA stat 0x25 Dec 11 18:41:25 npx-desktop kernel: [ 325.010455] ata1.00: failed command: READ DMA Dec 11 18:41:25 npx-desktop kernel: [ 325.010471] ata1.00: cmd c8/00:08:58:1e:a6/00:00:00:00:00/ea tag 0 dma 4096 in Dec 11 18:41:25 npx-desktop kernel: [ 325.010475] res 51/40:08:58:1e:a6/00:00:00:00:00/ea Emask 0x9 (media error) Dec 11 18:41:25 npx-desktop kernel: [ 325.010483] ata1.00: status: { DRDY ERR } Dec 11 18:41:25 npx-desktop kernel: [ 325.010488] ata1.00: error: { UNC } Dec 11 18:41:25 npx-desktop kernel: [ 325.025242] ata1.00: configured for UDMA/133 Dec 11 18:41:25 npx-desktop kernel: [ 325.025271] ata1: EH complete
Es pot provar de sol·lucionar, fent proves de desactivació de baixar la velocitat de DMA a 100 o desactivant DMA i ACPI (i per tant, forçant a fer servir el processador).
A /etc/default/grub
afegim la següent linia:
GRUB_CMDLINE_LINUX="libata.dma=0 libata.noacpi=1"
i, després, update-grub
Errors de controladors del sistema operatiu
Es pot provar de sol·lucionar, fent proves de desactivació de NCQ (és possible que es perdi velocitat o que mai la hagués pogut tenir, perquè el disc no hagués funcionat mai amb NCQ).
A /etc/default/grub
afegim la següent linia:
GRUB_CMDLINE_LINUX="libata.force=1.00:noncq"
i, després, update-grub
Errors pendents d'identificar
Sembla error del motor del disc dur:
[2513158.907095] Buffer I/O error on device sdc5, logical block 14737350 [2513197.456102] sd 23:0:0:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK [2513197.456102] sd 23:0:0:0: [sdc] Sense Key : Aborted Command [current] [2513197.456102] sd 23:0:0:0: [sdc] Add. Sense: No additional sense information [2513197.456102] end_request: I/O error, dev sdc, sector 149932608
[ 9.672007] ata3: link is slow to respond, please be patient (ready=0) [ 14.320007] ata3: COMRESET failed (errno=-16)
També errors a la RAM podrien provocar errors als discs durs, a l'hora d'escriure en ells, però no està comprovat. Per a comprovar la RAM, cal fer servir l'eina memtest, que s'executa a l'arrencada (sense el sistema operatiu engegat). Si no el tens instal·lat, ho pots fer amb:
apt-get install memtest86+
Això afegirà una opció a l'arrencada. Si abans només en tenies una, probablement no us presentaria la pantalla d'engegada (GRUB). Ara la presentarà i permetrà engegar el memtest en comptes del sistema operatiu (Debian, Ubuntu, ...).
Còpies de seguretat
Hi han vàries eines per a fer còpies de seguretat de particions. Moltes d'elles estan basades sobre rsync. Per exemple una de les que recomanem és rdiff-backup
que es pot utilitzar tant a la mateixa partició com per fer còpies de seguretat des de un disc dur a un altre al mateix ordinador com també es pot utilitzar per xarxa tenint instal·lat el rdiff-backup
als dos ordinadors passant les còpies sobre SSH.
Recomanem instałlar la última versió que funciona sobre Python 3 amb l'instałlador de programes Python PIP:
sudo apt install python-pip pip3 install --pre rdiff-backup
Per a crear les còpies de seguretat, la comanda bàsica és:
rdiff-backup directori_a_copiar directori_on_desem_la_còpia
Copiar les dades no afectades d'una partició amb blocs defectuosos amb gddrescue
Quan hem escrit dades sobre blocs que han esdevingut defectuosos és molt probable que perdem aquestes dades. De totes maneres el sistema de journaling dels sistemes d'arxius i que no tots els blocs d'una partició es fan malbé de cop encara tenim l'oportunitat de recuperar part o, amb sort, la totalitat de les dades. En qualsevol cas, no es perd res en intentar-ho (més que el temps que ha d'estar el programa gddrescue
en execució (que pot ser de varis dies). Instałlem el programa:
apt install gddrescue
L'executem amb el disc dur connectat a un port ràpid (com ara SATA), la partició sense muntar i fent anar la sortida a un arxiu, no a la nova creació d'una partició com es veu en alguns:
ddrescue /dev/sdx1 arxiu_de_sortida-data.img arxiu_de_sortida-data.log
Si el problema s'ha identificat amb el disc dur sencer es pot executar ddrescue
per a tot el disc, però no és necessari. Altres formes interessants d'executar ddrescue
es poden llegir al seu manual.
Es preferible esperar que acabi (per posar un exemple: per recuperar totes les dades no fetes malbé en un disc dur SATA amb una partició ext4 de 8GB va trigar 3 dies i 19 hores).
Hem d'assumir que gairebé segur no tindrem la partició recuperada sencera, abans haurem de treballar amb ella "manualment" per posar ordre en el que ha trobat. Per a fer això copiarem l'arxiu en un altre per a poder treballar amb ell. Dit això vl a dir que podràs fer proves sense haver d'esperar que acabi si les fas sobre les còpies.
cp arxiu_de_sortida-data.img arxiu_de_sortida-data-copia0.img
Provarem de muntar aquest arxiu:
mount -o loop arxiu_de_sortida-data-copia0.img /punt_de_muntatge/partició_recuperada0
I podem mirar a dins amb un ls
i/o altres eines de visualitzar arxius com ara un navegador de carpetes a veure si hi és tot o ens falta alguna cosa. En el cas bastant probable de que ens falti alguna cosa encara podem provar de recuperar-les amb el checkeig de sistemes d'arxius:
umount /punt_de_muntatge/particio_recuperada0 fsck -y arxiu_de_sortida-data-copia0.img
I tornem a muntar-la de la mateixa manera, amb sort comprovarem que ha trobat fragments d'arxiu, potser sense saber en quina carpeta s'ocupen, potser sense saber el seu nom, que els haurà ficat com a directoris i arxius que comencen per # al directori de la partició lost+found
. Un cop allà podrem fer servir eines com grep
per acabar de comprovar de quins arxius es tracten.
Més sobre recuperar bases de dades postgresql a particions fetes malbé.
Formateig de disc i particions
Per a donar-li format a una partició, primer cal decidir de quin tipus de fitxers la volem. Un cop escollit, fem servir l'eina mkfs (MaKe FileSystem) o les seves germanes, pròpies de cada sistema de fitxers: mkfs.ext2, mkfs.reiserfs, etc.
mkfs.ext2 /dev/partició
Afegir RAID
Afegir LVM
Sistemes d'arxius
afegeix aquí les virtuts de cada sistema d'arxius
LVM en clúster
- Veure també proxmox
Actualitzar firmware
L'actualització de firmware dels discs durs és una tasca molt poc habitual i que necessita de recursos especials que només s'hauria de fer en cas de que la controladora del disc dur hagués quedat inutilitzada. Normalment implica engegar un sistema MSDOS degut a que l'instal·lador sol ser de propietari i només funciona en aquest sistema operatiu.
Encara que hi ha altres maneres de fer-ho la millor és fent servir el maquinari-programari PC3000 o algun dels seus clònics, de preu alt tots ells.