Як запустити службу Libvirt?
virPolkitCheckAuth:133 : authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage' in var/log/syslog: add yourself to the libvirt group
See also libvirt/Debugging for advanced troubleshooting
Language Bindings
- C: libvirt-dev
- Perl: libsys-virt-perl
- Python: python-libvirt
- OCaml: libvirt-ocaml
- Ruby: libvirt-ruby
See also
- libvirt Documentation
- libvirt-doc (installs the documentation at in /usr/share/doc/libvirt-doc/index.html)
- libvirt - ArchWiki
- Libvirt Wiki
- Libvirt Networking Handbook
- Libvirt - Ubuntu Community documentation
- pkg-libvirt Debian Libvirt Maintainers
- libvirt - Wikipedia
- Virtual Machine Manager
libvirt
Бібліотека libvirt використовується як інтерфейс до різних технологій віртуалізації. Перш ніж почати використовувати libvirtварто переконатися, що ваше обладнання підтримує необхідні розширення віртуалізації для KVM. Наберіть таке в терміналі:
Вам буде виведено повідомлення про те, чи підтримує ваш центральний процесор (CPU) апаратну віртуалізацію чи ні.
На більшості комп'ютерів, процесори яких підтримують віртуалізацію, необхідно включати цю опцію в BIOS.
Віртуальні мережі
Існує кілька способів дозволити віртуальній машині отримати доступ до зовнішньої мережі. За умовчанням віртуальна мережа налаштовується як usermode, коли використовується протокол SLIRP, а мережеві дані маскуються за допомогою NAT на мережному інтерфейсі комп'ютера при з'єднанні із зовнішньою мережею.
Щоб дозволити зовнішнім комп'ютерам з'єднуватися з сервісами віртуальної машини безпосередньо, потрібно налаштувати міст (bridge). Це робить можливим з'єднання віртуальних інтерфейсів із зовнішньою мережею через фізичний інтерфейс, дозволяючи їм вважати себе звичайними комп'ютерами нормальної мережі. Для налаштування мережевих мостів дивіться секцію Будівництво мостів.
Встановлення
Для встановлення необхідних пакетів введіть у рядку терміналу:
sudo apt-get install kvm libvirt-bin
Після встановлення libvirt-bin, користувача, що використовується для керування віртуальними машинами, необхідно додати до групи libvirtd. Це дозволить користувачеві отримати доступ до розширених мережних опцій.
Введіть у терміналі:
sudo adduser $USER libvirtd
Якщо в якості користувача вибрано поточний, вам потрібно вийти з системи і увійти знову, щоб застосувати нове членство в групі.
Тепер ви готові встановити гостьову операційну систему. Встановлення віртуальної машини повторює той самий процес, що й звичайному устаткуванні. Ви можете або автоматизувати інсталяцію, або знадобиться підключення клавіатури та монітора до фізичної машини.
У випадку з віртуальними машинами графічний інтерфейс ( GUI ) аналогічний використанню фізичної клавіатури і миші. Замість встановлення GUI додаток virt-viewer може бути використане для з'єднання з консоллю віртуальної машини VNC. Дивіться розділ Програма перегляду віртуальних машин для додаткової інформації.
Існує кілька способів автоматизації процесу встановлення Ubuntu, наприклад, використання preseeds, kickstart та ін. Зверніться до Посібника з інсталяції Ubuntu за подробицями.
Крім того, ще один спосіб встановити віртуальну машину Ubuntu – використовувати ubuntu-vm-builder. ubuntu-vm-builder дозволить вам створити додаткові розділи, виконати післяустановлювальні сценарії та ін. Деталі дивіться у розділі JeOS та vmbuilder.
virt-install
Програма virt-install є частиною пакету virtinst. Для її встановлення введіть у терміналі:
sudo apt-get install virtinst
Існує кілька опцій доступних під час використання virt-install. Наприклад:
sudo virt-install -n web_devel -r 256 \ --disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4 -c \ jeos.iso --accelerate --network network= default,model=virtio \ --connect=qemu:///system --vnc --noautoconsole -v
-n web_devel: ім'я нової віртуальної машини, у цьому прикладі web_devel.
-r 256: визначає розмір пам'яті віртуальної машини у мегабайтах.
–disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4: вказує шлях до віртуального диска, який може бути файлом, розділом чи логічним томом. У цьому прикладі файл з ім'ям web_devel.img у каталозі /var/lib/libvirt/images/ розміром 4 гігабайти, що використовує virtio як дискову шину.
-c jeos.iso: файл, який використовується як віртуальний CDROM. Файл може бути як ISO, так і шляхом до пристрою CDROM основної системи.
-accelerate: дозволяє використовувати прискорюючі технології ядра.
-network: забезпечує деталі, що стосуються мережного інтерфейсу віртуальної машини.
-vnc: надання гостьової віртуальної консолі через VNC
-noautoconsole: автоматично не підключається до консолі віртуальної машини.
Після завантаження virt-install ви зможете приєднатися до консолі віртуальної машини або локально з використанням GUI, або за допомогою утиліти. virt-viewer.
virt-clone
Додаток virt-clone може бути використане для копіювання однієї віртуальної машини до іншої. Наприклад:
sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \ --connect=qemu:///system
-f: шлях до файлу, локальному тому або розділу для використання новою віртуальною машиною
Також використовуйте опцію -d або -debug для допомоги при вирішенні проблем з virt-clone.
Замініть web_devel і database_devel на відповідні назви віртуальних машин.
Управління віртуальними машинами
virsh
Доступні кілька утиліт для керування віртуальними машинами та libvirt. Утиліта virsh може бути використана з командного рядка. Декілька прикладів:
1. Отримати список запущених віртуальних машин:
virsh -c qemu:///system list
2. Запустити віртуальну машину:
virsh -c qemu:///system start web_devel
3. Аналогічно, запустити віртуальну машину в процесі завантаження:
virsh -c qemu:///system autostart web_devel
4. Перевантажити віртуальну машину:
virsh -c qemu:///system reboot web_devel
5. Стан (state) віртуальної машини може бути збережено у файл з метою можливого відновлення надалі. Наведена команда збереже стан віртуальної машини у файл з ім'ям, що містить дату:
virsh -c qemu:///system save web_devel web_devel-022708.state
Якось збережена машина більше не може бути запущена. (можливо мається на увазі, що не може бути запущена збережена копія, а не сама машина.)
6. Збережена віртуальна машина може бути відновлена такою командою:
virsh -c qemu:///system restore web_devel-022708.state
7. Вимкнути віртуальну машину:
virsh -c qemu:///system shutdown web_devel
8. Пристрій читання CDROM може бути підмонтований до віртуальної машини наступною командою:
virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom
У наведених прикладах замініть web_devel на відповідну назву віртуальної машини, а web_devel-022708.state на описове ім'я файлу.
Управління віртуальними машинами
Пакет virt-manager містить утиліту з графічним інтерфейсом для управління локальними та віддаленими віртуальними машинами. Для встановлення virt-manager введіть:
sudo apt-get install virt-manager
Оскільки virt-manager вимагає наявності графічного середовища, рекомендується його встановлювати на робочу станцію чи тестову машину, а чи не на робочий сервер. Для підключення до локального сервісу libvirt введіть:
virt-manager -c qemu:///system
Ви можете з'єднатися і до сервісу libvirt, запущеному на іншому комп'ютері, ввівши наступну команду в терміналі:
virt-manager -c qemu+ssh://virtnode1.mydomain.com/system
В останньому прикладі мається на увазі, що SSH з'єднання між керуючою системою та virtnode1.mydomain.com вже налаштовано та для аутентифікації використовуються ключі SSH . SSH ключі потрібні оскільки libvirt посилає запит на введення пароля до іншого процесу. Докладніше про налаштування SSH див. у розділі Сервер OpenSSH.
Програма перегляду віртуальних машин
Додаток virt-viewer дозволяє з'єднатися з консоллю віртуальної машини. virt-viewer вимагає графічного інтерфейсу (GUI) для взаємодії з віртуальною машиною.
Для встановлення virt-viewer із терміналу введіть:
sudo apt-get install virt-viewer
Як тільки віртуальна машина встановлена та запущена, ви можете приєднатися до її консолі командою:
virt-viewer -c qemu:///system web_devel
Як і virt-manager, virt-viewer може з'єднуватися з віддаленим сервером, використовуючи для аутентифікації ключі SSH:
virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system web_devel
Переконайтеся, що замінили web_devel на відповідну назву віртуальної машини. Якщо налаштовано використання мосту для мережного інтерфейсу, можна налаштувати SSH доступ і безпосередньо до віртуальної машини. Для отримання додаткових відомостей дивіться розділи Сервер OpenSSH та Будівництво мостів.