LINUX.ORG.RU
решено ФорумAdmin

Виртуализация в linux

 


1

2

Всем привет, хочу установить arch в виртуалке, чтобы поэксперементировать с конфигами. До этого никогда с виртуальными машинами не работал и ничего в этом не понимаю:) Какое ПО мне подойдет? Слышал что-то про qemu и kvm, но никогда не сталкивался, буду благодарен за какой нибудь гайд или рекомендацию

Перемещено hobbit из general


Устанавливаешь QEMU, разбираешься с его несложной командной строкой и всё работает.

В командной строке надо указать количество выделенных ядер проца, количество памяти, путь к образу диска и, опционально, настройки видео/звука.

Образ диска можно создать например командой dd if=/dev/zero of=disk.img bs=1048576 count=10000.

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

Можно конечно, но это raw диск будет, без всяких плюшек вроде динамической адресации или снапшотов. Лучше так: qemu-img create -f qcow2 ubuntu.qcow 10G

И я бы не назвал опции простыми, вот как я обычно пускаю:

qemu-system-x86_64 -m 8192 -enable-kvm -vga qxl -global qxl-vga.vram_size=268435456 -cpu host -smp 2 -device AC97 — 8 гибибайт памяти, ускорение KVM, QXL как видеокарта, 256 мебибайт видеопамяти, CPU как на хосте, 2 ядра, звук AC97. Сеть я по умолчанию использую, без параметров, ну и там путь до диска указываю.

Vsevolod-linuxoid ★★★★★
()

От простого к сложному и полезному:

  • AQEMU

  • virsh + libvirt

  • LXD Compose + LXDWare + LXD->libvirt

  • OpenNebula + LXD/libvirt

Связываться с гипервизорами, отличными от KVM, не советую, потому что in a long term KVM пригодится намного больше.

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

Человек как минимум с 19-го года имеет опыт с линукс, с ксубунтой и арчем, и при этом спрашивает такое? Да, кроме как указания направления в поиск, другого ответа и быть не может.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

Намного эффективнее воспользоваться AI поисковиком типа Perplexity.ai:

https://www.perplexity.ai/search/5f658dea-f50a-4ad6-a0e0-103af1f05550?s=u

Для установки Arch Linux в виртуальной машине можно использовать различное ПО, такое как VirtualBox, KVM, QEMU и другие. Вот некоторые рекомендации и гайды для установки Arch Linux в VirtualBox и KVM: VirtualBox:

    Установите VirtualBox на свой компьютер.
    Создайте новую виртуальную машину и настройте ее параметры, такие как количество оперативной памяти и количество процессорных ядер.
    Загрузите образ Arch Linux и установите его на виртуальную машину, следуя инструкциям на экране.

Вот некоторые полезные ссылки для установки Arch Linux в VirtualBox:

    VirtualBox - ArchWiki
    How to Install Arch Linux on VirtualBox [Beginner's Guide] - It's FOSS
    VirtualBox/Install Arch Linux as a guest - ArchWiki

KVM:

    Убедитесь, что ваш процессор поддерживает аппаратную виртуализацию.
    Установите KVM на свой компьютер.
    Создайте новую виртуальную машину и настройте ее параметры, такие как количество оперативной памяти и количество процессорных ядер.
    Загрузите образ Arch Linux и установите его на виртуальную машину, следуя инструкциям на экране.

Вот некоторые полезные ссылки для установки Arch Linux в KVM:

    KVM - ArchWiki
    How to Install Arch Linux on KVM/QEMU - Computing for Geeks
    Arch Linux Installation on KVM/QEMU - YouTube

Независимо от выбранного ПО, установка Arch Linux в виртуальной машине может быть сложной для новичков. Поэтому рекомендуется следовать инструкциям и гайдам, чтобы убедиться, что все настроено правильно.
sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Можно конечно, но это raw диск будет, без всяких плюшек вроде динамической адресации или снапшотов

По-моему raw это хорошо как раз. И именно raw с заранее выделенными секторами через dd а не sparse. Когда-то у меня были образы от vmware в его формате «с плюшками» - я их в raw сконвертировал тоже. Кроме того, что он просто предсказуемо себя ведёт, его можно ещё и смотреть напрямую с хоста в случае чего, в отличие от всех этих странных форматов.

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

Вообще-то эти «странные» форматы можно легко монтировать с хоста — при помощи qemu-nbd и kpartx. И они здорово экономят место на ЖД, когда у тебя куча виртуалок.

Не, я знаю, ты любитель HEX-редакторов и чтобы можно было руками указать, в каком именно байте с начала диска есть нужная инфа — но обычно таким не заморачиваются, а использую готовые автоматические решения.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)

vitrualbox/vmware workstation
в обоих случаях внимательно следи за выхлопом инсталятора. там будут подсказки как нужные модули ядра собрать после установки пакета.

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

И именно raw с заранее выделенными секторами через dd а не sparse

Если уж так хочется преаллокейтить, то стоит изучить fallocate.

Но исходя из собственного опыта, скажу так - преаллокейт может иметь смысл в рабочей среде, ибо дает достаточно заметный буст производительности в плане операций с диском, но в тестовом/разработческом окружении смысла не имеет.

его можно ещё и смотреть напрямую с хоста в случае чего, в отличие от всех этих странных форматов.

qemu-nbd -c /dev/nbd0 your-image-file-name.vmdk

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

IMHO Vagrant достаточно громоздкая глючная поделка, которая не стоит времени, потраченного на него.

Кстати HashiCorp пытается переписать его на Go.

Плагины с плохой документацией и т.п.

Btw., LXD умеет рулить не только LXC, но и libvirt->QEMU+KVM

Очень жалею, что тратил свое время на изучение Vagrant, лучше бы сразу изучал LXD Compose и LXD в т.ч. с кластеризацией.

Для LXD есть также плагин Ansible и провайдер Terraform.

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

про глюки любого софта можно порассказывать, вагрант тут ничем не выделяется особо. у меня в целом работает без проблем.

пользователю в основном побоку на чем написан софт, а учитывая что переписывания с руби имеет смысл только в том, что это фактически мертвый язык, то лучше бы на питон переписали, так как профита от компилируемого языка тут не будет

чего там изучать? чтобы запустить виртуалку с дефолтными настройками вообще ничего знать не нужно. а чтобы понять как конфиг настраивать, можно за день, а за неделю можно разобраться как настраивать используя провижин и менеджер конфигураций.

способов как и чем запускать виртуализацию полно, покажи как запустить виртуалку без гемора используя lxd, так ты больше заинтересуешь людей его попробовать, чем рассказывая про неугодивший тебе вагрант.

screamager
()
Последнее исправление: screamager (всего исправлений: 1)
Ответ на: комментарий от screamager

чего там изучать?

Ruby, плагины, объектную модель Vagrant и особенно плагинов, которая сильно отличается друг от друга,  их скудные описания и обсуждения братьев по глупости разуму, ищущих решения проблем на форумах (глюки, баги, фиксы, ограничения и недостатки).

Бывает, что-то вроде работает с VirtualBox, который мне даром не нужен, а с другими гипервизорами вроде в теории должно работать, а на практике глюк на глюке и жалобы в issues.

LXD провайдер похоже уже почти не развивается, не говоря уж о LXC провайдере, который в архиве :(

В LXD провайдере даже нет возможности указать статический IP адрес виртуалки, хотя в LXC это можно было сделать, ЕМНИП.

а учитывая что переписывания с руби имеет смысл только в том, что это фактически мертвый язык,

Мёртвые провайдеры для полумёртвого Vagrant, написанного на мёртвом языке. Сплошная некрофилия?

Vagrant достаточно тормозной в своей работе, и об этом упоминают и другие. IMHO это вообще какой-то legacy с архитектурой десятилетней давности, якобы нужный для инфры разработчиков и официально непригодный для прода. Для чего он нужен с учётом  глючности его плагинов и наличия более современных конкурентов, мне вообще непонятно. И IMHO его объектную модель создавали люди, альтернативно одаренные по сравнению с конкурирующими IaC инструментами.

способов как и чем запускать виртуализацию полно,

А чтобы в HA кластере? И в соответствии с принципами IaC? Современный LXD - это кластерное HA решение виртуализации, причем очень лайтовое, способное рулить LXC контейнерами и виртуалками KVM (через libvirt).

https://www.perplexity.ai/search/1a4c56db-5575-4863-828e-762cde8e15e2?s=u

A LXD cluster is a group of LXD servers that share the same distributed database, which holds the configuration for the cluster members and their instances. The purpose of clustering is to spread the total workload over several servers, allowing for high availability and fault tolerance.

https://luxagraf.net/src/why-and-how-ditch-vagrant-for-lxd

По сути, замена Proxmox.

Для LXD есть удобный IaC инструмент LXD Compose, похожий на Docker Compose, но пока, к сожалению, неофициальный.

покажи как запустить виртуалку без гемора используя lxd, так ты больше заинтересуешь людей его попробовать, чем рассказывая про неугодивший тебе вагрант.

https://mottainaici.github.io/lxd-compose-docs/docs/getting-started/

Если LXD Compose кажется пока слишком сырым и молодым (ему уже 3 года, btw.), то для LXD есть провайдер для Terraform и плагины Ansible. А Terraform и Ansible намного более зрелые, чем LXD Compose, хоть возможно, IMHO и менее удобные.

А еще есть веб dashboard: https://github.com/lxdware/lxd-dashboard и несколько других, которые мне понравились меньше. Ставится такая панелька через Docker Compose за пару минут.

Итого:

LXC - это контейнеры виртуализации уровня OS (namespaces, cgroups).
libvirt - это либа для рулежки гипервизорами в т.ч. QEMU+KVM.
LXD - это очень лайтовый теперь уже кластерный оркестратор контейнеров LXC и виртуалок QEMU+KVM.
LXD Compose - это CLI утилита с кастом скриптингом (типа Docker Compose) для рулежки кластером LXD.
Terraform - это CLI утилита с кастом скриптингом для предпочтительно создания виртуалок (и других ресурсов) в различных облaчных и кластерных средах.
Ansible - это CLI утилита с кастом скриптингом в контексте обсуждения как для донастройки уже созданных ранее виртуалок, так и для управления виртуалками (остановка, запуск и при желании даже удаление, создание и т.п.), наверно наиболее универсальная, но не самая удобная для рулежки виртуалками.
sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 4)
Ответ на: комментарий от sanyo1234
LXD is an orchestrator for containers and virtual machines.
It provides a unified user experience for managing system containers and virtual machines, and it can be set up in a cluster environment to run containers, VMs, or a combination of the two on a set of machines.
LXD cluster nodes coordinate with each other using a protocol based on the Raft consensus algorithm, much like some OCI container orchestrators. 
LXD also offers advanced resource control, device passthrough, network management, and storage management support.

А самый навороченный и в то же время относительно простой в использовании Dashboard и менеджер подобных сред - это IMHO OpenNebula. Вообще в моем профиле как раз есть подборка интересных гипервизоров и оркестраторов.

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

Ruby, плагины, объектную модель Vagrant и особенно плагинов, которая сильно отличается друг от друга

Не очень понимаю зачем все это нужно, я предлагал его как простое решение для простых задач. Если вам нужна сложная система виртуализации для всего подряд и для работы с разными гипервизовами, и с контейнерами, то неудивительно, что там не все так хорошо, Я использовал только с libvirt, и каких-то сильных проблем не было, ну и использую только на локалхосте, для запуска нескольких тестовых серверов для разработки.

Vagrant достаточно тормозной в своей работе

Не понятно в чем именно тормоза? В таких системах будет тормозить у всех, либо будут сравниваться несопоставимые вещи.

В целом спасибо за развернутый ответ, вполне познавательно.

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

Не понятно в чем именно тормоза?

С момента подачи команды vagrant up и до возможности сделать vagrant ssh, даже для LXC. С LXD, кстати, почему-то стало работать намного быстрее, хотя, казалось бы, LXD - это надстройка над LXC.

Наверно, плагин Vagrant LXC не очень оптимальный.

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