yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #68942
[Bug 1728924] [NEW] console logging does not work for OL instances on xen compute
Public bug reported:
Testing with pike on an OVM 3.4.4 xen compute node, Oracle Linux
instances do not have working console logging in horizon. (on kvm
compute, they are fine)
Note: The OL 7.3 image used to create these instances is marked with
--property vm_mode=hvm
On kvm the relevant configuration is similar to this:
<serial type='file'>
<source path='/var/lib/nova/instances/210817e9-9579-425d-a1f6-366c64826bc8/console.log'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<serial type='pty'>
<source path='/dev/pts/11'/>
<target port='1'/>
<alias name='serial1'/>
</serial>
<console type='file'>
<source path='/var/lib/nova/instances/210817e9-9579-425d-a1f6-366c64826bc8/console.log'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
By making experimental changes (adding in "xen") to the create_console
method in
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L4569
def _create_consoles(self, virt_type, guest_cfg, instance, flavor,
image_meta):
# NOTE(markus_z): Beware! Below are so many conditionals that it is
# easy to lose track. Use this chart to figure out your case:
#
# case | is serial | has | is qemu | resulting
# | enabled? | virtlogd? | or kvm? | devices
# --------------------------------------------------
# 1 | no | no | no | pty*
# 2 | no | no | yes | file + pty
# 3 | no | yes | no | see case 1
# 4 | no | yes | yes | pty with logd
# 5 | yes | no | no | see case 1
# 6 | yes | no | yes | tcp + pty
# 7 | yes | yes | no | see case 1
# 8 | yes | yes | yes | tcp with logd
# * exception: virt_type "parallels" doesn't create a device
if virt_type == 'parallels':
pass
elif virt_type not in ("qemu", "kvm", "xen"):
log_path = self._get_console_log_path(instance)
self._create_pty_device(guest_cfg,
vconfig.LibvirtConfigGuestConsole,
log_path=log_path)
elif (virt_type in ("qemu", "kvm") and
self._is_s390x_guest(image_meta)):
self._create_consoles_s390x(guest_cfg, instance,
flavor, image_meta)
elif virt_type in ("qemu", "kvm", "xen"):
self._create_consoles_qemu_kvm(guest_cfg, instance,
flavor, image_meta)
This allows for the creation of similar configuration on xen, which then
looks to allow the console logging to work correctly.
The instance also had a modified /etc/default/grub, like so:
...
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
I do not know if this works correctly in all cases, a more complete test
matrix may be needed here.
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1728924
Title:
console logging does not work for OL instances on xen compute
Status in OpenStack Compute (nova):
New
Bug description:
Testing with pike on an OVM 3.4.4 xen compute node, Oracle Linux
instances do not have working console logging in horizon. (on kvm
compute, they are fine)
Note: The OL 7.3 image used to create these instances is marked with
--property vm_mode=hvm
On kvm the relevant configuration is similar to this:
<serial type='file'>
<source path='/var/lib/nova/instances/210817e9-9579-425d-a1f6-366c64826bc8/console.log'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<serial type='pty'>
<source path='/dev/pts/11'/>
<target port='1'/>
<alias name='serial1'/>
</serial>
<console type='file'>
<source path='/var/lib/nova/instances/210817e9-9579-425d-a1f6-366c64826bc8/console.log'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
By making experimental changes (adding in "xen") to the create_console
method in
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L4569
def _create_consoles(self, virt_type, guest_cfg, instance, flavor,
image_meta):
# NOTE(markus_z): Beware! Below are so many conditionals that it is
# easy to lose track. Use this chart to figure out your case:
#
# case | is serial | has | is qemu | resulting
# | enabled? | virtlogd? | or kvm? | devices
# --------------------------------------------------
# 1 | no | no | no | pty*
# 2 | no | no | yes | file + pty
# 3 | no | yes | no | see case 1
# 4 | no | yes | yes | pty with logd
# 5 | yes | no | no | see case 1
# 6 | yes | no | yes | tcp + pty
# 7 | yes | yes | no | see case 1
# 8 | yes | yes | yes | tcp with logd
# * exception: virt_type "parallels" doesn't create a device
if virt_type == 'parallels':
pass
elif virt_type not in ("qemu", "kvm", "xen"):
log_path = self._get_console_log_path(instance)
self._create_pty_device(guest_cfg,
vconfig.LibvirtConfigGuestConsole,
log_path=log_path)
elif (virt_type in ("qemu", "kvm") and
self._is_s390x_guest(image_meta)):
self._create_consoles_s390x(guest_cfg, instance,
flavor, image_meta)
elif virt_type in ("qemu", "kvm", "xen"):
self._create_consoles_qemu_kvm(guest_cfg, instance,
flavor, image_meta)
This allows for the creation of similar configuration on xen, which
then looks to allow the console logging to work correctly.
The instance also had a modified /etc/default/grub, like so:
...
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
I do not know if this works correctly in all cases, a more complete
test matrix may be needed here.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1728924/+subscriptions