Вопрос или проблема
У меня следующая конфигурация:
- Сервер TrueNAS, имеющий SMB и NFS, которые делятся одной папкой (медиафайлы – видео и аудио) (IP 192.168.100.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 ГБ.
Что любопытно:
- У меня есть виртуальная машина с такими же характеристиками на TrueNAS с такими же настройками, и проблем нет.
- У меня есть виртуальная машина Fedora 41 на XCP-NG, и проблем с общей папкой нет (смонтирована как gvfs).
- У меня нет проблем с монтированной папкой на ноутбуке (через 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):
Исходя из вышесказанного, могу предложить следующие решения и области для проверки:
-
Проверка сети:
- Хотя пинг показывает низкое время отклика (0.5мс), не исключено, что проблема может быть в нестабильности сети или в потере пакетов на более высоком уровне.
- Проверьте загрузку сетевого интерфейса на сервере TrueNAS и VM с помощью команд
ifstat
илиnetstat
.
-
Обновление протоколов:
- Согласно журналам, 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
- Согласно журналам, SMB использует более старый диалект. Попробуйте явно указать новую версию протокола в монтировании, например SMB3.1.1. Это может обеспечить лучшую производительность и безопасность.
-
Тонкая настройка 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
- Попробуйте изменить некоторые параметры в fstab для NFS. Например, параметр
-
Диагностика с помощью инструментов:
- Используйте
nfsstat
,smbstatus
и другие диагностические утилиты на стороне TrueNAS и Ubuntu VM для оценки состояния соединения.
- Используйте
-
Проверка ввода-вывода (I/O):
- Рассмотрите возможность использования
iostat
для отслеживания производительности ввода-вывода на VM. Это позволит определить, действительно ли I/O является узким местом.
- Рассмотрите возможность использования
-
Проверка совместимости и обновлений:
- Убедитесь, что все системы обновлены до последних версий, совместимых с TrueNAS и XCP-NG.
Заключение:
В вашем сценарии различные узлы сети взаимодействуют с NAS, но только один из них испытывает сложности. Вероятно, это связано либо с особенности конфигурации этой системы, либо с ее взаимодействием с сетью. Применяя вышеперечисленные шаги, вы сможете выявить и устранить причину медленной работы CIFS/NFS монтирований на вашей XCP-NG VM.
Продолжайте тщательно мониторить изменение в конфигурации и отслеживайте улучшения производительности, экспериментируя с различными параметрами и настройками.