3

У меня есть около 140 VMS, которые работали на Ubuntu 10.04 с использованием KVM. Различные операционные системы в виртуальных машинах, но в основном 10.04 виртуальных машин.

Они побежали хорошо под 10.04. Я сделал полную очистку дисков ОС и ввел все существующие виртуальные машины с помощью dirsh define их конфигурационных файлов. Я сделал это на серверах с 3-5 виртуальными машинами, и он работал нормально, но эти серверы работают по 20-25 виртуальных машин каждый.

После обновления я заметил следующие вещи:

  1. Некоторое время виртуальных машин сошло с ума. Как будто они были загружены и думали, что это было 2 месяца назад.
  2. Выполнение du/df больше не показывает, насколько велики изначально созданные img-файлы. Только то, что используется в них. Поэтому, когда у вас установлена 40G Ubuntu, она показывает как 2G в du, ls -lh показывает правильно
  3. Некоторые (не все) виртуальные машины ведут себя так, как будто они не могут записывать на диск почти так, как если бы у них не хватало места, но на 55% больше свободного места. После удаления файла виртуальная машина снова начинает работать.
  4. Виртуальные машины обычно все еще проверяются, но консоль и SSH не работают. Некоторые SSH-соединения зависают после ввода пароля.

Образы дисков живут на XFS.

Информация о версии:

  • ОС: Ubuntu 12.04
  • Ядро: 3.2.0-30-универсальный
  • kvm 1: 84+dfsg-0ubuntu16+1.0+noroms+0ubuntu14.1 фиктивный переходный пакет от kvm к qemu-kvm
  • qemu 1.0+noroms-0ubuntu14.1 фиктивный переходный пакет от qemu к qemu-kvm
  • qemu-common 1.0+noroms-0ubuntu14.1 общая функциональность qemu (BIOS, документация и т. д.)
  • qemu-kvm 1.0+noroms-0ubuntu14.1 Полная виртуализация на оборудовании i386 и amd64
  • qemu-utils 1.0+noroms-0ubuntu14.1 утилиты qemu
  • Устаревшая реализация BIOS Seabios 0.6.2-0ubuntu2.1, которую можно использовать в качестве полезной нагрузки coreboot
  • vgabios 0.6c-2ubuntu3 VGA BIOS для VGA-карт Bochs и Qemu
  • программы libvirt-bin 0.9.8-2ubuntu17.5 для библиотеки libvirt
  • Библиотека libvirt0 0.9.8-2ubuntu17.5 для взаимодействия с различными системами виртуализации

Я также пытался собрать 14,7 QEMU / KVM с теми же результатами.

Нет записей в журналах (libvirt, qemu, syslog) на гипервизорах или в VMS.

<domain type="kvm">
  <name>template</name>
  <uuid>9b5004aa-e4e1-11de-9137-003048dad824</uuid>
  <memory>1048576</memory>
  <currentMemory>1048576</currentMemory>
  <vcpu>2</vcpu>
  <os>
    <type arch="x86_64" machine="pc">hvm</type>
    <boot dev="hd"/>
    <kernel>/kvm/kernels/vmlinuz-2.6.32-24-server</kernel>
    <initrd>/kvm/kernels/initrd.img-2.6.32-24-server</initrd>
    <cmdline>ro root=/dev/vda</cmdline>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset="utc"/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type="file" device="cdrom">
      <target dev="hdc" bus="ide"/>
      <readonly/>
    </disk>
    <disk type="file" device="disk">
      <source file="/kvm/images/template.img"/>
      <target dev="vda" bus="virtio"/>
    </disk>
    <interface type="bridge">
      <mac address="de:ad:3e:5b:47:99"/>
      <source bridge="br2"/>
      <model type="virtio"/>
    </interface>
    <serial type="pty">
      <target port="0"/>
    </serial>
    <console type="pty">
      <target port="0"/>
    </console>
    <graphics type="vnc" port="-1" listen="0.0.0.0" autoport="yes" keymap="en-us"/>
  </devices>
</domain>

Делая стрейс на работающей виртуальной машине, я вижу это:

read(19, "\2\0\0\0\0\0\0\0\0\0\336\255\276\357\10\353\0\f\333\350\275\0\10\0E\0\0B\214\212@\0"..., 69632) = 90
ioctl(6, KVM_IRQ_LINE_STATUS, 0x7fff290e65f0) = 0
read(19, 0x7f7967430a54, 69632)         = -1 EAGAIN (Resource temporarily unavailable)
select(20, [7 8 11 15 16 17 18 19], [], [], {1, 0}) = 1 (in [8], left {0, 999819})
read(16, 0x7fff290f6710, 16)            = -1 EAGAIN (Resource temporarily unavailable)

Любая помощь будет оценена.

РЕДАКТИРОВАТЬ

Я обновился до последней сборки ядра из Ubuntu. Заметил некоторые Запреты от AppArmor, когда выполняется только iozone, поэтому я полностью удалил apparmor из моей системы тестирования. Обновлены библиотеки qemu/kvm и библиотеки поддержки, найденные в 12.10. Я также пытался использовать версии pc-0.12 и pc-0.14.

Все по-прежнему взаперти в течение часа или двух после загрузки.

2 ответа2

1

Кажется, что-то блокирует виртуальные машины с точки зрения хоста KVM. Несколько вещей, чтобы попробовать:

  • Увеличивается ли загрузка ЦП узла KVM, когда это происходит?
  • Что показывает vmstat (запустить vmstat 5)?

образец vmstat

% vmstat 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 806972 396372 2369348    0    0    13    26   11  197  4  4 90  2  0   
 0  0      0 808908 396380 2367056    0    0     0    18 6453 13546  2  2 95  1  0  
 0  0      0 807508 396380 2370296    0    0     0    22 6438 13662  2  3 95  1  0  
 0  0      0 809892 396392 2367068    0    0     0    56 6273 13189  1  2 95  1  0  
  • Что показывает iostat (запустить iostat -dx 5)?

образец йостата

% iostat -dx 5
Linux 2.6.35.14-106.fc14.x86_64 (grinchy)   01/28/2013  _x86_64_    (4 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.61    11.29    1.14    4.07    58.12   116.23    33.46     0.17   31.81   7.18   3.74
dm-0              0.00     0.00    0.83    2.38    34.75    19.02    16.77     0.10   31.11   2.17   0.70
dm-1              0.00     0.00    0.00    0.00     0.04     0.00     8.00     0.00    5.30   2.70   0.00
dm-2              0.00     0.00    0.92   12.37    23.18    97.21     9.06     0.79   59.40   2.46   3.27

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00    12.20    0.00    3.00     0.00   112.00    37.33     0.05   16.73  13.87   4.16
dm-0              0.00     0.00    0.00    1.40     0.00    11.20     8.00     0.05   38.29  12.43   1.74
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00   12.60     0.00   100.80     8.00     0.06    4.37   1.92   2.42

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00    11.60    0.00    2.60     0.00   107.20    41.23     0.04   13.46  13.23   3.44
dm-0              0.00     0.00    0.00    0.60     0.00     4.80     8.00     0.01   15.00  13.00   0.78
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00   12.80     0.00   102.40     8.00     0.13   10.05   2.08   2.66

У нас была похожая проблема при запуске KVM в CentOS 5.x, но она не обнаружилась после перехода на CentOS 6.x. Также при отладке проблемы это, казалось, было специфичным для гостевой виртуальной машины. Я имею в виду, что некоторые гостевые виртуальные машины, по-видимому, вызывают эту проблему на всем хосте KVM.

0

Некоторое время я решал эту проблему и обнаружил, что это связано с ядром, используемым самими виртуальными машинами. Они использовали 2.6.32. Мы обновились до версии 2.6.38-10, в которой есть исправление ошибки таймера, которое выглядит виновным. Они бегали уже 11 месяцев, и проблема не вернулась.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .