Article ID: 10041, created on May 18, 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 for Linux 上内核崩溃与服务器挂起问题。

解决方案

  1. 使用两个 COM 端口之间的零调制调解器建立 Parallels Server Bare Metal 或 Parallels Containers 节点(之后的 HW)与监控节点(之后的 MN)建立连接。
  2. 尝试找出负责连接的 COM 端口的 tty 控制台。 在 MN 上:
    [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
    _
    现在转入 HW
    [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 是正确的控制台。
    现在返回 MN 您会看到以下信息:
    [root@monitor ~]# cat /dev/ttyS0
    test
    如果您看到一些乱码,波特率将不匹配(但是之后会被进行配置)。
  3. 配置 HW
    设置调试输出至所需控制台设备,例如,/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 是我们在 pp.2 中找到的 COM 端口而 115200 是发送信息的波特率。
    而且可启用在 /etc/sysctl.conf 中的调试输出:
    [root@pvcfl46x64 ~]# grep printk /etc/sysctl.conf
    kernel.printk = 8 4 1 7
    [root@pvcfl46x64 ~]# sysctl -p
     
  4. 配置 MN
    注意: 最好根据 Parallels Containers 用户指南 设置 ttylogd
    1. 例如从 Parallels Containers 程序包中找到 ttylogd RPM:
      [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
    2. 复制 RPM 至 MN
      [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 是在 pp.2 中 MN 上找到的 COM 端口。
      [root@monitor ~]# /etc/init.d/ttylogd restart
      Shutting down ttylogd: [FAILED]
      Starting ttylogd /dev/ttyS0: [ OK ]
      [root@monitor ~]#
  5. 重启 HW 节点,同时查看 MN 上的日志:
    [root@monitor ~]# tail -f /var/log/console-pvcfl46.log
    Feb 23 12:10:10 pvcfl46 ttylogd v.2.1.0-5 started
现在,如果内核崩溃,将有可能收集并分析 MN 上的日志。
注意: 还可使用 USB-to-Serial 适配器,这样的情况下,设备名称应为 /dev/ttyUSBx 而不是 /dev/ttySx
注意: 两个硬件节点可作为彼此的监控器。

其他信息

欲了解更多信息,请查看:
OpenVZ Wiki 页面:
Remote console setup

Parallels Containers 用户指南页面:
Kernel troubleshooting
Setting up Monitoring Node

欲了解更多有关获取完整程序包的信息,请参阅文章:
10043: 如何下载完整的 Parallels Containers for Linux

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

Email subscription for changes to this article