Article ID: 10041, created on May 22, 2012, last review on Aug 12, 2014

  • Applies to:
  • Operations Automation 5.5
  • Virtuozzo
  • Virtuozzo containers for Linux
  • Virtuozzo hypervisor

Симптомы

Иногда для диагностики сбоев ядра и зависания сервера в Parallels Server Bare Metal или Parallels Containers для Linux бывает необходимо установить последовательную консоль.

Решение

  1. Соедините физический сервер Parallels Server Bare Metal или Parallels Containers (далее по тексту - ФС) с сервером наблюдения (далее по тексту - СН) с помощью нуль-модемного кабеля через COM-порты.
  2. Попробуйте выяснить, какая из tty-консолей отвечает за подключенные СОМ-порты. На СН:

    [root@monitor ~]# ls -l /dev/ttyS?
    crw-rw---- 1 root uucp 4, 64 Feb 23 11:06 /dev/ttyS0
    crw-rw---- 1 root uucp 4, 65 Feb 23 11:06 /dev/ttyS1
    crw-rw---- 1 root uucp 4, 66 Feb 23 11:06 /dev/ttyS2
    crw-rw---- 1 root uucp 4, 67 Feb 23 11:06 /dev/ttyS3
    [root@monitor ~]# cat /dev/ttyS0
    

    Если это не та консоль, появится следующая ошибка:

    [root@monitor ~]# cat /dev/ttyS3
    cat: /dev/ttyS3: Input/output error
    

    Если вы используете правильный терминал, вы увидите похожий текст:

    [root@monitor ~]# cat /dev/ttyS0
    _
    

    Теперь перейдите на ФС:

    [root@pvcfl46x64 ~]# for COMPORT in `ls /dev/ttyS?`; do echo ${COMPORT}; echo test > ${COMPORT} ;done
    /dev/ttyS0
    /dev/ttyS1
    -bash: echo: write error: Input/output error
    /dev/ttyS2
    -bash: echo: write error: Input/output error
    /dev/ttyS3
    -bash: echo: write error: Input/output error
    

    Мы видим, что правильная консоль - /dev/ttyS0.

    Теперь вернитесь на СН - вы должны увидеть следующее сообщение:

    [root@monitor ~]# cat /dev/ttyS0
    test
    

    Если вы видите какой-то непонятный набор символов, значит, значения скорости в бодах не совпадают (они будут настроены позже).

  3. Настройка ФС:

    Назначьте отладочную консоль, например /dev/ttyS0:

    [root@pvcfl46x64 ~]# grep console /etc/grub.conf

    kernel /boot/vmlinuz-2.6.18-028stab070.14 ro root=LABEL=/1 debug console=ttyS0,115200 console=tty

    ttyS0 - это COM-порт, который мы нашли на шаге 2, а 115200 - это скорость отправки информации в бодах.

    Также включите вывод отладочных данных в /etc/sysctl.conf:

    [root@pvcfl46x64 ~]# grep printk /etc/sysctl.conf
    kernel.printk = 8 4 1 7
    [root@pvcfl46x64 ~]# sysctl -p
    
  4. Настройка СН:

    Примечание. Для настройки ttylogd рекомендуем следовать инструкции в руководстве Parallels Containers User Guide:

    1. Найдите RPM-пакет ttylogd - например, в дистрибутиве Parallels Containers, который можно скачать, как описано в этой статье:

      [root@pvcfl46x64 ~]# ./virtuozzo-4.0.0-448-x86_64.sfx -d virtuozzo --extract
      extracting...
      Extraction success
      [root@pvcfl46x64 ~]# find virtuozzo/ -iname '*ttylogd*'
      virtuozzo/virtuozzo/RPMS/ttylogd-3.0.0-3.swsoft.x86_64.rpm
      

      Как вариант, вы можете скачать нужный пакет напрямую:

      1. для 64-разрядных систем
      2. для 32-разрядных систем
    2. Скопируйте этот RPM-пакет на СН:

      [root@pvcfl46x64 ~]# scp virtuozzo/virtuozzo/RPMS/ttylogd-3.0.0-3.swsoft.x86_64.rpm root@monitor:/
      The authenticity of host 'monitor (10.55.63.11)' can't be established.
      RSA key fingerprint is 77:91:fa:65:b1:68:43:8e:fa:5a:a2:8c:72:86:99:4c.
      Are you sure you want to continue connecting (yes/no)? yes
      Warning: Permanently added 'monitor' (RSA) to the list of known hosts.
      root@monitor's password:
      ttylogd-3.0.0-3.swsoft.x86_64.rpm 100% 12KB 12.2KB/s 00:00
      [root@pvcfl46x64 ~]#
      
    3. Установите ttylogd:

      [root@monitor ~]# rpm -Uvh /ttylogd-3.0.0-3.swsoft.x86_64.rpm
      warning: /ttylogd-3.0.0-3.swsoft.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 2425c37e
      Preparing... ########################################### [100%]
      1:ttylogd ########################################### [100%]
      
    4. Настройте ttylogd:

      [root@monitor ~]# cat /etc/ttylog.conf
      DAEMONS="1"
      PORT_OPTIONS_GLOBAL="115200 cs8 -hupcl -cstopb cread clocal -crtscts -icrnl ixon \
      ixoff -opost -isig -icanon -iexten -echo"
      PORT1=/dev/ttyS0
      HOST1=pvcfl46
      LOG1="/var/log/console-${HOST1}.log"
      

      /dev/ttyS0 - это COM-порт, найденный на СН на шаге 2.

      [root@monitor ~]# /etc/init.d/ttylogd restart
      Shutting down ttylogd: [FAILED]
      Starting ttylogd /dev/ttyS0: [ OK ]
      [root@monitor ~]#
      
    5. Перезагрузите ФС и параллельно проверьте журнал на СН:

      [root@monitor ~]# tail -f /var/log/console-pvcfl46.log
      Feb 23 12:10:10 pvcfl46 ttylogd v.2.1.0-5 started
      

Теперь в случае сбоя ядра можно будет проанализировать журнал на СН.

Примечание. Вы также можете использовать преобразователь USB - последовательный интерфейс, в случае чего устройства будут называться /dev/ttyUSBx вместо /dev/ttySx.

Примечание. Два физических сервера могут быть серверами наблюдения друг для друга.

Дополнительная информация

Источники дополнительной информации:

Руководство по Parallels Containers:

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

  • 10043: Как скачать полный дистрибутив Parallels Containers для Linux

2897d76d56d2010f4e3a28f864d69223 e8e50b42231236b82df27684e7ec0beb d02f9caf3e11b191a38179103495106f a26b38f94253cdfbf1028d72cf3a498b 0dd5b9380c7d4884d77587f3eb0fa8ef 5356b422f65bdad1c3e9edca5d74a1ae caea8340e2d186a540518d08602aa065 5b048d9bddf8048a00aba7e0bdadef37 2554725ed606193dd9bbce21365bed4e 614fd0b754f34d5efe9627f2057b8642

Email subscription for changes to this article
Save as PDF