“ndd” эквивалент “ethtool” на Solaris

Вопрос или проблема

Мне нужно восстановить большой файл из резервной копии NAS на Solaris 10 ZFS. Я использую следующую команду:

 rsync -av [email protected]:from/NAS/files/system to/solaris/files/system 

И у меня возникла такая ошибка:

 Отключение: Поврежденный MAC на входе.
 rsync: соединение неожиданно закрыто (получено 3778664937 байт) [приемник]
 rsync: [генератор] ошибка записи: Нерабочая труба (32)
 ошибка rsync: ошибка в протоколе данных rsync (код 12) в io.c(226) [приемник=3.1.0]
 ошибка rsync: ошибка в сокетном IO (код 10) в io.c(837) [генератор=3.1.0]
 rsync Отключение: Поврежденный MAC на входе.

После небольшого исследования решение должно быть следующим:

 ethtool -K eth0 tx off rx off

Поскольку команда ethtool не существует на Solaris, я должен использовать утилиту ndd в интерактивном режиме. Я не нашел хорошего объяснения, и man-страница бедна, чтобы получить эквивалент приведенной выше командной строки. Возможно, я что-то упустил.

Какую версию rsync вы используете, и пробовали ли вы использовать другую версию или другой метод для перемещения данных?

Сообщение об ошибке, которое вы видите, намекает на коррумпированные пакеты, которые возникают где-то по пути. См. ссылку: SSH сообщения об ошибках для хорошего объяснения сообщения, которое вы получаете.

Ответ или решение

На Solaris 10 утилита ethtool отсутствует, и для настройки параметров сетевого интерфейса, аналогичных команде ethtool -K eth0 tx off rx off, следует использовать утилиту ndd. Описание проблемы, с которой вы столкнулись при использовании rsync, указывает на возможные проблемы с сетевыми настройками, что может приводить к ошибкам передачи данных.

Решение проблемы с помощью ndd

Команда, которую вам нужно выполнить, будет зависеть от конкретного интерфейса, который вы используете. Как правило, в Solaris сетевые интерфейсы называются в виде e1000g0, bge0 и т. д. Чтобы получить список интерфейсов, используйте команду:

ifconfig -a

После того как вы определили правильный интерфейс, используйте следующие команды для отключения передачи (tx) и приема (rx) пакетов:

  1. Отключение передачи данных (tx):

    ndd -set /dev/<имя_интерфейса> tx off
  2. Отключение приема данных (rx):

    ndd -set /dev/<имя_интерфейса> rx off

Пример использования

Допустим, ваш интерфейс называется e1000g0. Вам следует выполнить следующие команды:

ndd -set /dev/e1000g0 tx off
ndd -set /dev/e1000g0 rx off

Восстановление настроек

Если после выполнения этих команд проблемы не исчезли, то рекомендую включить передачу и прием обратно с помощью:

ndd -set /dev/e1000g0 tx on
ndd -set /dev/e1000g0 rx on

Дополнительные рекомендации

  1. Версия rsync: Убедитесь, что вы используете последнюю стабильную версию rsync. Проблемы, связанные с утечкой памяти или сетевой связью, могут быть исправлены в более новых версиях.

  2. Альтернативные методы передачи: Если проблемы продолжаются, рассмотрите возможность использования других утилит для синхронизации файлов, таких как scp или sftp, которые могут быть менее чувствительными к сетевым проблемам.

  3. Проверка сетевой инфраструктуры: Убедитесь, что все сетевое оборудование, включая маршрутизаторы и коммутаторы, работает корректно и не имеет проблем с производительностью.

  4. Тестирование сети: Проверьте соединение с NAS с помощью простых команд, таких как ping и traceroute, чтобы обнаружить возможные проблемы на уровне сети.

Эти шаги помогут вам устранить проблему, связанную с ошибкой "Corrupted MAC on input", и обеспечат более стабильную передачу данных между вашей системой Solaris и NAS.

Оцените материал
Добавить комментарий

Капча загружается...