Sustituir un disco en caliente en un servidor con RAID por software
Cómo sustituir un disco sin interrupción del servicio en un servidor con RAID por software
Cómo sustituir un disco sin interrupción del servicio en un servidor con RAID por software
Última actualización: 05/04/2019
En los servidores Alta Gama compatibles, es posible sustituir un disco dañado en caliente.
Esta guía explica qué pasos debe seguir para sustituir en caliente un disco de un servidor con RAID por software.
En esta guía partiremos del supuesto de que el cliente ha recibido una alerta indicándole que el disco /dev/sdb falla e invitándole a proceder a su sustitución en caliente. No olvide adaptar los comandos indicados en esta guía a su caso particular.
En primer lugar, compruebe el serial number (número de serie) del disco dañado.
root@ns3054662:/home# smartctl -a /dev/sdb
>>> smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.14.32-xxxx-grs-ipv6-64] (local build)
>>> Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
>>> === START OF INFORMATION SECTION ===
>>> Vendor: HGST
>>> Product: HUS726040ALS210
>>> Revision: A907
>>> Compliance: SPC-4
>>> User Capacity: 4,000,787,030,016 bytes [4.00 TB]
>>> Logical block size: 512 bytes
>>> LB provisioning type: unreported, LBPME=0, LBPRZ=0
>>> Rotation Rate: 7200 rpm
>>> Form Factor: 3.5 inches
>>> Logical Unit id: 0x5000cca25d3155bc
>>> Serial number: K4GW439B
>>> Device type: disk
>>> Transport protocol: SAS (SPL-3)
>>> Local Time is: Mon Nov 21 14:23:43 2016 CET
>>> SMART support is: Available - device has SMART capability.
>>> SMART support is: Enabled
>>> Temperature Warning: Enabled
>>> === START OF READ SMART DATA SECTION ===
>>> SMART Health Status: OK
>>> Current Drive Temperature: 34 C
>>> Drive Trip Temperature: 85 C
>>> Manufactured in week 44 of year 2016
>>> Specified cycle count over device lifetime: 50000
>>> Accumulated start-stop cycles: 9
>>> Specified load-unload count over device lifetime: 600000
>>> Accumulated load-unload cycles: 14
>>> Elements in grown defect list: 0
>>> Vendor (Seagate) cache information
>>> Blocks sent to initiator = 2305525022720
>>> Error counter log:
>>> Errors Corrected by Total Correction Gigabytes Total
>>> ECC rereads/ errors algorithm processed uncorrected
>>> fast | delayed rewrites corrected invocations [10^9 bytes] errors
>>> read: 0 572 0 22548 77 4.725 5580
>>> write: 0 0 0 19548 196 17.344 2569
>>> Non-medium error count: 0
>>> SMART Self-test log
>>> Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ]
>>> Description number (hours)
>>> # 1 Background short Completed - 6 - [- - -]
>>> # 2 Background short Completed - 4 - [- - -]
>>> # 3 Background short Completed - 4 - [- - -]
>>> # 4 Background short Completed - 4 - [- - -]
>>> # 5 Background short Completed - 1 - [- - -]
>>> Long (extended) Self Test duration: 34237 seconds [570.6 minutes]
En la respuesta al comando anterior puede comprobar lo siguiente:
Para obtener solamente el serial number, utilice el siguiente comando:
root@ns3054662:/home# smartctl -a /dev/sdb | grep Serial
>>> Serial number: K4GW439B
A continuación, identifique el slot y el enclosure del disco dañado. Para ello, utilice la herramienta sas2ircu, previamente instalada en el servidor.
En primer lugar, compruebe que los discos están conectados a través de una tarjeta LSI.
root@ns3054662:/home# lspci | grep -i LSI
>>> 81:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2004 PCI-Express Fusion-MPT SAS-2 [Spitfire] (rev 03)
Si ese es el caso, identifique el ID de dicha tarjeta LSI.
root@ns3054662:/home# ./sas2ircu list
>>> LSI Corporation SAS2 IR Configuration Utility.
>>> Version 5.00.00.00 (2010.02.09)
>>> Copyright (c) 2009 LSI Corporation. All rights reserved.
>>> Adapter Vendor Device SubSys SubSys
>>> Index Type ID ID Pci Address Ven ID Dev ID
>>> ----- ------------ ------ ------ ----------------- ------ ------
>>> 0 SAS2004 1000h 70h 00h:81h:00h:00h 1000h 3010h
>>> SAS2IRCU: Utility Completed Successfully.
El index (índice) corresponde al ID. En el ejemplo, el index, y por tanto, el ID de la tarjeta es 0.
Con esta información podrá obtener el slot y el enclosure del disco dañado a través de su serial number.
root@ns3054662:/home# ./sas2ircu 0 display | grep -B 7 -A 2 K4GW439B
>>> Device is a Hard disk
>>> Enclosure : 1
>>> Slot : 3
>>> State : Available (AVL)
>>> Manufacturer : HGST
>>> Model Number : HUS726040ALS210
>>> Firmware Revision : A907
>>> Serial No : K4GW439B
>>> Protocol : SAS
>>> Drive Type : SAS_HDD
Este comando permite consultar la información del disco, cuyo serial number es el K4GW439B.
En nuestro ejemplo, hemos obtenido el enclosure (que aquí corresponde a 1) y el slot (en este caso, 3).
Una vez que disponga de los datos que se indican en los pasos anteriores, encienda el led del disco que deba ser sustituido con el comando ./sas2ircu 0 locate Enc:Slot on
(no olvide sustituir «Enc» y «Slot» por el enclosure y el slot previamente obtenidos):
root@ns3054662:/home# ./sas2ircu 0 locate 1:3 on
>>> LSI Corporation SAS2 IR Configuration Utility.
>>> Version 5.00.00.00 (2010.02.09)
>>> Copyright (c) 2009 LSI Corporation. All rights reserved.
>>> SAS2IRCU: LOCATE Command completed successfully.
>>> SAS2IRCU: Command LOCATE Completed Successfully.
>>> SAS2IRCU: Utility Completed Successfully.
Puede desactivar el parpadeo del disco sustituyendo on
por off
en el comando anterior.
Si todavía no lo está, ponga el disco dañado en faulty. A continuación, compruebe el estado del RAID.
root@ns3054662:/home# cat /proc/mdstat
>>> Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
>>> md2 : active raid1 sda2[0] sdb2[1]
>>> 3885385728 blocks super 1.2 [2/2] [UU]
>>> bitmap: 0/29 pages [0KB], 65536KB chunk
>>> md1 : active raid1 sdb1[1] sda1[0]
>>> 20971456 blocks [2/2] [UU]
>>> unused devices: <none>
En nuestro ejemplo, el disco dañado forma parte de «md1» y «md2» («sdb1» y «sdb2»). Así pues, pondremos en faulty «sdb1» y «sdb2» de «md1» y «md2» respectivamente.
root@ns3054662:/home# mdadm --manage /dev/md1 --set-faulty /dev/sdb1
>>> mdadm: set /dev/sdb1 faulty in /dev/md1
root@ns3054662:/home# mdadm --manage /dev/md2 --set-faulty /dev/sdb2
>>> mdadm: set /dev/sdb2 faulty in /dev/md2
Una vez completada esta operación, vuelva a comprobar el estado del RAID.
root@ns3054662:/home# cat /proc/mdstat
>>> Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
>>> md2 : active raid1 sda2[0] sdb2[1](F)
>>> 3885385728 blocks super 1.2 [2/1] [U_]
>>> bitmap: 0/29 pages [0KB], 65536KB chunk
>>> md1 : active raid1 sdb1[2](F) sda1[0]
>>> 20971456 blocks [2/1] [U_]
>>> unused devices: <none>
Como podemos ver arriba, «sdb1» y «sdb2» ya están en faulty (F), así que ya puede proceder a sacar el disco del RAID.
root@ns3054662:/home# mdadm --manage /dev/md1 --remove /dev/sdb1
>>> mdadm: hot removed /dev/sdb1 from /dev/md1
root@ns3054662:/home# mdadm --manage /dev/md2 --remove /dev/sdb2
>>> mdadm: hot removed /dev/sdb2 from /dev/md2
Por último, compruebe que el disco ya no esté presente.
root@ns3054662:/home# cat /proc/mdstat
>>> Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
>>> md2 : active raid1 sda2[0]
>>> 3885385728 blocks super 1.2 [2/1] [U_]
>>> bitmap: 0/29 pages [0KB], 65536KB chunk
>>> md1 : active raid1 sda1[0]
>>> 20971456 blocks [2/1] [U_]
>>> unused devices: <none>
El disco dañado ya puede ser sustituido por un técnico del datacenter. Una vez realizada la intervención, solo tendrá que resincronizar el RAID. Para ello, consulte la guía RAID por software.
En esta guía partiremos del supuesto de que el cliente ha recibido una alerta indicándole que el disco /dev/sdb falla e invitándole a proceder a su sustitución en caliente. No olvide adaptar los comandos indicados en esta guía a su caso particular.
Es importante abrir el terminal como administrador para evitar errores.
En primer lugar, compruebe el serial number (número de serie) del disco dañado. En la siguiente captura, el almacenamiento en realidad no está fuera de servicio.
En la respuesta al comando anterior puede comprobar lo siguiente:
A continuación, identifique el slot y el enclosure del disco dañado. Para ello, utilice la herramienta sas2ircu, previamente instalada en el servidor.
Identifique el ID de la tarjeta LSI.
En el ejemplo, el index (índice) y, por tanto, el ID de la tarjeta es 0.
Con esta información podrá obtener el slot y el enclosure del disco dañado a través de su serial number.
El comando anterior permite consultar la información del disco, cuyo serial number es el K4G187WB.
En nuestro ejemplo, hemos obtenido el enclosure (que aquí corresponde a 1) y el slot (en este caso, 1).
Una vez que disponga de los datos que se indican en los pasos anteriores, encienda el led del disco que deba ser sustituido con el comando .\sas2ircu 0 locate Enc:Slot on
(no olvide sustituir «Enc» y «Slot» por el enclosure y el slot previamente obtenidos):
Puede desactivar el parpadeo del disco sustituyendo on
por off
en el comando anterior.
Esta operación puede realizarse desde la utilidad Administración de discos del servidor Windows.
A continuación, el disco dañado ya podrá ser sustituido por un técnico del datacenter. Una vez realizada la intervención, solo tendrá que resincronizar el RAID. Para ello, consulte la guía RAID por software.
Interactúe con nuestra comunidad de usuarios en https://community.ovh.com/en/.
Si lo desea, también puede enviarnos sus sugerencias para ayudarnos a mejorar nuestra documentación.
Imágenes, contenido, estructura...: ayúdenos a mejorar nuestra documentación con sus sugerencias.
No podemos tratar sus solicitudes de asistencia a través de este formulario. Para ello, haga clic en "Crear un tíquet" .
¡Gracias! Tendremos en cuenta su opinión.
¡Acceda al espacio de la OVHcloud Community! Resuelva sus dudas, busque información, publique contenido e interactúe con otros miembros de la comunidad.
Discuss with the OVHcloud community