Manteniment de discs durs: Diferència entre les revisions

De Guifi.net - Wiki Català

(Comprovació de funcionament de discs durs)
m (badblocks)
 
(Hi ha 31 revisions intermèdies sense mostrar fetes per 3 usuaris)
Línia 1: Línia 1:
{{en desenvolupament}}
+
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 [[font d'alimentació|fonts d'alimentació]] i, en segon lloc les [[placa base|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:
 +
* [[#Comparativa de disc durs segons la utilitat|Escollir els discs durs més adients al servei que durem a terme]]
 +
* [[#Connexió de corrent|Connectar la corrent que necessiten]]
 +
* [[#Comprovació de funcionament de discs durs|Comprovar periòdicament el seu funcionament (i apagar-los quan no es facin servir)]]
 +
* [[#Còpies de seguretat|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é:
 
+
 
+
 
+
 
+
 
+
Els disc durs, junt a les [[placa base|plaques bases]], són els components més susceptibles de fallar, per això és important:
+
*[[#Comparativa de disc durs segons la utilitat|Escollir els discs durs més adients al servei que durem a terme]]
+
*[[#Comprovació de funcionament de discs durs|Comprovar periòdicament el seu funcionament (i apagar-los quan no es facin servir)]]
+
*[[#Còpies de seguretat|Fer còpies de seguretat periòdiques de les dades]]
+
 
+
Adicionalment, per a servidors o per ordinadors que treballin amb dades sensibles, a mode de previsió s'ha de valorar també:
+
  
 
[[#Afegir un RAID|Afegir un RAID]] i/o [[#Afegir LVM|afegir LVM]] i/o [[#Sistemes d'arxius|decidir el sistema d'arxius més adient per les tasques que realitzaran]]
 
[[#Afegir un RAID|Afegir un RAID]] i/o [[#Afegir LVM|afegir LVM]] i/o [[#Sistemes d'arxius|decidir el sistema d'arxius més adient per les tasques que realitzaran]]
Línia 18: Línia 12:
 
== Comparativa de disc durs segons la utilitat ==
 
== Comparativa de disc durs segons la utilitat ==
 
=== Els discs SSD (Unitat d'eStat Sòlid) ===
 
=== Els discs SSD (Unitat d'eStat Sòlid) ===
*'''Aventatges''': 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).
+
*'''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
+
*'''Inconvenients''': Són cars i tenen poca capacitat amb relació als SATA.
  
Recomenables si no es necesita massa capacitat, per exemple per a [[enrutador]]s, portàtils o [[servidor]]s que només facin servir sistema operatiu.
+
Recomanables si no es necessita massa capacitat, per exemple per a [[enrutador]]s, portàtils o [[servidor]]s que només facin servir sistema operatiu.
  
 
=== Discs SATA ===
 
=== Discs SATA ===
Són els discs durs per a servidors que requereixen gran capacitat.
+
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 ===
 
=== 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 adpatació d'IDE, per lo tant les tarjetes Compact Flash porten una controladora IDE integrada.
+
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.
+
*'''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).
 
Només recomanables en cas de cost zero (reciclatge).
  
 
=== Discs SCSI ===
 
=== Discs SCSI ===
Discs durs dissenyats principalment per a servidors actualment en desús per l'ús massiu del connector SATA.
+
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).
 
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 [[font d'alimentació|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 ==
 
== Comprovació de funcionament de discs durs ==
Línia 47: Línia 46:
  
 
=== fsck ===
 
=== 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 ===
''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.
+
''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ó:
 
Instal·lació:
  apt-get install smartmootols smart-notifier
+
  apt-get install smartmontools smart-notifier
 
+
  
 +
Visualitzar dades d'un disc dur:
 
  smartctl -a /dev/''discdur''
 
  smartctl -a /dev/''discdur''
  
''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 a errors reals del disc es fa servir l'eina ''badblocks''.
+
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.
 +
 
 +
* [http://smartmontools.sourceforge.net/badblockhowto.html Manual sobre la reparació de particions i discos amb smartmoontols] (en)
 +
* [http://www.guia-ubuntu.org/index.php?title=S.M.A.R.T. Manual complet d'S.M.A.R.T. a Guia-Ubuntu] (es)
 +
* [http://en.wikipedia.org/wiki/S.M.A.R.T.#ATA_S.M.A.R.T._attributes Interpretació de la sortida d'S.M.A.R.T.] (en)
 +
 
 
=== 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 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ó ====
 +
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 <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 ====
 +
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 <code>fsck</code>
 +
 +
==== Enllaços per a ampliar informació sobre badblocks ====
 +
 +
* [http://askubuntu.com/questions/18826/is-it-possible-to-reset-the-badblocks Resetejar els blocs fets malbé] (en)
 +
* [http://www.snow.nl/dist/xhtmlc/ch03s02.html Manual de manteniment d'un sistema d'arxius fent servir eines com tune2fs o debug2fs] (en)
 +
* [https://superuser.com/questions/528176/using-badblocks-on-modern-disks Fer servir badblocks en discos moderns] (en)
  
 
=== Identificació de tipus d'error ===
 
=== Identificació de tipus d'error ===
 
==== Error de partició ====
 
==== Error de partició ====
 
==== Error físic de blocs de disc ====
 
==== Error físic de blocs de disc ====
 +
Buffer I/O error on device sdc5, logical block XXXXXXXX
 +
Fes-li un <code>e2fsck -c</code> o un <code>badblocks</code>.
 +
 
==== Error físic de motor de disc ====
 
==== Error físic de motor de disc ====
 
==== Error de la controladora de la placa base ====
 
==== 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 <code>/etc/default/grub</code> afegim la següent linia:
 +
 +
GRUB_CMDLINE_LINUX="libata.dma=0 libata.noacpi=1"
 +
 +
i, després, update-grub
 +
* [http://lists.debian.org/debian-user-spanish/2011/12/msg00388.html Problemàtica i sol·lució a la llista de Debian] (ES)
 +
 +
==== 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 <code>/etc/default/grub</code> afegim la següent linia:
 +
GRUB_CMDLINE_LINUX="libata.force=1.00:noncq"
 +
 +
i, després, update-grub
 +
* [https://answers.launchpad.net/ubuntu/+question/122588 Problemàtica i sol·lució a la llista d'Ubuntu] (EN)
 +
 +
==== Errors pendents d'identificar ====
 +
Sembla error del motor del disc dur:
 +
<pre>
 +
[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
 +
</pre>
 +
 +
<pre>
 +
[ 9.672007] ata3: link is slow to respond, please be patient (ready=0)
 +
[ 14.320007] ata3: COMRESET failed (errno=-16)
 +
</pre>
 +
 +
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 ==
 
== 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 <code>rdiff-backup</code> 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 <code>rdiff-backup</code> 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''
 +
 +
* [https://github.com/rdiff-backup/rdiff-backup Més sobre rdiff-backup]
 +
 +
== 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 <code>gddrescue</code> 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 <code>ddrescue</code> per a tot el disc, però no és necessari. Altres formes interessants d'executar <code>ddrescue</code> es poden llegir [https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html#Algorithm 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 <code>ls</code> 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ó <code>lost+found</code>. Un cop allà podrem fer servir eines com <code>grep</code> per acabar de comprovar de quins arxius es tracten.
 +
 +
Més sobre [https://www.commandprompt.com/blog/recovering_a_lost-and-found_database/ 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ó''
  
== Formateig de disc durs ==
 
 
=== Afegir RAID ===
 
=== Afegir RAID ===
 +
* [http://ubuntugeeks.espacioblug.com/post/2009/03/06/crear-raid-con-linux Crear RAID a Linux]
 +
* [http://lopezivan.blogspot.com.es/2008/03/raid-1-en-un-sistema-ya-instalado.html Muntar un RAID 1 en un sistema instal·lat] (es)
  
 
=== Afegir LVM ===
 
=== Afegir LVM ===
 +
* [http://es.wikipedia.org/wiki/LVM LVM a la Wikipèdia amb exemple de com muntar-ne un] (es)
  
 
=== Sistemes d'arxius ===
 
=== Sistemes d'arxius ===
 +
''afegeix aquí les virtuts de cada sistema d'arxius''
 +
 +
=== LVM en clúster ===
 +
* [http://docs.redhat.com/docs/es-ES/Red_Hat_Enterprise_Linux/5/html/Cluster_Logical_Volume_Manager/LVM_Cluster_Overview.html CLVM]
 +
 +
* 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.
 +
 +
*[http://forum.hddguru.com/newbie-info-from-and-for-newbies-about-firmware-etc-t6562.html Informació bàsica per entendre què és i com funciona el firmware i l'Area del Sistema (SA) dels discs durs]] (ENG)
 +
 +
== Enllaços externs generals ==
 +
*[http://blog.wikifotos.org/2008/03/14/herramientas-de-diagnostico-de-disco-duro-en-linux/ Eines de diagnòstic de disc dur en linux] (ES)
  
 
[[categoria:maquinari]]
 
[[categoria:maquinari]]

Revisió de 19:39, 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é

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

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