- Виртуальные машины для Linux
- Что такое виртуальная машина?
- 1. VirtualBox
- 2. VMware
- 3. Qemu
- 4. Gnome Boxes
- 5. KVM
- 6. XEN
- Выводы
- Tutorial: Create and Manage Linux VMs with the Azure CLI
- Create resource group
- Create virtual machine
- Connect to VM
- Understand VM images
- Understand VM sizes
- VM Sizes
- Find available VM sizes
- Create VM with specific size
- Resize a VM
- VM power states
- Power states
- Find the power state
- Management tasks
- Get IP address
- Stop virtual machine
- Start virtual machine
- Delete resource group
- Next steps
Виртуальные машины для Linux
Если вам нужно иметь несколько операционных систем на своем компьютере, но вы не хотите использовать двойную загрузку, то остается единственный вариант — это виртуализация и виртуальные машины для Linux. При использовании двойной загрузки на медленных системах перезагрузка из одной системы в другую может занимать до нескольких минут, а это очень неудобно.
Поэтому, виртуализация — это отличное решение, потому что при достаточном количестве оперативной памяти и мощности процессора вы сможете запустить несколько систем одновременно и даже полноценно с ними работать.Но какое программное обеспечение лучше использовать? Что выбрать и как все это работает, все это — тема нашей сегодняшней статьи.
Что такое виртуальная машина?
Виртуальные машины — это программы, которые создают программную среду, имитирующую нужное аппаратное оборудование. В эту среду может быть установлена операционная система и затем ее можно будет полноценно использовать. Мы называем такие системы гостевыми, в то время как основная система, установленная на компьютере, называется хостом.
Раньше виртуальные машины выполняли всю работу сами, на программном уровне, и понятно, что все это работало очень медленно. Но потом процессоры начали поддерживать аппаратную виртуализацию, это в разы ускоряет работу гостевой операционной системы. Это такие технологии, как AMD-V от AMD или Intel VT-x от Intel. Правда, эти технологии могут быть по умолчанию отключены в BIOS.
Кроме виртуальных машин, которые полностью эмулируют работу компьютера к виртуализации под linux можно отнести контейнеры, например, LXC или OpenVZ. Дальше мы рассмотрим виртуальны машины для Linux, которые вы можете использовать для установки своих систем.
1. VirtualBox
VirtualBox — это универсальное программное обеспечение для виртуализации в Linux, которое поддерживает и другие операционные системы, в том числе Windows и MacOS. Вы можете установить сюда практически любую систему, кроме, конечно, систем, предназначенных для устройств на чипе ARM. Все установленные виртуальные машины хранятся в файлах, которые содержат образы дисков. Это позволяет их очень просто выполнить их резервное копирование или перенос на другой компьютер просто скопировав файл машины.
VirtualBox поддерживает как 32, так и 64 битные системы и вы можете установить не только Linux дистрибутив, но и Windows или даже MacOS. Все системы будут отлично работать. Во время создания виртуальной машины вы можете выбрать профиль гостевой ОС, для которого автоматически выставятся правильные параметры памяти, процессора и видеокарты.
Кроме непосредственно виртуализации, VirtualBox поддерживает и дополнительные функции, например, запись видео с экрана виртуальной машины, и создание снимков системы для быстрого восстановления и создание виртуальной сети между несколькими машинами. Кроме того, если установить дополнения гостевой ОС, то можно настроить общий буфер обмена между хостовой и гостевой системой, передавать между ними файлы или даже интегрировать окна программ гостевой системы в основную.
Можно сказать, что это лучшая виртуальная машина для Linux, она предлагает все необходимые возможности, и в то же время достаточно проста в использовании.
2. VMware
В отличие от VirtualBox, которая распространяется с открытым исходным кодом, это коммерческий продукт, полная версия которого стоит денег. Но для домашнего использования есть упрощенная версия, которую можно использовать полностью бесплатно.
VMWare имеет почти все те же возможности, что и VirtualBox, в некоторых тестах она показывает себя лучше чем первый вариант, но в целом их производительность одинакова. Тоже есть возможность организовывать сеть между виртуальными машинами, объединять буфер обмена и передавать файлы, но нет записи видео.
Примечательной особенностью VMWare есть то, что для некоторых систем разработаны и уже готовы сценарии автоматической установки, которые позволяют установить систему в автоматическом режиме и не указывать слишком много параметров. Это может быть очень удобным в некоторых ситуациях.
3. Qemu
Если вы хотите запустить не привычную операционную систему x86, а систему для устройств ARM, например, Android, Raspbian или RISC OS, то тут вам не помогут две предыдущие виртуальные машины Linux. С такой задачей может справиться только Qemu.
Qemu — это сокращение от Quick Emulator. Это очень простая в настройке консольная утилита, но позволяет делать многие интересные вещи на уровне VirtualBox, вы можете запускать любые операционные системы, в том числе и ARM, можете установить ОС на реальный жесткий диск или в файл, использовать аппаратное ускорение и даже автоматически скачивать некоторые дистрибутивы через интернет.
Несмотря на свое название, это очень мощный инструмент для работы с виртуализацией в Linux, для установки Qemu в Ubuntu выполните:
sudo apt install qemu qemu-kvm libvirt-bin
Подробнее про использование Qemu можно почитать в этой статье.
4. Gnome Boxes
Если вам не нравится управлять вашими виртуальными машинами с помощью командной строки, можно воспользоваться графическим интерфейсом для Qemu под названием Gnome Boxes. Эта утилита позволяет в несколько кликов создать новую виртуальную машину. При чём вам не нужно иметь установочный образ, программа может сама загрузить его из сети. Кроме создания виртуальных машин можно подключаться к удалённым виртуальным машинам по протоколу RDP или VNC. Для установки программы в Ubuntu используйте такую команду:
sudo apt install gnome-boxes
5. KVM
KVM или полностью Kernel-based Virtual Machine (виртуальная машина на основе ядра) — это реализация платформы виртуализации на уровне ядра, которая предоставляет дополнительные возможности для Qemu и очень высокую скорость работы благодаря работе непосредственно в ядре.
Все это означает что KVM быстрее и стабильнее VirtualBox, но KVM намного сложнее в настройке и обслуживании. Технология KVM — это очень популярное решение для размещения виртуальных машин, в том числе на множестве серверов в интернете.
Чтобы начать использовать KVM сначала нужно проверить, поддерживает ли ваше оборудование аппаратное ускорение, для этого используйте утилиту cpu-checker. Если все поддерживается то вы можете перейти к установке KVM:
sudo apt install qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager
После установки вы сможете получить доступ к виртуальным машинам KVM с помощью менеджера виртуальных машин, который появится в меню. С помощью этого менеджера управляются и другие системы виртуализации Linux, например, XEN.
6. XEN
Это еще одна платформа виртуализации для Linux, которая очень похожа на KVM. Но тут есть некоторые отличия. Как и KVM здесь поддерживается аппаратное ускорение, множество архитектур, в том числе и ARM, а также запуск различных гостевых систем, включая Windows. Но главное отличие заключается в том, что KVM по умолчанию встроен в ядро Linux, а для работы Xen вам понадобиться специально собранное ядро с его поддержкой.
Из других особенностей Xen можно отметить, что система будет работать достаточно быстро даже без аппаратного ускорения, если вы будете запускать Linux.
Выводы
В этой статье мы рассмотрели лучшие виртуальные машины для Linux. Как видите виртуализация на linux развивается очень быстро и есть достаточно много решений, которые вы могли бы использовать в своей системе. Какую виртуальную машину или систему виртуализации используете вы? Напишите в комментариях!
Источник
Tutorial: Create and Manage Linux VMs with the Azure CLI
Applies to: вњ”пёЏ Linux VMs вњ”пёЏ Flexible scale sets
Azure virtual machines provide a fully configurable and flexible computing environment. This tutorial covers basic Azure virtual machine deployment items such as selecting a VM size, selecting a VM image, and deploying a VM. You learn how to:
- Create and connect to a VM
- Select and use VM images
- View and use specific VM sizes
- Resize a VM
- View and understand VM state
This tutorial uses the CLI within the Azure Cloud Shell, which is constantly updated to the latest version. To open the Cloud Shell, select Try it from the top of any code block.
If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. Run az —version to find the version. If you need to install or upgrade, see Install Azure CLI.
Create resource group
Create a resource group with the az group create command.
An Azure resource group is a logical container into which Azure resources are deployed and managed. A resource group must be created before a virtual machine. In this example, a resource group named myResourceGroupVM is created in the eastus region.
The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.
Create virtual machine
Create a virtual machine with the az vm create command.
When you create a virtual machine, several options are available such as operating system image, disk sizing, and administrative credentials. The following example creates a VM named myVM that runs Ubuntu Server. A user account named azureuser is created on the VM, and SSH keys are generated if they do not exist in the default key location (
It may take a few minutes to create the VM. Once the VM has been created, the Azure CLI outputs information about the VM. Take note of the publicIpAddress , this address can be used to access the virtual machine..
Connect to VM
You can now connect to the VM with SSH in the Azure Cloud Shell or from your local computer. Replace the example IP address with the publicIpAddress noted in the previous step.
Once logged in to the VM, you can install and configure applications. When you are finished, you close the SSH session as normal:
Understand VM images
The Azure marketplace includes many images that can be used to create VMs. In the previous steps, a virtual machine was created using an Ubuntu image. In this step, the Azure CLI is used to search the marketplace for a CentOS image, which is then used to deploy a second virtual machine.
To see a list of the most commonly used images, use the az vm image list command.
The command output returns the most popular VM images on Azure.
A full list can be seen by adding the —all argument. The image list can also be filtered by —publisher or –-offer . In this example, the list is filtered for all images with an offer that matches CentOS.
To deploy a VM using a specific image, take note of the value in the Urn column, which consists of the publisher, offer, SKU, and optionally a version number to identify the image. When specifying the image, the image version number can be replaced with “latest”, which selects the latest version of the distribution. In this example, the —image argument is used to specify the latest version of a CentOS 6.5 image.
Understand VM sizes
A virtual machine size determines the amount of compute resources such as CPU, GPU, and memory that are made available to the virtual machine. Virtual machines need to be sized appropriately for the expected work load. If workload increases, an existing virtual machine can be resized.
VM Sizes
The following table categorizes sizes into use cases.
Type | Common sizes | Description |
---|---|---|
General purpose | B, Dsv3, Dv3, DSv2, Dv2, Av2, DC | Balanced CPU-to-memory. Ideal for dev / test and small to medium applications and data solutions. |
Compute optimized | Fsv2 | High CPU-to-memory. Good for medium traffic applications, network appliances, and batch processes. |
Memory optimized | Esv3, Ev3, M, DSv2, Dv2 | High memory-to-core. Great for relational databases, medium to large caches, and in-memory analytics. |
Storage optimized | Lsv2, Ls | High disk throughput and IO. Ideal for Big Data, SQL, and NoSQL databases. |
GPU | NV, NVv2, NC, NCv2, NCv3, ND | Specialized VMs targeted for heavy graphic rendering and video editing. |
High performance | H | Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA). |
Find available VM sizes
To see a list of VM sizes available in a particular region, use the az vm list-sizes command.
Create VM with specific size
In the previous VM creation example, a size was not provided, which results in a default size. A VM size can be selected at creation time using az vm create and the —size argument.
Resize a VM
After a VM has been deployed, it can be resized to increase or decrease resource allocation. You can view the current of size of a VM with az vm show:
Before resizing a VM, check if the desired size is available on the current Azure cluster. The az vm list-vm-resize-options command returns the list of sizes.
If the desired size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation. Use the az vm resize command to perform the resize.
If the desired size is not on the current cluster, the VM needs to be deallocated before the resize operation can occur. Use the az vm deallocate command to stop and deallocate the VM. Note, when the VM is powered back on, any data on the temp disk may be removed. The public IP address also changes unless a static IP address is being used.
Once deallocated, the resize can occur.
After the resize, the VM can be started.
VM power states
An Azure VM can have one of many power states. This state represents the current state of the VM from the standpoint of the hypervisor.
Power states
Power State | Description |
---|---|
Starting | Indicates the virtual machine is being started. |
Running | Indicates that the virtual machine is running. |
Stopping | Indicates that the virtual machine is being stopped. |
Stopped | Indicates that the virtual machine is stopped. Virtual machines in the stopped state still incur compute charges. |
Deallocating | Indicates that the virtual machine is being deallocated. |
Deallocated | Indicates that the virtual machine is removed from the hypervisor but still available in the control plane. Virtual machines in the Deallocated state do not incur compute charges. |
— | Indicates that the power state of the virtual machine is unknown. |
Find the power state
To retrieve the state of a particular VM, use the az vm get-instance-view command. Be sure to specify a valid name for a virtual machine and resource group.
To retrieve the power state of all the VMs in your subscription, use the Virtual Machines — List All API with parameter statusOnly set to true.
Management tasks
During the life-cycle of a virtual machine, you may want to run management tasks such as starting, stopping, or deleting a virtual machine. Additionally, you may want to create scripts to automate repetitive or complex tasks. Using the Azure CLI, many common management tasks can be run from the command line or in scripts.
Get IP address
This command returns the private and public IP addresses of a virtual machine.
Stop virtual machine
Start virtual machine
Delete resource group
Deleting a resource group also deletes all resources contained within, such as the VM, virtual network, and disk. The —no-wait parameter returns control to the prompt without waiting for the operation to complete. The —yes parameter confirms that you wish to delete the resources without an additional prompt to do so.
Next steps
In this tutorial, you learned about basic VM creation and management such as how to:
- Create and connect to a VM
- Select and use VM images
- View and use specific VM sizes
- Resize a VM
- View and understand VM state
Advance to the next tutorial to learn about VM disks.
Источник