Scroll to navigation

guestfs-release-notes-1.38(1) Virtualization Support guestfs-release-notes-1.38(1)

НАЗВА

guestfs-release-notes - нотатки щодо випусків libguestfs

НОТАТКИ ЩОДО ВИПУСКУ LIBGUESTFS 1.38

Ці нотатки щодо випуску стосуються лише відмінностей від попереднього стабільного випуску (1.36.0). Докладний журнал змін є частиною журналу змін сховища git. Його також наведено у файлі ChangeLog, який є частиною архіву tar із кодом бібліотеки.

Нові можливості

Нові інструменти

Virt-builder-repository — новий інструмент, який надає кінцевим користувачам змогу створювати і оновлювати сховища virt-builder (Cédric Bosdonnat).

Virt-rescue (хоча це і не новий інструмент) було суттєво переписано, реалізовано керування завданнями, параметри -m та -i, клавіші скасовування тощо.

Нові можливості у наявних інструментах

Поліпшено планувальник virt-builder. У новій версії програма вибирає швидші та ефективніші плани збирання для складних випадків, особливо якщо тимчасовий каталог або каталог виведення даних перебувають на сховищі даних у мережі.

Нові шаблони virt-builder для Fedora (починаючи з Fedora 26) матимуть просте компонування розділів і використовуватимуть GPT.

Скрипти першого завантаження virt-customize у гостьових системах, де використовується systemd, тепер встановлюються до "multi-user.target", а не до "default.target", отже запускаються лише тоді, коли система завантажується у звичайному режимі.

Virt-customize тепер встановлює випадковий /etc/machine-id для гостьових систем Linux, якщо такий ще не встановлено.

Virt-df тепер правильно працює у файлових системах із розміром блоку, меншим за 1 кБ (Nikolay Ivanets).

Virt-dib містить подальші поліпшення у сумісності з diskimage-builder (Pino Toscano).

Virt-sysprep вилучає "DHCP_HOSTNAME" з файлів ifcfg-*.

Virt-sysprep тепер працює і в Oracle Linux (Jamie Iles).

Virt-resize тепер правильно копіює атрибути розділів GPT з джерела до призначення (Cédric Bosdonnat).

Реалізовано або поліпшено доповнення за tab у bash для таких програм: virt-win-reg, virt-v2v-copy-to-local.

virt-v2v і virt-p2v

Virt-v2v тепер може читати файли VMX VMware безпосередньо або з локального диска, сховища NFS, або за допомогою SSH з гіпервізору ESXi.

Virt-v2v тепер може використовувати VDDK як джерело вхідних даних.

Обидві програми, virt-v2v і virt-p2v, тепер можуть передавати дані щодо виробника процесора, моделі і топології початкової системи. Втім, на жаль, не усі гіпервізори поточних версій здатні надати або використати ці дані (Tomáš Golembiovský).

У virt-v2v реалізовано підтримку шифрованих гостьових систем (Pino Toscano).

Virt-v2v тепер може працювати зі знімками VMware. Зауважте, що знімки мають бути згорнутими — програма не перетворює ланцюжок знімків у ланцюжок знімків.

Virt-v2v тепер встановлює блокові пристрої virtio Windows 10 / Windows Server 2016 належним чином (Pavel Butsykin, Kun Wei).

У virt-v2v реалізовано встановлення драйверів virtio-rng, balloon та pvpanic та належне налаштовування цих драйверів у метаданих гіпервізору призначення для гіпервізорів, у яких передбачено підтримку цього (Tomáš Golembiovský).

У virt-v2v реалізовано встановлення застарілих і сучасних ключів virtio у реєстрі Windows (Ladi Prosek).

У virt-p2v реалізовано збереження (у певних випадках) часового поясу у годиннику реального часу (RTC).

Тепер virt-p2v поєднує декілька команд scp до сервера перетворення у одну команду, щоб зменшує час, потрібний на перетворення.

У virt-v2v реалізовано виявлення спеціалізованих ядер Linux лише для паравіртуалізації у Xen належним чином (Laszlo Ersek).

У virt-v2v -o glance реалізовано підтримку створення належних властивостей для гостьових систем UEFI (Pino Toscano).

Тепер virt-v2v -o null уникає буферизації гостьової системи до тимчасового файла. Замість цього, виконується запис до «нульового блокового пристрою» qemu. Це пришвидшує роботу і знижує потребу у використанні місця на диску.

У virt-v2v -o rhv реалізовано підтримку типу гостьової системи Windows 2016 Server.

У virt-v2v -i libvirtxml реалізовано підтримку відкриття мережевих дисків за допомогою http або https.

У virt-v2v реалізовано попереджання щодо транзитних пристроїв у основній системі (Pino Toscano).

Розширено можливості виведення virt-v2v --machine-readable так, щоб було включено факти "vcenter-https", "xen-ssh" і "in-place" (Pino Toscano).

Прив’язки до мов програмування

Усунено декілька витоків пам'яті та інших проблем із пошкодженням даних у прив'язках до Java (Pino Toscano).

Відкинуто підтримку у Perl %guestfs_introspection.

Перевірка

Підтримку інспектування було переписано на OCaml і включено у фонову службу. Це значно пришвидшує інспектування, збільшує його стійкість та поліпшує можливості із його розширення у майбутньому.

Краща підтримка піктограм гостьових систем ALT Linux (Pino Toscano).

Краща підтримка NeoKylin (Qingzheng Zhang).

Уможливлено роботу з операційними системами, подібними до Void Linux, у яких "VERSION_ID" не включено до /etc/os-release (Pino Toscano).

Додано підтримку Microsoft MS-DOS (Daniel Berrangé).

Архітектури і платформи

Декілька виправлень для архітектури S/390. Libguestfs і усі інструменти тепер можна зібрати і запустити на цій архітектурі.

Інше

Програмний інтерфейс libguestfs тепер є безпечним щодо потоків обробки (хоча ще не є паралелізованим). Ви можете викликати інтерфейс для одного дескриптора із декількох потоків без потреби у блокуванні.

Безпека

Було виявлено декілька вразливостей у програмі icoutils "wrestool", яку libguestfs запускала для створення піктограм гостьових систем Windows. Рекомендуємо використовувати лише найсвіжішу версію "wrestool".

API

Нові програмні інтерфейси

"hivex_value_string"
Замінює собою застарілий програмний інтерфейс "hivex_value_utf8", виконуючи ті самі завдання.
"part_get_gpt_attributes"
"part_set_gpt_attributes"
Читання і запис прапорців атрибутів розділів GPT (Cédric Bosdonnat).
"part_resize"
Збільшення і зменшення наявного розділу (Nikos Skalkotos).
"yara_destroy"
"yara_load"
"yara_scan"
Підтримка рушія пошуку шкідливого програмного забезпечення Yara (Matteo Cafasso).

Інші зміни у програмному інтерфейсі

Програмні інтерфейси, реалізовані у фоновій службі, тепер можна писати на C або OCaml. Декілька програмних інтерфейсів було переписано на OCaml, хоча ми і не плануємо переписувати цією мовою усі інтерфейси.

Тепер ви отримуватимете зрозуміле повідомлення про помилку, якщо спробуєте додати забагато дисків до базової системи, замість доволі розпливчастого повідомлення про помилку від qemu.

У деяких програмних інтерфейсах випадково можна було скористатися "/dev/urandom" як «пристроєм» вхідних даних. Приклад: "g.copy_device_to_device("/dev/urandom", "/dev/sda")". Код було змінено таким чином, щоб не можна було так робити.

Усі програмні інтерфейси для інспектування компакт-дисків із засобом для встановлення визнано застарілими. Для виконання цього завдання слід використовувати libosinfo.

Зміни у збиранні

Для збирання libguestfs нової версії потрібен компілятор OCaml ≥ 4.01. Параметр "./configure --disable-ocaml" лишається працездатним, але використовується лише для вимикання прив'язок до мови OCaml.

Додано файл "RELEASES" зі списком дат усіх випусків libguestfs. Цей файл слід оновлювати під час кожного випуску.

Було вилучено документацію, яку створює "gtk-doc". Тепер використання "./configure --enable-gtk-doc" не має жодних наслідків.

Для функції XDR та rpcgen тепер використовується libtirpc. Зауважте, що для glibc вона вважається застарілою і у більшості дистрибутивів Linux ці залежності викинуто, тому для більшості користувачів ця залежність буде додатковою (Martin Kletzander).

Тепер для crypt(3) використовується libxcrypt. Ця бібліотека є обов'язковою, якщо використовується glibc ≥ 2.27.

Тепер для роботи потрібен "ocaml-hivex".

Тепер обов'язковою є libvirt ≥ 1.2.20.

Тепер для тестів, які слід запускати від імені користувача root, передбачено нову ціль, "make check-root" (аналогічно до "make check-slow").

Перевірка щодо часу "./configure" для "__attribute__((cleanup))" тепер працює і у випадку крос-компіляції (Yann E. Morin).

Файли "AUTHORS" і "p2v/about-authors.c" тепер створюються із одного джерела.

Можна використовувати і GnuPG v1, і v2.

Для визначення типового значення "LIBGUESTFS_PATH" може бути використано "./configure --with-guestfs-path". Крім того, трохи змінено спосіб, у який виконується пошук за шляхом, для того, щоб виконати пошук усіх типів базових систем у кожному з елементів шляху окремо (Pavel Butsykin).

Змінну "GUESTFSD_EXT_CMD", яка використовувалася для позначення зовнішніх команд у фоновій службі, вилучено. Її спочатку використовували для збирання у SUSE, але там тепер вона не використовується.

Виведені дані "./configure" тепер візуально групуються за заголовками, відповідними до виконуваної дії, що спрощує пошук потрібних даних (Pino Toscano).

Залежності OCaml тепер створюються з одного скрипту, замість декількох трохи різних фрагментів Makefile.

"./configure --with-distro=ідентифікатор" можна скористатися для перевизначення автоматичного визначення дистрибутива Linux під час збирання (Pino Toscano).

Реалізовано підтримку qemu ≥ 2.10 (яка не є обов'язковою). Це додає обов'язкове блокування для дисків, libguestfs вимикає таке блокування за певних обставин, коли відомо, що це є безпечним (Lars Seipel, Peter Krempa, Daniel Berrangé, Pino Toscano, Fam Zheng, Yongkui Guo, Václav Kadlčík).

Внутрішня частина роботи програми

Найвикористовуваніший код пересунуто до підкаталогу common/, а спільний код OCaml тепер зберігається у каталогах common/ml* (наприклад, common/visit і common/mlvisit містять бібліотеку visitor мовами C та OCaml, відповідно). Каталог mllib вилучено і замінено каталогом common/mltools.

Реалізовано невибагливу до ресурсів прив'язку OCaml для PCRE, див. common/mlpcre. Використання бібліотеки OCaml "Str" здебільшого замінено на PCRE.

Додано більше викликів до "udev_settle" для поліпшення стабільності коду поділу на розділи (Dawid Zamirski).

Реалізовано запуск "udev_settle" з параметром --exit-if-exists, який пришвидшує виконання команди (Pavel Butsykin).

Реалізовано виявлення нових місць зберігання major(3), minor(3), makedev(3).

Дії тепер може бути визнано застарілими без пропозицій щодо заміни для програмних інтерфейсів, подібних до "guestfs_wait_ready", які слід просто вилучити з коду клієнта.

Реалізовано використання обгортки "set_nonblocking_flag" gnulib замість виклику fcntl(2) з "O_NONBLOCK" (Eric Blake). Те саме для "set_cloexec_flag".

Усунено виток пам'яті у версії XFS "guestfs_vfs_minimum_size" (Pino Toscano).

Перевірки valgrind тепер працюють для виконуваного файла virt-p2v.

Тепер у коді і документації використовується одинарні лапки Unicode ("‘’") замість '' і `'. Те саме стосується "’s" замість "'s".

Функцію "is_zero" було реалізовано заново із суттєвим пришвидшенням (Eric Blake).

У модулі безпосередньої обробки вилучено підтримку virtio-blk. Тепер єдиним підтримуваним способом додавання дисків є virtio-scsi.

Рядковий параметр і повернуті типи засобу створення раціоналізовано так, щоб було лише два типи ("String", "StringList") з багатьма підтипами, наприклад "FileIn" став "String (FileIn, ...)".

Тепер можна використовувати формати образу диска базово системи, відмінні від простого (raw) (Pavel Butsykin).

Декілька поліпшень у автоматичному збиранні шаблонів Debian для virt-builder (Pino Toscano). Уможливлено послідовну консоль для цих шаблонів (Florian Klink).

У фоновій службі замість створення приватної копії lvm.conf і внесення змін до неї (наприклад для фільтрів) створюється порожній файл, оскільки LVM розуміє, що означає «усе типове» (Alasdair Kergon, Zdenek Kabelac).

Модуль "direct" тепер може запускати запити QMP щодо виконуваного файла QEMU, що розширює типи інформації, які можна виявляти. Крім того, код для надсилання запитів до QEMU зроблено стійкішим для обробки декількох паралельних запитів до різних версій QEMU.

Прив'язки Augeas до OCaml зібрано у common/mlaugeas. Згідно з довготерміновим планом їх має бути вилучено з метою використання загальносистемного ocaml-augeas, коли він стане широкодоступним у дистрибутивах (Pino Toscano).

Усі модулі OCaml (файли "*.ml") тепер повинні мати файл інтерфейсу ("*.mli"). Якщо ці модулі нічого не експортують, файл інтерфейсу буде порожнім, окрім коментарів.

У коді використовуються певні особливості OCaml ≥ 4.01, зокрема заміна «{ поле = поле }» на «{ поле }».

Інструмент virt-builder "make-template" тепер використовує параметр "virt-install --transient", отже, тепер немає потреби у чищенні залишків доменів після аварійного завершення роботи. Це також заощаджує запуски kickstart та virt-install, зміни щодо чого внесено до git із довідковою метою.

/dev/shm тепер створюється у базовій системі (Nicolas Hicher).

У докладному режимі на гостьових системах Fedora virt-customize тепер використовує "dnf --verbose", що дає змогу отримати докладніші діагностичні дані.

У класах введення і виведення virt-v2v тепер міститься метод "#precheck", який використовується для виконання перевірки середовища до того, як буде розпочато перетворення.

Virt-p2v уможливлює діагностику miniexpect. Дані виводяться до stderr (у virt-p2v).

Перевірки щодо вільного місця virt-v2v тепер є ліберальнішими, особливо для невеликих гостьових систем (Pino Toscano).

Виправлені вади

https://bugzilla.redhat.com/1540535
Адреса прикладу «Перетворення з гіпервізору ESXi за допомогою SSH до локальної libvirt» на сторінці підручника v2v була некоректною
https://bugzilla.redhat.com/1539395
Помилки сегментації virt-customize після оновлення до 1.37.35-3
https://bugzilla.redhat.com/1536765
У прив'язках до Perl libguestfs можуть траплятися незначні витоки пам'яті, якщо станеться помилка
https://bugzilla.redhat.com/1536763
У прив'язках libguestfs до Lua використовується strerror(), що не є безпечним щодо потоків виконання
https://bugzilla.redhat.com/1536603
На сторінці підручника не було згадано про використання «--» при спробі змінити поведінку при завершенні виконання у результаті помилки
https://bugzilla.redhat.com/1525241
virt-df показує нулі для файлових систем із розміром блоку =512
https://bugzilla.redhat.com/1519204
v2v should improve the result when convert a rhel7.4 guest with no available kernels found in the bootloader
https://bugzilla.redhat.com/1518517
virt-v2v fails with "unsupported configuration: shared access for disk 'sdb' requires use of supported storage format"
https://bugzilla.redhat.com/1516094
Mere presence of QEMU file locking options breaks NBD (Block protocol 'nbd' doesn't support the option 'locking')
https://bugzilla.redhat.com/1514756
./configure --disable-ocaml breaks building common/mlpcre which breaks building daemon
https://bugzilla.redhat.com/1513884
[RFE]Should update some vddk info in v2v man page
https://bugzilla.redhat.com/1508874
virt-v2v: warning: ova disk has an unknown VMware controller type (20)
https://bugzilla.redhat.com/1506572
virt-v2v '-i ova' is not parsing the MAC address from the source OVF
https://bugzilla.redhat.com/1506511
virt-builder fails to parse repo file if it has blank space after the repository identifier
https://bugzilla.redhat.com/1503958
Failed to convert the rhel5 guest with kmod-xenpv installed from xen server by virt-v2v
https://bugzilla.redhat.com/1503497
qemu-kvm fails to open qcow2 files in read-only mode with qemu-kvm 1.5.3
https://bugzilla.redhat.com/1500673
Error info shows wrong sometimes when ssh to conversion server using non-root user with sudo on p2v client
https://bugzilla.redhat.com/1500537
/dev/shm does not exist in the appliance environment
https://bugzilla.redhat.com/1497475
guestfish cannot list commands from interactive mode
https://bugzilla.redhat.com/1493048
Unbound constructor Hivex.OPEN_UNSAFE
https://bugzilla.redhat.com/1484957
bump debian images to use single-partition layout
https://bugzilla.redhat.com/1482737
virt-resize failed to expand swap partition for RHEL5.11 guest image with "parsing UUID failed"
https://bugzilla.redhat.com/1477623
Running file API on a special chardev may hang forever
https://bugzilla.redhat.com/1476081
inspect-os report error: could not parse integer in version number: V7Update2
https://bugzilla.redhat.com/1472719
[RFE]Add warning in process of v2v converting guest which has pci passthrough device
https://bugzilla.redhat.com/1472208
virt-v2v fails on opensuse 13.2 guest with error: statns: statns_stub: path must start with a / character
https://bugzilla.redhat.com/1469655
Скрипти firstboot неправильно встановлюються у Fedora 26
https://bugzilla.redhat.com/1466563
Libguestfs should pass copyonread flag through to the libvirt XML
https://bugzilla.redhat.com/1465665
1.36.x build failure: gtkdocize fails using newer autotools due to missing GTK_DOC_CHECK in configure.ac
https://bugzilla.redhat.com/1460338
guestfs_shutdown повисає, якщо основний процес встановлює обробники сигналів
https://bugzilla.redhat.com/1459979
guestfs_add_domain_argv fails with readonly option when vdi/vhd disk is attached to libvirt domain
https://bugzilla.redhat.com/1451665
RFE: Virt-v2v не здатна перетворювати гостьові системи із зашифрованими розділами
https://bugzilla.redhat.com/1450325
Потрібна документація до формату адреси параметрів -a інструментів
https://bugzilla.redhat.com/1448739
RFE: Support multicore decompression for OVA files using pigz and pxz
https://bugzilla.redhat.com/1447202
Гостьова система Win 2016 описується як Win 10 після імпортування до RHEVM
https://bugzilla.redhat.com/1441197
RFE: ability to convert VMware virtual machines via vmx
https://bugzilla.redhat.com/1438939
Будь ласка, викиньте або оновіть залежність від GnuPG (1.4.x)
https://bugzilla.redhat.com/1438794
[RFE] Install Windows virtio-rng drivers on VMs imported
https://bugzilla.redhat.com/1433937
virt-inspector can't get icon info from altlinux-centaurus
https://bugzilla.redhat.com/1433577
policycoreutils setfiles >= 2.6 does .. nothing
https://bugzilla.redhat.com/1431579
Windows 8 UEFI from VMware to KVM fails to boot after conversion
https://bugzilla.redhat.com/1430680
There is error info about "No such file or directory" when convert a guest from ova file by v2v
https://bugzilla.redhat.com/1430184
virt-dib should generate sha256 checksum instead of sha512
https://bugzilla.redhat.com/1429506
RFE: OVMF should be detected on conversion server to prevent failed conversion
https://bugzilla.redhat.com/1429491
Should rename network name of rhv in virt-v2v man page
https://bugzilla.redhat.com/1427529
virt-sysprep should remove DHCP_HOSTNAME
https://bugzilla.redhat.com/1417306
QEMU image file locking (libguestfs)
https://bugzilla.redhat.com/1409024
[Debian] Missing db_dump abort inspection
https://bugzilla.redhat.com/1406906
Помилка сегментації при читанні пошкодженого шляху за допомогою прив'язок до Python 3
https://bugzilla.redhat.com/1379289
RFE: virt-p2v має підтримувати мнемонічні операції
https://bugzilla.redhat.com/1378022
There is virt-v2v warning about <listen type='none'> during converting a guest which has listen type='none' in XML
https://bugzilla.redhat.com/1376547
qemu-system-s390x: -device isa-serial,chardev=charserial0,id=serial0: 'isa-serial' is not a valid device model name
https://bugzilla.redhat.com/1374232
selinux relabel fails on RHEL 6.2 guests with "libguestfs error: selinux_relabel: : Success"
https://bugzilla.redhat.com/1367738
Missing bash completion scripts for: virt-diff guestunmount virt-copy-in virt-copy-out virt-customize virt-get-kernel virt-p2v-make-disk virt-p2v-make-kickstart virt-tar-in virt-tar-out virt-v2v-copy-to-local virt-win-reg
https://bugzilla.redhat.com/1362649
RFE: virt-sysprep does not utilize libguestfs encryption support
https://bugzilla.redhat.com/1172425
[RFE]virt-v2v failed to convert VMware ESX VM with snapshot
https://bugzilla.redhat.com/1171654
Modify a file in virt-rescue with vi on some linux terminal such as yakuake, can lead to abnormal display in virt-rescue shell
https://bugzilla.redhat.com/1167623
Remove "If reporting bugs, run virt-v2v with debugging enabled .." message when running virt-p2v
https://bugzilla.redhat.com/1152819
Can not end a running command in virt-rescue by press ^C or other keys, the only way is to exit virt-rescue

ТАКОЖ ПЕРЕГЛЯНЬТЕ

guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1), http://libguestfs.org/

АВТОР

Richard W.M. Jones

АВТОРСЬКІ ПРАВА

© Red Hat Inc., 2009–2020

LICENSE

BUGS

To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

When reporting a bug, please supply:

  • The version of libguestfs.
  • Where you got libguestfs (eg. which Linux distro, compiled from source, etc)
  • Describe the bug accurately and give a way to reproduce it.
  • Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report.
2022-11-28 libguestfs-1.48.6