Article ID: 1015, created on Dec 13, 2013, last review on Aug 22, 2014

  • Applies to:
  • Operations Automation 5.4
  • Virtuozzo 6.0
  • Virtuozzo containers for Linux
  • Virtuozzo hypervisor

Решение

Наиболее распространенные причины, по которым не запускается контейнер:

  1. Контейнер запускается, но через несколько минут снова выключается.

    Возможно, у вашей лицензии истек срок действия или вы превысили отведенное количество контейнеров. Пожалуйста, проверьте вывод команды vzlicview. Лицензия должна иметь статус ACTIVE, а значение ct_total в скобках не должно превышать значение ct_total после знака "=". Более подробную информацию о лицензиях смотрите в статье Как проверить/установить лицензию Parallels Virtuozzo Containers?

  2. Контейнер не запускается, так как он заблокирован.

    Пожалуйста, следуйте инструкциям в этой статье.

  3. Контейнер запускается, но выдает ошибку /bin/bash: no such file или другую похожую ошибку.

    Возможно, владелец контейнера удалил какой-нибудь важный пакет, например bash или glibc. В случае с контейнерами, созданными на основе стандартных шаблонов, вы можете восстановить недостающие данные с помощью команды vzctl recover CTID.

    Также причина может быть в том, что стандартный шаблон ОС, на основе которого был создан данный контейнер, отсутствует на физическом сервере; вы можете проверить это с помощью vzpkgls CTID и vzpkgls и при необходимости установить недостающий шаблон ОС.

    В случае с контейнерами, созданными на основе EZ-шаблонов, такая ошибка может возникать после миграции контейнера или после восстановления его из резервной копии. Инструкции по подготовке к миграции и устранению неисправностей после ее завершения смотрите в статье Подготовка контейнеров к миграции.

    Кроме того, ваш контейнер мог быть скомпрометирован (см. ниже).

  4. Контейнер запускается, но вскоре после этого возникает ошибка Segmentation fault.

    Возможно, ваш контейнер скомпрометирован; пожалуйста, смотрите статью Как определить, что мой контейнер взломан/скомпрометирован?

  5. При запуске контейнера возникает следующая ошибка:

    ERROR: Can't write to file /etc/sysconfig/network-scripts/ifcfg-venet0
    vzquota : (warning) block_hard_limit [50100] < block_current_usage [60279]
    vzquota : (warning) block_hard_limit [50100] < block_current_usage [60279]
    

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

    # vzquota show CTID
    

    Решение - увеличьте лимит дискового пространства (diskspace) и при необходимости индексных дескрипторов (diskinodes) для данного контейнера с помощью утилиты vzctl:

    # vzctl set CTID --diskspace BARRIER:LIMIT --save
    # vzctl set CTID --diskinodes BARRIER:LIMIT --save
    

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

    # vzctl quotainit CTID
    

    Затем запустите контейнер.

  6. При запуске контейнера возникает следующая ошибка:

    Running the command: /etc/sysconfig/vz-scripts/vz-net_add
    Run the script /etc/sysconfig/vz-scripts/dists/scripts//redhat-add_ip.sh
    /bin/cp: writing `/etc/sysconfig/network.5': Disk quota exceeded
     ERROR: Can't copy file /etc/sysconfig/network
    

    Убедитесь, что квота второго уровня для пользователя root не была задана вручную внутри контейнера:

    # vzctl mount CTID
    # vzquota stat CTID -t
    

    Проверьте квоты для пользователей, например:

    ...
    User/group objects:
    ID           type  resource       usage   softlimit   hardlimit    grace status
    0            user 1k-blocks    11464476      358400      358400     none loaded
    0            user    inodes      716143           0           0          loaded
    ...
    

    В этом примере превышена квота для пользователя "root", а также мягкая и жесткая квоты на блоки диска, что и вызывает сбой при запуске.

    Вы можете сбросить квоту для пользователя root (UID 0) с помощью следующей команды:

    # vzquota setlimit2 CTID -u 0 0 0 0 0
    

    Также вы можете сбросить квоту для любого пользователя или группы, указав соответствующий UID или GID:

    # vzquota setlimit2 CTID -u UID 0 0 0 0
    # vzquota setlimit2 CTID -g GID 0 0 0 0
    
  7. При запуске контейнера произошла следующая ошибка:

    # vzctl start CTID
    Owner check failed on the server pcs.hostname.tld; Container is registered for Pcs.hostname.tld
    

    Это значит, что или этот контейнер зарегистрирован на другом сервере, или кто-то изменил доменное имя сервера.

    • Если проблема затрагивает только один контейнер, вы можете вручную изменить /vz/private/CTID/.owner на Pcs.hostname.tld (pcs.hostname.tld и Pcs.hostname.tld - это разные значения; доменное имя сервера чувствительно к регистру).
    • Если затронуты все контейнеры и они не перечислены в выводе команды vzlist -a, то проще всего будет вернуть прежнее доменное имя сервера с помощью команды hostname:

      # hostname Pcs.hostname.tld
      

    После этого контейнеры должны появиться на сервере и запускаться без проблем. Обратите внимание, что это временное изменение - чтобы оно не сбрасывалось при перезагрузке, вам нужно изменить hostname в /etc/sysconfig/network.

d02f9caf3e11b191a38179103495106f 2897d76d56d2010f4e3a28f864d69223 a26b38f94253cdfbf1028d72cf3a498b e8e50b42231236b82df27684e7ec0beb 0dd5b9380c7d4884d77587f3eb0fa8ef c62e8726973f80975db0531f1ed5c6a2 5356b422f65bdad1c3e9edca5d74a1ae caea8340e2d186a540518d08602aa065 ac82ce33439a9c1feec4ff4f2f638899 2554725ed606193dd9bbce21365bed4e 614fd0b754f34d5efe9627f2057b8642

Email subscription for changes to this article
Save as PDF