qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1782300] [NEW] COLO unable to failover to secondary VM


From: PJ Tsao
Subject: [Qemu-devel] [Bug 1782300] [NEW] COLO unable to failover to secondary VM
Date: Wed, 18 Jul 2018 07:30:13 -0000

Public bug reported:

I test COLO feature on my host following docs/COLO-FT.txt in qemu folder, but 
fail to failover to secondary VM. 
Is there any mistake in my execution steps?

Execution environment:
QEMU v2.12.0-rc4
OS:     Ubuntu 16.04.3 LTS
Kernel: Linux 4.4.35
Secondary VM IP: noted as "a.b.c.d"

Execution steps:
# Primary
${COLO_PATH}/x86_64-softmmu/qemu-system-x86_64 \
    -enable-kvm \
    -m 512M \
    -smp 2 \
    -qmp stdio \
    -vnc :7 \
    -name primary \
    -device piix3-usb-uhci \
    -device usb-tablet \
    -netdev tap,id=tap0,vhost=off \
    -device virtio-net-pci,id=net-pci0,netdev=tap0 \
    -drive 
if=virtio,id=primary-disk0,driver=quorum,read-pattern=fifo,vote-threshold=1,\
        children.0.file.filename=${IMG_PATH},\
        children.0.driver=raw -S

# Secondary
${COLO_PATH}/x86_64-softmmu/qemu-system-x86_64 \
    -enable-kvm \
    -m 512M \
    -smp 2 \
    -qmp stdio \
    -vnc :8 \
    -name secondary \
    -device piix3-usb-uhci \
    -device usb-tablet \
    -netdev tap,id=tap1,vhost=off \
    -device virtio-net-pci,id=net-pci0,netdev=tap1 \
    -drive 
if=none,id=secondary-disk0,file.filename=${IMG_PATH},driver=raw,node-name=node0 
\
    -drive if=virtio,id=active-disk0,driver=replication,mode=secondary,\
        file.driver=qcow2,top-id=active-disk0,\
        file.file.filename=$ACTIVE_DISK,\
        file.backing.driver=qcow2,\
        file.backing.file.filename=$HIDDEN_DISK,\
        file.backing.backing=secondary-disk0 \
    -incoming tcp:0:8888

# Enter into Secondary:
{'execute':'qmp_capabilities'}
{ 'execute': 'nbd-server-start',
    'arguments': {'addr': {'type': 'inet', 'data': {'host': 'a.b.c.d', 'port': 
'8889'} } }
}
{'execute': 'nbd-server-add', 'arguments': {'device': 'secondary-disk0', 
'writable': true } }

# Enter into Primary:
{'execute':'qmp_capabilities'}
{'execute': 'human-monitor-command',
    'arguments': {
        'command-line': 'drive_add -n buddy 
driver=replication,mode=primary,file.driver=nbd,file.host=a.b.c.d,file.port=8889,file.export=secondary-disk0,node-name=nbd_client0'
    }
}
{ 'execute':'x-blockdev-change', 'arguments':{'parent': 'primary-disk0', 
'node': 'nbd_client0' } }
{ 'execute': 'migrate-set-capabilities',
    'arguments': {'capabilities': [ {'capability': 'x-colo', 'state': true } ] 
} }
{ 'execute': 'migrate', 'arguments': {'uri': 'tcp:a.b.c.d:8888' } }

# To test failover
Primary
{ 'execute': 'x-blockdev-change', 'arguments': {'parent': 'primary-disk0', 
'child': 'children.1'}}
{ 'execute': 'human-monitor-command','arguments': {'command-line': 'drive_del 
nbd_client0'}}

Secondary
{ 'execute': 'nbd-server-stop' }

Stop Primary
Send ^C signal to terminate PVM.

Secondary
{ "execute": "x-colo-lost-heartbeat" }


# Result:
Primary (Use ^C to terminate)
qemu-system-x86_64: Can't receive COLO message: Input/output error
qemu-system-x86_64: terminating on signal 2
{"timestamp": {"seconds": 1531815575, "microseconds": 997696}, "event": 
"SHUTDOWN", "data": {"guest":false}}

Secondary
{ 'execute': 'nbd-server-stop' }
{"return": {}}
{ "execute": "x-colo-lost-heartbeat" }
{"return": {}}
qemu-system-x86_64: Can't receive COLO message: Input/output error
Segmentation fault

** Affects: qemu
     Importance: Undecided
         Status: New


** Tags: colo

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1782300

Title:
  COLO unable to failover to secondary VM

Status in QEMU:
  New

Bug description:
  I test COLO feature on my host following docs/COLO-FT.txt in qemu folder, but 
fail to failover to secondary VM. 
  Is there any mistake in my execution steps?

  Execution environment:
  QEMU v2.12.0-rc4
  OS:     Ubuntu 16.04.3 LTS
  Kernel: Linux 4.4.35
  Secondary VM IP: noted as "a.b.c.d"

  Execution steps:
  # Primary
  ${COLO_PATH}/x86_64-softmmu/qemu-system-x86_64 \
      -enable-kvm \
      -m 512M \
      -smp 2 \
      -qmp stdio \
      -vnc :7 \
      -name primary \
      -device piix3-usb-uhci \
      -device usb-tablet \
      -netdev tap,id=tap0,vhost=off \
      -device virtio-net-pci,id=net-pci0,netdev=tap0 \
      -drive 
if=virtio,id=primary-disk0,driver=quorum,read-pattern=fifo,vote-threshold=1,\
          children.0.file.filename=${IMG_PATH},\
          children.0.driver=raw -S

  # Secondary
  ${COLO_PATH}/x86_64-softmmu/qemu-system-x86_64 \
      -enable-kvm \
      -m 512M \
      -smp 2 \
      -qmp stdio \
      -vnc :8 \
      -name secondary \
      -device piix3-usb-uhci \
      -device usb-tablet \
      -netdev tap,id=tap1,vhost=off \
      -device virtio-net-pci,id=net-pci0,netdev=tap1 \
      -drive 
if=none,id=secondary-disk0,file.filename=${IMG_PATH},driver=raw,node-name=node0 
\
      -drive if=virtio,id=active-disk0,driver=replication,mode=secondary,\
          file.driver=qcow2,top-id=active-disk0,\
          file.file.filename=$ACTIVE_DISK,\
          file.backing.driver=qcow2,\
          file.backing.file.filename=$HIDDEN_DISK,\
          file.backing.backing=secondary-disk0 \
      -incoming tcp:0:8888

  # Enter into Secondary:
  {'execute':'qmp_capabilities'}
  { 'execute': 'nbd-server-start',
      'arguments': {'addr': {'type': 'inet', 'data': {'host': 'a.b.c.d', 
'port': '8889'} } }
  }
  {'execute': 'nbd-server-add', 'arguments': {'device': 'secondary-disk0', 
'writable': true } }

  # Enter into Primary:
  {'execute':'qmp_capabilities'}
  {'execute': 'human-monitor-command',
      'arguments': {
          'command-line': 'drive_add -n buddy 
driver=replication,mode=primary,file.driver=nbd,file.host=a.b.c.d,file.port=8889,file.export=secondary-disk0,node-name=nbd_client0'
      }
  }
  { 'execute':'x-blockdev-change', 'arguments':{'parent': 'primary-disk0', 
'node': 'nbd_client0' } }
  { 'execute': 'migrate-set-capabilities',
      'arguments': {'capabilities': [ {'capability': 'x-colo', 'state': true } 
] } }
  { 'execute': 'migrate', 'arguments': {'uri': 'tcp:a.b.c.d:8888' } }

  # To test failover
  Primary
  { 'execute': 'x-blockdev-change', 'arguments': {'parent': 'primary-disk0', 
'child': 'children.1'}}
  { 'execute': 'human-monitor-command','arguments': {'command-line': 'drive_del 
nbd_client0'}}

  Secondary
  { 'execute': 'nbd-server-stop' }

  Stop Primary
  Send ^C signal to terminate PVM.

  Secondary
  { "execute": "x-colo-lost-heartbeat" }

  
  # Result:
  Primary (Use ^C to terminate)
  qemu-system-x86_64: Can't receive COLO message: Input/output error
  qemu-system-x86_64: terminating on signal 2
  {"timestamp": {"seconds": 1531815575, "microseconds": 997696}, "event": 
"SHUTDOWN", "data": {"guest":false}}

  Secondary
  { 'execute': 'nbd-server-stop' }
  {"return": {}}
  { "execute": "x-colo-lost-heartbeat" }
  {"return": {}}
  qemu-system-x86_64: Can't receive COLO message: Input/output error
  Segmentation fault

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1782300/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]