stringtranslate.com

виртуализация x86

Виртуализация x86 — это использование возможностей аппаратной виртуализации на процессоре x86/x86-64.

В конце 1990-х годов виртуализация x86 достигалась с помощью сложных программных методов, необходимых для компенсации отсутствия у процессора возможностей аппаратной виртуализации при достижении разумной производительности. В 2005 и 2006 годах как Intel (VT-x), так и AMD (AMD-V) представили ограниченную поддержку аппаратной виртуализации, которая позволяла использовать более простое программное обеспечение для виртуализации, но предлагала очень мало преимуществ в скорости. [1] Более широкая аппаратная поддержка, которая позволяла существенно повысить скорость, появилась с более поздними моделями процессоров.

Программная виртуализация

Дальнейшее обсуждение будет сосредоточено только на виртуализации защищенного режима архитектуры x86 .

В защищенном режиме ядро ​​операционной системы работает с более высокой привилегией, например, на кольце 0, а приложения — с более низкой привилегией, например, на кольце 3. [ требуется цитата ] В программной виртуализации хостовая ОС имеет прямой доступ к оборудованию, в то время как гостевые ОС имеют ограниченный доступ к оборудованию, как и любое другое приложение хостовой ОС. Один из подходов, используемых в программной виртуализации x86 для преодоления этого ограничения, называется лишением привилегий кольца , что подразумевает запуск гостевой ОС на кольце выше (с меньшими привилегиями), чем 0. [2]

Виртуализация защищенного режима стала возможной благодаря трем технологиям:

Эти методы влекут за собой некоторые издержки производительности из-за отсутствия поддержки виртуализации MMU по сравнению с виртуальной машиной, работающей на изначально виртуализируемой архитектуре, такой как IBM System/370 . [4] : 10  [9] : 17 и 21 

На традиционных мэйнфреймах классический гипервизор типа 1 был самостоятельным и не зависел от какой-либо операционной системы или не запускал никаких пользовательских приложений сам по себе. Напротив, первые продукты виртуализации x86 были нацелены на рабочие станции и запускали гостевую ОС внутри хостовой ОС путем встраивания гипервизора в модуль ядра, который запускался под хостовой ОС (гипервизор типа 2). [8]

Возникли некоторые разногласия относительно того, является ли архитектура x86 без аппаратной поддержки виртуализируемой, как описано Попеком и Голдбергом . Исследователи VMware указали в статье ASPLOS 2006 года , что вышеуказанные методы сделали платформу x86 виртуализируемой в смысле соответствия трем критериям Попека и Голдберга, хотя и не с помощью классической техники «ловушка и эмуляция». [4] : 2–3 

Другой путь был выбран другими системами, такими как Denali , L4 и Xen , известным как паравиртуализация , которая включает в себя портирование операционных систем для запуска на результирующей виртуальной машине, которая не реализует части фактического набора инструкций x86, которые трудно виртуализировать. Паравиртуализированный ввод-вывод имеет значительные преимущества в производительности, как показано в оригинальной статье SOSP '03 Xen. [10]

Первоначальная версия x86-64 ( AMD64 ) не допускала полностью программную виртуализацию из-за отсутствия поддержки сегментации в длинном режиме , что делало невозможной защиту памяти гипервизора, в частности, защиту обработчика прерываний, который работает в адресном пространстве гостевого ядра. [11] [12] : 11 и 20  Ревизия D и более поздние 64-битные процессоры AMD (как правило, те, которые производятся по 90 нм или меньше) добавили базовую поддержку сегментации в длинном режиме, что сделало возможным запуск 64-битных гостевых систем на 64-битных хостах с помощью двоичной трансляции. Intel не добавила поддержку сегментации в свою реализацию x86-64 ( Intel 64 ), что сделало невозможной 64-битную программную виртуализацию на процессорах Intel, но поддержка Intel VT-x делает возможной 64-битную аппаратную виртуализацию на платформе Intel. [13] [14] : 4 

На некоторых платформах возможен запуск 64-разрядной гостевой ОС на 32-разрядной хостовой ОС, если базовый процессор является 64-разрядным и поддерживает необходимые расширения виртуализации.

Аппаратная виртуализация

В 2005 и 2006 годах Intel и AMD (работая независимо) создали новые процессорные расширения для архитектуры x86. Первое поколение аппаратной виртуализации x86 решало проблему привилегированных инструкций. Проблема низкой производительности виртуализированной системной памяти была решена с помощью виртуализации MMU , которая была добавлена ​​в чипсет позже.

Центральный процессор

Виртуальный режим 8086

Поскольку Intel 80286 не мог сам по себе хорошо запускать параллельные приложения DOS в защищенном режиме, Intel представила виртуальный режим 8086 в своем чипе 80386 , который предлагал виртуализированные процессоры 8086 на чипах 386 и более поздних. Однако аппаратная поддержка виртуализации самого защищенного режима стала доступна 20 лет спустя. [15]

Виртуализация AMD (AMD-V)

AMD Phenom кристалл

Компания AMD разработала свои расширения виртуализации первого поколения под кодовым названием «Pacifica» и первоначально опубликовала их как AMD Secure Virtual Machine (SVM) [16] , но позже стала продавать их под торговой маркой AMD Virtualization , сокращенно AMD-V .

23 мая 2006 года компания AMD выпустила Athlon 64 ( «Orleans» ), Athlon 64 X2 ( «Windsor» ) и Athlon 64 FX ( «Windsor» ) в качестве первых процессоров AMD с поддержкой этой технологии.

Поддержка AMD-V также реализована в процессорах семейства Athlon 64 и Athlon 64 X2 с ревизиями "F" или "G" на сокетах AM2 , Turion 64 X2 и Opteron 2-го поколения [17] и 3-го поколения [18] , Phenom и Phenom II . Процессоры APU Fusion поддерживают AMD-V. AMD-V не поддерживается ни одним процессором Socket 939. Единственными процессорами Sempron , которые его поддерживают, являются APU и настольные процессоры Huron , Regor , Sargas .

Процессоры AMD Opteron, начиная с линейки Family 0x10 Barcelona, ​​и процессоры Phenom II поддерживают технологию аппаратной виртуализации второго поколения под названием Rapid Virtualization Indexing (ранее известную как Nested Page Tables во время ее разработки), позднее принятую Intel как Extended Page Tables (EPT).

По состоянию на 2019 год все процессоры AMD на базе Zen поддерживают AMD-V.

Флаг ЦП для AMD-V — «svm». Это можно проверить в производных BSD через dmesg или sysctl , а в Linux — через . [19] Инструкции в AMD-V включают VMRUN, VMLOAD, VMSAVE, CLGI, VMMCALL, INVLPGA, SKINIT и STGI./proc/cpuinfo

На некоторых материнских платах пользователи должны включить функцию AMD SVM в настройках BIOS , прежде чем приложения смогут ее использовать. [20]

Виртуализация Intel (VT-x)

Процессор Intel Core i7 (Bloomfield)

Ранее известный под кодовым названием «Vanderpool», VT-x представляет технологию Intel для виртуализации на платформе x86. 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модель 662 и 672) в качестве первых процессоров Intel с поддержкой VT-x. Флаг ЦП для возможности VT-x — «vmx»; в Linux это можно проверить через /proc/cpuinfo, а в macOS — через sysctl machdep.cpu.features. [19]

«VMX» означает Virtual Machine Extensions (расширения виртуальной машины), что добавляет 13 новых инструкций: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON, INVEPT, INVVPID и VMFUNC. [21] Эти инструкции позволяют входить и выходить из режима виртуального выполнения, в котором гостевая ОС воспринимает себя работающей с полными привилегиями (кольцо 0), но хостовая ОС остается защищенной.

По состоянию на 2015 год почти все новые серверные, настольные и мобильные процессоры Intel поддерживают VT-x, за исключением некоторых процессоров Intel Atom . [22] На некоторых материнских платах пользователи должны включить функцию VT-x от Intel в настройках BIOS , прежде чем приложения смогут ее использовать. [23]

Intel начала включать Extended Page Tables (EPT), [24] технологию виртуализации таблиц страниц, [25] начиная с архитектуры Nehalem , [26] [27] выпущенной в 2008 году. В 2010 году Westmere добавила поддержку запуска логического процессора непосредственно в реальном режиме  — функцию, называемую «неограниченный гость», которая требует EPT для работы. [28] [29]

Начиная с микроархитектуры Haswell (анонсированной в 2013 году), Intel начала включать теневое копирование VMCS в качестве технологии, которая ускоряет вложенную виртуализацию VMM. [30] Структура управления виртуальной машиной (VMCS) представляет собой структуру данных в памяти, которая существует ровно один раз для каждой виртуальной машины, при этом она управляется VMM. При каждом изменении контекста выполнения между различными виртуальными машинами VMCS восстанавливается для текущей виртуальной машины, определяя состояние виртуального процессора виртуальной машины. [31] Как только используется более одной VMM или вложенных VMM, возникает проблема, похожая на ту, которая потребовала изобретения управления таблицами теневых страниц, как описано выше. В таких случаях VMCS необходимо теневое копирование несколько раз (в случае вложенности) и частичное программное обеспечение в случае отсутствия аппаратной поддержки процессора. Чтобы сделать обработку теневых VMCS более эффективной, Intel реализовала аппаратную поддержку теневого копирования VMCS. [32]

Виртуализация VIA (VIA VT)

Процессоры VIA Nano серии 3000 и выше поддерживают технологию виртуализации VIA VT, совместимую с Intel VT-x. [33] EPT присутствует в Zhaoxin ZX-C, потомке VIA QuadCore-E и Eden X4, похожем на Nano C4350AL . [34]

Виртуализация прерываний (AMD AVIC и Intel APICv)

В 2012 году AMD анонсировала свой усовершенствованный виртуальный контроллер прерываний ( AVIC ), нацеленный на сокращение накладных расходов на прерывания в средах виртуализации. [35] Эта технология, как было объявлено, не поддерживает x2APIC . [36] В 2016 году AVIC доступен в процессорах семейства AMD 15h моделей 6Xh (Carrizo) и более новых. [37]

Также в 2012 году Intel анонсировала похожую технологию для прерываний и виртуализации APIC , которая не имела торговой марки на момент анонса. [38] Позже она была названа виртуализацией APIC ( APICv ) [39] и стала коммерчески доступной в серии процессоров Intel Ivy Bridge EP , которая продается как Xeon E5-26xx v2 (выпущен в конце 2013 года) и как Xeon E5-46xx v2 (выпущен в начале 2014 года). [40]

Графический процессор

Виртуализация графики не является частью архитектуры x86. Технология виртуализации графики Intel (GVT) обеспечивает виртуализацию графики как часть более поздних графических архитектур Gen. Хотя APU AMD реализуют набор инструкций x86-64 , они реализуют собственные графические архитектуры AMD ( TeraScale , GCN и RDNA ), которые не поддерживают виртуализацию графики. [ требуется цитата ] Larrabee была единственной графической микроархитектурой на основе x86, но она, вероятно, не включала поддержку виртуализации графики.

Чипсет

Виртуализация памяти и ввода-вывода выполняется чипсетом . [ 41] Обычно эти функции должны быть включены BIOS, который должен иметь возможность их поддерживать, а также быть настроенным на их использование.

Виртуализация MMU ввода-вывода (AMD-Vi и Intel VT-d)

Журнал ядра Linux , отображающий информацию AMD-Vi

Блок управления памятью ввода-вывода (IOMMU) позволяет гостевым виртуальным машинам напрямую использовать периферийные устройства, такие как Ethernet, ускоренные графические карты и контроллеры жестких дисков, через DMA и перераспределение прерываний . Иногда это называется PCI passthrough . [42]

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

AMD и Intel опубликовали свои спецификации IOMMU:

В дополнение к поддержке ЦП, как чипсет материнской платы , так и системная прошивка ( BIOS или UEFI ) должны полностью поддерживать функциональность виртуализации ввода-вывода IOMMU, чтобы ее можно было использовать. Только устройства PCI или PCI Express, поддерживающие сброс уровня функции (FLR), могут быть виртуализированы таким образом, поскольку это требуется для переназначения различных функций устройства между виртуальными машинами. [46] [47] Если назначаемое устройство не поддерживает прерывания, сигнализируемые сообщениями (MSI), оно не должно совместно использовать линии прерываний с другими устройствами, чтобы назначение было возможным. [48] Все обычные устройства PCI , маршрутизируемые за мостом PCI/ PCI-X -PCI Express, могут быть назначены гостевой виртуальной машине только все одновременно; устройства PCI Express не имеют таких ограничений.

Виртуализация сети (VT-c)

Виртуализация ввода-вывода с одним корнем PCI-SIG (SR-IOV)

Виртуализация ввода-вывода с одним корнем PCI-SIG (SR-IOV) предоставляет набор общих (неспецифичных для x86) методов виртуализации ввода-вывода на основе собственного оборудования PCI Express (PCIe), как стандартизировано PCI-SIG: [50]

В SR-IOV, наиболее распространенном из них, хост VMM настраивает поддерживаемые устройства для создания и выделения виртуальных «теней» их конфигурационных пространств, чтобы гости виртуальных машин могли напрямую настраивать и получать доступ к таким «теневым» ресурсам устройств. [52] При включении SR-IOV виртуализированные сетевые интерфейсы напрямую доступны гостям, [53] избегая участия VMM и обеспечивая высокую общую производительность; [51] например, SR-IOV достигает более 95% пропускной способности сети bare metal в виртуализированном центре обработки данных NASA [54] и в Amazon Public Cloud . [55] [56]

Смотрите также

Ссылки

  1. ^ Сравнение программных и аппаратных методов виртуализации x86, Кит Адамс и Оле Агесен, VMware, ASPLOS'06 21–25 октября 2006 г., Сан-Хосе, Калифорния, США Архивировано 20 августа 2010 г. на Wayback Machine «Удивительно, но мы обнаружили, что аппаратная поддержка первого поколения редко обеспечивает преимущества в производительности по сравнению с существующими программными методами. Мы приписываем эту ситуацию высоким затратам на переход VMM/гостевой ОС и жесткой модели программирования, которая оставляет мало места для гибкости программного обеспечения в управлении частотой или стоимостью этих переходов.
  2. ^ "Технология виртуализации Intel, расширения виртуализации процессоров и технология доверенного выполнения Intel" (PDF) . Intel.com. 2007. Архивировано (PDF) из оригинала 2015-05-21 . Получено 2016-12-12 .
  3. ^ "Техническая программа USENIX - Реферат - Симпозиум по безопасности - 2000". Usenix.org. 2002-01-29. Архивировано из оригинала 2010-06-10 . Получено 2010-05-02 .
  4. ^ abcde "Сравнение программных и аппаратных методов виртуализации x86" (PDF) . VMware. Архивировано (PDF) из оригинала 20 августа 2010 г. . Получено 8 сентября 2010 г. .
  5. ^ ab патент США 6,397,242
  6. ^ Патент США 6,704,925
  7. ^ "Виртуализация: архитектурные соображения и другие критерии оценки" (PDF) . VMware. Архивировано (PDF) из оригинала 6 февраля 2011 г. Получено 8 сентября 2010 г.
  8. ^ ab патент США 6,496,847
  9. ^ "VMware and Hardware Assist Technology" (PDF) . Архивировано (PDF) из оригинала 2011-07-17 . Получено 2010-09-08 .
  10. ^ "Xen и искусство виртуализации" (PDF) . Архивировано (PDF) из оригинала 29-09-2014.
  11. ^ "Как отказ от сегментации в длинном режиме AMD64 сломал VMware". Pagetable.com. 2006-11-09. Архивировано из оригинала 2011-07-18 . Получено 2010-05-02 .
  12. ^ "VMware и технология виртуализации ЦП" (PDF) . VMware. Архивировано (PDF) из оригинала 2011-07-17 . Получено 2010-09-08 .
  13. ^ "VMware KB: Требования к оборудованию и прошивке для 64-битных гостевых операционных систем". Kb.vmware.com. Архивировано из оригинала 2010-04-19 . Получено 2010-05-02 .
  14. ^ "Программные и аппаратные методы виртуализации x86" (PDF) . Архивировано из оригинала (PDF) 2010-01-05 . Получено 2010-05-02 .
  15. ^ Ягер, Том (2004-11-05). «Отправка программного обеспечения для выполнения работы оборудования | Оборудование - InfoWorld». Images.infoworld.com. Архивировано из оригинала 2014-10-18 . Получено 2014-01-08 .
  16. ^ "33047_SecureVirtualMachineManual_3-0.book" (PDF) . Архивировано (PDF) из оригинала 2012-03-05 . Получено 2010-05-02 .
  17. ^ "В чем основные различия между процессорами AMD Opteron второго поколения и процессорами AMD Opteron первого поколения?". amd.com . Архивировано из оригинала 15 апреля 2009 г. Получено 2012-02-04 .
  18. ^ "Какие усовершенствования виртуализации реализованы в четырехъядерных процессорах AMD Opteron?". amd.com . Архивировано из оригинала 16 апреля 2009 г. Получено 04.02.2012 .
  19. ^ ab Чтобы узнать, поддерживает ли ваш процессор аппаратную виртуализацию Архивировано 25.11.2012 на Wayback Machine Intel 2012.
  20. ^ "Как включить Intel VTx и AMD SVM?". Поддержка . QNAP Systems, Inc. Архивировано из оригинала 2018-03-07 . Получено 2020-12-23 .
  21. ^ INTEL (октябрь 2019 г.). «Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32». intel.com . Корпорация Intel . Получено 04.01.2020 .
  22. ^ "Список технологий виртуализации Intel". Ark.intel.com. Архивировано из оригинала 2010-10-27 . Получено 2010-05-02 .
  23. ^ "Windows Virtual PC: Configure BIOS". Microsoft. Архивировано из оригинала 2010-09-06 . Получено 2010-09-08 .
  24. ^ Neiger, Gil; A. Santoni; F. Leung; D. Rodgers; R. Uhlig (2006). "Технология виртуализации Intel: аппаратная поддержка эффективной виртуализации процессоров" (PDF) . Intel Technology Journal . 10 (3). Intel: 167–178. doi :10.1535/itj.1003.01. Архивировано из оригинала (PDF) 25-09-2012 . Получено 06-07-2008 .
  25. ^ Gillespie, Matt (2007-11-12). "Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d". Intel Software Network . Intel. Архивировано из оригинала 2008-12-26 . Получено 2008-07-06 .
  26. ^ "First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem)" (PDF) (Пресс-релиз). Intel. Архивировано (PDF) из оригинала 2009-01-26 . Получено 2008-07-06 .
  27. ^ "Краткий обзор технологий: технология виртуализации микроархитектуры Intel Nehalem" (PDF) . Intel. 2009-03-25. Архивировано (PDF) из оригинала 2011-06-07 . Получено 2009-11-03 .
  28. ^ [1] «Intel добавила неограниченный гостевой режим на микроархитектуре Westmere и более поздних процессорах Intel, он использует EPT для преобразования доступа к физическому адресу гостя в физический адрес хоста. В этом режиме разрешен VMEnter без включения подкачки».
  29. ^ [2] «Если контроль выполнения виртуальной машины «неограниченный гость» равен 1, контроль выполнения виртуальной машины «включить EPT» также должен быть равен 1»
  30. ^ "Процессоры Intel Core vPro 4-го поколения с Intel VMCS Shadowing" (PDF) . Intel . 2013 . Получено 16.12.2014 .
  31. ^ Понимание технологии виртуализации Intel (VT). Архивировано 8 сентября 2014 г. на Wayback Machine Получено 01.09.2014
  32. ^ Что, где и почему происходит слежение за VMCS. Архивировано 03.09.2014 на Wayback Machine Получено 01.09.2014
  33. VIA представляет новые процессоры серии VIA Nano 3000. Архивировано 22 января 2013 г. на Wayback Machine.
  34. ^ «Решение для ноутбука: процессор Kaixian ZX-C + чипсет VX11PH» (PDF) .
  35. ^ Вэй Хуан, Введение в AMD Advanced Virtual Interrupt Controller Архивировано 14 июля 2014 г. на Wayback Machine , XenSummit 2012
  36. ^ Йорг Рёдель (август 2012 г.). "Виртуализация прерываний следующего поколения для KVM" (PDF) . AMD. Архивировано (PDF) из оригинала 2016-03-04 . Получено 2014-07-12 .
  37. ^ "[Xen-devel] [RFC PATCH 0/9] Представляем AMD SVM AVIC". www.mail-archive.com . Архивировано из оригинала 2 февраля 2017 г. Получено 4 мая 2018 г.
  38. ^ Джун Накадзимаа (2012-12-13). "Обзор неиспользуемых и новых функций виртуализации прерываний/APIC" (PDF) . Intel. Архивировано (PDF) из оригинала 2015-04-21 . Получено 2014-07-12 .
  39. ^ Ханг Нгуен (2013-12-17). "Тестирование производительности виртуализации APIC и Iozone". software.intel.com . Архивировано из оригинала 2014-07-14 . Получено 2014-07-12 .
  40. ^ "Краткое описание продукта Intel Xeon Processor E5-4600 v2 Product Family" (PDF) . Intel. 2014-03-14. Архивировано (PDF) из оригинала 2014-07-14 . Получено 2014-07-12 .
  41. ^ "Поддержка аппаратного обеспечения платформы Intel для виртуализации ввода-вывода". Intel.com. 2006-08-10. Архивировано из оригинала 2007-01-20 . Получено 2012-02-04 .
  42. ^ "Виртуализация Linux и PCI passthrough". IBM. Архивировано из оригинала 1 ноября 2009 года . Получено 10 ноября 2010 года .
  43. ^ "AMD I/O Virtualization Technology (IOMMU) Specification Revision 1.26" (PDF) . Архивировано (PDF) из оригинала 2011-01-24 . Получено 2011-05-24 .
  44. ^ "Спецификация архитектуры Intel Virtualization Technology for Directed I/O (VT-d)". Архивировано из оригинала 2013-04-03 . Получено 2012-02-04 .
  45. ^ "Список поддерживаемых ЦП для технологии виртуализации Intel для направленного ввода-вывода (VT-d)". Ark.intel.com. Архивировано из оригинала 2010-10-27 . Получено 2012-02-04 .
  46. ^ "Уведомление об изменении в проектировании PCI-SIG: сброс уровня функций (FLR)" (PDF) . pcisig.com . 2006-06-27. Архивировано (PDF) из оригинала 2016-03-04 . Получено 2014-01-10 .
  47. ^ "Xen VT-d". xen.org . 2013-06-06. Архивировано из оригинала 2014-02-09 . Получено 2014-01-10 .
  48. ^ "Как назначать устройства с помощью VT-d в KVM". linux-kvm.org . 2014-04-23. Архивировано из оригинала 2015-03-10 . Получено 2015-03-05 .
  49. ^ "Технология виртуализации Intel для подключения (VT-c)" (PDF) . Intel.com. Архивировано (PDF) из оригинала 2016-02-22 . Получено 2018-02-14 .
  50. ^ "Спецификации PCI-SIG I/O Virtualization (IOV)". Pcisig.com. 2011-03-31. Архивировано из оригинала 2012-01-15 . Получено 2012-02-04 .
  51. ^ ab "Intel Look Inside: Intel Ethernet" (PDF) . Intel . 27 ноября 2014 г. стр. 104. Архивировано из оригинала (PDF) 4 марта 2016 г. Получено 26 марта 2015 г.
  52. ^ Яозу Донг; Чжао Юй; Грег Роуз (2008). "Сети SR-IOV в Xen: архитектура, проектирование и реализация". usenix.org . USENIX . Архивировано из оригинала 2014-01-09 . Получено 2014-01-10 .
  53. ^ Патрик Кутч; Брайан Джонсон; Грег Роуз (сентябрь 2011 г.). «Введение в гибкое разбиение портов Intel с использованием технологии SR-IOV» (PDF) . Intel . Архивировано из оригинала (PDF) 7 августа 2015 г. . Получено 24 сентября 2015 г. .
  54. ^ "NASA's Flexible Cloud Fabric: Moving Cluster Applications to the Cloud" (PDF) . Intel . Архивировано из оригинала (PDF) 2012-12-22 . Получено 2014-01-08 .
  55. ^ "Расширенные сетевые возможности в облаке AWS". Scalable Logic. 2013-12-31. Архивировано из оригинала 2014-01-09 . Получено 2014-01-08 .
  56. ^ "Расширенные сетевые возможности в облаке AWS - Часть 2". Scalable Logic. 2013-12-31. Архивировано из оригинала 2014-01-10 . Получено 2014-01-08 .

Внешние ссылки