El intercambio en caliente de una unidad SATA / dev / sda fallida funcionó bien, pero cuando fui a cambiar una nueva unidad, no se reconoció:
[root@fs-2 ~]# tail -18 /var/log/messages
May 5 16:54:35 fs-2 kernel: ata1: exception Emask 0x10 SAct 0x0 SErr 0x50000 action 0xe frozen
May 5 16:54:35 fs-2 kernel: ata1: SError: { PHYRdyChg CommWake }
May 5 16:54:40 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:54:45 fs-2 kernel: ata1: device not ready (errno=-16), forcing hardreset
May 5 16:54:45 fs-2 kernel: ata1: soft resetting link
May 5 16:54:50 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:54:55 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:54:55 fs-2 kernel: ata1: soft resetting link
May 5 16:55:00 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:55:05 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:55:05 fs-2 kernel: ata1: soft resetting link
May 5 16:55:10 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:55:40 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:55:40 fs-2 kernel: ata1: limiting SATA link speed to 1.5 Gbps
May 5 16:55:40 fs-2 kernel: ata1: soft resetting link
May 5 16:55:45 fs-2 kernel: ata1: SRST failed (errno=-16)
May 5 16:55:45 fs-2 kernel: ata1: reset failed, giving up
May 5 16:55:45 fs-2 kernel: ata1: EH complete
Intenté un par de cosas para hacer que el servidor encuentre el nuevo / dev / sda, como rescan-scsi-bus.sh pero no funcionaron:
[root@fs-2 ~]# echo "---" > /sys/class/scsi_host/host0/scan
-bash: echo: write error: Invalid argument
[root@fs-2 ~]#
[root@fs-2 ~]# /root/rescan-scsi-bus.sh -l
[snip]
0 new device(s) found.
0 device(s) removed.
[root@fs-2 ~]#
[root@fs-2 ~]# ls /dev/sda
ls: /dev/sda: No such file or directory
Terminé reiniciando el servidor. / dev / sda fue reconocido, arreglé el RAID de software, y todo está bien ahora. Pero para la próxima vez, ¿cómo puedo hacer que Linux reconozca una nueva unidad SATA que he intercambiado en caliente sin reiniciar?
El sistema operativo en cuestión es RHEL5.3:
[root@fs-2 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
El disco duro es un Seagate Barracuda ES.2 SATA 3.0-Gb / s 500-GB, modelo ST3500320NS.
Aquí está la salida de lscpi:
[root@fs-2 ~]# lspci
00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a3)
00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a3)
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
00:08.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:09.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:0a.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0b.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0c.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0d.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0e.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
00:19.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:19.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:19.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:19.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
03:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200e [Pilot] ServerEngines (SEP1) (rev 02)
04:00.0 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)
04:00.1 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)
Actualización : en quizás una docena de casos, nos hemos visto obligados a reiniciar los servidores porque el intercambio en caliente no ha "funcionado". Gracias por las respuestas para mirar más en el controlador SATA. He incluido la salida lspci para el sistema problemático anterior (nombre de host: fs-2). Todavía podría usar algo de ayuda para comprender qué es exactamente lo que no es compatible con el hardware en términos de intercambio en caliente para ese sistema. Avíseme qué otra salida, además de lspci, podría ser útil.
La buena noticia es que el intercambio en caliente "simplemente funcionó" hoy en uno de nuestros servidores (nombre de host: www-1), lo cual es muy raro para nosotros. Aquí está la salida de lspci:
[root@www-1 ~]# lspci
00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a3)
00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a3)
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
00:08.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:09.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a3)
00:0b.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0c.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a3)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Link Control
00:19.0 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] HyperTransport Configuration
00:19.1 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Address Map
00:19.2 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] DRAM Controller
00:19.3 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Miscellaneous Control
00:19.4 Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Link Control
03:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200e [Pilot] ServerEngines (SEP1) (rev 02)
04:00.0 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)
04:00.1 PCI bridge: NEC Corporation uPD720400 PCI Express - PCI/PCI-X Bridge (rev 06)
09:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1064ET PCI-Express Fusion-MPT SAS (rev 04)
Respuestas:
Si su controlador SATA admite el intercambio en caliente, "debería funcionar (tm)".
Para forzar una nueva exploración en un BUS SCSI (cada puerto SATA se muestra como un BUS SCSI) y buscar nuevas unidades, utilizará:
En lo anterior, <n> es el número de BUS.
fuente
sudo
y cuando cambio al usuario root.powertop
dejar que se apagaran más cosas, así que tal vez el puerto SATA en el que enchufé la unidad estaba completamente dormido. (El sistema se ha conectado una unidad óptica SATA y detectada en el arranque, pero probablemente fue el sueño, también.) Como otros sugieren, para evitar restablecer el enlace SATA para unidades activas, averiguar quéhost
ids ya están en uso y no sescan
los , solo el que conectó una nueva unidad. (O cualquiera sin usar si no conoce la numeración.)fuente
Cuando una unidad ha fallado en algunas circunstancias, Linux no se dará cuenta de que realmente la ha sacado físicamente de la matriz. Si tiene ese problema (como lo hice esta mañana) puede hacer lo siguiente:
Por ejemplo, en mi caso / dev / sda había fallado y no quería reiniciar el servidor, así que hice:
Después de hacer eso, la nueva unidad (que ya se había agregado físicamente) fue inmediatamente visible.
Si no es visible en este punto, también puede hacer esto para forzar un nuevo escaneo:
Ese "- - -" son comodines para canal, id y LUN respectivamente, por lo que puede restringir el escaneo a algún subconjunto si lo desea especificando números en su lugar.
Antes de comenzar, también podría:
Lo que le mostrará la ruta con el número de host correcto para registrar / proc / scsi / scsi para la desaparición después de la eliminación.
fuente
¿Qué tal esto (parece funcionar en Ubuntu):
sudo partprobe
fuente
parted
FTW ... usted debe conocerla bien, además de los sospechosos habituales, comofdisk
,gdisk
,cgdisk
,testdisk
.No puedo creer que nadie haya mencionado AHCI todavía ... su controlador SATA tiene que estar en modo AHCI para habilitar el intercambio en caliente. Verifique esto mirando el controlador que está utilizando:
Mira cómo dice "ahci" allí.
Si no es así, habilítelo en su BIOS. Además, algunos BIOS, especialmente en servidores o UEFI tienen una configuración "Hot Swap = habilitado / deshabilitado" por disco que también debe habilitar si existe.
fuente
He aquí por qué necesitaba reiniciar la computadora ...
Acabo de cambiar mi / dev / sdc. He usado scsiadd -r 3 0 0 para apagar el disco viejo antes de sacarlo. Luego, después de instalar el nuevo disco, el nuevo disco no apareció como / dev / sdc sino como / dev / sdd. Después de reiniciar, el disco volvería a aparecer como / dev / sdc nuevamente.
Parece que hotswap funciona Bien, puede ser que / dev / sd * ya no sea el mismo.
¿Podría ser esta una respuesta a tu problema?
fuente
Mi DVD en mi máquina Fedora 16 está conectado a una interfaz SATA. Estaba cerrado y no se abriría ni cerraría. Ejecutar partprobe como root hizo que mi cdrom / DVD volviera a funcionar. Creo que ayudará en otras máquinas donde tengo el problema ocasional de intercambio en caliente. ¡Gracias!
fuente
El controlador SAS Fusion-MPT que tiene es un controlador RAID de gama baja. Si no lo está utilizando para RAID, aún puede proporcionar una capa inútil de obstrucción / abstracción.
Es posible que deba tocar el controlador RAID con mpt-status o lsiutil para que realmente escanee el bus.
http://hwraid.le-vert.net/wiki/LSIFusionMPT tiene una buena cantidad de documentación, pero no puedo decir que la haya verificado.
fuente
En algunos casos, es posible que sea necesario habilitar el intercambio en caliente en el BIOS de la placa base y / o el controlador SATA. Esto depende completamente de la marca y el modelo de ambos, pero si tiene controladores SATA integrados que deberían ser compatibles con hotswap, entonces vale la pena revisar el BIOS de la placa base. Las tarjetas SATA pueden o no tener su propia configuración de BIOS, muchas tarjetas de gama baja no, pero las tarjetas de grado de servidor generalmente sí.
Si recuerdo correctamente, he necesitado esto con varias placas base Gigabyte, y tal vez algunas otras marcas. Lo necesitaba para que funcionara una bandeja SATA de intercambio en caliente; con la función desactivada, la eliminación de la unidad no causó problemas, pero una nueva unidad no se registraría hasta el reinicio. Al habilitar la configuración funcionó como se esperaba, las unidades que se colocaron en la bandeja se pusieron en marcha de inmediato y estuvieron disponibles para el sistema operativo.
fuente
Sé que esta pregunta es antigua, pero tuve cierto éxito que no vi reportado en otra parte. Tuve problemas similares en una Dell Precision 380 hoy. Finalmente lo puse a trabajar haciendo una combinación de lo siguiente:
ADVERTENCIA: Esto también puede interrumpir otros dispositivos ATA en el sistema. Si ha montado sistemas de archivos en esos dispositivos, es probable que eso termine mal. A mi situación no le importaba, pero a la tuya sí.
Exactamente cuál de los comandos anteriores son necesarios y en qué orden, es desconocido para mí en este momento. Algunos comandos pueden necesitar repetirse. Si tuviera que adivinar, diría que haga en el orden que se muestra arriba, luego otra exploración scsi_host nuevamente al final. Hice bastantes más en mis exploraciones.
El primer comando (scsi_host scan) le dice a la capa intermedia SCSI que escanee todos los buses en busca de dispositivos nuevos / modificados. El segundo comando intenta restablecer el objetivo SCSI (dispositivo de disco). Los dos últimos están trabajando con el controlador para el controlador AHCI.
Encontré los artículos en cuestión principalmente mediante un examen detallado y una audaz experimentación.
Puede hacer coincidir los nodos scsi_device con la marca y el modelo del dispositivo (usando grep para imprimir los nombres de los archivos delante del contenido):
El primer dígito de la ID del dispositivo SCSI debe ser el número de scsi_host. Luego puede hacer coincidir los nodos scsi_host con los nodos de sus dispositivos con:
Sospecho que nunca tendré la oportunidad de refinar más, por lo que quería compartir esta información con la esperanza de acercar a otros. Si obtengo más información, editaré esta respuesta para reflexionar.
Espero que esto ayude.
fuente
Para que hotplug funcione, debe tener cargado el módulo acpiphp.
obviamente, si desea que esto funcione en el arranque, tendrá que configurarlo para que se cargue en el momento del arranque; una forma es crear / editar /etc/rc.modules (que es llamado por rc.sysinit) y agregar la línea:
recuerde si crea este archivo en chmod + x, como se llama de esa manera.
fuente