Назад | Перейти на главную страницу

Не удается подключиться к ssh после проблемы с nfs

У меня вчера была проблема с сервером, который потерял соединение (S1). С этого сервера был общий каталог с NFS на другой (S2), без домашнего каталога и не в $ PATH, а в каталоге для хранения старых файлов для архивирования. S1 вернулся в онлайн через несколько часов, но теперь я не могу получить доступ к S2 из-за этого (и я уверен, что это из-за этого, потому что все другие службы работают без проблем). Здесь зависает ssh-соединение: debug1: Вход в интерактивный сеанс. Я знаю, что перезагрузка сделает свою работу, но, учитывая, что это NAS большого приложения, мои начальники убьют меня, если я это сделаю. Есть ли другой способ справиться с этим? Пробовал с разными пользователями, но все они зависают на одном месте. Я подключился к HP iLO, и даже там я не могу использовать свое имя пользователя.

Заранее спасибо.

(У вас нет случайно смонтированных каталогов на S2, не так ли?)

Попробуйте использовать ssh без интерактивного сеанса:

$ ssh -tvv you@S2 /usr/bin/env MAILCHECK=0 MAIL=/dev/null MAILPATH=/dev/null sh

«-Vv» имеет дополнительный вывод ssh print - не повредит - а «-t» указывает ему выделить TTY, даже если он выполняет команду вместо запуска интерактивной оболочки. Команда env устанавливает кучу переменных среды MAIL * равными нулю, что может быть полезно знать, если у вас есть mail-on-NFS, а затем, наконец, запускает простую оболочку.

Или попробуйте HOME=/ /bin/su - вместо sh, если уместно.

Если вы все-таки войдете, обязательно попробуйте размонтировать монтирования NFS. Если это не удается (вероятно), попробуйте с -f. Если это не удается (все еще вероятно), у Linux есть -l вариант для ленивого размонтирования: он отсоединит точку монтирования от дерева файловой системы, что должно заставить любые новые процессы реагировать. Тем не менее, любые существующие процессы все равно будут зависать, и нет другого выхода, кроме перезагрузки.

Если я прочитал ваш отчет о сообщении: пользователь пытается использовать ssh для пользователя @ S2. S2 монтирует файловую систему с S1. У S1 ранее была проблема, которая вызвала ошибку NFS на S2. Файловая система, смонтированная на S2, НЕ является домашним каталогом.

Вы используете автомонтажник? Это Linux или какой-то другой вариант UNIX?

Этот тип проблемы имеет смысл, если отсутствующее монтирование NFS - это домашний каталог или доступ к нему каким-либо образом во время процесса входа пользователя в систему - процесс входа в систему пытается получить доступ к этому каталогу, и он застревает в ожидании диска. Поскольку аутентификация проходит успешно, это в значительной степени должно быть одной из этих проблем.

То есть вы на 1000% уверены, что домашний каталог пользователя не является NFS? Если это не так, вы должны иметь возможность читать точечные файлы пользователя на S2, войдя в систему как root и проверив любые экземпляры, где они взаимодействуют с проблемной файловой системой NFS.

Вы должны иметь возможность проверить, войдя в систему как root (через консоль iLO, если ничего другого) и выполните: ps auxww | grep D

Вы можете войти в систему как root правильно? Или я чего-то не понимаю?

Принудительное отключение, а затем перезапуск процессов NFS на S2 с последующим повторным подключением должно исправить это, хотя у вас может быть куча зависших процессов, которые не исчезнут до перезагрузки.