Wymiana na gorąco uszkodzonego dysku SATA / dev / sda działała dobrze, ale kiedy poszedłem zamienić na nowy dysk, nie został rozpoznany:
[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
Próbowałem kilku rzeczy, aby serwer znalazł nową / dev / sda, takich jak rescan-scsi-bus.sh, ale one nie działały:
[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
W końcu zrestartowałem serwer. / dev / sda zostało rozpoznane, naprawiłem programową macierz RAID i teraz wszystko jest w porządku. Ale następnym razem, w jaki sposób mogę sprawić, aby Linux rozpoznał nowy dysk SATA, w którym zamieniłem się na gorąco bez ponownego uruchamiania?
System operacyjny, o którym mowa, to RHEL5.3:
[root@fs-2 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Dysk twardy to Seagate Barracuda ES.2 SATA 3.0-Gb / s 500-GB, model ST3500320NS.
Oto wyjście 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)
Aktualizacja : w kilkunastu przypadkach byliśmy zmuszeni zrestartować serwery, ponieważ hot swap „nie działał”. Dziękujemy za odpowiedzi, aby lepiej przyjrzeć się kontrolerowi SATA. Powyżej podałem wyjście lspci dla problematycznego systemu (nazwa hosta: fs-2). Nadal mogę skorzystać z pomocy w zrozumieniu, co dokładnie nie jest obsługiwane sprzętowo pod względem wymiany w systemie hot-swap dla tego systemu. Daj mi znać, jakie inne wyjście oprócz lspci może być przydatne.
Dobra wiadomość jest taka, że hot swap „po prostu działał” dzisiaj na jednym z naszych serwerów (nazwa hosta: www-1), co jest dla nas bardzo rzadkie. Oto wynik 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)
Odpowiedzi:
Jeśli twój kontroler SATA obsługuje hot swap, powinien „po prostu działać (tm)”.
Aby wymusić ponowne skanowanie na szynie SCSI (każdy port SATA pokazuje się jako szyna SCSI) i znaleźć nowe dyski, użyjesz:
Na powyższym <n> jest numerem magistrali.
źródło
sudo
i przełączania do użytkownika root.powertop
aby pozwolić, aby więcej rzeczy przestało działać, więc może port SATA, do którego podłączyłem dysk, całkowicie spał. (System ma podłączony napęd optyczny SATA i wykryty podczas rozruchu, ale prawdopodobnie też spał.) Jak sugerują inni, aby uniknąć resetowania łącza SATA dla aktywnych napędów, dowiedz się, którehost
identyfikatory są już w użyciu, a niescan
te , tylko ten, do którego podłączyłeś nowy dysk. (Lub jakikolwiek nieużywany, jeśli nie znasz numeracji.)źródło
Kiedy dysk ulegnie awarii w niektórych okolicznościach, Linux nie zda sobie sprawy, że faktycznie wyciągnąłeś go fizycznie z tablicy. Jeśli masz ten problem (tak jak dzisiaj rano), możesz wykonać następujące czynności:
Np. W moim przypadku / dev / sda nie powiodło się i nie chciałem restartować serwera, więc zrobiłem:
Po wykonaniu tej czynności nowy dysk (który został już fizycznie dodany) był natychmiast widoczny.
Jeśli w tym momencie nie jest to widoczne, możesz to zrobić, aby wymusić ponowne skanowanie:
To „- - -” to symbole wieloznaczne odpowiednio dla kanału, identyfikatora i jednostki LUN, więc możesz ograniczyć skanowanie do niektórych podzbiorów, jeśli chcesz, podając zamiast tego liczby.
Zanim zaczniesz, możesz również:
Który pokaże ci ścieżkę z odpowiednim numerem hosta do sprawdzenia / proc / scsi / scsi pod kątem zniknięcia po usunięciu.
źródło
Co powiesz na to (wydaje się, że działa w Ubuntu):
sudo partprobe
źródło
parted
FTW ... powinieneś to wiedzieć dobrze oprócz Podejrzani podobafdisk
,gdisk
,cgdisk
,testdisk
.Nie mogę uwierzyć, że nikt jeszcze nie wspomniał o AHCI ... twój kontroler SATA musi być w trybie AHCI, aby umożliwić hot swap. Sprawdź to, patrząc na używany sterownik:
Zobacz, jak tam jest napisane „ahci”.
Jeśli tak się nie stanie, włącz go w systemie BIOS. Ponadto niektóre BIOS-y, szczególnie na serwerach lub UEFI, mają ustawienie „Hot Swap = włączone / wyłączone” na dysk, które należy również włączyć, jeśli istnieje.
źródło
Oto dlaczego musiałem ponownie uruchomić komputer ...
Właśnie zmieniłem / dev / sdc na gorąco. Użyłem scsiadd -r 3 0 0 do wyłączenia starego dysku przed jego wyciągnięciem. Następnie po zainstalowaniu nowego dysku nowy dysk nie pojawił się jako / dev / sdc, a raczej jako / dev / sdd. Po ponownym uruchomieniu dysk ponownie pojawi się jako / dev / sdc.
Więc wygląda na to, że hotswap działa Ok, może być tak, że / dev / sd * już nie jest taki sam.
Czy to może być odpowiedź na twój problem?
źródło
Moje DVD na moim komputerze Fedora 16 jest podłączone do interfejsu SATA. Był zamknięty i nie chciał się otworzyć ani zamknąć. Uruchamianie partprobe jako root sprawiło, że moje cdrom / DVD znów działa. Sądzę, że to pomoże na innym komputerze, na którym od czasu do czasu mam problem z wymianą na gorąco. Dzięki!
źródło
Kontroler Fusion-MPT SAS, który posiadasz, jest niskiej klasy kontrolerem RAID. Jeśli nie używasz go do RAID, może nadal zapewniać nieprzydatną warstwę przeszkody / abstrakcji.
Być może trzeba będzie szturchać kontroler RAID statusem mpt lub lsiutil, aby faktycznie skanował magistralę.
http://hwraid.le-vert.net/wiki/LSIFusionMPT ma niezłą ilość dokumentacji, ale nie mogę powiedzieć, że to zweryfikowałem.
źródło
W niektórych przypadkach może być konieczne włączenie wymiany na gorąco w systemie BIOS płyty głównej i / lub kontrolera SATA. Zależy to całkowicie od marki i modelu obu, ale jeśli masz wbudowane kontrolery SATA, które powinny obsługiwać hotswap, warto przeczesać BIOS płyty głównej. Karty SATA mogą, ale nie muszą, mieć własne ustawienia BIOS-u, wiele kart niższej klasy nie, ale zazwyczaj karty klasy serwerowej.
Jeśli dobrze pamiętam, potrzebowałem tego z wieloma płytami głównymi Gigabyte i być może z innymi markami. Potrzebowałem go do pracy zasobnika SATA z możliwością wymiany podczas pracy; z wyłączoną funkcją usunięcie dysku nie spowodowało problemów, ale nowy dysk nie zarejestrowałby się do momentu ponownego uruchomienia. Włączenie ustawienia działało zgodnie z oczekiwaniami, dyski umieszczone w zasobniku były natychmiast obracane i dostępne dla systemu operacyjnego.
źródło
Wiem, że to pytanie jest stare, ale odniosłem pewien sukces, którego nie widziałem gdzie indziej. Miałem podobne problemy z Dell Precision 380 dzisiaj. W końcu udało się go uruchomić, wykonując kombinację następujących czynności:
OSTRZEŻENIE: Może to również zakłócić działanie innych urządzeń ATA w systemie. Jeśli masz zamontowane systemy plików na tych urządzeniach, prawdopodobnie źle się to skończy. Moja sytuacja nie obchodziła, ale twoja może.
Dokładnie, które z powyższych poleceń są potrzebne i w jakiej kolejności nie są mi obecnie znane. Niektóre polecenia mogą wymagać powtórzenia. Gdybym musiał zgadywać, powiedziałbym, że zrobię to w podanej wyżej kolejności, a następnie kolejny skan scsi_host ponownie na końcu. W swoich poszukiwaniach zrobiłem całkiem sporo.
Pierwsze polecenie (skanowanie scsi_host) informuje warstwę pośrednią SCSI, aby skanowała wszystkie magistrale w poszukiwaniu nowych / zmienionych urządzeń. Drugie polecenie próbuje zresetować cel SCSI (urządzenie dyskowe). Dwa ostatnie pracują ze sterownikiem dla samego kontrolera AHCI.
Znalazłem te przedmioty głównie poprzez szczegółowe badanie i odważne eksperymenty.
Możesz dopasować węzły scsi_device do marki i modelu urządzenia (używając grep do drukowania nazw plików przed zawartością):
Pierwszą cyfrą identyfikatora urządzenia SCSI powinien być numer scsi_host. Następnie możesz dopasować węzły scsi_host do węzłów ich urządzeń za pomocą:
Podejrzewam, że nigdy nie będę miał szansy na dalsze udoskonalenie, więc chciałem podzielić się tymi informacjami w nadziei na zbliżenie innych. Jeśli otrzymam więcej informacji, zmienię tę odpowiedź, aby ją odzwierciedlić.
Mam nadzieję że to pomoże.
źródło
Aby hotplug działał, musisz mieć załadowany moduł acpiphp.
oczywiście, jeśli chcesz, aby działało to przy starcie systemu, będziesz musiał skonfigurować, aby ładował się podczas uruchamiania systemu - jednym ze sposobów jest utworzenie / edycja /etc/rc.modules (który jest wywoływany przez rc.sysinit) i dodanie wiersza:
pamiętaj, jeśli utworzysz ten plik, aby chmod + x go, jak to się nazywa.
źródło