Вопрос или проблема
У меня был удаленный сервер с Debian Sarge, на котором произошел сбой жесткого диска. Я собирался перезапустить его в надежде, что fsck сможет автоматически устранить ошибки. В конечном итоге я поехал туда и заменил неисправные диски…
Но мне было интересно: какие еще есть способы принудительно перезагрузить систему Linux, не требующие доступа к жесткому диску?
Что я пробовал:
shutdown -r now
не сработало, так какshutdown
— это программа, которую нужно загрузить с диска; ошибка, показанная в терминале, былаbash: /sbin/shutdown: Input/output error
init 6
то же, что и вышеtelinit q
то же, что и вышеkill -2 1
Эта команда не выдала ошибку, но тоже не сработала. (Однако возможно, что init в Sarge не реализовалSIGINT
, в manpages Sarge об этом не упоминалось. Так что это могло бы сработать в более новой версии Debian)- Это руководство на PCFreak.net. Однако, это не сработало на
sysctl
, который также не был в памяти.
Вы упоминаете, что это удаленный сервер… Это значит, что он является основным кандидатом на использование ILO, DRAC и т.д.
Проверьте документацию, чтобы узнать, установлена ли такая карта.
Если она установлена, вы можете подключиться к ОС на этой карте и удаленно взять под контроль клавиатуру, экран и выключатель питания и т.д. без непосредственного доступа к основной ОС. Таким образом, вы можете выполнить жесткую перезагрузку и продолжать (удаленно) наблюдать за экраном, пока ваш сервер проходит через BIOS, загрузку и fsck.
Если она не установлена и расстояние до нее значительное, я рекомендую добавить такую карту или установить какое-либо другое соединение удаленного KVM.
Мне кажется, нет решений для перезагрузки без подключения жесткого диска или загрузки необходимого программного обеспечения в RAM-диск. Если это виртуальная машина, перезагрузите ее на гипервизоре. В противном случае, надеюсь, у вас есть PDU / IPMI или аналогичные устройства.
Попробуйте это от имени root
$ /sbin/init 6
Я понимаю, что это старая тема, но так как она не отмечена как решенная и сейчас я сталкиваюсь с той же проблемой, я привожу обходное решение, которое нашел здесь.
Ответ или решение
Теория
Удаленное управление сервером, особенно когда возникает необходимость перезагрузки, сопряжено с рядом технических вызовов. Основная проблема заключается в ограниченном доступе к системным утилитам, которые обычно находятся на жестком диске сервера. Когда диск выходит из строя или возникает ошибка ввода-вывода, такие команды, как shutdown
, reboot
, или init
могут не сработать, так как они не загружаются в оперативную память. Это создает ситуацию, когда необходимо искать альтернативные способы управления системой, чтобы избежать физического доступа к серверу, что может быть неудобным и затратным по времени.
Помимо программных решений, современные серверные системы часто оснащены аппаратными средствами удаленного управления, такими как iLO (Integrated Lights-Out), DRAC (Dell Remote Access Controller), IPMI (Intelligent Platform Management Interface) и другими, которые обеспечивают возможность управления сервером даже в случае серьезных проблем с ОС.
Примеры
-
Аппаратные средства удаленного управления:
- iLO/DRAC/IPMI: Эти устройства интегрируются в серверные системы и предоставляют интерфейс для удаленного управления, который работает независимо от основной операционной системы. Это позволяет не только перезагружать сервер, но и подключаться к нему на аппаратном уровне, имея доступ к виртуальной консоли. Это особенно полезно для серверов, расположенных в удаленных дата-центрах.
-
Проблемы с программными перезагрузками:
- В описанной вами ситуации, использование
shutdown -r now
илиinit 6
не сработало из-за ошибки на жестком диске, что препятствовало загрузке необходимых для исполнения команд. Аналогично,telinit q
иkill -2 1
не дали результата, что вероятно связано с несовместимостью или отсутствием поддержки сигнала SIGINT в используемой версии Debian Sarge.
- В описанной вами ситуации, использование
-
Альтернативные средства:
- Если система виртуальная, хостовая управляющая среда (гипервизор) обычно позволяет перезагрузку виртуальной машины без необходимости доступа к ОС.
Применение
В вашей ситуации, когда жесткий диск сервера показал признаки выхода из строя, важно принимать упреждающие меры, чтобы избежать необходимости физических выездов:
-
Предварительная установка аппаратных средств удаленного управления:
Убедитесь, что в сервере установлены и настроены такие системы, как iLO или DRAC. Это позволит вам управлять сервером на уровне базового ввода-вывода, включая перезагрузку, отключение/включение питания и мониторинг загрузочного процесса. -
Планирование аварийных действий:
Создайте план аварийного восстановления, который включает сценарии действия при отказе диска и прочих аппаратных проблемах. Это поможет минимизировать время простоя и затраты на физическое обслуживание. -
Использование сети электропитания с удаленным доступом:
Установка интеллектуальных панелей распределения питания (PDU) с IP доступом позволит удаленно контролировать состояние питания серверов, обеспечивая возможность отключения и включения серверов без необходимости использования серверной ОС. -
Тестирование в виртуальной среде:
Если серверы работают в виртуальной среде, проработайте возможность перезагрузки через гипервизор, используя возможности управления VM непосредственно в интерфейсе гипервизора, что уменьшает зависимость от гостевой ОС для экстренной перезагрузки.
На неустойчивых дисках или системах с часто выходящими из строя компонентами убедитесь, что облачные копии данных имеют наивысший приоритет в плане резервного копирования. Это предотвратит потерю данных в случаях невозможности своевременной перезагрузки и восстановления.
Следуя данным рекомендациям, ваше управление сервером станет более надежным и прогрессивным, что снизит количество случаев ошибок и улучшит общий уровень управления серверной инфраструктурой.