
=head1 НАЗВА

virt-p2v — перетворення фізичної машини для використання KVM

=head1 КОРОТКИЙ ОПИС

 virt-p2v

 virt-p2v.iso

=head1 ОПИС

Virt-p2v перетворює фізичну машину для запуску віртуалізованою у KVM, під
керуванням libvirt, OpenStack, oVirt, Red Hat Virtualisation (RHV) або одним
із інших призначень, підтримку яких передбачено у L<virt-v2v(1)>.

Зазвичай, потреби у безпосередньому запуску програми virt-p2v немає. Замість
цього, вам слід завантажити фізичну машину за допомогою придатного до
завантаження компакт-диска, ISO або образу PXE. Цей придатний до
завантаження образ містить виконуваний файл virt-p2v і запускає його
автоматично. Завантаження з компакт-диска або іншого носія є обов'язковим,
оскільки диски, які перетворюватимуться, мають бути статичними. Перетворення
активної фізичної машини не є безпечним, оскільки під час створення образу
інші програми можуть вносити до нього зміни.

Цю сторінку підручника присвячено документуванню використання програми
virt-p2v. Щоб створити придатний до завантаження образ, вам слід
скористатися L<virt-p2v-make-disk(1)> або L<virt-p2v-make-kickstart(1)>.

=head1 НАЛАШТОВУВАННЯ МЕРЕЖІ

Virt-p2v працюватиме над фізичною машиною, яку ви хочете
перетворити. Програма має обмінюватися даними із іншим сервером, який
називається «сервером перетворення» і на якому має бути встановлено
L<virt-v2v(1)>. Обмін даними із сервером перетворення завжди
виконуватиметься за допомогою SSH:

 ┌──────────────┐                  ┌─────────────────┐
 │ virt-p2v     │                  │ virt-v2v        │
 │ (фізичний    │  з'єднання ssh    │ (сервер         │
 │  сервер)   ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍▶ перетворення)  │
 └──────────────┘                  └─────────────────┘

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

З'єднання SSH завжди ініціюється з фізичного сервера. Усі дані передаються
цим з'єднанням SSH. У термінах налаштування брандмауера і мережі, вам слід
лише забезпечити доступ до порту (зазвичай, порту TCP 22) для фізичного
сервера на серверів перетворення. Зауважте, що під час процесу перетворення
фізична машина може повторно встановлювати з'єднання декілька разів.

Для роботи  virt-p2v потрібна можливість зворотного переспрямовування портів
ssh (тобто працездатність команди C<ssh -R>). Програма не працюватиме, якщо
цю можливість вимкнено на сервері перетворення. (Для C<AllowTcpForwarding>
має бути встановлено значення C<yes> у файлі L<sshd_config(5)> на сервері
перетворення.)

Можливість ssh використовувати scp (безпечне копіювання) є обов'язковою для
virt-p2v для надсилання малих файлів (це I<не> той спосіб, у який копіюються
диски).

The conversion server does not need to be a physical machine.  It could be a
virtual machine, as long as it has sufficient memory and disk space to do
the conversion, and as long as the physical machine can connect directly to
its SSH port.  (See also L<virt-v2v(1)/Resource requirements>).

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

=head1 ІНТЕРАКТИВНЕ НАЛАШТОВУВАННЯ ЗА ДОПОМОГОЮ ГРАФІЧНОГО ІНТЕРФЕЙСУ

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

=head2 ВІКНО НАЛАШТОВУВАННЯ SSH

Після запуску virt-p2v у режимі графічного інтерфейсу перше діалогове вікно
виглядатиме ось так:

 ┌─────────────────────────────────────────────────────────────┐
 │                           virt-p2v                          │
 │                                                             │
 │ Сервер перетворення: [____________________________] : [22___] │
 │                                                             │
 │         Користувач: [root__________________________________] │
 │                                                             │
 │          Пароль:   [______________________________________] │
 │                                                             │
 │  Адреса профілю SSH: [______________________________________] │
 │                                                             │

У зазначених вище полях вам слід вказати параметри сервера перетворення:
назву вузла, номер порту SSH, ім'я віддаленого користувача і або пароль або
адресу профілю SSH (закритого ключа). На сервері перетворення має бути
встановлено достатньо сучасну версію virt-v2v.

Зазвичай, вам доведеться входити до сервера перетворення від імені
користувача root, але якщо ви позначите такий пункт:

 │                                                             │
 │         [ ] Використовувати sudo для запуску virt-v2v       │
 │                                                             │

ви зможете увійти до нього від імені іншого користувача, а virt-p2v
використовуватиме команду L<sudo(8)> для розширення прав доступу до прав
доступу root. Зауважте, що доступ до sudo має здійснюватися без пароля.

Крім того, virt-v2v можна запустити на сервері перетворення повністю без
прав доступу root, але режими виведення у цьому випадку може бути
обмежено. Зверніться до сторінки підручника L<virt-v2v(1)>, щоб дізнатися
більше.

У нижній частині діалогового вікна розташовано такі кнопки:

 │                                                             │
 │                  [ Перевірити з'єднання ]                   │
 │                                                             │
 │ [ Налаштувати мережу ] [ XTerm ] [ Про virt-p2v ] [ Далі ] │
 │                                                             │
 └─────────────────────────────────────────────────────────────┘

Спочатку вам слід натиснути кнопку C<Перевірити з'єднання>, щоб перевірити
з'єднання SSH із сервером перетворення. Якщо з'єднання вдасться встановити
(тобто ви вказали правильно назву сервера, ім'я користувача, пароль та інші
дані, а на віддаленій машині встановлено придатну версію virt-v2v),
натисніть кнопку C<Далі>, щоб перейти до наступного діалогового вікна.

Ви можете скористатися кнопкою C<Налаштувати мережу>, якщо вам потрібно
визначити статичну IP-адресу фізичної машини або скористатися Wifi,
прив'язкою або іншими можливостями мережі.

Кнопка C<XTerm> відкриває командну оболонку, якою можна скористатися для
діагностики, налаштовування мережі вручну тощо.

=head2 ДІАЛОГОВЕ ВІКНО НАЛАШТОВУВАННЯ ДИСКА І МЕРЕЖІ

За допомогою другого діалогового вікна налаштувань ви можете налаштувати
параметри перетворення, зокрема визначити, що слід перетворити, і те, куди
слід надіслати гостьову систему.

У лівому стовпчику, починаючи згори, за допомогою властивостей призначення
ви можете вибрати назву гостьової системи (тобто назву системи після
перетворення) і скільки віртуальних процесорів та оперативної пам'яті слід
надати гостьовій системі. Типові значення визначаються за параметрами
фізичної машини, ви, звичайно ж, можете їх не змінювати:

 ┌─────────────────────────────────────── ─ ─ ─ ─
 │ Властивості призначення:
 │
 │        Назва: [hostname______________]
 │
 │     К-ть вірт. процесорів: [4_____________________]
 │
 │ Пам'ять (у МБ): [16384_________________]
 │

Друга панель ліворуч керує параметрами виведення virt-v2v. Для того, щоб
краще зрозуміти ці параметри, варто ознайомитися зі сторінкою підручника
L<virt-v2v(1)>. Ви можете не змінювати типові значення цих параметрів для
створення гостьової системи як образу диска і файла XML libvirt, який
зберігатиметься у теці F</var/tmp> на сервері перетворення. Це непоганий
варіант, якщо ви є користувачем-початківцем virt-p2v.

 │
 │ Параметри виведення virt-v2v:
 │
 │          Вивести до (-o): [local             ▼]
 │
 │      З'єднання виведення (-oc): [___________________]
 │
 │    Сховище виведення (-os): [/var/tmp___________]
 │
 │     Формат виведення (-of): [___________________]
 │
 │ Розподіл виведення (-oa): [sparse            ▼]
 │

Всі параметри виведення і шляхи вказуються відносно сервера перетворення
(I<не> фізичного сервера).

Нарешті, у лівому стовпчику ви знайдете буде наведено інформація щодо версії
virt-p2v (на фізичному сервері) та virt-v2v (на сервері перетворення). Вам
слід надавати ці дані під час створення звітів щодо вад.

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

 ─ ─ ───────────────────────────────────────┐
     Фіксовані жорсткі диски                       │
                                            │
     Перетворити пристрій                        │
     [✔]      sda                           │
              1024G HITACHI                 │
              s/n 12345                     │
     [✔]      sdb                           │
              119G HITACHI                  │
              s/n 12346                     │
                                            │

Зазвичай, виконується перетворення усіх дисків. Якщо ви хочете, щоб програма
virt-p2v повністю проігнорувала локальний диск, зніміть позначку з його
пункту. Має бути позначено диск, на якому міститься операційна система. Якщо
диск є частиною масиву RAID або групи томів LVM (VG), має бути позначено або
усі диски з масиву або групи томів, або жодного диска з масиву або групи
томів.

                                            │
     Портативний носій                     │
                                            │
     Перетворити пристрій                  │
     [✔]      sr0                           │
                                            │

Якщо у фізичній машині містяться оптичні диски, ви можете скористатися
панеллю «Портативні носії» для створення відповідних дисків у гостьовій
системі після перетворення. Зауважте, що усі дані на компакт-дисках так DVD,
які було змонтовано, I<не> буде скопійовано.

                                            │
     Інтерфейси мережі                     │
                                            │
     Перетворити пристрій, з'єднаний із... |
     [✔]      em1    [типовий_____________] │
     [ ]      wlp3s0 [типовий_____________] │
                                            │

In the Network interfaces panel, select the network interfaces that should
be created in the guest after conversion.  You can also connect these to
target hypervisor networks (for further information about this feature, see
L<virt-v2v(1)/Networks and bridges>).

Якщо підтримку відповідної можливості передбачено у обладнанні, клацання
лівою кнопкою на назві пристрою (наприклад C<em1>) призведе до того, що на
фізичному інтерфейсі почне блимати лампочка, що надасть змогу оператору
ідентифікувати інтерфейс.

Коли будете готові розпочати перетворення, натисніть кнопку C<Розпочати
перетворення>:

                                            │
       [ Назад ]  [ Розпочати перетворення ] │
                                            │
 ─ ─ ───────────────────────────────────────┘

=head2 ДІАЛОГОВЕ ВІКНО ПОСТУПУ ПЕРЕТВОРЕННЯ

Протягом процедури перетворення ви бачитимете таке діалогове вікно:

 ┌────────────────────────────────────────────────────────┐
 │                      virt-p2v                          │
 │                                                        │
 │  ┌──────────────────────────────────────────────────┐  │
 │  │                                                 ▲│  │
 │  │                                                  │  │
 │  │                                                  │  │
 ∼  ∼                                                  ∼  ∼
 │  │                                                  │  │
 │  │                                                  │  │
 │  │                                                 ▼│  │
 │  └──────────────────────────────────────────────────┘  │
 │                                                        │
 │ Файли журналу ... до /tmp/virt-p2v-xxx                 │
 │                                                        │
 │ Виконуємо перетворення ...                              │
 │                                                        │
 │                             [ Скасувати перетворення ]  │
 │                                                        │
 └────────────────────────────────────────────────────────┘

У основній області зі смужкою гортання ви побачите повідомлення від процесу
virt-v2v.

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

Після завершення перетворення вам слід вимкнути фізичну машину. Якщо
перетворення буде успішним, вам уже ніколи не доведеться її
перезавантажувати.

=head1 НАЛАШТОВУВАННЯ КОМАНДНОГО РЯДКА ЯДРА

Якщо ви не хочете налаштовувати параметри за допомогою графічного інтерфейсу
користувача, можете налаштувати їх за допомогою командного рядка ядра. Це
особливо зручно, якщо вам потрібно перетворити багато фізичних машин, які
завантажуються із використанням PXE.

Точне місце того, де слід вказувати аргументи командного рядка, залежить від
вашої реалізації PXE, але для pxelinux вам слід вказати їх у полі C<APPEND>
файла F<pxelinux.cfg>. Приклад:

 DEFAULT p2v
 TIMEOUT 20
 PROMPT 0
 LABEL p2v
   KERNEL vmlinuz0
   APPEND initrd=initrd0.img [....] p2v.server=conv.example.com p2v.password=secret p2v.o=libvirt

Вам слід встановити деякі або усі такі аргументи командного рядка:

=over 4

__KERNEL_CONFIG__

=item B<p2v.pre=КОМАНДА>

=item B<p2v.pre="КОМАНДА АРГУМЕНТ ...">

Вибрати команду, яку буде виконано до перетворення. Тут можна вказати
будь-яку команду або скрипт. Якщо у команді містяться пробіли, вам слід
взяти усю команду у подвійні лапки. Типово, ніяка команда не
виконуватиметься.

=item B<p2v.post=poweroff>

=item B<p2v.post=reboot>

=item B<p2v.post=КОМАНДА>

=item B<p2v.post="КОМАНДА АРГУМЕНТ ...">

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

I<Якщо> virt-p2v запущено від імені користувача root, I<і> командний рядок
було встановлено з F</proc/cmdline> (не з I<--cmdline>), типовою поведінкою
буде запуск програми L<poweroff(8)>. У всіх інших випадках ніякої додаткової
команди не виконуватиметься.

=item B<p2v.fail=КОМАНДА>

=item B<p2v.fail="КОМАНДА АРГУМЕНТ ...">

Вибрати команду, яку буде виконано після перетворення, якщо перетворення не
вдасться виконати. Тут можна вказати будь-яку команду або скрипт. Якщо у
команді містяться пробіли, вам слід взяти усю команду у подвійні
лапки. Типово, ніяка команда не виконуватиметься.

=item B<ip=dhcp>

Скористатися DHCP для налаштовування інтерфейсу мережі (типова поведінка).

=begin коментар

=item B<ip=АДРЕСА:ШЛЮЗ:МАСКА_МЕРЕЖІ>

Налаштувати статичну мережу IPv4.

=end коментар

=back

=head1 ПРОФІЛІ SSH

Як дещо безпечнішу альтернативу розпізнаванню за допомогою пароля, ви можете
використати для розпізнавання профіль SSH (закритий ключ).

Спочатку створіть пару ключів. Пароль до пари ключів має бути порожнім:

 ssh-keygen -t rsa -N '' -f id_rsa

Буде створено пару з закритого ключа (C<id_rsa>) та відкритого ключа
(C<id_rsa.pub>).

Відкритий ключ слід дописати до файла C<authorized_keys> на сервері
перетворення virt-v2v (зазвичай, до файла C</root/.ssh/authorized_keys>).

Для поширення закритого ключа можна скористатися одним з таких чотирьох
сценаріїв (від менш безпечного до більш безпечного):

=over 4

=item 1.

Взагалі не використовувати профілі SSH, розпізнавати користувачів за
паролями.

Будь-хто з тих, хто має доступ до параметрів завантаження PXE з мережі або
може побачити пароль у якийсь інший спосіб, може увійти до сервера
перетворення virt-v2v.

=item 2.

Профіль SSH, вбудований до образу ISO або образу диска virt-p2v. У
графічному інтерфейсі скористайтеся такими налаштуваннями:

 │            Пароль: [    <не заповнюйте>               ] │
 │                                                          │
 │  Адреса профілю SSH: [file:///var/tmp/id_rsa____________] │

або командним рядком ядра:

 p2v.identity=file:///var/tmp/id_rsa

Закритий ключ SSH може бути отримано перехопленням пакетів у мережі, якщо
використовується стандартний PXE.

=item 3.

Профіль SSH, отриманий з сайта. У графічному інтерфейсі скористайтеся такими
налаштуваннями:

 │            Пароль: [    <не заповнюйте>               ] │
 │                                                          │
 │  Адреса профілю SSH: [https://internal.example.com/id_rsa] │

або командним рядком ядра:

 p2v.identity=https://internal.example.com/id_rsa

Знову ж таки, будь-хто може отримати закритий ключ і скористатися ним для
входу до сервера перетворення virt-v2v, але ви можете подбати про надійніший
захист, налаштувавши сервер так, щоб він встановлював з'єднання лише з
машинами P2V.

Зауважте, що L<ssh-keygen(1)> створює файл C<id_rsa> (закритий ключ) із
режимом доступу 0600. Якщо ви просто скопіюєте цей файл на сервер, сервер не
зможе його обслуговувати. Він повідомлятиме про помилки «403 Forbidden». Вам
слід змінити режим доступу до файла, щоб зробити його загальнодоступним для
читання, наприклад, скориставшись такою командою:

 chmod 0644 id_rsa

=item 4.

Профіль SSH, вбудований до образу ISO або образу диска virt-p2v (подібно до
2.) I<і> використання безпечного PXE, PXE на основі окремої фізичної мережі
або sneakernet для надсилання даних virt-p2v на фізичну машину.

=back

У обох скриптах, L<virt-p2v-make-disk(1)> і L<virt-p2v-make-kickstart(1)>,
передбачено той самий параметр I<--inject-ssh-identity> для вставляння
закритого ключа до образу диска або образу ISO virt-p2v. Ознайомтеся із
такими розділами підручника:

L<virt-p2v-make-disk(1)/ДОДАВАННЯ ПРОФІЛЮ SSH>

L<virt-p2v-make-kickstart(1)/ДОДАВАННЯ ПРОФІЛЮ SSH>

=head1 ТИПОВІ ПРОБЛЕМИ

=head2 Тайм-аути

Як це описано нижче (див. L</ЯК ПРАЦЮЄ VIRT-P2V>), virt-p2v створює декілька
довготривалих з'єднань ssh із сервером перетворення. Якщо час очікування на
з'єднання у цих з'єднаннях буде перевищено, virt-p2v не зможе продовжувати
роботу.

Щоб перевірити, чи не спричиняє час очікування (тайм-аут) проблеми,
відкрийте термінал XTerm на машині з virt-p2v, відайте команду C<ssh
root@I<сервер перетворення>> і почекайте на результати протягом принаймні
години. Якщо з'єднання буде розірвано без вашого втручання, працює якийсь із
інструментів контролю часу очікування, і ви маєте його вимкнути.

Причиною перевищення часу очікування може бути:

=over 4

=item Змінна середовища C<TIMEOUT> або C<TMOUT>

Перевірте, чи не задано одну з цих змінних середовища у командній оболонці
root на сервері перетворення.

=item Параметр sshd C<ClientAlive*>

Пошукайте параметр C<ClientAlive*> в C</etc/ssh/sshd_config> на сервері
перетворення.

=item Параметри брандмауера або NAT

Перевірте, чи немає брандмауера або блоку NAT між virt-p2v та сервером
перетворення і чи не розриває цей брандмауер з'єднання, якщо з'єднання буде
бездіяльним протягом надто короткого періоду часу.

virt-p2v E<ge> 1.36 намагається обійти проблеми із надто короткими
значеннями часу очікування у брандмауері, надсилаючи повідомлення
підтримання зв'язку кожні 5 хвилин.

=back

=head1 ПАРАМЕТРИ

=over 4

=item B<--help>

Показати довідкове повідомлення.

=item B<--cmdline=РЯДОК_КОМАНДИ>

Використовується для діагностики. Замість обробки командного рядка ядра з
F</proc/cmdline>, обробити рядковий параметр C<CMDLINE>.

=item B<--colors>

=item B<--colours>

Використовувати послідовності символів ANSI для розфарбовування
повідомлень. Ці послідовності типово використовуються, якщо дані виводяться
на термінал tty.  Якщо дані, виведені програмою, спрямовуються до файла,
послідовності визначення кольорів ANSI буде вимкнено, якщо ви не додасте до
команди цей параметр.

=item B<--iso>

This flag is passed to virt-p2v when it is launched inside the virt-p2v ISO
environment, ie. when it is running on a real physical machine (and thus not
when testing).  It enables various dangerous features such as the Shutdown
popup button.

=item B<--nbd=сервер[,сервер...]>

Вибрати сервер NBD для використання. Типово, буде виконано спробу зв'язатися
із такими серверами, і буде використано перший з працездатних серверів:
I<--nbd=qemu-nbd,qemu-nbd-no-sa,nbdkit,nbdkit-no-sa>

=over 4

=item B<qemu-nbd>

Використовувати qemu-nbd.

=item B<qemu-nbd-no-sa>

Використовувати qemu-nbd, але вимкнути активацію сокетів.

=item B<nbdkit>

Використовувати nbdkit із додатком обробки файлів
(див. L<nbdkit-file-plugin(1)>).

=item B<nbdkit-no-sa>

Використовувати nbdkit, але вимкнути активацію сокетів.

=back

Варіанти C<*-no-sa> надають змогу virt-p2v повернутися до старіших версій
qemu-nbd і nbdkit, у яких не передбачено підтримки L<активації за допомогою
сокета|http://0pointer.de/blog/projects/socket-activation.html>.

=item B<--test-disk=/ШЛЯХ/ДО/ОБРАЗУ_ДИСКА>

З метою тестування або діагностики можна замінити F</dev/sda> на локальний
файл. Має бути вказано абсолютний шлях до файла.

=item B<-v>

=item B<--verbose>

У libguestfs E<ge> 1.33.41 діагностику завжди увімкнено на сервері
перетворення, тому додавання цього прапорця нічого не змінює.

=item B<-V>

=item B<--version>

Показати дані щодо версії і завершити роботу.

=back

=head1 ЯК ПРАЦЮЄ VIRT-P2V

B<Зауважте, що цей розділ не є нормативним.> Ми можемо змінити принципи
роботи virt-p2v будь-коли у майбутніх версіях.

Як описано вище, virt-p2v працює на фізичній машині, опитує користувача або
обробляє командний рядок ядра для отримання параметрів налаштування, а потім
встановлює одне або декілька з'єднань із сервером перетворення
virt-v2v. З'єднання ssh є інтерактивними сеансами командної оболонки із
віддаленим вузлом, але команди, які надсилаються, створюються лише самою
програмою virt-p2v, а не користувачем. Для передавання даних virt-p2v
використовуватиме можливість ssh зі зворотного переспрямовування даних
портів (тобто C<ssh -R>).

Спочатку програма створить одне або декілька тестових з'єднань, які
використовуватимуться для отримання даних щодо віддаленої версії virt-v2v та
її можливостей. Тестові з'єднання буде розірвано до того, як буде розпочато
перетворення.

 ┌──────────────┐                      ┌─────────────────┐
 │ virt-p2v     │                      │ virt-v2v        │
 │ (фізичний    │  керівне з’єднання   │ (сервер         │
 │  сервер)   ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍▶ перетворення) │
 └──────────────┘                      └─────────────────┘

Щойно virt-p2v буде готовим розпочати перетворення, програма відкриє
одинарне керівне з'єднання ssh. Спочатку вона надішле команду mkdir для
створення тимчасового каталогу на сервері перетворення. Назву каталогу буде
вибрано випадковим чином і показано за допомогою графічного
інтерфейсу. Формат назви буде таким:

 /tmp/virt-p2v-РРРРММДД-XXXXXXXX

де C<РРРРММДД> — поточна дата, а «X» — випадкові символи.

До цього каталогу буде записано різноманітні файли, серед яких:

=over 4

=item F<dmesg>

=item F<lscpu>

=item F<lspci>

=item F<lsscsi>

=item F<lsusb>

I<(до перетворення)>

Виведені дані відповідних команд (тобто L<dmesg(1)>, L<lscpu(1)> тощо) на
фізичній машині.

Виведені dmesg дані корисні для виявлення проблем, зокрема нестачі драйверів
пристроїв або мікропрограм на образі ISO virt-p2v. Дані інших програм
корисні для діагностування проблем із новітніми конфігураціями обладнання.

=item F<environment>

I<(до перетворення)>

Вміст середовища, у якому буде працювати L<virt-v2v(1)>.

=item F<name>

I<(до перетворення)>

Назва (зазвичай, назва вузла) фізичної машини.

=item F<physical.xml>

I<(до перетворення)>

XML libvirt, який описує фізичну машину. Використовується для передавання
даних щодо фізичної початкової основної системи до L<virt-v2v(1)> за
допомогою параметра I<-i libvirtxml>.

Зауважте, що це не «справжній» XML libvirt (його B<ніколи> не слід
завантажувати до libvirt, яка все одно його не сприйме). Крім того, він не
збігається із XML libvirt, який створює virt-v2v у певних режимах виведення.

=item F<p2v-version>

=item F<v2v-version>

I<(до перетворення)>

Версії virt-p2v і virt-v2v, відповідно.

=item F<status>

I<(після перетворення)>

Остаточний стан перетворення. C<0>, якщо перетворення виконано
успішно. Ненульове значення, якщо під час перетворення сталися помилки.

=item F<time>

I<(до перетворення)>

Дата і час початку перетворення.

=item F<virt-v2v-conversion-log.txt>

I<(під час/після перетворення)>

Журнал перетворення. Це усього лише виведені програмою virt-v2v дані на
сервері перетворення. Якщо спроба перетворення зазнає невдачі, вам слід
ознайомитися із цим журналом. Крім того, вас можуть попросити надати
B<повний>, B<нередагований> файл журналу у системі звітування щодо вад або у
системі квитків підтримки.

=item F<virt-v2v-wrapper.sh>

I<(до перетворення)>

Це скрипт-обгортка, який використовується для запуску virt-v2v. Лише для
зацікавлених — не намагайтеся запускати цей скрипт власноруч.

=back

Перш ніж розпочнеться саме перетворення, virt-p2v створить іще одне або
декілька додаткових з'єднань ssh зі сервером для передавання даних.

У поточній версії протоколом для передавання даних є NBD (Network Block
Device), дані пропускаються крізь ssh. Типовим сервером NBD є
L<qemu-nbd(1)>, але можна вибрати інші сервери за допомогою параметра
командного рядка I<--nbd>.

Для кожного фізичного диска на початковій машині буде створено одне
з'єднання ssh (поширений випадок, коли диск є єдиним, продемонстровано
нижче):

 ┌──────────────┐                      ┌─────────────────┐
 │ virt-p2v     │                      │ virt-v2v        │
 │ (фізичний    │  керівне з’єднання   │ (сервер         │
 │  сервер)   ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍▶ перетворення) │
  │              │                      │                 │
 │              │  з'єднання для даних  │                 │
 │            ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍▶               │
 │qemu-nbd ← ─┘ │                      │└─ ← запити      │
 │/dev/sda      │                      │     NBD         │
 ∼              ∼                      ∼                 ∼
 └──────────────┘                      └─────────────────┘

Хоча з'єднання для передавання даних за допомогою ssh починається з
фізичного сервера і завершується на сервері перетворення, фактично, потік
запитів NBD рухається у протилежному напрямку. Так відбувається через те, що
для відкриття порту на петльовому інтерфейсі сервера перетворення
використовується можливість зворотного переспрямовування портів ssh (C<ssh
-R>). Дані пропускаються назад каналом ssh на сервер NBD, який запущено на
фізичний машині. У результаті virt-v2v за допомогою libguestfs може
відкривати з'єднання nbd, які безпосередньо читають дані з жорстких дисків
фізичного сервера.

Для захисту жорстких дисків від запису використовується два шари. По-перше,
використовується параметр qemu-nbd I<-r> (лише читання). По-друге,
libguestfs створює накладку над з'єднанням NBD, яка зберігає записані дані
у тимчасовому файлі для файла перетворення.

Довга команда S<C<virt-v2v -i libvirtxml physical.xml ...>> загортається у
скрипт і вивантажується на сервер перетворення. Кінцевим кроком є запуск
цього скрипту-обгортки, який запустить програму virt-v2v. Програма virt-v2v
використає дані з файла F<physical.xml> (див. вище), який посилається на
порти очікування даних NBD для встановлення з'єднань для обміну даними.

Дані, виведені програмою virt-v2v (повідомлення, діагностика тощо)
зберігаються у файлі журналу на сервері перетворення. Лише інформаційні
повідомлення надсилаються назад керівним з'єднанням для показу у графічному
інтерфейсі.

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

L<virt-p2v-make-disk(1)>, L<virt-p2v-make-kickstart(1)>,
L<virt-p2v-make-kiwi(1)>, L<virt-v2v(1)>, L<qemu-nbd(1)>, L<nbdkit(1)>,
L<nbdkit-file-plugin(1)>, L<ssh(1)>, L<sshd(8)>, L<sshd_config(5)>,
L<http://libguestfs.org/>.

=head1 АВТОРИ

Matthew Booth

John Eckersberg

Richard W.M. Jones L<http://people.redhat.com/~rjones/>

Mike Latimer

Pino Toscano

Tingting Zheng

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

Copyright (C) 2009-2019 Red Hat Inc.

