CIFS/NFS примонтированные на XCP-NG виртуальной машине не отвечают

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

У меня следующая конфигурация:

  1. Сервер TrueNAS, имеющий SMB и NFS, которые делятся одной папкой (медиафайлы – видео и аудио) (IP 192.168.100.2)
  2. Машина XCP-NG, на которой я запускаю виртуальные машины.

Одна из виртуальных машин – сервер Ubuntu 24.04 LTS, который запускает медиа сервер Jellyfin и имеет общую папку с TrueNAS, смонтированную в /mnt/mediafolder как SMB-долю. Вот запись в fstab:

# SMB-монтирование с TrueNAS
//192.168.100.2/MediaFolder /mnt/mediafolder      cifs    user=jellyfin,password=password,uid=jellyfin,gid=jellyfin,ro,iocharset=utf8      0 0 

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

mediaserver kernel: CIFS: VFS: \192.168.100.2 не ответил
на протяжении 180 секунд. Переподключение..

Вот лог:

Feb 16 11:20:01 mediaserver systemd[1]: sysstat-collect.service: успешно деактивирован.
Feb 16 11:20:01 mediaserver systemd[1]: Завершено sysstat-collect.service - инструмент для учета активности системы.
Feb 16 11:20:17 mediaserver systemd[1217]: launchpadlib-cache-clean.service - Очистка старых файлов в кэше Launchpadlib была пропущена из-за неудовлетворенного условия проверки (ConditionPathExists=/home/jellyfin/.l>
Feb 16 11:22:33 mediaserver kernel: netfs: FS-Cache загружен
Feb 16 11:22:33 mediaserver kernel: Тип ключа cifs.spnego зарегистрирован
Feb 16 11:22:33 mediaserver kernel: Тип ключа cifs.idmap зарегистрирован
Feb 16 11:22:33 mediaserver kernel: CIFS: На монтировании не указан диалект. Значение по умолчанию изменено на более безопасный диалект, SMB2.1 или более поздний (например, SMB3.1.1), из CIFS (SMB1). Чтобы использовать менее безопасный диалект SMB1 t>
Feb 16 11:22:33 mediaserver kernel: CIFS: активация параметра монтирования forceuid неявно, поскольку указан параметр uid=
Feb 16 11:22:33 mediaserver kernel: CIFS: активация параметра монтирования forcegid неявно, поскольку указан параметр gid=
Feb 16 11:22:33 mediaserver kernel: CIFS: Попытка смонтировать //192.168.100.2/SharedFolder
Feb 16 11:22:37 mediaserver PackageKit[8457]: демон завершил работу
Feb 16 11:22:37 mediaserver systemd[1]: packagekit.service: успешно деактивирован.
Feb 16 11:22:44 mediaserver systemd[1]: Перезагрузка запрошена от клиента PID 13306 ('systemctl') (единица session-1.scope)...
Feb 16 11:22:44 mediaserver systemd[1]: Перезагрузка...
Feb 16 11:22:44 mediaserver systemd[1]: Перезагрузка завершена через 234 мс.
Feb 16 11:25:01 mediaserver CRON[13347]: pam_unix(cron:user): сессия открыта для пользователя root(uid=0) пользователем root(uid=0)
Feb 16 11:25:01 mediaserver CRON[13348]: (root) CMD (команда -v debian-sa1 > /dev/null && debian-sa1 1 1)
Feb 16 11:25:01 mediaserver CRON[13347]: pam_unix(cron:user): сессия закрыта для пользователя root
Feb 16 11:26:14 mediaserver kernel: CIFS: VFS: \\192.168.100.2 не ответил на протяжении 180 секунд. Переподключение...
Feb 16 11:29:17 mediaserver systemd[1]: Запуск systemd-tmpfiles-clean.service - Очистка временных директорий...
Feb 16 11:29:18 mediaserver systemd[1]: systemd-tmpfiles-clean.service: успешно деактивирован.
Feb 16 11:29:18 mediaserver systemd[1]: Завершено systemd-tmpfiles-clean.service - Очистка временных директорий.
Feb 16 11:29:20 mediaserver kernel: CIFS: VFS: \\192.168.100.2 не ответил на протяжении 180 секунд. Переподключение...
Feb 16 11:30:07 mediaserver systemd[1]: Запуск sysstat-collect.service - инструмент для учета активности системы...
Feb 16 11:30:08 mediaserver systemd[1]: sysstat-collect.service: успешно деактивирован.
Feb 16 11:30:08 mediaserver systemd[1]: Завершено sysstat-collect.service - инструмент для учета активности системы.
Feb 16 11:32:44 mediaserver kernel: CIFS: VFS: \\192.168.100.2 не ответил на протяжении 180 секунд. Переподключение...
Feb 16 11:35:01 mediaserver CRON[13378]: pam_unix(cron:session): сессия открыта для пользователя root(uid=0) пользователем root(uid=0)
Feb 16 11:35:01 mediaserver CRON[13379]: (root) CMD (команда -v debian-sa1 > /dev/null && debian-sa1 1 1)
Feb 16 11:35:01 mediaserver CRON[13378]: pam_unix(cron:session): сессия закрыта для пользователя root
Feb 16 11:35:51 mediaserver kernel: CIFS: VFS: \\192.168.100.2 не ответил на протяжении 180 секунд. Переподключение...
Feb 16 11:38:57 mediaserver kernel: CIFS: VFS: \\192.168.100.2 не ответил на протяжении 180 секунд. Переподключение...
Feb 16 11:40:14 mediaserver systemd[1]: Запуск sysstat-collect.service - инструмент для учета активности системы...
Feb 16 11:40:14 mediaserver systemd[1]: sysstat-collect.service: успешно деактивирован.
Feb 16 11:40:14 mediaserver systemd[1]: Завершено sysstat-collect.service - инструмент для учета активности системы.

Результаты ping:

64 байт от 192.168.100.2: icmp_seq=1 ttl=64 время=0.529 ms
64 байт от 192.168.100.2: icmp_seq=2 ttl=64 время=0.692 ms
64 байт от 192.168.100.2: icmp_seq=3 ttl=64 время=0.730 ms
64 байт от 192.168.100.2: icmp_seq=4 ttl=64 время=0.785 ms
64 байт от 192.168.100.2: icmp_seq=5 ttl=64 время=0.697 ms
64 байт от 192.168.100.2: icmp_seq=6 ttl=64 время=0.642 ms
64 байт от 192.168.100.2: icmp_seq=7 ttl=64 время=0.700 ms

Сетевые карты на обоих машинах 1 ГБ.

Что любопытно:

  1. У меня есть виртуальная машина с такими же характеристиками на TrueNAS с такими же настройками, и проблем нет.
  2. У меня есть виртуальная машина Fedora 41 на XCP-NG, и проблем с общей папкой нет (смонтирована как gvfs).
  3. У меня нет проблем с монтированной папкой на ноутбуке (через Wi-Fi).

Я также пытался смонтировать ее, используя NFS, с теми же результатами, вот настройки для NFS:
запись fstab:

# Монтирование NFS с TrueNAS
192.168.100.2:/mnt/Pool01/MediaFolder         /mnt/mediafolder      nfs     defaults,rw,bg,soft,nosuid,timeo=10,vers=4              0 0

информация nfsstat:

/mnt/mediafolder от 192.168.100.2:/mnt/Pool01/MediaFolder
 Флаги: rw,nosuid,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,soft,proto=tcp,timeo=10,retrans=2,sec=sys,clientaddr=192.168.100.24,local_lock=none,addr=192.168.100.2

Для NFS я не мог найти ошибки (или предупреждения) в системном журнале, но та же проблема присутствует – медленная и неотзывчивая система при просмотре папок с монтирования NFS.

Как я могу это исправить? Как получить больше информации из логов?
Я подозреваю, что это может быть проблема XCP-NG, но как найти коренную причину?
Спасибо

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

Проблема с непродуктивными CIFS/NFS-монтированиями на виртуальной машине (VM) с XCP-NG может быть следствием множества факторов, начиная от сетевых настроек и заканчивая несовместимостями в программном обеспечении. Давайте разберемся в возможных причинах и решениях этой ситуации более подробно.

Теория (Theory):

Первоначально важно понять разные аспекты технологии CIFS и NFS, которые могут влиять на производительность монтирования.

CIFS (Common Internet File System) и NFS (Network File System) — это сетевые протоколы, используемые для совместного использования файлов. CIFS, теперь известный как SMB (Server Message Block), обеспечивает более богатый функционал, такой как управление доступом и файловыми блокировками. Однако из-за своих возможностей CIFS может быть медленнее и более требовательным к ресурсам.

С другой стороны, NFS известен своей производительностью и простотой. Тем не менее, его необходимо правильно настроить для стабильной работы.

Обе технологии зависят от сетевой стабильности и ограничений пропускной способности. Замедления часто возникают из-за перегрузок сети, конфигурационных ошибок или несовместимости версий протоколов.

Пример (Example):

В предоставленных вами журналах встречаются такие ошибки, как:

CIFS: VFS: \\192.168.100.2 has not responded in 180 seconds. Reconnecting...

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

Практика (Application):

Исходя из вышесказанного, могу предложить следующие решения и области для проверки:

  1. Проверка сети:

    • Хотя пинг показывает низкое время отклика (0.5мс), не исключено, что проблема может быть в нестабильности сети или в потере пакетов на более высоком уровне.
    • Проверьте загрузку сетевого интерфейса на сервере TrueNAS и VM с помощью команд ifstat или netstat.
  2. Обновление протоколов:

    • Согласно журналам, SMB использует более старый диалект. Попробуйте явно указать новую версию протокола в монтировании, например SMB3.1.1. Это может обеспечить лучшую производительность и безопасность.
      //192.168.100.2/MediaFolder /mnt/mediafolder cifs vers=3.1.1,user=jellyfin,password=password,uid=jellyfin,gid=jellyfin,ro,iocharset=utf8 0 0
  3. Тонкая настройка NFS:

    • Попробуйте изменить некоторые параметры в fstab для NFS. Например, параметр rsize и wsize может быть увеличен для поддержания более высокой скорости передачи данных.
      192.168.100.2:/mnt/Pool01/MediaFolder /mnt/mediafolder nfs defaults,rw,bg,soft,nosuid,timeo=10,rsize=1048576,wsize=1048576,vers=4 0 0
  4. Диагностика с помощью инструментов:

    • Используйте nfsstat, smbstatus и другие диагностические утилиты на стороне TrueNAS и Ubuntu VM для оценки состояния соединения.
  5. Проверка ввода-вывода (I/O):

    • Рассмотрите возможность использования iostat для отслеживания производительности ввода-вывода на VM. Это позволит определить, действительно ли I/O является узким местом.
  6. Проверка совместимости и обновлений:

    • Убедитесь, что все системы обновлены до последних версий, совместимых с TrueNAS и XCP-NG.

Заключение:

В вашем сценарии различные узлы сети взаимодействуют с NAS, но только один из них испытывает сложности. Вероятно, это связано либо с особенности конфигурации этой системы, либо с ее взаимодействием с сетью. Применяя вышеперечисленные шаги, вы сможете выявить и устранить причину медленной работы CIFS/NFS монтирований на вашей XCP-NG VM.

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

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

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