Skip to main content

Как диагностировать проблемы NFS и DNS

Как диагностировать проблемы NFS и DNS

Назначение

DNS и NFS являются критическимикритически важными инфраструктурными зависимостями системы Printum.

Проблемы с нимиDNS или NFS могут вызывать:

  • restart loop контейнеров;
  • отказнедоступность ПринтМенеджер;ПринтМенеджера;
  • ошибки синхронизации;
  • недоступность очередей;очередей печати;
  • проблемы Встроенноеработы приложение.встроенных приложений;
ошибки авторизации пользователей; недоступность архива заданий.

Как диагностировать проблемы DNS

Проверка resolv.conf

Проверить:

cat /etc/resolv.conf

Убедиться:

    DNS-серверы доступны; нет ошибочных записей.

    Проверка hostname resolution

    Проверить:

    ping monitoring.local
    

    Проверить:

      hostname резолвится; IP корректный.

      Типовые признаки DNS-проблем

       DNS
      Симптом Возможная причина
      restartКонтейнеры loopпостоянно перезапускаются hostname не резолвитсярезолвится, nfs-сервер недоступен
      Ошибки timeout DNSDNS-сервер unavailableнедоступен
      syncОшибки errorsсинхронизации неверныйневерное hostnameDNS-имя
      SSLSSL/TLS errors mismatchhostname hostnameне соответствует сертификату
      ПринтМенеджер недоступен отсутствует DNS-resolve между узлами, nfs-сервер недоступен

      Как

      Диагностика диагностироватьDNS

      проблемы

      Проверка resolv.conf

      Проверить содержимое файла:

      cat /etc/resolv.conf
      

      Необходимо убедиться:

        DNS-серверы указаны корректно; DNS-серверы доступны; отсутствуют ошибочные записи; указан корректный search domain (если используется).

        Проверка разрешения hostname

        Проверить разрешение hostname:

        ping monitoring.local
        

        Дополнительно рекомендуется выполнить:

        nslookup monitoring.local
        

        Проверить:

          hostname успешно резолвится; IP-адрес соответствует ожидаемому; отсутствуют timeout; ответ приходит от корректного DNS-сервера.

          Проверка сетевой связности

          Проверить доступность серверов:

          ping printmanager.local
          

          При использовании отказоустойчивой конфигурации необходимо проверить связность между:

            Мониторингом; всеми узлами ПринтМенеджера; NFS-сервером; балансировщиком; PostgreSQL; Redis/Sentinel.

            Диагностика NFS

            Проверка доступности порта

            NFS-портов

            Проверить:Проверить доступность NFS:

            telnet nfs-serverserver.local 2049
            

            ПроверитьЕсли используется stunnel:

            telnet nfs-serverserver.local 20490
            

            Ожидаемый результат:

              TCP-соединение успешно устанавливается; отсутствуют timeout; отсутствует ошибка Connection refused.

              Проверка mounted volumes

              Проверка NFS volume в Docker

              Проверить список Docker volumes:

              docker volume ls
              

              Найти volume, который используется ПринтМенеджером (printmanager-app).

              Проверить параметры volume:

              docker volume inspect <volume_name>
              

              Проверить:

                volume существует; указан корректный NFS server; указан корректный путь NFS export; параметры подключения соответствуют конфигурации.

                Проверка mount внутри контейнера

                Проверить:Зайти в контейнер ПринтМенеджера:

                docker exec -it printmanager-app sh
                

                Проверить подключённые файловые системы внутри контейнера:

                df -h
                

                Дополнительно проверить доступность каталога:

                ls -la <mount_path>
                

                Проверить:

                • volumeкаталог mounted;доступен из контейнера;
                • нетотсутствуют staleошибки mount;Stale file handle;
                • нетфайловая readonlyсистема mode.не находится в режиме read-only;
                файлы создаются и читаются корректно.

                Проверка volumes

                Проверить:

                ls /var/lib/docker/volumes/
                

                Проверка сервисов NFS

                На NFSNFS-сервере server:проверить состояние сервисов:

                systemctl status nfs-server.service
                

                Если используется stunnel:

                systemctl status stunnel.service
                

                Проверить:

                  сервисы находятся в состоянии active (running); отсутствуют restart loop; отсутствуют ошибки systemd.

                  Перезапуск сервисов

                   NFS

                  При необходимости выполнить перезапуск:

                  systemctl restart nfs-server.service
                  

                  Если используется stunnel:

                  systemctl restart stunnel.service
                  

                  После перезапуска рекомендуется повторно проверить:

                    доступность портов; состояние mount; доступность каталогов; состояние контейнеров Printum.

                    Что делать при restart loop контейнеров

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

                    • DNS;
                    • NFS;
                    • networkсетевую connectivity;связность;
                    • mountmounted points.volumes;
                    доступность PostgreSQL; доступность Redis; корректность hostname; срок действия SSL-сертификатов.

                    После исправления:устранения проблемы выполнить перезапуск контейнеров:

                    cd /opt/printmanager
                    docker-compose down && docker-compose up -d
                    

                    Что

                    Дополнительная важнодиагностика Docker

                    Проверить состояние контейнеров:

                    docker ps -a
                    

                    Просмотреть логи контейнера:

                    cd /opt/printmanager/
                    docker-compose logs -f --tail=5
                    

                    Важно помнить

                    • DNS является однаодной из самых частых причин инфраструктурных отказов.
                    • NFS критиченкритически важен для работы ПринтМенеджер.отказоустойчивой конфигурации ПринтМенеджера.
                    • Большинство restart loop связано с инфраструктурными зависимостями.
                    • Проверка DNS и NFS должна быть первым шагомэтапом диагностики.
                    • В Active-Active конфигурации стабильная работа DNS и NFS обязательна для всех узлов кластера.