Команды для виртуальной машины линукс

Маленький секрет VirtualBox: командная строка

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

Обычно спрашивают: «Зачем работать в командной строке, когда у вас есть вполне хороший графический интерфейс?» Ответ — огромные возможности командной строки. С 1995 года существует целое поколение компьютерных пользователей, которые считают, что компьютер представляет собой набор окон и графики, но, в действительности, это очень далеко от истины. Почему, 1995 год, спросите вы? С появлением Windows 95 в 1995 году была открыта новая компьютерная эра — эра графических интерфейсов. Вскоре после того рокового августа был выпущен релиз FVWM95, который был ответом Linux на интерфейс Windows 95 Explorer. Мне кажется, что в те старые добрые времена командная строка исчезла навсегда. Никто не хотел больше пользоваться DOS и перестали бояться Linux. Но командной строки все еще жива и здравствует в среде Linux. Она все еще достаточно жива в Windows. И теперь, когда Маки базируются на Unix, в них также есть много чего, что не требует графического интерфейса.

Для вас может оказаться сюрпризом, что под миловидным графическим интерфейсом VirtuaBox , с его яркой графикой, понятной страницей настройки Settings и большим количеством выпадающих списков, притаился оккультный мир командной строки. Истинная сила этого темного мира откроется только тем, кто посмеет войти в эти затхлые катакомбы. После того, как вы разберетесь с командной строкой VirtualBox, вы, возможно, решите, что графический интерфейс — это чуть больше, чем просто красивая драпировка, созданная для тех, кто в противном случае будет просто игнорировать скучный черный прямоугольник реально работающего приложения.

Сила командной строки

Черный прямоугольник, о котором я говорил, является терминальным окном. Командная строка позволяет воспользоваться всей мощью автоматического исполнения команд. Единственный способ автоматизации, который известен мне в *nix системах, это использование скриптов, написанных на Perl-е, шелл-скрипты или скрипты на каком-нибудь другом языке. А демон системного планировщика (cron) поможет вам в нужное время запустить скрипт. Эта та сила командной строки, которая благодаря возможности автоматического запуска, что требует от системных администраторов также умения писать скрипты, является их багажом умения. В каждой вакансии, в которой требуется системный администратор, будет указано, что соискатель должен уметь писать скрипты хотя бы на одном из перечисленных в вакансии интерпретируемых языков.

Что касается виртуализации, то командная строка позволит вам быстро создавать виртуальные диски, добавлять новый сетевой интерфейс, запускать виртуальные машины и создавать новые виртуальные машины, причем все это — без использования графического интерфейса. Автоматическое выполнение с помощью скриптов также позволит вам спланировать запуск и остановку виртуальных машин без вашего непосредственного вмешательства. И, если вы действительно классный специалист по скриптам, вы сможете написать скрипт, который с помощью подсказок поможет вам с самыми минимальными вмешательствами с вашей стороны создать виртуальную машину, запустить ее или установить и изменить ее. Если вам не нравится все делать вручную, вы составите список виртуальных машин, используемых постоянно, затем настроите скрипты (шаблоны) для каждого типа используемых виртуальных машин и, при необходимости, в течение нескольких секунд создадите виртуальную машину.

Давайте рассмотрим простые и элегантные функциональные возможности командной строки в VirtualBox.

Установка и основные составляющие

По ссылке VirtualBox Linux Downloads загрузите двоичный дистрибутив, предназначенный под вашу систему. Если хотите, то можете скачать исходный код. Для выбранного мною варианта (для RHEL5/CentOS5 в формате rpm) были созданы следующие директории:

  • Для двоичных модулей — /usr/lib/virtualbox с сылками из /usr/bin
  • Для библиотек — /usr/lib/virtualbox
  • Для исходных кодов — /usr/share/virtualbox
  • Для гостевых компонентов (ISO) — /usr/share/virtualbox

Если в вашем дистрибутиве нет последней версии VirtualBox (версия 3.1.2 на момент написания данной статьи), то воспользуйтесь одним из пакетов, который можно загрузить, либо загрузите исходный код.

Читайте также:  Windows контроль за файлами

Создание и конфигурирование виртуальной машины

Самое трудное при использовании командной строки это — знать, с чего начинать. В графическом интерфейсе нужно воспользоваться кнопкой New. Командная строка немного сложнее открывает свои тайны. Для того, чтобы создать и настроить новую виртуальную машину, вы должны открыть терминальное окно, либо воспользоваться сеансом ssh для доступа к Linux системе, на которой установлен VirtualBox, и выполнить следующую команду:

С помощью этой команды создается новая виртуальная машина с именем Debian5, которая регистрируется в VirtualBox. Созданная виртуальная машина является XML файлом, который располагается в домашнем директории

Создаем виртуальный диск для вашей виртуальной машины:

Вы создали виртуальный диск с именем Debian5.vdi размером в 4 Гбайта (4000 Мбайтов); размер фиксированный, т. е. его увеличение динамически не происходит.

Виртуальный диск создается в виде файла

Создайте контроллер дисковых устройств, к которому вы подсоедините виртуальный диск и виртуальное устройство CD/DVD

С помощью этой команды создается контроллер IDE с именем “IDE Controller”, тип контроллера — PIIX4.

Теперь подсоединим виртуальный диск к вашей виртуальной машине:

Подсоединяем образ ISO той операционной системы, которую вы хотите установить:

С помощью этой команды создается сетевой интерфейс NIC типа «мост» (bridge): кабель подключается при запуске системы Linux, адаптер — eth0.

Запускаем виртуальную машину:

Если все пойдет так, как планировалось, вы увидите следующее сообщение, а затем вы увидите окно виртуальной машины, готовое для инсталляции:

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

Источник

Работа с KVM в Debian или Ubuntu из командной строки

Есть несколько способов управлять виртуальными машинами, запущенными в гипервизоре KVM, например с помощью популярного графического фронтенда virt-manager. Однако, если вы хотите использовать KVM на сервере, графические решения вряд ли будут хорошим выбором. В этом случае удобным инструментом будет virsh — утилита командной строки для управления гостевыми виртуальными машинами. Она работает со службой libvirtd, которая может управлять несколькими различными гипервизорами, включая KVM, Xen, QEMU, LXC и OpenVZ.

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

В этом руководстве я продемонстрирую вам, как запускать KVM из командной строки с использованием virsh в Debian или Ubuntu.

Этап 1: проверка аппаратной поддержки виртуализации

В качестве первого этапа проверьте, поддерживает ли ваш процессор аппаратную виртуализацию (то есть Intel VT или AMD-V), которая требуется для KVM. Это можно сделать с помощью команды:

Если в выводе нет флага vmx или svm, это значит, что процессор не поддерживает аппаратную виртуализацию, поэтому вы не сможете использовать KVM на этом хосте. После проверки самое время установить KVM.

Этап 2: Установка KVM

Установите KVM и соответствующие пользовательские утилиты с помощью apt-get:

Во время инсталляции будет создана группа libvirtd, и ваш userID будет автоматически добавлен в группу. Это позволит вам управлять виртуальными машинами от имени обычного пользователя. Вы можете проверить это с помощью команды id, которая выводит ваш group ID.

Если по каким-либо причинам в списке вашего groupID нет libvirtd, вы можете вручную добавить себя в эту группу.

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

Теперь вы можете запускать virsh как обычный пользователь. В качестве теста попробуйте приведенную ниже команду, которая выведет список доступных виртуальных машин. Если вы не получите сообщение об ошибке прав доступа, значит все в порядке.

Этап 3: Настройка сетевого моста

Один из способов получения доступа из виртуальной машины к внешним сетям — мост, встроенный в ваш хост Linux. Это называется сетевой мост. Ниже описано, как создать и настроить сетевой мост Linux br0 для мостового соединения с KVM.

Сначала установим необходимый для создания сетевого моста пакет.

Далее необходимо настроить сетевой мост в файле /etc/network/interfaces, чтобы он активировался при загрузке системы. Для использования файла /etc/network/interfaces необходимо отключить Network Manager (если он у вас используется). Как это сделать, описано здесь .

После отключения Network Manager настраиваем сетевой мост br0 в /etc/network/interfaces, как показано ниже.

Читайте также:  Как выполнить установку windows 10 с флешки через биос

Здесь предполагается, что главным сетевым интерфейсом, который имеет доступ к внешним сетям, является eth0. Кроме того, предполагается, что eth0 получает IP-адреса посредством DHCP. Обратите внимание, что в /etc/network/interface нет настроек для eth0, так как он подключается к сетевому мосту br0.

Перезагрузите сетевые службы и убедитесь, что сетевой мост настроен успешно. В этом случае br0 должен присвоить сетевой адрес интерфейса eth0, в свою очередь интерфейсу eth0 не должно быть присвоено сетевого адреса.

Этап 4: создание виртуальной машины из командной строки

В KVM настройки виртуальной машины хранятся в XML-файле домена. Поэтому сначала необходимо подготовить этот файл.
Ниже пример простого XML-файла для виртуальной машины. Вы можете использовать его, откорректировав в соответствии со своими потребностями.

Этот XML-файл определяет следующую виртуальную машину:

1 Гб оперативной памяти, один CPU и один жесткий диск.
Образ диска: /home/dev/images/alice.img.
Загрузка с CD: (/home/dev/iso/ubuntu-13.10-server-amd64.iso).
Сеть: сетевой мост br0.

Строка UUID между тегами может быть сгенерирована случайным образом. Для этого используется утилита командной строки uuid.

Доменный XML-файл можно также создать, сделав дамп информации о домене существующей виртуальной машины:

Этап 5: запуск виртуальной машины из командной строки.

Перед запуском виртуальной машины необходимо создать образ диска для нее. Для этого можно воспользоваться командой qemu-img, входящей в пакет qemu-kvm.

Преимущество опции qcow2 в том, что создаваемый при ее использовании образ диска не резервирует сразу весь свой свой объем (5 Гб), а динамически увеличивается при наполнении в процессе работы виртуальной машины.
Теперь вы готовы к запуску виртуальной машины с использованием созданного ранее доменного XML-файла. Это делается с помощью приведенной ниже команды:

Проверьте, что домен создан успешно.

Кроме того, проверьте, что виртуальный сетевой интерфейс для виртуальной машины (то есть vnet0) успешно добавлен в созданный ранее сетевой мост br0.

Этап 6. Удаленный доступ к виртуальной машине.

Для удаленного доступа к консоли виртуальной машины вы можете использовать любой VNC-клиент.
Сначала определите номер порта VNC для виртуальной машины:

В этом примере номер порта для виртуальной машины alice 5900.

Затем запустите VNC-клиент и подключитесь к VNC-серверу, работающему по адресу KVM-host-IP:5900.

Управление виртуальной машиной с помощью virsh

Ниже список наиболее часто употребляемых команд virsh.

Для создания нового гостевого домена и запуска виртуальной машины:

Для остановки виртуальной машины и уничтожения гостевого домена:

Для выключения виртуальной машины (без уничтожения домена):

Для приостановки виртуальной машины:

Для возобновления работы виртуальной машины:

Для автозапуска виртуальной машины после загрузки хоста:

Для получения информации о домене виртуальной машины:

Вы можете также управлять виртуальными машинами из сессии virsh. Для создания новой сессии virsh и входа в нее, просто введите:

В командной строке вы можете использовать любые команды virsh.

Решение проблем

1. Я получил ошибку, когда попытался создать виртуальную машину:

Вы получите эту ошибку, если ваш процессор не поддерживает аппаратную виртуализацию (то есть Intel VT или AMD-V), которая требуется для работы KVM. Если же вы получили эту ошибку с процессором, поддерживающим Intel VT или AMD-V, возможные решения этой проблемы:

Во-первых, проверьте, загружены ли требуемые модули ядра.

Если модуль kvm не загружен, вам необходимо загрузить его:

Второе решение — добавление аргумента «—connect qemu:///system» к команде virsh, как показано ниже. Этот аргумент может потребоваться, если вы используете более одного гипервизора (то есть VMware, VirtualBox) на сервере.

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

Эта ошибка возникает потому, что вы не определили устройство консоли в XML-файле виртуальной машины. Добавьте приведенные ниже строки в раздел «device» XML-файла.

Источник

Управление виртуальными машинами KVM из консоли

В предыдущей статье мы рассмотрели установку гипервизора KVM и создание виртуальной машины. В рамках одной статьи, мы не смогли охватить все нюансы управления виртуальными машинами, а затронули лишь их часть. Сегодня, мы постараемся рассказать все об управлении виртуальными машинами из консоли сервера: как изменить параметры ВМ, добавить дополнительные устройства и рассмотрим основные команды, которые используются для администрирования виртуальных машин KVM.

Virsh: команды управления виртуальной машиной KVM

Первый вопрос, который возникает у начинающего администратора KVM: как увидеть созданные виртуальные машины, как остановить, запустить и удалить их. Для управления ВМ в KVM из консоли можно использовать утилиту virsh (использует libvirt API). С помощью утилиты virsh можно выполнить практически все операции с виртуальными машинами KVM.

# virsh list – показать список запущенных ВМ

Читайте также:  Повышение производительности системы windows 10

# virsh list —all – показать список всех машин (в том числе выключенных)

Как видно из скриншота, в первом случае отключенная ВМ не была отображена.

# virsh shutdown — выключить виртуальную машину

# virsh start — запустить виртуальную машину

# virsh suspend — приостановить виртуальную машину

# virsh resume — запустить приостановленную виртуальную машину

# virsh reboot — перезапустить виртуальную машину

# virsh destroy — уничтожить виртуальную машину

# virsh undefine — удалить машину из списка и удалить все файлы, принадлежащие ей (обычно применяется после выполнения команды virsh destroy).

# virsh vcpuinfo — информация о процессоре на виртуальной машине (информацию о железе физического Linux сервера можно получить так)

Еще несколько команд по получению различной информации о виртуальной машине:

# virsh domid — получить идентификатор виртуальной машины

# virsh domuuid — получить UUID виртуальной машины

# virsh dominfo — получить сведения о виртуальной машине

# virsh domstate — просмотр состояния виртуальной машины

# virsh dumpxml — вывести файл конфигурации указанной виртуальной машины в XML формате

Добавление памяти и vCPU виртуальной машине KVM

В консоли KVM вы можете добавить или уменьшить ресурсы процессора и памяти, выделенные для ВМ двумя способами:

  • С помощью virsh
  • Через конфигурационный XML файл ВМ

Если виртуальная машина запущена, ее нужно остановить:

# virsh shutdown test-centos

Теперь с помощью virsh изменим количество виртуальных процессоров до 6 (vCPU):

# virsh setvcpus —config

— количество ядер процессора

# virsh setvcpus test-centos 6 —config

Но при применении этой команды, у меня сразу же появилась ошибка:

Мы не можем установить количество ядер процессора, больше, чем максимальное количество. Чтобы увеличить максимальное количество ядер ВМ, выполните команду:

# virsh setvcpus test-centos 6 —config —maximum

Повторите первую команду и запустите виртуальную машину:

Проверим количество процессоров в настройках ВМ: овленное количество процессоров:

# virsh dumpxml test-centos

Аналогичным образом добавим память виртуальной машине:

# virsh setmem —config

# virsh setmem test-centos 4G —config

Все по той же причине, сразу же вышла ошибка:

Увеличим максимальное значение памяти::

# virsh setmaxmem test-centos 6G —config

Теперь можно увеличить память ВМ.

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

Также вы можете изменить ресурсы ВМ KVM через ее конфигурационный XML файл. Можно изменить файл в режиме онлайн или же сделав бэкап XML файла ВМ, изменить его и применить к виртуальной машине.

Отредактируем XML файл ВМ в онлайн режиме:

В открывшемся редакторе vi внесите изменения, нажав кнопку “Insert”.

Например, зададим для ВМ 2 ядра и 1Гб памяти:

Сохраните изменения в файле и перезапустите ВМ:

Проверьте настройки ВМ:

Тоже самое можно сделать, сделав бэкап XML файла:

# virsh dumpxml > /root/test.xml
# vi /root/test.xml

Измените нужные вам параметры, сохраните файл и примените к виртуальной машине:

# virsh shutdown test-centos

# virsh define /root/test.xml

# virsh start test-centos

KVM: добавление диска в виртуальную машину

В одной из наших статей, мы описывали процесс расширения и уменьшения дисков виртуальных машин в KVM. Но мы не описывали вариант по добавлению дополнительного диска.

Сначала нужно создать дополнительный файл диска для виртуальной машины:

# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img

Вместо qcow2 вы можете указать нужный формат диска, так же нужно указать путь до файла. У меня хранилище для дисков /vz/disk/.

После этого, можно добавить устройство виртуального диска к самой ВМ:

# virsh attach-disk /vz/disk/test.img vdb —type disk —persistent

Остановите и запустите ВМ, проверьте что получилось:

# virsh shutdown test-centos

# virsh start test-centos

# virsh dumpxml test-centos

Как видим, диск добавлен. После данных манипуляций, на виртуальной машине нужно разметить этот диск под ваши нужды.

KVM: добавление сетевой карты для виртуальной машины

Попрьуем добавить дополнительный сетевой интерфейс для ВМ. Сначала проверим, какие сетевые интерфейсы созданы на хосте:

У меня на KVM сервере создана одна виртуальная машина, с одним сетевым интерфейсом. К br0 нам нужно прикрепить еще один виртуальный сетевой интерфейс. Выполните команды:

# virsh shutdown test-centos
# virsh attach-interface test-centos —type bridge —source br0 —persistent
# virsh start test-centos

Проверьте, что у ВМ появился дополнительный сетевой интерфейс:

Также вы можете изменить сетевые настройки виртуальной машины напрямую через XML файл: # virsh edit test-centos

После первого сетевого интерфейса добавьте следующие строки:

Сохраните файл и запустите ВМ. Остальную конфигурацию, KVM добавит сам (mac address и тд).

В данной статье мы затронули основные моменты, которые могут вам понадобиться при управлении виртуальными машинами KVM из консоли Linux сервера. В следующей статье мы рассмотрим управление виртуальными машинами через графический менеджер virt-manager.

Источник

Оцените статью