Чтобы разбираться в этих непонятных аббревиатурах обычному пользователю компьютером и интернет, стоит начать с расшифровки этих значений.
VDS - (Virtual Dedicated Server) виртуальный выделенный сервер.
VPS - (Virtual Private Server) виртуальный частный сервер.
Если судить по названиям данных технологий, то сразу, невооруженным глазом, видно что они почти синонимы и имеют общие истоки. Да, по сути так и есть, но есть все-таки технические различия, которые влияют на область применения данных технологий в бизнесе, промышленности и в других сферах деятельности. Чтобы предметно подойти к объяснению тех или иных различий, мы будем использовать еще две не совсем понятные технологии для многих людей - системы виртуализации KVM и OpenVZ.
В мире похожих продуктов, для создания виртуальных серверов, достаточное количество, такие как QEMU, Bochs, Dynamips LXC, OpenVZ, FreeBSD jail, Solaris Zone Microsoft Hyper-V, Oracle VM VirtualBox, VMware ESXi Docker Xen, L4, Trango Virtual Processors и OpenStack и другие малоизвестные системы. В основе своей они похожи и имеют общую цель, но с технологической точки зрения имеют отличия в архитектуре, интерфейсе и доступности конечному пользователю. Большинство вышеперечисленных продуктов не являются бесплатными и не открыты для свободной модификации и интеграции с другим ПО без лицензий от производителей.
Технологии KVM и OpenVZ находятся в свободном пользовании и не требуют каких-либо лицензий на использование и модификацию, они фундаментальны и просты в использовании. Поэтому именно эти два типа распространены среди хостинг-провайдеров. В то же время, под них приходиться проектировать и программировать оболочки для удобного использования. Можно и не использовать веб интерфейсы, чтобы работать с ними, если вы продвинутый пользователь, то смело используйте CLI ( консоль).
Мы не исключение и поэтому все разработки программного обеспечения делаем на основе данных типов виртуализации KVM и OpenVZ.
Существует четыре основных типа виртуализации серверных систем, аппаратно-вычислительных комплексов (кластеров и суперкомпьютеров):
Данный тип полезен приложениям для которых важна эмуляция компьютера на железном уровне. Его можно быстро запустить с одного устройства, эмулируя другое, не перезагружая основную ОС. Удобен для тестирование ПО, которое напрямую требует доступ к драйверам устройств и к ПО управляющим сервером на низком уровне. Минусом данного типа виртуализации является его низкая скорость работы. Это связано с моделированием команд, представляющих собой элементы C-кода, на аппаратных средствах (на железе), которые плохо оптимизированы под данные типы задач. Самой популярной системой виртуализации такого типа, на текущий момент, является QEMU. Она эмулирует BIOS, шины PCI, USB, сетевые устройства iSCSI, Ethernet, дисковые контроллеры SATA, IDE, SCSI, RAID и другие устройства.
Представляет собой модель из 3х основных блоков:
В основе данной виртуализации лежит гипервизор, так называемая прослойка между ОС и вычислительным оборудованием. Гипервизор коммутирует связь ОС с физическим сервером посредством эмуляции. Так как на сервере может быть много ОС, которые не могут одновременно занять все ресурсы физического сервера, гипервизор является своеобразным регулировщиком, который нарезает ресурсы сервера и порционно выделяет всем ОС. Количество выделяемых ресурсов зависит от приоритетов каждой из ОС индивидуально. Приоритеты выделяются администратором сервера или автоматизированной программой (Биллинг-системой), управляемой заказами и настройкой приоритетов. Гипервизор еще называют менеджером виртуальных машин. Работа ОС через гипервизор медленнее, чем обращение напрямую к серверу, но в данный момент серверное оборудование настолько мощное, что эту разницу нельзя заметить.
Самой популярной системой виртуализации такого типа, на текущий момент, является KVM (Kernel-based Virtual Machine). В данной архитектуре часть программного кода, отвечающая за эмуляцию устройств, является модифицированная QEMU (см. эмуляция вычислительного оборудования). По сути виртуальный сервер KVM (VDS) выполняет команды как Linux-процесс, используя стандартный планировщик задач Linux. Эта способность позволяет KVM использовать все функции Linux Kernel. Плюсом такого типа виртуализации в том, что в ОС не вносятся какие либо изменения, но ОС должна поддерживать функции используемых в вычислительных процессорах x64. У Intel функция VT, а у AMD - SVM. Если в процессорах нет данных функций или они отключены в BIOS, у вас не получится запустить данный тип виртуализации.
Учитывая вышесказанное, можно смело провести аналогию между виртуальным сервером (например KVM), созданном на базе такого типа системы виртуализации, и физически выделенным сервером (Dedicated server). Соответственно, добавляя слово Virtual к словосочетанию Dedicated server - получаем аббревиатуру VDS.
Паравиртуализация очень похожа на полную виртуализацию, но есть разница в работе гипервизора. Она заключается в том, что сам гипервизор разделяет доступ к ресурсам сервера, объединяя программный код гостевых ОС с собой. В паравиртуальном режиме (PV) устройства сервера не эмулируются, а идет прямое обращение от ОС к устройствам. Конечно же, все ОС должны быть модифицированы под гипервизор. Плюс такой виртуализации заключается в отсутствии требования аппаратной поддержки со стороны процессоров и траты вычислительной мощности на расчет эмуляции на шине PCI. Конечно есть и второй режим работы виртуализации - HVM, который использует XEN, но о нем не стоит говорить, т.к. он приближен к типу полной виртуализации, хотя относится к паравиртуальному типу и использует эмуляцию устройств с обязательной поддержкой данных функций со стороны процессоров.
Виртуализация на уровне операционной системы (контейнерная), отличается от всех кардинально тем, что построена на базе одной операционной системы и ограничивается соответственно ее ресурсами. Примером такой технологии является OpenVZ 6. Она использует принцип создания виртуальных машин (контейнеров) над основной ОС, также и изолирует их друг от друга. Такой тип виртуализации самый быстрый, за счет отсутствия эмуляции и прохождения всех обращений к устройствам напрямую. Если посмотреть со стороны UNIX систем, то данный тип можно рассматривать как модифицированную версию механизма chroot. Ядро Linux, на низком уровне, изолирует контейнеры друг от друга, соответственно программы в контейнерах никак не влияют друг на друга, что касается и вирусов.