Manteniment de discs durs: Diferència entre les revisions

De Guifi.net - Wiki Català

(Traient cartell de "en desenvolupament" per considerar que l'article està molt madur.)
m (badblocks)
Línia 89: Línia 89:
  
 
=== badblocks ===
 
=== 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 intentar recuperar les dades no afectades pels sectors defectuosos amb el programa [[#Copiar les dades no afectades d'una partició amb blocs defectuosos amb gddrescue|gddrescue]].  
+
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 [[#Copiar les dades no afectades d'una partició amb blocs defectuosos amb gddrescue|gddrescue]].  
 
==== Identificar els blocs fets malbé dins d'una partició ====
 
==== Identificar els blocs fets malbé dins d'una partició ====
Si el que volem és salvar el que quedi del disc, sense intentar fer malbé les dades:
+
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
 
  badblocks -svn /dev/sdb1 -o llista-badblocks.txt
 +
Corre el programa de forma no destructiva.
  
 
Els paràmetres:
 
Els paràmetres:
Línia 100: Línia 101:
 
* -o addicionalment ens guarda un llistat dels blocs fets malbé, per si l'hem de tornar a necessitar
 
* -o addicionalment ens guarda un llistat dels blocs fets malbé, per si l'hem de tornar a necessitar
  
'''Nota:''' addicionalment l'argument <code>-w</code> du 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 <code>-w</code> és més ràpid que el no-destructiu.
+
'''Nota:''' addicionalment l'argument <code>-w</code> 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 <code>-w</code> é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 ====
 
==== Identificar blocs fets malbé a un disc dur i fer una partició nova on no els faci servir ====

Revisió de 19:29, 11 feb 2020

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:

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

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.

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é

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

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

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.

Enllaços externs generals

Eines de l'usuari