Знакомство с виртуальными машинами
Каждому администратору предприятия приходится иметь дело с настройкой виртуальных машин. Использовать виртуальные машины можно для разработки и тестирования приложения, а также хранения данных. Преимуществами виртуальных машин можно назвать гибкость в выборе операционной системы и возможность дублирования рабочего пространства. Проблемы при работе с ними сложны, поскольку виртуальные машины используют ресурсы иначе, чем физические. Виртуальные машины подвергаются различным рискам и проблемам с производительностью. Must know для IT-специалистов, чтобы поддерживать работоспособную сетевую инфраструктуру.
Виртуальные машины (ВМ) — это такие абстрактные вычислительные экземпляры, созданные программой, работающей на другой машине, и которые физически не существуют, но работают, как настоящий компьютер. ВМ работает на программном обеспечении, а не на оборудовании. Так сказать, программное обеспечение создаёт «воображаемый» компьютер, который ведёт себя как физический. Другими словами, пользователь создаёт компьютер внутри другого компьютера. Несколько ВМ могут работать параллельно на одном базовом устройстве отдельно друг от друга.
Машина, создающая виртуальную машину, называется хост-машиной, а виртуальная машина называется «гостевой». На одном хост-компьютере может быть множество гостевых ВМ. Также может быть и множество виртуальных серверов, работающих с одной физической машины.
Хотя виртуальная машина создается с помощью ПО, она использует физические ресурсы хост-машины, такие как ЦП, ОЗУ и место в хранилище на жёстком диске. На своём хост-компьютере можно настроить столько виртуальных машин, сколько нужно, но придётся разделить физические аппаратные ресурсы между ними всеми. Количество виртуальных машин, которые можно иметь одновременно, ограничено только ресурсами хост-компьютера; однако большинство ВМ будут работать медленнее, чем физический компьютер, просто из-за дополнительных уровней абстракции, которые они должны пройти для выполнения функции.
Функции, предоставляемые виртуальными машинами, аналогичны функциям физических, но ВМ не работают непосредственно на оборудовании компьютера. Вместо этого между оборудованием и виртуальной машиной существует «гипервизор». Этот средний уровень защищает хост-компьютер, а также создает виртуальную машину и управляет ею. Подробнее о гипервизорах чуть ниже.
Существует множество преимуществ использования виртуальных серверов вместо физического оборудования, и каждое предприятие должно учитывать настройку виртуального сервера по мере своего роста. Если у пользователя есть только один сервер, виртуализация себя не окупит, но вложение имеет смысл, если серверов много.
ВМ можно использовать для смены операционных систем. Например, если у гостевой операционной системы используется Windows, а на хост-компьютере Mac OS. Кроме того, можно тестировать ПО в этой гостевой операционной системе, которую не может использовать хост-компьютер, или одновременно тестировать программы в разных операционных системах, чтобы убедиться, что они работают одинаково на каждой из них. Виртуальные машины также можно использовать в качестве буферов безопасности и выполнять вредоносный код или проверять подозрительные файлы, не нанося вреда другим частям системы-хоста.
ВМ экономят большие суммы денег. Размещая несколько виртуальных серверов на одной физической машине, пользователь может выделить ресурсы на каждый из них. Это позволяет использовать только те ресурсы, которые нужны только в данный момент. Если одна виртуальная машина использует меньше ресурсов, другая виртуальная машина может использовать освободившиеся. Это позволяет более эффективно и экономно распоряжаться ресурсами машины-хоста. Также, когда используется меньше физических машин, экономятся деньги за счёт уменьшения объёма пространства, необходимого для хранения серверов.
Виртуализация ещё и экономит энергию. По сравнению с традиционными операционными системами виртуальная машина не так сильно зависит от потребляемой электроэнергии, потому что её центральное оборудование не нужно менять или расширять. Таким образом, затраты на виртуализацию всегда ниже, чем на покупку и обслуживание дополнительного оборудования. Ведь вычислительная мощность имеет свою цену. Если для пользователя единственным способом получить больше ресурсов является покупка нового оборудования, то это не самый оптимальный вариант. Слишком часто организации развёртывают серверы, которые потребляют лишь часть доступных ресурсов и не используют весь свой потенциал. Это приводит к тому, что, серверы попросту простаивают.
Казалось бы, очевидные вещи, но при управлении виртуальными машинами важно следовать ряду базовых рекомендаций:
- Производите оценку виртуальной среды. Если вы не знаете, какие виртуальные устройства включены или выключены, или правильно ли работают ваши виртуальные серверы, вы не сможете быстро и эффективно устранять проблемы, когда они возникают. Устранение неполадок, связанных с замедлением, зависит от возможности точно определить проблему, и если вы не наметили полностью свою среду, вы можете даже не знать о замедлении, пока ваши пользователи не начнут жаловаться. Проводите регулярную инвентаризацию своей виртуальной среды, чтобы быть в курсе всего, прежде чем это повлияет на ваших клиентов или бизнес.
- Контролируйте рост виртуализации. Когда в вашей среде слишком много ВМ, то вам трудно будет их отслеживать. Поскольку создавать виртуальные машины несложно (гораздо проще, чем приобретать новое оборудование), можно запросто сделать больше ВМ, чем нужно. В конечном итоге это может свести на нет некоторые преимущества консолидации и повышения эффективности, которые должна обеспечивать виртуализация. Убедитесь, что вы предприняли шаги для контроля разрастания виртуализации, а также отключили или удалили все ненужные виртуальные машины.
- Управляйте рисками безопасности. Риски безопасности для вашей виртуальной среды могут проявляться в разных формах. Если вы не следите за разрастанием, остаётся множество точек, через которые злоумышленник может получить доступ к вашей сети. Несмотря на то, что ВМ изолированы друг от друга, злоумышленники всё же могут получить информацию о структуре или настройках вашей сети. Важно убедиться, что в вашей виртуальной среде установлены соответствующие инструменты безопасности и защиты от вредоносных программ. Не стоит недооценивать возможность внутренних рисков, как злонамеренных, так и случайных. Неосведомлённые пользователи могут изменить конфигурацию виртуальной машины или параметры доступа, случайно удалить что-либо или преднамеренно получить доступ к данным, которые они не должны иметь. Сохраняйте привилегии доступа для вашей виртуальной среды так же, как и для любой физической среды.
- Делайте своевременные обновления. Если вы не обновляете своё программное обеспечение или операционные системы, это также оставляет потенциальные уязвимости открытыми для злоумышленников. Ошибки в ПО, гипервизорах или ОС могут позволить злоумышленникам получить доступ к вашим системам, даже если эти системы являются виртуальными. Убедитесь, что программное обеспечение ВМ всегда обновлено, а приложения и программы, установленные на ваших виртуальных машинах, также регулярно обновляются.
- Быстро реагируйте при возникновении проблем. Убедитесь, что у вас есть план реагирования на случай, если производительность ВМ резко упадёт, или если у вас возникнут проблемы с виртуальной средой. Обязанности в команде должны быть чётко распределены, чтобы вы знали, кто и какими проблемами будет заниматься, особенно проблемами безопасности. Наличие выделенного персонала и групп для каждой потенциальной проблемы, а также чёткий план эскалации и решения помогут вам, если вам нужно быстро исправить что-то в вашей виртуальной среде. И всегда помните о резервном копировании.
Типы виртуальных машин
Существует несколько видов виртуальных машин. Они работают по-разному, и каждый из них имеет свои конкретные цели. Двумя основными типами виртуальных машин являются системные виртуальные машины и виртуальные машины процессов.
Системная виртуальная машина предназначена для имитации всей компьютерной системы, включая запуск полной ОС. Системные ВМ обычно используются для запуска программ в ОС, которой нет на хост-компьютере, или для запуска нескольких экземпляров ВМ, чтобы эффективно распределить аппаратные ресурсы. Операционная система на системной виртуальной машине изолирована от хост-машины. Например, мы можем установить Windows XP/7/8 или Linux Ubuntu/Kali в операционной системе Windows 10 используя VirtualBox, QEMU или Citrix Xen.
Виртуальные машины процессов, в отличие от системных виртуальных машин, создаются специально для запуска отдельного приложения. Когда этот процесс не используется, виртуальная машина также не используется — она «уничтожается» при завершении процесса или приложения. Примером виртуальной машины процесса является Java Virtual Machine (JVM), которая позволяет любой системе запускать приложения Java, как если бы они были родными для системы.
Как работает виртуальная машина
ВМ настраиваются с использованием гипервизора или аналогичной технологии. Гипервизор — это часть оборудования, микропрограммы или программного обеспечения, которое создаёт виртуальные машины, выделяет им ресурсы, а затем управляет ими. Проще говоря, это слой между физическим компьютером и ВМ. Гипервизоры и управляемые ими виртуальные машины обычно используются для репликации данных, виртуализации рабочих столов и ОС, консолидации серверов и облачных вычислений.
Например, у вас может быть ПК с 8 ГБ оперативной памяти и операционная система Windows. Если вместо этого вы хотите запускать программы, требующие Linux, вы создаёте виртуальную машину с Linux, а затем используете гипервизор для управления её ресурсами, например, выделив ей 2 ГБ ОЗУ. Часть ресурсов хост-машины будет работать под управлением ОС Windows, а часть будет выделена виртуальной машине под управлением Linux.
Гипервизоры также обеспечивают уровень безопасности между виртуальными машинами и операционной системой хост-компьютера, предотвращая заражение хост-компьютера неисправными приложениями или повреждёнными файлами, т.е. неполадки в ВМ не затронут хост-машину. Допустим, если пользователь загрузит повреждённый или заражённый файл на свою виртуальную машину, гипервизор предотвратит попадание файла на хост-компьютер.
Существует два основных типа гипервизора: аппаратный и программный. Аппаратные гипервизоры устанавливаются непосредственно на физическое оборудование, а программные гипервизоры устанавливаются в операционную систему.
Аппаратные гипервизоры обычно эффективнее и быстрее, чем программные. Им не надо конкурировать с операционной системой или другими приложениями, работающими одновременно, что позволяет им получить доступ ко всей вычислительной мощности хост-машины. Эту дополнительную мощность можно выделить виртуальным машинам, которыми управляет гипервизор.
Основным преимуществом программных гипервизоров является простота настройки. Можно использовать их так же, как и любую другую программу в операционной системе, и не обязательно знать, как работает это оборудование, чтобы установить его. В большинстве случаев программные гипервизоры используются для разработки или тестирования приложений.
VMware, Hyper-V и KVM — ключевые примеры гипервизоров: VMware принадлежит Dell, KVM — RedHat, а Hyper-V — Microsoft. Программное обеспечение VMware создано для облачных вычислений и виртуализации, и оно устанавливает гипервизор на физические серверы, чтобы позволить ВМ работать одновременно. Hyper-V делает то же самое, но также виртуализирует серверы. Hyper-V поставляется с предустановленной Windows 10. KVM — это инструмент виртуализации для Linux на оборудовании x86, содержащее расширения виртуализации (Intel VT или AMD-V). Все три являются аппаратными гипервизорами.
Как настроить виртуальную машину
Настроить виртуальную машину не так уж сложно, и для большинства решений для виртуальных машин — при условии, что вы используете программный гипервизор — выполняйте следующие действия:
- Откройте приложение виртуальной машины и нажмите кнопку, чтобы создать новую виртуальную машину.
- Следуйте инструкциям мастера по созданию ВМ, при необходимости обязательно измените значения по умолчанию.
- Убедитесь, что имя и версия вашей виртуальной машины указаны правильно.
- Если у вас уже есть виртуальный диск, который вы хотите использовать, вы можете пропустить любые шаги, требующие создания виртуальной базы данных. Если у вас нет виртуального диска, создайте базу данных с помощью инструмента. Выберите динамически выделяемый диск или диск фиксированного размера.
- Выберите размер вашего диска.
- Нажмите кнопку «Создать».
- В главном окне приложения для виртуальных машин вы должны увидеть все созданные вами виртуальные машины; выберите тот, который вы хотите запустить через приложение.
После того, как вы настроили виртуальную машину (или несколько), вам может потребоваться оптимизировать производительность, чтобы убедиться, что всё работает эффективно, или для того, чтобы увеличить скорость вашей сети. Следующие советы помогут вам оптимизировать производительность виртуальной машины:
- Используйте фиксированные диски. Они потребляют меньше ресурсов и позволяют лучше и точнее планировать ёмкость. Если вы выделите фиксированный диск для каждой ВМ, у вас будет лучшее представление о том, какие ресурсы у вас есть и какие уже используются. Тем не менее, в большинстве случаев вы не заметите большой разницы между фиксированным и динамическим размещением. Однако при масштабировании или работе с крупной корпоративной инфраструктурой небольшие различия могут складываться. Фиксированные диски также имеют больше смысла, если у вас ограниченный объём физического хранилища. А в производственных средах вы обнаружите, что динамическое выделение дисков со временем снижает производительность, поскольку ВМ занимают больше места.
- Выделите больше памяти. Большинству виртуальных машин будет не хватать памяти, поэтому рассмотрите возможность выделения большего объёма памяти, чем, по вашему мнению, им потребуется, и позвольте ВМ отключать память в зависимости от использования, что поможет максимизировать эффективность.
- Переключитесь на твердотельные накопители. Переход на твердотельные накопители — один из самых быстрых способов повысить производительность. В зависимости от того, какие у вас процессоры, вы можете использовать их для улучшения виртуализации. Например, Intel VT-x и AMD-V — это специализированные процессоры, разработанные для виртуальных машин. Планируйте рабочие нагрузки заранее и убедитесь, что ваше оборудование включено и в порядке.
- Уменьшите количество фоновых приложений. Во многих случаях простое сокращение фоновых приложений и программ, в том числе снижение частоты сканирования каталогов ВМ с помощью антивирусного программного обеспечения, может помочь улучшить производительность ВМ и время отклика. По сути, относитесь к виртуальным машинам как к физическим машинам, поскольку к ним применяются многие из тех же концепций производительности.
Мониторинг ВМ
Часто виртуальные машины, используемые на предприятиях, настраиваются одинаково. Однако одному человеку может потребоваться больше оперативной памяти для своих приложений, чем другому, а кому-то может понадобиться ВМ с другими установленным ПО. Мониторинг производительности и использования виртуальных машин является важной частью обеспечения того, чтобы ВМ вашего предприятия функционировали должным образом. Мониторинг обычно помогает обнаружить области для улучшения, а также возможности для автоматизации и перераспределения ресурсов в режиме реального времени.
Используйте инструмент мониторинга производительности ВМ для сбора данных и метрик для сети и сравнивайте отчёты каждую неделю или месяц, чтобы убедиться, что система работает хорошо, и нет растущих проблем. После того, как наладите сбор данных, вы сможете отслеживать тенденции (например, какие виртуальные машины постоянно достигают лимита ресурсов), более эффективно подходить к планированию ёмкости и отмечать любые виртуальные машины, которые регулярно подвергаются сбоям, задержкам или проблемам с приложениями.
Данные, собранные с помощью инструмента оценки производительности ВМ, показывают, сколько физических ресурсов используют ВМ и какие меры по оптимизации применяются.
Вот некоторые из инструментов мониторинга ВМ:
Мониторинг через Paessler PRTG
Виртуальные машины становятся жизненно важной частью как локальных, так и облачных вычислений, присоединяясь к физическим устройствам в составе корпоративной инфраструктуры. Они позволяют организациям более безопасно и эффективно разрабатывать и тестировать приложения, улучшать свои хранилища, дублировать рабочие области и достигать гибкости в использовании операционных систем.