A troca a quente de uma unidade SATA / dev / sda com falha funcionou bem, mas quando fui trocar em uma nova unidade, ela não foi reconhecida:
[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
Eu tentei algumas coisas para fazer o servidor encontrar o novo / dev / sda, como o rescan-scsi-bus.sh, mas eles não funcionaram:
[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
Acabei reiniciando o servidor. / dev / sda foi reconhecido, consertei o software RAID e agora está tudo bem. Mas, da próxima vez, como posso fazer o Linux reconhecer uma nova unidade SATA na qual troquei a quente sem reinicializar?
O sistema operacional em questão é RHEL5.3:
[root@fs-2 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
O disco rígido é um Seagate Barracuda ES.2 SATA de 3,0 GB / s 500 GB, modelo ST3500320NS.
Aqui está a saída 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)
Atualização : Em talvez uma dúzia de casos, fomos forçados a reiniciar servidores porque o hot swap não "apenas funcionou". Obrigado pelas respostas para pesquisar mais sobre o controlador SATA. Eu incluí a saída lspci para o sistema problemático acima (nome do host: fs-2). Eu ainda poderia usar alguma ajuda para entender o que exatamente não é suportado em termos de hardware em termos de hot swap para esse sistema. Por favor, deixe-me saber que outra saída além de lspci pode ser útil.
A boa notícia é que o hot swap "apenas funcionou" hoje em um de nossos servidores (nome do host: www-1), o que é muito raro para nós. Aqui está a saída 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)
Respostas:
Se o seu controlador SATA suportar hot swap, ele deve "apenas funcionar (tm)".
Para forçar uma nova varredura em um barramento SCSI (cada porta SATA é exibida como um barramento SCSI) e encontrar novas unidades, você utilizará:
Acima, <n> é o número do barramento.
fonte
sudo
e ao alternar para o usuário root.powertop
para deixar mais coisas desligar, então talvez a porta SATA na qual eu liguei a unidade estivesse totalmente adormecida. (O sistema possui uma unidade óptica SATA conectada e detectada na inicialização, mas provavelmente estava adormecida também.) Como outros sugerem, para evitar a redefinição do link SATA para unidades ativas, descubra quaishost
IDs já estão em uso e nãoscan
aqueles , apenas aquele em que você conectou uma nova unidade. (Ou qualquer outro que não seja usado, se você não souber a numeração.)fonte
Quando uma unidade falha em algumas circunstâncias, o Linux não percebe que você realmente a retirou fisicamente da matriz. Se você tiver esse problema (como eu fiz esta manhã), faça o seguinte:
Por exemplo, no meu caso / dev / sda falhou e eu não queria reiniciar o servidor, então fiz:
Depois disso, a nova unidade (que já havia sido fisicamente adicionada) ficou imediatamente visível.
Se não estiver visível neste momento, você também pode fazer isso para forçar uma nova varredura:
Esse "- - -" é um curinga para canal, ID e LUN, respectivamente, para que você possa restringir a varredura a algum subconjunto, se desejar, especificando os números.
Antes de começar, você também pode:
O que mostrará o caminho com o número de host correto para verificar / proc / scsi / scsi se há desaparecimento após a remoção.
fonte
Que tal isso (parece funcionar no Ubuntu):
sudo partprobe
fonte
parted
FTW ... você deve conhecê-lo bem além dos suspeitos habituais, comofdisk
,gdisk
,cgdisk
,testdisk
.Não acredito que ninguém mencionou AHCI ainda ... seu controlador SATA precisa estar no modo AHCI para ativar o hot swap. Verifique isso olhando o driver que você está usando:
Veja como diz "ahci" lá.
Caso contrário, ative-o no seu BIOS. Além disso, algumas BIOSs, especialmente em servidores ou UEFI, possuem uma configuração "Hot Swap = enabled / disabled" por disco, que você também deve habilitar se existir.
fonte
Aqui está o porquê eu precisava reiniciar o computador ...
Troquei meu / dev / sdc a quente. Usei o scsiadd -r 3 0 0 para desligar o disco antigo antes de retirá-lo. Depois de instalar o novo disco, o novo disco não apareceu como / dev / sdc, mas como / dev / sdd. Após uma reinicialização, o disco reapareceria como / dev / sdc novamente.
Parece que o hotswap funciona. Ok, pode ser que o / dev / sd * não seja mais o mesmo.
Esta poderia ser uma resposta para o seu problema?
fonte
Meu DVD na minha máquina Fedora 16 está conectado a uma interface SATA. Estava trancado e não abria nem fechava. A execução do partprobe como root fez meu cdrom / DVD funcionar novamente. Eu acho que isso vai ajudar na máquina de anteras onde eu tenho um problema ocasional de troca a quente. Obrigado!
fonte
O controlador Fusion-MPT SAS que você possui é um controlador RAID low-end. Se você não o estiver usando para RAID, ele ainda poderá estar fornecendo uma camada inútil de obstrução / abstração.
Você pode precisar cutucar o controlador RAID com mpt-status ou lsiutil para fazer com que ele realmente verifique o barramento.
http://hwraid.le-vert.net/wiki/LSIFusionMPT possui uma boa quantidade de documentação, mas não posso dizer que a verifiquei.
fonte
Em alguns casos, a troca a quente pode precisar ser ativada no BIOS da placa-mãe e / ou do controlador SATA. Isso depende completamente da marca e modelo de ambos, mas se você tiver controladores SATA integrados que devem suportar hotswap, vale a pena vasculhar o BIOS da placa-mãe. As placas SATA podem ou não ter suas próprias configurações de BIOS, muitas placas de gama baixa não, mas normalmente as placas de servidor.
Se bem me lembro, eu precisava disso com várias placas-mãe Gigabyte, e talvez outras marcas. Eu precisava disso para que uma bandeja SATA de troca a quente funcionasse; com o recurso desativado, a remoção da unidade não causou problemas, mas uma nova unidade não seria registrada até a reinicialização. Habilitando a configuração como esperado, as unidades colocadas na bandeja foram imediatamente ativadas e disponibilizadas para o sistema operacional.
fonte
Sei que essa pergunta é antiga, mas tive algum sucesso que não vi relatado em nenhum outro lugar. Teve problemas semelhantes em um Dell Precision 380 hoje. Eventualmente, conseguiu que ele funcionasse, fazendo uma combinação do seguinte:
AVISO: Isso também pode interromper outros dispositivos ATA no sistema. Se você montou sistemas de arquivos nesses dispositivos, é provável que termine mal. Minha situação não se importava, mas a sua pode.
Exatamente quais dos comandos acima são necessários, e em que ordem, não me são conhecidos no momento. Alguns comandos podem precisar ser repetidos. Se eu tivesse que adivinhar, eu diria fazer na ordem mostrada acima, então outra scsi_host varre novamente no final. Fiz mais algumas em minhas explorações.
O primeiro comando (scsi_host scan) instrui o midlayer SCSI a verificar todos os barramentos em busca de dispositivos novos / alterados. O segundo comando tenta redefinir o destino SCSI (dispositivo de disco). Os dois últimos estão trabalhando com o driver para o próprio controlador AHCI.
Encontrei os itens em questão principalmente por meio de exames detalhados e experimentação ousada.
Você pode combinar nós scsi_device com a marca e o modelo do dispositivo (usando grep para imprimir os nomes dos arquivos na frente do conteúdo):
O primeiro dígito do ID do dispositivo SCSI deve ser o número scsi_host. Você pode então combinar os nós scsi_host com os nós dos dispositivos com:
Eu suspeito que nunca vou ter a chance de refinar ainda mais, então eu queria compartilhar essas informações na esperança de aproximar os outros. Se eu receber mais informações, editarei esta resposta para refletir.
Espero que isto ajude.
fonte
Para o hotplug funcionar, você deve ter o módulo acpiphp carregado.
Obviamente, se você quiser que isso funcione na inicialização, precisará configurá-lo para ser carregado no momento da inicialização - uma maneira é criar / editar /etc/rc.modules (chamado por rc.sysinit) e adicionar a linha:
lembre-se de criar esse arquivo para chmod + x, como é chamado dessa maneira.
fonte