Руководство по Ubuntu Server



Pdf просмотр
страница12/16
Дата17.11.2016
Размер1.78 Mb.
Просмотров3977
Скачиваний3
ТипРуководство
1   ...   8   9   10   11   12   13   14   15   16
1. Виртуальная библиотека
libvirt — библиотека, используемая как интерфейс к разным технологиям виртуализации. Прежде чем начать использовать libvirt, стоит узнать,
поддерживает ли ваше оборудование расширения виртуализации для KVM.
Введите следующую команду в консоли:
kvm-ok
Будет выведено сообщение о том, поддерживает или не поддерживает ваш процессор аппаратную виртуализацию.
На большинстве компьютеров, процессоры которых поддерживают виртуализацию, необходимо активировать эту возможность в BIOS.
1.1. Виртуальная сеть
Существует несколько различных способов предоставить виртуальной машине доступ во внешнюю сеть. По умолчанию конфигурация виртуальной сети — это сеть пользовательского режима, использующая протокол SLIRP, а трафик передается посредством NAT через интерфейс хоста во внешнюю сеть.
Чтобы внешние хосты могли иметь прямой доступ к сервисам на виртуальных машинах, должен быть сконфигурирован мост. Это позволит виртуальным интерфейсам соединяться с внешней по физическому интерфейсу, при этом для остальной сети они будут выглядеть обычными хостами. Для информации по настройке моста смотрите Раздел 1.4,
«Использование моста» [47].
1.2. Установка
Чтобы установить требующиеся пакеты, введите в терминале:
sudo apt-get install kvm libvirt-bin
После установки libvirt-bin потребуется добавить пользователя,
управляющего виртуальными машинами, в группу libvirtd. Это предоставит пользователю доступ к расширенным сетевым настройкам.
В консоли введите:
sudo adduser $USER libvirtd

Виртуализация
359
Если выбранный пользователь - текущий, потребуется выйти из системы и войти снова, чтобы новое членство в группе возымело эффект.
Теперь вы готовы к установке гостевой операционной системы. Установка на виртуальную машину производится так же, как установка операционной системы на реальном аппаратном обеспечении. Вам потребуется либо способ автоматизации установки, либо будут нужны клавиатура и монитор,
подключённые к физической машине.
В случае виртуальной машины графический пользовательский интерфейс
(GUI) аналогичным образом использует физические клавиатуру и мышь.
Вместо установки GUI для подключения к консоли виртуальной машины с помощью VNC может использоваться приложение virt-viewer. Смотрите
Раздел 1.6, «Средство просмотра виртуальных машин» [362] для большей информации.
Есть несколько способов, чтобы автоматизировать процесс установки
Ubuntu, например, с помощью preseeds, kickstartи т.д. Обратитесь к
Руководство по установке Ubuntu
1
за деталями.
Ещё одним способом установить виртуальную машину Ubuntu является использование ubuntu-vm-builder. Это приложение позволяет создавать расширенные разделы, выполнять пользовательские скрипты после установки и т.д. Детали ищите здесь: Раздел 2, «JeOS и vmbuilder» [364]
Libvirt также может быть настроен для работы с Xen. Подробные сведения смотрите на странице сообщества Xen в Ubuntu, доступной по приведённой ниже ссылке.
1.3. 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
1
https://help.ubuntu.com/12.04/installation-guide/

Виртуализация
360
-r 256: указывает объём памяти, выделяемый виртуальной машине, в мегабайтах.
--disk path=/var/lib/libvirt/images/web_devel.img,size=4: указывает путь к виртуальному диску, который может быть файлом, разделом или логическим томом. В этом примере файл называется web_devel.img
,
расположен в каталоге /var/lib/libvirt/images/, имеет размер 4 гигабайта и использует virtio в качестве шины передачи данных.
-c jeos.iso: файл, используемый как виртуальный CD-ROM. Файл может быть ISO-образом или путём к физическому приводу CD-ROM хоста.
--accelerate: включает технологии ускорения уровня ядра.
--network содержит сведения, относящиеся к виртуальному сетевому интерфейсу. Здесь используется сеть default, и модель интерфейса настроена для virtio.
--vnc: экспортирует виртуальную консоль виртуальной машины с использованием VNC.
--noautoconsole: автоматически не подключит к консоли виртуальной машины.
-v: создаёт полностью виртуализированный гостевой аккаунт.
После запуска virt-install вы можете подключиться к консоли виртуальной машины или локально, используя графический интерфейс, или с помощью утилиты virt-viewer.
1.4. virt-clone
Приложение virt-clone может использоваться для копирования одной виртуальной машины в другую. Например:
sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \ --connect=qemu:///system
-o: оригинал виртуальной машины.
-n: имя новой виртуальной машины.
-f: путь к файлу, логическому диску или разделу для использования виртуальной машиной.
--connect: указывает гипервизор для подключения.
Также используйте опции -d или --debug для помощи в решении проблем с virt-clone.
Замените web_devel и database_devel на подходящие имена виртуальных машин.

Виртуализация
361 1.5. Управление виртуальными машинами
1.5.1. virsh
Существует несколько утилит, предназначенных для управления виртуальными машинами и libvirt. Утилита virsh может использоваться из командной строки. Некоторые примеры:
• Список запущенных виртуальных машин:
virsh -c qemu:///system list
• Для запуска виртуальной машины:
virsh -c qemu:///system start web_devel
• Подобным образом, для запуска виртуальной машины при загрузке:
virsh -c qemu:///system autostart web_devel
• Перезагрузка виртуальной машины:
virsh -c qemu:///system reboot web_devel
Состояние виртуальных машин может быть сохранено в файл с возможностью дальнейшего восстановления. Следующая команда сохранит состояние виртуальной машины в файл, названный в соответствии с датой:
virsh -c qemu:///system save web_devel web_devel-022708.state
После сохранения виртуальная машина не будет больше запущена.
• Сохранённая виртуальная машина может быть восстановлена с использованием:
virsh -c qemu:///system restore web_devel-022708.state
• Чтобы закрыть виртуальную машину, выполните:
virsh -c qemu:///system shutdown web_devel
• Устройство CD-ROM может быть примонтировано к вируальной машине следующей командой:
virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom

Виртуализация
362
В предыдущих примерах замените web_devel требуемым именем виртуальной машины, а web_devel-022708.state понятным именем файла.
1.5.2. Менеджер виртуальных машин
Пакет virt-manager содержит графическую утилиту для управления локальными и удаленными виртуальными машинами. Для установки virt- manager в консоли введите:
sudo apt-get install virt-manager
Так как virt-manager требует среду пользовательского графического интерфейса (GUI), рекомендуется устанавливать его на рабочую станцию или тестовую машину, вместо готового сервера. Чтобы подключиться к локальному сервису libvirt введите:
virt-manager -c qemu:///system
Можно подключиться к сервису libvirt, запущенному на другом хосте, введя в терминале:
virt-manager -c qemu+ssh://virtnode1.mydomain.com/system
В предыдущем примере предполагается, что связь SSH между управляющей системой и virtnode1.mydomain.com уже была настроена и использует ключи SSH для аутентификации. Ключи
SSH необходимы потому, что libvirt посылает запрос пароля другому процессу. Детально о настройке SSH смотрите Раздел 1, «Сервер
OpenSSH» [94]
1.6. Средство просмотра виртуальных машин
Приложение virt-viewer позволяет вам подключаться к консоли виртуальной машины. Для взаимодействия с виртуальной машиной virt-viewer требуется графический пользовательский интерфейс.
Чтобы установить virt-viewer, введите в консоли:
sudo apt-get install virt-viewer
Когда виртуальная машина установлена и запущена, вы можете подключаться к консоли виртуальной машины, используя:

Виртуализация
363
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 к виртуальной машине.
Смотрите Раздел 1, «Сервер OpenSSH» [94] and Раздел 1.4, «Использование
моста» [47] для получения дополнительной информации.
1.7. Ресурсы
• Смотрите домашнюю страницу KVM
2
для подробностей.
• Для детальной информации по libvirt смотрите домашнюю страницу
libvirt
3
• На сайте Менеджер виртуальной машины
4
есть больше информации по разработке virt-manager.
• Также, заходите на IRC канал #ubuntu-virt на freenode
5
чтобы обсудить технологии виртуализации в Ubuntu.
• Ещё один хороший ресурс — это страница: Ubuntu Wiki KVM
6
• Для получения информации о Xen, в том числе с помощью Xen с libvirt,
пожалуйста, посмотрите страницу Ubuntu Wiki Xen
7 2
http://kvm.qumranet.com/kvmwiki
3
http://libvirt.org/
4
http://virt-manager.et.redhat.com/
5
http://freenode.net/
6
https://help.ubuntu.com/community/KVM
7
https://help.ubuntu.com/community/Xen

Виртуализация
364
2. JeOS и vmbuilder
2.1. Введение
2.1.1. Что такое JeOS
Ubuntu JeOS (произносится "Джюс") — это эффективный вариант ОС Ubuntu
Server, сконфигурированный специально для виртуальных применений. Он более недоступен для скачивания как CD-ROM ISO, а только как опция:
• Во время установки с Server Edition ISO (нажатие F4 на первом экране позволит Вам выбрать "Минимальную установку", что означает выбор пакетов, эквивалентный JeOS).
• Или его можно собрать с помощью Ubuntu vmbuilder, который описан здесь.
JeOS — это специализированная установка Ubuntu Server Edition с настроенным ядром, которое содержит только базовые элементы,
необходимые для запуска в виртуальном окружении.
Ubuntu JeOS настроено для того, чтобы получить преимущество ключевых технологий производительности в новейших продуктах виртуализации от
VMware. Такая комбинация уменьшенного размера и оптимизированной производительности обеспечивает высокоэффективное использование серверных ресурсов Ubuntu JeOS Edition в больших виртуальных окружениях.
ISV может быть настроен таким образом, чтобы соответствовать всем требованиям поддерживаемой ОС, поскольку в нем не будет ненужных драйверов, а будут присутствовать только необходимые пакеты. Тот факт,
что обновления, будь они из соображений безопасности или повышения производительности, будут ограничены минимальным набором того,
что действительно необходимо, также придает уверенности. С другой стороны, пользователи, разворачивающие виртуальные приложения в JeOS,
получат меньше обновлений и потому меньшую поддержку, чем если бы они установили стандартную полную версию сервера.
2.1.2. Что такое vmbuilder
При использовании vmbuilder более нет необходимости скачивать JeOS ISO.
vmbuilder сам найдёт необходимые пакеты и создаст виртуальную машину примерно за минуту в соответствии с вашими требованиями. vmbuilder
— это сценарий, который автоматизирует процесс создания готовой к использованию и основанной на Linux виртуальной машины (VM). В данный момент поддерживаются следующие гипервизоры: KVM и Xen

Виртуализация
365
Вы можете передать опции командной строки для установки дополнительных пакетов, удаления пакетов, выбора версии Ubuntu,
зеркала пакетов и т.д. На современном оборудовании с достаточным количеством ОЗУ, tmpdir в
/dev/shm или при использовании tmpfs, локальном зеркале, вы можете загрузить ВМ меньше чем за минуту.
ubuntu-vm-builder впервые был представлен как сценарий в Ubuntu 8.04 LTS.
Одной из целей создания было предоставить возможность разработчикам тестировать их код в виртуальной машине без необходимости начинать всё с начала каждый раз. Как только этот сценарий был замечен несколькими системными администраторами Ubuntu, всё больше и больше администраторов начали улучшать его и адаптировать его к различным вариантам использования. В результате Сорен Хансен (автор этого скрипта и специалист по виртуализации в Ubuntu, а не игрок в гольф), решил переписать сценарий заново с нуля для Intrepid на языке python, преследуя новые цели:
• Разработать его так, чтобы он мог использоваться в других дистрибутивах.
• Использовать механизм плагинов для всех действий виртуализации,
чтобы другие могли легко добавить логику для своего окружения виртуализации.
• Обеспечить легко поддерживаемый веб-интерфейс как опцию к интерфейсу командной строки.
Но общие принципы и команды должны остаться прежними.
2.2. Первичная настройка
Предполагается, что вы установили и настроили libvirt и KVM на машине,
которую вы используете. Чтобы узнать, как это сделать, обратитесь к:
Раздел 1, «Виртуальная библиотека» [358]
KVM
8
странице Wiki.
Мы также предполагаем, что вы знаете, как пользоваться консольным текстовым редактором, таким как nano или vi. Если ранее вы не пользовались ни одним из них, можете прочитать обзор различных текстовых редакторов на странице PowerUsersTextEditors
9
. Это руководство дано для KVM, но общий принцип сохранится и для других технологий виртуализации.
8
https://help.ubuntu.com/community/KVM
9
https://help.ubuntu.com/community/PowerUsersTextEditors

Виртуализация
366 2.2.1. Установка vmbuilder
Название пакета, который нам нужно установить — python-vm-builder.
Введите в терминале:
sudo apt-get install python-vm-builder
Если вы используете Hardy, вы можете сделать большинство из этого, используя более старую версию пакета, которая называется ubuntu-vm-builder, она отличается несколькими изменениями в синтаксисе.
2.3. Определение вашей виртуальной машины
Определение виртуальной машины с помощью vmbuilder'а Ubuntu довольно просто, но есть несколько важных вещей:
• Если вы планируете поставлять виртуальный аппарат, не предполагайте,
что конечный пользователь будет знать, как увеличить размер диска под свои нужды, так что либо планируйте большой виртуальный диск, чтобы дать возможность вашему аппарату увеличиваться, либо достаточно хорошо опишите в документации, как выделить больше места. Возможно,
хорошей идеей будет хранить данные на отдельном внешнем носителе.
• Так как выделение ОЗУ в виртуальной машине гораздо проще, размер
ОЗУ следует установить в необходимый минимум для вашего аппарата.
Команда vmbuilder имеет 2 главных параметра: технология виртуализации
(гипервизор) и целевой дистрибутив. Опциональных параметров довольно много, о них можно узнать, используя следующую команду:
vmbuilder kvm ubuntu --help
2.3.1. Основные параметры
Так как этот пример основан на KVM и Ubuntu 12.04 LTS (Precise Pangolin), и мы, вероятно, пересоздадим одну и ту же виртуальную машину несколько раз, запустим vmbuilder со следующими начальными параметрами:
sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \ -o --libvirt qemu:///system
--suite определяет релиз Ubuntu, --flavour указывает, что мы хотим использовать виртуальное ядро (то, которое используется в JeOS), --arch
говорит, что мы хотим использовать 32-битную машину, -o указывает vmbuilder'у перезаписать предыдущую версию ВМ и --libvirt говорит локальному виртуальному окружению добавить получившуюся ВМ в список доступных машин.

Виртуализация
367
Примечания:
• Из-за вида операций, производимых vmbuilder, он должен иметь привилегии пользователя root, отсюда использование sudo
• Если виртуальной машине требуется больше 3Гб ОЗУ, вам следует создавать 64-битную машину (--arch amd64).
• До Ubuntu 8.10 виртуальное ядро собиралось только для 32-битной архитектуры, так что если вы хотите создать 64-битную машину на Hardy,
вам следует использовать --flavour server.
2.3.2. Параметры установки JeOS
2.3.2.1. Сетевые настройки JeOS
2.3.2.1.1. Назначение статического IP адреса.
Так как виртуальный аппарат может разворачиваться на самых разных сетях, очень сложно предположить, как будет выглядеть конкретная сеть.
В связи с этим, для упрощения настройки полезно применить подход,
обычно используемый производителями сетевого оборудования, то есть назначить статический IP-адрес из частного класса адресов, который вы затем предоставите в вашей документации. Чаще всего это диапазон адресов 192.168.0.0/255
Для этого будем использовать следующие параметры:
--ip ADDRESS: IP-адрес в формате с точками (по умолчанию используется dhcp, если не указан)
--hostname NAME: Установить NAME, как имя гостевой машины.
--mask VALUE: IP-маска в формате с точками (по умолчанию 255.255.255.0)
--net VALUE: IP-адрес сети (по умолчанию X.X.X.0)
--bcast VALUE: широковещательный запрос IP (по умолчанию X.X.X.255)
--gw ADDRESS: адрес шлюза (по умолчанию Х.Х.Х.1)
--dns ADDRESS: адрес DNS сервера (по умолчанию X.X.X.1)
Сейчас мы полагаем, что значений по умолчанию достаточно, поэтому результирующая команда примет вид:
sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm
2.3.2.1.2. Использование моста
Поскольку желательно, чтобы к нашему приложению был доступ с внешних компьютеров, нам потребуется настроить libvirt таким образом, чтобы

Виртуализация
368
решение использовало сетевой мост. Для этого добавим опцию --bridge к нашей команде:
sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm --bridge br0
Вам будет необходимо предварительно настроить интерфейс моста, для получения дополнительной информации смотрите раздел Раздел 1.4, «Использование моста» [47] . Также, если имя интерфейса отличается, измените br0 согласно фактическому интерфейса моста.
2.3.2.2. Разметка дисков
При разметке виртуальных устройств надо учитывать то, как вы планируете затем их использовать. Поскольку многим устройствам требуется отдельное место для хранения данных, имеет смысл использовать отдельный раздел
/var
Для этого у vmbuilder есть параметр --part:
--part PATH
Allows you to specify a partition table in a partition file, located at PATH. Each line of the partition file should specify (root first):
mountpoint size where size is in megabytes. You can have up to 4 virtual disks, a new disk starts on a line with ’---’. ie :
root 1000
/opt 1000
swap 256
---
/var 2000
/log 1500
В нашем случае мы определим текстовый файл vmbuilder.partition
, в котором будет написано следующее:
root 8000
swap 4000
---
/var 20000
Заметьте, что поскольку мы используем образы виртуальных дисков,
действительные размеры, которые мы здесь указываем, являются максимальными значениями для этих томов.
Наша командная строка сейчас выглядит как:
sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm --part vmbuilder.partition

Виртуализация
369
Использование символа "\" в команде позволяет переносить часть длинной команды на следующую строку.
2.3.2.3. Пользователь и пароль
Снова настраивая виртуальное устройство, вы должны будете предоставить пользователя по умолчанию и пароль, которые являются универсальными для того, чтобы вы могли включить их в свою документацию. Позже в данном руководстве мы увидим, как обеспечить некоторую безопасность, задав сценарий, который будет запускаться при первом входе пользователя в устройство и, помимо прочего, попросит его изменить пароль. В данном примере мы будем использовать 'user' в качестве имени пользователя и 'default' в качестве пароля.
Для этого мы используем следующие допольнительные параметры:
--user USERNAME: Задаёт имя добавляемого пользователя. По-умолчанию:
ubuntu.
--name FULLNAME: Задаёт полное имя добавляемого пользователя. По- умолчанию: Ubuntu.
--pass PASSWORD: Задаёт пароль пользователя. По-умолчанию: ubuntu.
В результате наша командная строка примет вид:
sudo vmbuilder kvm ubuntu --suite precise --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --hostname myvm --part \ vmbuilder.partition --user user --name user --pass default
2.3.3. Установка необходимых пакетов
В данном примере мы установим пакет (Limesurvey), который обращается к базе данных MySQL и имеет веб-интерфейс. Поэтому мы попросим операционную систему предоставить нам:
• Apache
• PHP
• MySQL
• Сервер OpenSSH
• Limesurvey (в качестве примера приложения, которое мы упаковываем)
Это достигается в vmbuilder с помощью указания опции --addpkg несколько раз:
--addpkg PKG
Установка PKG в гостевую систему (может быть использована несколько раз)
Однако, из-за способа работы vmbuilder, вопросы задаваемые пакетами на пост установочном этапе не поддерживаются и они будут установлены не

Виртуализация
370
в интерактивном режиме. Это касается Limesurvey, который необходимо установить позже, после первого входа в систему.
Другие пакеты, задающие простые вопросы debconf, например, mysql- server, запрашивающий пароль, будет установлен, но его необходимо будет перенастроить после первого входа в систему.
Если некоторых, необходимых нам для установки, пакетов нет в репозитории main, мы должны разрешить дополнительные репозитории,
используя --comp и --ppa:
--components COMP1,COMP2,...,COMPN
A comma separated list of distro components to include (e.g. main,universe).
This defaults to "main"
--ppa=PPA Add ppa belonging to PPA to the vm's sources.list.
Limesurvey не является частью архива на данный момент, поэтому мы укажем адрес PPA (персонального архива пакетов), который добавим в файл
/etc/apt/source.list
ВМ. Для этого добавим следующие опции в командной строке:
--addpkg apache2 --addpkg apache2-mpm-prefork --addpkg apache2-utils \ --addpkg apache2.2-common --addpkg dbconfig-common --addpkg libapache2-mod-php5 \ --addpkg mysql-client --addpkg php5-cli --addpkg php5-gd --addpkg php5-ldap \ --addpkg php5-mysql --addpkg wwwconfig-common --addpkg mysql-server --ppa nijaba
2.3.4. Вопросы скорости
2.3.4.1. Кэширование пакетов
Когда vmbuilder создает вашу виртуальную машину, то есть закачивает каждый пакет, что заставляет его подключаться к одному из официальных репозиториев, которые в зависимости от скорости вашего соединения с интернетом и нагрузки на зеркало, может иметь большое влияние на фактическое время создания виртуальной машины. В целях снижения этого, рекомендуется иметь либо локальный репозиторий (который может быть создан, используя apt-mirror) или использование кэширующего прокси-сервера, таких как apt-proxy. Последний вариант гораздо проще в реализации и требует меньше дискового пространства, это то, что мы встретим в этом руководстве. Для его установки просто наберите:



Поделитесь с Вашими друзьями:
1   ...   8   9   10   11   12   13   14   15   16


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал