LINUX.ORG.RU
ФорумAdmin

qcow2 on LVM - что бы почитать?


0

4

Доброе утро, уважаемые лоровцы!

Поднимал недавно сервер с несколькими вирт. машинами под qemu-KVM, управляющимся через libvirt (virsh). Образы дисков (частью свежесозданные, частью скопированные с «железных» машин и других нод) раскатывал как qcow2 поверх разделов LVM примерно так

# qemu-img convert -f raw /var/preserve/images/image.img -O qcow2 /dev/mapper/vg00-virt0

, делая lv по размеру чуть больше исходного образа (на всякий случай).

Всё работает довольно быстро, снапшоты делаются/откатываются (

# virsh snapshot-create/-revert <domain>
, например), но что-то мне ссыкотно из-за незнания «внутренностей» процесса. Интересуют 2 вопроса:

1. Нет ли каких подводных камней с использованием qcow2 поверх lv, корректно ли вообще так делать?

2. Где libvirt (qemu же, libvirt является лишь враппером?) хранит файлы снапшотов? Если я правильно понимаю суть процесса, в них записываются изменения, вносимые в исходный образ, следовательно, они должны иметь немаленький и постоянно увеличивающийся размер. Так вот, на диске я их не нашёл 0_о

Как-то так. Не посоветуете ли почитать что по теме «механизм снапшотов в qemu/KVM»? Маны на qemu весьма скудные, на libvirt.org про снапшоты тоже не густо.

CentOS 5.7, libvirt 0.8.2, qemu-img 0.9.1

★★★

Последнее исправление: nbw (всего исправлений: 2)

Ответ на: комментарий от Pinkbyte

Снапшоты в qemu ЕМНИП хранятся внутри qcow2 образа

Это то, чего я боялся... Т.е. qcow2 образы таки нельзя размещать на блочных устройствах фиксированного размера? Место-то имеет свойство кончаться... И что будет, когда суммарный объём «образ + снапшот(ы)» станет больше объёма устройства?

nbw ★★★
() автор топика
Ответ на: комментарий от nbw

что будет, когда суммарный объём «образ + снапшот(ы)» станет больше объёма устройства?

я подозреваю, что ошибка insufficient disk space настанет раньше :-)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

я подозреваю, что ошибка insufficient disk space настанет раньше :-)

Я тоже так думаю. Теперь бы узнать, это будет просто отказ в записи, или необратимо покорёженный образ)))

nbw ★★★
() автор топика

Так. Кастую в тред корифеев - true_admin, Dimez, nnz, mv. Ещё можно позвать no-dashi - он скажет, что я м*дак, и не умею админить ынтырпрайз. Потому что, если то, что сказал Pinkbyte - правда, то нужно срочно конвертить образы в raw, пока на vg место есть.

И ещё: как посмотреть, сколько внутри образа qcow2 осталось доступного места?

~# qemu-img info -f qcow2 /dev/vg00/squid-k
image: /dev/vg00/squid-k
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 0
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         1323617322             751M 2011-12-11 19:28:42  140:38:14.271
VM SIZE - это размер снапшота, или размер вирт. машины целиком?

nbw ★★★
() автор топика
Ответ на: комментарий от nbw

нужно срочно конвертить образы в raw, пока на vg место есть

У тебя случай еще не запущеный, если ты это понял, но тяжелый поскольку ты не понял этого раньше. Ошибка при расширении QCOW будет видиться гостевой ОС практически как внезапный отказ диска :-)

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Ошибка при расширении QCOW будет видиться гостевой ОС практически как внезапный отказ диска

Отлично. В таком случае, нет ли других ограничений на использование qcow2 поверх lv (т.е. не будет ли образ пытаться расшириться по какой-то другой причине, кроме роста снапшота [который достаточно вовремя удалить])? И, всё же, как узнать доступное в данный момент место?

nbw ★★★
() автор топика
Ответ на: комментарий от nbw

если то, что сказал Pinkbyte - правда

правда. qcow2 это growable формат.

сколько внутри образа qcow2 осталось доступного места?

хз, это был disk size параметр в kvm-img info который стал нулём. С ходу ничего не могу предложить лучше чем расковырять исходники.

VM SIZE - это размер снапшота, или размер вирт. машины целиком?

хз, но это же легко понять по размеру исходного образа и занятому месту внутри VM. Но я думаю что «The size of a snapshot in a disk image is difficult evaluate and is not shown by @code{info snapshots} because the associated disk sectors are shared among all the snapshots to save disk space (otherwise each snapshot would need a full copy of all the disk images).» (с) доки. С другой стороны 701 всё же похоже на размер снапшота чем на полный образ системы.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

похоже на размер снапшота чем на полный образ системы.

Угу, сумма df по разделам гостя даёт 1.45G, так что 751M - это, скорее, размер снапшота (сделан до обновления CentOS 6.0 -> 6.1, изменения при обновлении околоминимальной системы примерно столько и весят).

это был disk size параметр в kvm-img info который стал нулём.

Я хз, почему оно там 0. Вот вывод qemu-img для раздела на другой машине

~% sudo qemu-img info /dev/md_d1p1
image: /dev/md_d1p1
file format: host_device
virtual size: 233G (250000001024 bytes)
disk size: 0
- тут под диск ВМ заюзан тупо раздел рейда, создавался как raw. Это я к тому, что disk size там всегда 0, когда дело имеем с разделами, а не файлами.

nbw ★★★
() автор топика
Ответ на: комментарий от true_admin

Может тебе вернуть всё как было а потом накатить на lvm диск в raw-формате?

Это самое простое (возвращать-то зачем, qemu-img convert с раздела в raw-файл, потом снова на раздел, но уже в raw, от даунтайма в час никто не помрёт). Только qem'овские снапшоты уже не поюзать будет %) Но я пытаюсь понять, нужны ли такие меры, или можно осторожно эксплуатировать систему в таком вот виде, осторожно следя за размером образа и снапшотов, удаляя их, когда в них пропадает необходимость. Т.е. нет ли _принципиальных_ противопоказаний к использованию qcow2 на блочных устройствах.

nbw ★★★
() автор топика
Ответ на: комментарий от nbw

осторожно следя

ну нахер такой гемор. Представь что у тебя хотя бы сотня серверов.. Ты будешь за каждым следить? :) У меня моё хозяйство насчитывает всего 5 виртуальных машин, а и то автоматизирую всё что можно. Иначе задалбывает.

Если нужны снапшоты то попробуй, скажем, на уровне lvm внутри виртуалки делать. btrfs рекомендовать не буду, сыровато оно.

Потом снапшот, на сколько я понимаю, можно делать в отдельный файл, не?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

ну нахер такой гемор. Представь что у тебя хотя бы сотня серверов.

C удовольствием представлю. Когда ж оно наступит... Но пока исходим из того, что есть.

Если нужны снапшоты то попробуй, скажем, на уровне lvm

Оу, щит, ненене. LVM'ные снапшоты - в задницу, простите.

Потом снапшот, на сколько я понимаю, можно делать в отдельный файл, не?

Вот это уже интереснее. Надо заставить libvirt делать снапшот в отдельный файл (вызывать qemu-img напрямую неспортивно))

nbw ★★★
() автор топика
Ответ на: комментарий от true_admin

Ага, я сначала решил выкурить ман по virsh ещё раз, потом буду разбираться с xml-конфигом снапшотным этим.

nbw ★★★
() автор топика

Слушай, скажи как реальный пользователь комбинации центос+kvm ( у меня правда centos6), что бы добится того о чем ты написал достаточно стандартных репозиторий?

То есть я жму yum install qemu + yum install libvirt , отдаю команды virsh и все работает? особой уличной магии нет?

kernel ★★☆
()
Ответ на: комментарий от kernel

особой уличной магии нет?

Магии нет. Сначала ты гуглишь по словам «virt-install», «virsh», «centos 6», читаешь и, по возможности, понимаешь прочитанное. А потом ставишь)

nbw ★★★
() автор топика
Ответ на: комментарий от kernel

Если дело происходит на локалхосте с гуём - то можно заюзать virt-manager. По первым 2-м ссылкам как раз всё расписано.

nbw ★★★
() автор топика
Ответ на: комментарий от kernel

qemu собран с kvm

О_0 Всё работает «из коробки», как и полагается в нормальном бинарном дистре, руками ничего собирать не надо)

nbw ★★★
() автор топика
Ответ на: комментарий от nbw

О_0 Всё работает «из коробки», как и полагается в
нормальном бинарном дистре, руками ничего собирать не надо)

Я тоже был раньше в подобном был уверен, пока не поставил виртуалбокс40 под центос60. И без dkms (и естественно без gcc и прочего вроде хедеров ядра) оно не поставилось.

kernel ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.