virt-sparsify(1) | Virtualization Support | virt-sparsify(1) |
virt-sparsify — зробити диск віртуальної машини розрідженим
virt-sparsify [--параметри] вхідний_диск вихідний_диск virt-sparsify [--параметри] --in-place диск
Virt-sparsify — інструмент, який може зробити диск віртуальної машини (або будь-який образ диска) розрідженим, тобто спеціально зменшеним. Це означає, що вільне місце в образі диска можна буде перетворити на вільне місце в основній системі.
Virt-sparsify може знаходити і розріджувати вільне місце у більшості файлових систем (наприклад у ext2/3/4, btrfs, NTFS тощо), а також у фізичних томах LVM.
Крім того, програма virt-sparsify може перетворювати диски з одного формату на інший, наприклад, перетворити образ диска у простому форматі (raw) на розріджений образ у форматі qcow2.
Virt-sparsify може працювати з будь-яким образом диска, не лише з образами віртуальних машин. Втім, якщо у вашій віртуальній машині декілька дисків і використано керування томами, virt-sparsify працюватиме, але не дуже ефективно (http://bugzilla.redhat.com/887826).
Якщо вхідними даними є образ raw, буде виведено розріджені дані raw. Вам слід перевірити розмір виведених даних за допомогою інструмента, який обробляє розріджені дані, наприклад "du -sh". Різниця може бути досить значною:
$ ls -lh test1.img -rw-rw-r--. 1 rjones rjones 100M Aug 8 08:08 test1.img $ du -sh test1.img 3.6M test1.img
(Порівняйте видимий розмір у 100 МБ зі справжнім розміром у 3,6 МБ)
Якщо ви використовуєте параметр --in-place, значні обсяги місця на диску для тимчасового зберігання даних не знадобляться.
Перш ніж розпочати користування цією програмою, вам також варто ознайомитися зі сторінками підручника щодо пов'язаних із нею інструментів, virt-filesystems(1) та virt-df(1).
Типовий приклад використання:
virt-sparsify вхідний_диск вихідний_диск
Ця команда копіює "вхідний_диск" на диск "вихідний_диск", роблячи результат розрідженим. Диск "вихідний_диск" буде створено або перезаписано, якщо такий диск уже існує. Програма сама визначить формат вхідного диска (наприклад qcow2) і використає той самий формат для вихідного диска.
Для перетворення диска з одного формату на інший скористайтеся параметром --convert:
virt-sparsify disk.raw --convert qcow2 disk.qcow2
Virt-sparsify намагається занулити і розрідити вільне місце на усіх файлових системах, які вдасться знайти на початковому образі диска. Ви можете наказати програмі ігнорувати (не занулювати вільне місце) певні файлові системи за допомогою такої команди:
virt-sparsify --ignore /dev/sda1 вхідний_диск вихідний_диск
Щоб отримати список файлових систем на образі диска, скористайтеся командою virt-filesystems(1).
Починаючи з версії virt-sparsify ≥ 1.26, ви можете розріджувати образ диска на місці, ось так:
virt-sparsify --in-place disk.img
Якщо під час перевірки буде виявлено проблему, ви можете піти одним з таких шляхів:
Цей параметр не можна поєднувати із параметром --in-place.
Цей параметр не можна поєднувати із параметром --in-place.
Підтримуваними і працездатними форматами виведення є такі: "raw", "qcow2", "vdi".
Ви також можете скористатися будь-яким іншим форматом, підтримку якого передбачено у програми qemu-img(1), наприклад "vmdk", але підтримка інших форматів повністю залежить від можливостей qemu.
Зазвичай, варто визначати формат за допомогою --convert, оскільки тоді virt-sparsify не доведеться вгадувати формат вхідних даних.
Скоригувати формат виведення даних можна за допомогою параметрів --compress, -o.
Цей параметр не можна поєднувати із параметром --in-place.
Якщо ви працюєте із образами дисків гостьових систем у форматі raw із ненадійних джерел, вам слід завжди вказувати назву формату.
Якщо не використовується --in-place, вільне місце у файловій системі не буде занулено, але наявні нульові блоки все одно буде розріджено.
Якщо використовується --in-place, файлову систему буде повністю проігноровано.
У другій формі команда призведе до ігнорування вказаної за назвою групи томів. Використовуйте назву групи томів без префікса /dev/, наприклад --ignore vg_foo
Цей параметр можна вказувати декілька разів.
If there are multiple encrypted devices then you may need to supply multiple keys on stdin, one per line.
Вам слід скористатися -o не більше одного разу. Щоб передати декілька параметрів, відокремте їх комами. Приклад:
virt-sparsify --convert qcow2 \ -o cluster_size=512,preallocation=metadata ...
Цей параметр не можна поєднувати із параметром --in-place.
Якщо як параметр вказано блоковий пристрій, блоковий пристрій буде записано безпосередньо. Зауважте, що при цьому з блокового пристрою буде повністю витерто наявні дані.
Якщо як параметр вказано каталог, визначення параметра буде рівнозначним заданню значення змінної середовища "TMPDIR".
Цей параметр не можна поєднувати із параметром --in-place.
Цей параметр використовується oVirt, де потрібен спеціальним чином форматований тимчасовий файл.
Починаючи з virt-sparsify ≥ 1.26, програма може виконувати розрідження на місці (замість копіювання з вхідного диска до вихідного диска). Таке розрідження є ефективнішим. Втім, за його використання не можна отримати більше місця у основній системі, якщо порівнювати із розрідженням із копіюванням.
Щоб скористатися цим режимом, вкажіть образ диска, який буде змінено на місці:
virt-sparsify --in-place disk.img
Деякі параметри несумісні із цим режимом: --convert, --compress і -o, оскільки їхнє використання вимагає загальної зміни формату диска; --check-tmpdir, оскільки великі обсяги для зберігання тимчасових даних не потрібні.
Розрідження на місці працює завдяки підтримці відкидання (або обрізання чи скасування отримання пам'яті).
Для виведення даних у зручному для машинної обробки форматі можна скористатися параметром --machine-readable. Додавання цього параметра робить зручним використання virt-sparcify з інших програм, графічних інтерфейсів тощо.
Існує два способи використання цього параметра.
Спочатку, скористайтеся цим параметром окремо, щоб опитати систему щодо можливостей виконуваного файла virt-sparcify. Типово виведені дані виглядатимуть якось так:
$ virt-sparsify --machine-readable virt-sparsify ntfs btrfs
Виводиться список можливостей, по одній на рядок, і програма завершує роботу зі станом 0.
По-друге, можна скористатися цим параметром у поєднанні із іншими параметрами для того, щоб зробити звичайні виведені програмою дані придатнішими для подальшої машинної обробки.
У поточній версії це означає таке:
^[0-9]+/[0-9]+$
Підтримку параметра --machine-readable передбачено у всіх версіях virt-sparsify.
Можна вказати рядок форматування для керування виведенням, див. "РОЗШИРЕНЕ ПРИДАТНЕ ДО ЧИТАННЯ КОМП'ЮТЕРОМ ВИВЕДЕННЯ" in guestfs(3).
«Швидкий запуск» Windows 8 може заважати роботі virt-sparsify. Див. "ПРИСИПЛЯННЯ WINDOWS ТА ШВИДКИЙ ЗАПУСК WINDOWS 8" in guestfs(3).
У virt-sparsify ≥ 1.28 ви можете перевизначити цю змінну середовища за допомогою параметра --tmp.
На диску має бути достатньо вільного місця для найгіршого варіанта для повної копії початкового диска (віртуального розміру). Якщо місця недостатньо, слід встановити для $TMPDIR значення, яке вказує на інший каталог, де достатньо місця.
Типовим значенням є /tmp.
Зауважте, що якщо файловою системою у $TMPDIR є tmpfs (наприклад, якщо файловою системою /tmp є tmpfs, або якщо ви використовуєте "TMPDIR=/dev/shm"), типовим розміром tmpfs є максимальне значення половини фізичної оперативної пам'яті. Якщо virt-sparsify знадобиться більше місця, програма просто «повисне». Якщо ви побоюєтеся такого перебігу подій, або скористайтеся реальним диском, або збільште максимальний розмір точки монтування tmpfs, наприклад так:
mount -o remount,size=10G /tmp
Якщо ви використовуєте параметр --in-place, значні обсяги місця на диску для тимчасового зберігання даних не знадобляться.
Опис інших змінних середовища наведено у розділі "ENVIRONMENT VARIABLES" in guestfs(3).
Ця програма повертає 0, якщо дію виконано без жодної помилки (це не обов'язково означає, що місце на диску звільнилося).
Ненульовий код виходу вказує на помилку.
Якщо повернуто код виходу 3 і було використано параметр --in-place, це означає, що у libguestfs не передбачено підтримки відкидання зайвого місця на диску, отже, доведеться користуватися режимом копіювання.
virt-df(1), virt-filesystems(1), virt-resize(1), virt-rescue(1), guestfs(3), guestfish(1), truncate(1), fallocate(1), qemu-img(1), http://libguestfs.org/.
Richard W.M. Jones http://people.redhat.com/~rjones/
Copyright (C) 2011-2020 Red Hat Inc.
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:
2021-01-05 | libguestfs-1.44.0 |