Новости Статьи VMware Veeam StarWind vGate! Microsoft Citrix Red Hat Parallels События Релизы Пресса Видео Вакансии Контакты Авторы RSS
Виртуализация и виртуальные машины

Виртуализация vSphere, Hyper-V, XenServer и Red Hat

Более 1840 заметок о виртуализации и виртуальных машинах VMware, Microsoft, Citrix, Red Hat

VM Guru / Articles / Многоуровневый виртуальный полигон на персональном компьютере

Многоуровневый виртуальный полигон на персональном компьютере

Многоуровневый виртуальный полигон на персональном компьютере

Автор: Павел Рахман
Дата: 04/02/2010

Реклама:



Статья:

Статья опубликована впервые на сайте BugTraq.ru по адресу: http://bugtraq.ru/library/internals/mlvmhome.html

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

В большинстве публикаций чаще всего рассматривается виртуализация первого уровня. На одном или нескольких физических компьютерах, связанных реальными сетями, на базе некоторого ПО виртуализации функционирует множество виртуальных машин (VM), связанных виртуальными сетями (также эмулируемых при помощи ПО виртуализации), которые при необходимости связываются с реальными сетями через сетевые адаптеры физических компьютеров. Иными словами чаще всего рассматривается уровень реальных устройств и один уровень виртуальных объектов (обычно машин, на базе которых функционируют те или иные ОС). Правда, если быть более точным, в примерах, рассматриваемых в публикациях, неявно присутствуют объекты второго или более глубоких уровней виртуализации, но авторы практически никогда не акцентируют на этом свое внимание.

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

Рассмотрим следующую сеть, которая придумана исключительно ради примера, и сама по себе особой практической ценности в себе не несет (каждый может выбрать для себя любой другой пример, в том числе из реальной практики). Имеются две компании, у каждой есть головной офис с сервером в одной географической точке, и филиал с рабочей станцией в другой географической точке. Географические точки разделяет некоторый MPLS-backbone на базе маршрутизаторов Cisco. Для каждой компании в отдельности организован Layer 2 VPN между головным офисом и филиалом посредством технологии Ethernet over MPLS (EoMPLS) для возможности «прозрачного» взаимодействия на канальном уровне (Ethernet) между рабочей станцией и сервером через MPLS-backbone.
Ниже показана физическая структура рассматриваемой сети.

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

Задача заключается в том, что требуется эту сеть смоделировать и протестировать, в частности взаимодействие рабочих станций c серверами через EoMPLS среду, и все это необходимо выполнить, располагая одним единственным персональным компьютером. Достаточно знакомая ситуация для большинства специалистов по системным и сетевым технологиям, перед которыми возникает аналогичная задача и у которых, как правило, нет под рукой ни лишних компьютеров, ни, тем более уж, маршрутизаторов Cisco.

Что же, реальные компьютеры легко заменяются виртуальными машинами, создаваемых и запускаемых при помощи того или иного программного обеспечения, реализующих технологию виртуальных машин, например, того же VMware Workstation 6.0 (в этой статье автор рассматривает многоуровневую виртуализацию на примере именно данного программного обеспечения). Для моделирования маршрутизаторов Cisco c поддержкой EoMPLS хорошо подходит популярный симулятор Dynamips (а также удобная и наглядная графическая среда к нему – GNS3). Однако, возникает проблема: можно отдельно смоделировать виртуальные машины с установленными на них «реальными» полнофункциональными ОС MS Windows, и отдельно – маршрутизаторы Cisco c «реальными» полнофункциональными ОС Cisco IOS, но как увязать между собой две среды моделирования по сети?

Тем не менее, выход из ситуации есть. В VMware Workstation можно привязывать виртуальные коммутаторы VMnet к сетевым адаптерам физического компьютера (утилитой Virtual Network Editor), а виртуальные сетевые адаптеры виртуальных машин, соответственно, привязывать к соответствующим виртуальным коммутаторам VMnet (при конфигурировании виртуальной машины). Ниже показан пример такой привязки посредством виртуального коммутатора VMnet0:

В свою очередь, в среде GNS3 на базе Dynamips имеется объект типа «Cloud», который можно также проецировать на сетевые адаптеры физического компьютера. После этого объект можно подсоединять к сетевым интерфейсам других объектов среды GNS3, в том числе к интерфейсам маршрутизаторов Cisco. Следует особо отметить, что объект типа «Cloud» по сути своей не является каким-либо полноценным виртуальным устройством – это все лишь виртуальная «точка стыка» (как разъем на коммутационной панели), которую с сетевой точки зрения можно на что-нибудь спроецировать, например, на сетевой адаптер компьютера. Забегая вперед, также отметим, что объекты «Computer» и «Server», используемые в среде GNS3 также являются объектами типа «Cloud» (простыми «точками стыка» с соответствующими иконками для наглядности), а вовсе не какими-то эмуляциями компьютера или сервера программными средствами, как это, например, делается в учебном симуляторе Cisco Packet Tracer.

Ниже показан пример проецирования объекта типа «Cloud» C0, соединенного с сетевым интерфейсом маршрутизатора R0 в среде GNS3, на сетевой адаптер физического компьютера:

Неопытных специалистов может смутить длинный код (идентификатор сетевого транспорта, назначаемый ОС MS Windows для сетевого адаптера) в настройках, и чтобы не запутаться в названиях сетевого подключения, названиях сетевого адаптера, MAC-адресе адаптера и его идентификаторе, можно воспользоваться встроенной в ОС MS Windows утилитой GETMAC, запускаемой с ключом V (Verbose – подробная информация):

Таким образом, через подобное «двустороннее проецирование» на канальном уровне OSI (по сути Layer 2 Bridging) на один и тот же сетевой адаптер физического компьютера виртуальные маршрутизаторы в среде GNS3 на базе Dynamips могут на Ethernet-уровне взаимодействовать с виртуальными машинами в среде VMware Workstation (это многократно проверено экспериментально). Напрямую увязать по сети коммутаторы VMnet из VMware-среды с объектами типа «Cloud» (точками стыка) из GNS3 на базе Dynamips, увы, нет возможности (по крайней мере, без применения каких-либо специальных программных средств).

Теперь возникает новая загвоздка: количество сетевых «точек соприкосновения» между VMware-средой и Dynamips-средой может быть далеко не одно, а несколько (в рассматриваемом примере их 4 – две рабочие станции и два сервера), в то время как на физическом компьютере может быть один-два или вообще ни одного сетевого адаптера. К тому же, привязанность к сетевым адаптерам физического компьютера в любом случае мысль не самая разумная с точки зрения безопасности. Наконец, мы и не особо стремимся все разместить на первом уровне виртуализации, цель данной статьи – многоуровневая виртуализация.

В этой ситуации мы прибегнем к следующей нехитрой уловке: никто нам не мешает создать еще одну вспомогательную виртуальную машину с необходимым количеством сетевых адаптеров (столько, сколько нужно точек «соприкосновения»), установить на нее ОС, и самое главное – программное обеспечение GNS3 на базе Dynamips. Потом уже в GNS3 создать, настроить и запустить требуемую для моделирования сеть на базе маршрутизаторов Cisco. Таким образом, маршрутизаторы Cisco «переезжают» на второй уровень виртуализации (на первом находится сама вспомогательная виртуальная машина). Сетевые «точки соприкосновения» будут осуществляться через соответствующие объекты типа «Cloud» (точки стыка) в GNS3 на базе Dynamips, привязанные к соответствующим сетевым адаптерам виртуальной машины CISCONET, которые, в свою очередь, привязаны к соответствующим виртуальным коммутаторам VMnet, к которым мы можем подсоединять другие виртуальные машины. В нашем примере мы будем использовать вспомогательную виртуальную машину CISCONET с 4-мя сетевыми адаптерами (VMware Workstation 6.0 поддерживает до 10 сетевых адаптеров для виртуальной машины), привязанных к соответствующим виртуальным коммутаторам VMnet.

Таким образом, мы и приходим к двум уровням виртуализации: VMware-инфраструктура внутри физического компьютера (1-й уровень виртуализации), и Dynamips-инфраструктура внутри вспомогательной виртуальной машины (2-й уровень виртуализации).

Наконец, если вспомнить, что EoMPLS – это тоже своего рода виртуализация средствами Cisco IOS, то увидим, что в рассматриваемом примере имеется еще и 3-й уровень виртуализации. На 3-м уровне виртуализации находятся виртуальное «облако» MPLS и виртуальные цепочки передачи данных (virtual circuits) поверх этого облака, которые эмулируются средствами Cisco IOS на двух маршрутизаторах Cisco.

В итоге мы получаем следующую многоуровневую схему виртуализации:

Как видно из схемы выше, компьютер экспериментатора находится на уровне реальных объектов и с сетевой точки зрения полностью изолирован от виртуальных машин и виртуальных маршрутизаторов, что вполне разумно и правильно. Первый уровень виртуализации обеспечивается программным обеспечением VMware Workstation, на этом уровне находятся виртуальные рабочие станции (WINPC1, WINPC2), виртуальные серверы (WINSRV1, WINSRV2), и вспомогательная виртуальная машина CISCONET, а также виртуальные коммутаторы VMnet3-VMnet6. Второй уровень виртуализации обеспечивается программным средством GNS3 на базе Dynamips, работающим на виртуальной машине CISCONET, на этом уровне находятся виртуальные маршрутизаторы Cisco (R1, R2), а также виртуальные коммутаторы SW1-SW4, подсоединенные к соответствующим сетевым интерфейсам маршрутизаторов (R1, R2). Сетевое взаимодействие между первым и вторым уровнем виртуализации осуществляется за счет «двустороннего проецирования» на канальном уровне OSI: виртуальные коммутаторы VMnet3-VMnet6 привязаны к соответствующим сетевым адаптерам LAN1-LAN4 вспомогательной виртуальной машины CISCONET, а соответствующие порты виртуальных коммутаторов SW1-SW4 посредством соответствующих объектов типа «Cloud» (на схеме они не показаны, поскольку по сути своей они являются простыми «точками стыка» и не более того), также привязаны к соответствующим сетевым адаптерам LAN1-LAN4 вспомогательной виртуальной машины CISCONET. Наконец, третий уровень виртуализации обеспечивается средствами ОС Cisco IOS, работающими на виртуальных маршрутизаторах, на этом уровне находятся виртуальное MPLS-облако и виртуальные цепочки (VC 111, VC 222) по технологии EoMPLS. Виртуальные цепочки EoMPLS средствами самой ОС Cisco OS проецируются на соответствующие интерфейсы виртуальных маршрутизаторов (R1, R2) и тем самым обеспечивается сетевое взаимодействие между вторым и третьим уровнем виртуализации.

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

В виртуальной машине CISCONET четыре сетевых адаптера: LAN1, LAN2, LAN3 и LAN4, которые привязаны к соответствующим виртуальным коммутаторам VMnet3, VMnet4, VMnet5 и VMnet6. В свою очередь, сетевой адаптер виртуальной машины WINPC1 привязан к виртуальному коммутатору VMnet3, сетевой адаптер WINPC2 – к VMnet4, сетевой адаптер WINSRV1 – к VMnet5 и сетевой адаптер WINSRV2 – к VMnet6. Так реализуется одна сторона точек «соприкосновения»: виртуальные машины WINPC1, WINPC2, WINSRV1 и WINSRV2 могут взаимодействовать с виртуальной машиной CISCONET через соответствующие сетевые адаптеры этой машины. Очень важно отметить, что какая-либо коммутация или маршрутизация между сетевыми адаптерами виртуальной машины CISCONET средствами самой ОС MS Windows на этой машине по определению должна быть запрещена. В свою очередь, на машине CISCONET запущена среда GNS на базе Dynamips, в которой работают два виртуальных маршрутизатора Cisco. Соответствующие интерфейсы маршрутизаторов подсоединены к соответствующим виртуальным коммутаторам SW1, SW2, SW3 и SW4 (не путать их с виртуальными коммутаторами VMnet), а коммутаторы, в свою очередь, подключены к соответствующим объектам PC1, PC2, SRV1 и SRV2 (не путать их с виртуальными машинами VMware c аналогичными названиями). PC1, PC2, SRV1 и SRV2 по сути являются объектами типа «Cloud» – простыми «точками стыка», спроецированными на соответствующие сетевые адаптеры LAN1, LAN2, LAN3 и LAN4 виртуальной машины CISCONET. Таким образом, реализуется вторая сторона точек «соприкосновения»: соответствующие интерфейсы маршрутизаторов также могут взаимодействовать с виртуальной машиной CISCONET через соответствующие сетевые адаптеры этой машины.

Ниже частично показано, как реализуются необходимые привязки между виртуальными коммутаторами VMnet и сетевыми адаптерами виртуальной машины CISCONET, а также между объектами PC1, PC2, SRV1 и SRV2 (точками стыка) и сетевыми адаптерами виртуальной машины CISCONET. На снимке экрана видно окно с конфигурационным файлом виртуальной машины CISCONET, на котором видны MAC-адреса сетевых адаптеров и привязка к виртуальным коммутаторам VMnet. В другом окне отображена таблица сетевых подключений виртуальной машины CISCONET и соответствующие им названия сетевых адаптеров (присвоенные в ОС MS Windows этой машины), MAC-адреса адаптеров и идентификаторы сетевого транспорта. Наконец, в третьем окне отображено привязка объекта PC1 типа «Cloud» (точки стыка) к соответствующему идентификатору сетевого транспорта виртуальной машины CISCONET.

Для того чтобы не запутаться в сетевых привязках между различными объектами на различных уровнях виртуализации, сведем их в одну наглядную таблицу:

Сеть Виртуальные машины VMware Виртуальный коммутатор VMware Сетевое подключение CISCONET MAC-адрес сетевого адаптера CISCONET Идентификатор сетевого транспорта CISCONET Объект «Cloud» в GNS3 Виртуальный коммутатор в GNS3 Виртуальный маршрутизатор Cisco и сетевой интерфейс Виртуальная цепочка EoMPLS
  Уровень виртуализации 1 Уровень 2 Уровень 3
1 WINPC1 CISCONET VMnet3 LAN1 00:0c:29:25:1f:ac C0E98EFF-BFA7- 472F-A5C0-A22293E1EE26 PC1 SW1 R1: FA0/0 VC 111
2 WINPC2 CISCONET VMnet4 LAN2 00:0c:29:25:1f:b6 390F3C01-A168- 40D8-A539- 1E417F3D6E1B PC2 SW2 R1: FA0/1 VC 222
3 WINSRV1 CISCONET VMnet5 LAN3 00:0c:29:25:1f:c0 6577836B-60A3- 4891-931C- 232ED8B2F8F2 SRV1 SW3 R2: FA0/0 VC 111
4 WINSRV2 CISCONET VMnet6 LAN4 00:0c:29:25:1f:ca 7834C67F-12F2- 4559-BEF4- C170C3E0B7DC SRV2 SW4 R2: FA0/1 VC 222

Теперь перейдем к результатам тестирования. На нижеприведенном снимке экрана видно, что соответствующие рабочие станции и сервера «видят» друг друга по сети (в том числе при помощи сетевых служб, использующих широковещательные запросы) сквозь MPLS-облако, благодаря виртуальным цепочкам EoMPLS. Специалистам по сетевым технологиям также будет интересно посмотреть на таблицы MPLS-коммутации и состояние виртуальных цепочек EoMPLS на маршрутизаторах Cisco. На втором снимке экрана видно, что виртуальные цепочки (VC 111, VC 222) успешно функционируют и по ним в обе стороны передано некоторое количество байтов:

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

Связаться с автором статьи можно по адресу: PavelAR at yandex.ru

 

Поиск по сайту:
Подписаться по e-mail:
Реклама

Зал Славы Рекламодателя
Ближайшие события в области виртуализации:

10/02/2012:  Вебинар: "Выполнение требований законодательства по защите персональных данных при обработке их в виртуальной среде"
16/02/2012:  Оптимизация ИТ-инфраструктуры: инновации и тренды
21/02/2012:  Cloud Services Russia 2012 – оказание услуг на базе облачных технологий в России

Быстрый переход:
Security Code VMware Microsoft StarWind Red Hat Security vGate Citrix Cisco Offtopic Storage Veeam Cloud EMC Webinar Oracle View VKernel Events Hardware VMachines VDI Hyper-V Windows 7 NetApp Caravan Xen Hyper9 Parallels Blogs HP Sun VMC Xtravirt Novell vSphere IntelVT Сравнение VirtualIron XenServer VirtualBox CitrixXen ESXi ESX ThinApp VMFS Books Enterprise P2V Windows vCenter HA ACE Tools Performance Backup XenApp Cloud Computing Fusion Network SAN XenClient Go nworks iPad XCP Data Recovery VSA iSCSI Workstation Converter VMworld XenDesktop SRM vCloud vShield Sizing Licensing Update Reporter Бесплатно VMotion Whitepaper Snapshot VMsafe PCoIP SC VMM Server Monitor Fault Tolerance KVM Gartner vExpert vStorage Video Support Essentials Обучение Live Migration SCVMM TCO Virtual Appliance Studio Mobile AMD-V VirtualCenter ThinPrint CLI PowerCLI Upgrade Bugs SMB Snapshots VCP Logs Beta Memory vNetwork Composer esxtop PowerShell DPM Mac Heartbeat
Процент виртуальных серверов в мире:
V-index
Популярные статьи:
Как установить VMware ESXi. Инструкция по установке сервера ESXi 4 из состава vSphere.

Включение поддержки технологии Intel VT на ноутбуках Sony VAIO, Toshiba, Lenovo и других.

Как настроить запуск виртуальных машин VMware Workstation и Server при старте Windows

Как работают виртуальные сети VLAN на хостах VMware ESX / ESXi.

Что такое и как работает виртуальная машина Windows XP Mode в Windows 7.

Проектирование инфраструктуры виртуализации VMware vSphere 4.

Бесплатные утилиты для виртуальных машин на базе VMware ESX / ESXi.

Инфраструктура виртуальных десктопов VMware View 3 (VDI)

Как поднять программный iSCSI Target на Windows 2003 Server для ESX

Отличия VMware ESXi 4 free (бесплатного), ESXi 4 и ESX 4 в составе VMware vSphere.

Windows 7 в виртуальной машине VMware Workstation 6.5.2 и Virtual XP Mode.

Бесплатные программы для VMware ESX / ESXi в среде Virtual Infrastructure / vSphere (часть 2).

Как запустить VMware vSphere Client под Windows 7 для управления ESX или ESXi.

Недорогая конфигурация сервера VMware ESX/ESXi

Виртуализация на платформах VMware Server и VMware ESX Server.

Все ресурсы о виртуализации:
Интервью:

Alessandro Perilli
virtualization.info
Основатель

Ратмир Тимашев
Veeam Software
Президент


Купить:

VMware vSphere 5


Veeam Backup 5


Полезные ресурсы:


Видео компании VMware

Видео про Citrix Xen

Видео о виртуализации Microsoft

Утилиты для виртуальных машин Microsoft.

Книги на английском языке

Блоги на английском языке

Блоги на русском языке

Агрегация статей в твиттере VMC:


Copyright VM Guru 2006 - 2012, Александр Самойленко. Правила перепечатки материалов.