2017-01-27 20 views
0

Я с интересом изучил расширения аппаратной виртуализации, добавленные Intel и AMD, в архитектуру x86 (известные как VMX и SVM, соответственно). Хотя это по-прежнему относительно недавнее дополнение к процессору x86, я понимаю, что архитектура мэйнфрейма широко использовала виртуализацию с 70-х по 80-е годы, например, в виде почтенной операционной системы z/VM. Использовалась даже вложенная виртуализация.Архитектура виртуализации на мэйнфрейме (z/Architecture)

Мой вопрос: существует ли публичная документация на аппаратные средства, предоставляемые z/Architecture, используемые операционной системой z/VM для реализации этой виртуализации? То есть управляющие регистры и структуры данных, которые аппаратное обеспечение реализует, позволяет гипервизору имитировать состояние гостя и ловить необходимые инструкции? Еще одна вещь, о которой мне интересно, - это то, что z/Architecture поддерживает перевод адресов второго уровня (который был добавлен позже в VMX и SVM).

+0

Я помню, что посещал курс «Linux под VM», и им было сказано, что на одном этапе во время установки, гостевая ОС будет очень медленной. Это было связано с тем, что на мэйнфрейме выполнялась виртуальная машина, и каждый из них создал свои собственные виртуальные машины, в которых мы тогда запускали виртуальную машину (до сих пор ОК). В рамках этой виртуальной машины мы создали гостя Linux, и это стало бы медленным, потому что не было аппаратной поддержки для запуска гостевой ОС (linux) под гостевой ОС под гостевой ОС, а последний уровень эмуляции был в программном обеспечении. Как только мы загрузили нашу виртуальную машину Linux под собственной виртуальной машиной, все было в порядке. –

+0

Если я правильно помню, оригинальная VM позже была реализована в прошивке как PR/SM (Prism) и является стандартным гипервизором мейнфрейма z-серии для LPAR (логические параметры - или VM). –

+0

Возвращаясь к моему первому комментарию, мы могли бы запустить Linux под VM под VM под PR/SM, когда он стал медленным. Linux под VM под PR/SM был в порядке с полной аппаратной эмуляцией. –

ответ

3

Просто, чтобы избавиться от него, система/370 и все его потомки поддерживают виртуализацию как есть (они удовлетворяют virtualization requirements). В этом смысле никакой специальной аппаратной поддержки никогда не требовалось, в отличие от архитектуры Intel.

Улучшения производительности для гостей VM в системе/370, XA, ESA и т. Д. На всем пути через z/Architecture традиционно реализованы с помощью команды DIAG (диагностика), а также микрокода (теперь милликод). В современных условиях это скорее паравиртуализация. Объекты документированы, вы можете начать, например, here.

Обновление - после прочтения обширных комментариев, нескольких заметок и пояснений.

  1. S/370 и его потомки никогда не требуется поддержка виртуализации специализированного аппаратного обеспечения для корректной работы гостевых операционных систем - не потому, что виртуализация была частью первоначального дизайна и требований - это не было, а потому, что архитектура была правильно предназначенный для поддержки безопасной многопользовательской среды. Требования к виртуализации Попека и Голдберга на самом деле очень слабы - по сути, только привилегированные инструкции могут влиять на конфигурацию системы. Это требование было частью даже предшественника S/370, System/360, задолго до появления первых виртуализированных систем.

  2. Эксплуатационные характеристики гостей ВМ продолжались вдоль двух линий.

    • Во-первых, паравиртуализационный подход - по существу, разрабатываемый хорошо продуманный API для общения с гостевым гипервизором. Он используется не только для производительности, но и для широкого спектра других сервисов, таких как взаимодействие между VM. API задокументирован в упомянутом выше руководстве.

    • Во-вторых, расширения микрокода (поддержка микрокода VM), которые выполняют некоторую чувствительную к производительности чувствительную гипервизорную логику на уровне микрокода, в основном на аппаратном уровне. Это не паравиртуализация, это поддержка аппаратной виртуализации. Но на ранних 370 машинах эта поддержка не была архивирована, то есть она зависела от модели и могла быть изменена. С 370/XA IBM представила правильный архитектурный способ поддержки высокопроизводительной виртуализации, инструкции «Начать интерпретацию»(). Эта инструкция не документирована в Принципах работы, а в отдельной публикации, IBM System/370 XA Interpretive Execution. (Этот документ ссылается несколько раз в «Принципы работы». Ссылка относится к первой версии документа, вы можете загрузить версию 2 here. Я не уверен, что эта публикация постоянно обновлялась - возможно, это последняя версия.) Дополнительно , Подсистема ввода-вывода предоставила VM-помощь.

я не упомянул инструкции и руководство, документированное это в моем оригинальном ответе, который является важной частью истории. Я благодарен автору вопроса и обширным комментариям, которые заставили меня проверить мою память и выяснить, что я пропустил важный технический уровень. This presentation обеспечивает отличный обзор основных возможностей z/VM, который охватывает дополнительные аспекты, включая управление памятью, ввод-вывод, сетевое взаимодействие и т. Д.

+0

Юрий, спасибо, хотя я не уверен, почему вы пишете «в этом смысле, никакой специальной аппаратной поддержки никогда не требовалось, в отличие от архитектуры Intel». Я предполагаю, что другим способом было бы сказать, что для архитектуры сначала была аппаратная поддержка. Проблема Intel заключалась в том, что они не заполняли требования к виртуализации для начала, а затем должны были их модифицировать. Но мне интересно, почему «ретрофрит» Intel «кажется более сложным и« явным »для виртуализации, чем IBM. Я думаю, Intel могла бы модернизировать виртуализацию ... – Morty

+0

... проще просто добавив несколько бит регистра управления, которые заставили бы ЦП захватить несколько чувствительных инструкций, которые не были распределены, чтобы требования виртуализации были выполнены и ловушка-эмулировать будет вариант. Для описания этого было бы всего несколько бит регистра управления и несколько страниц документации. Вместо этого у нас есть очень сложное дополнение со специальными структурами для состояний и всех видов элементов управления. Я думаю, что они были добавлены, чтобы обеспечить более высокий уровень производительности, чем предлагаемая базовая схема поездки и эмулирования. Но тогда ... – Morty

+0

... очевидный следующий вопрос: как может виртуализация мэйнфреймов быть быстрой, не имея этих более сложных средств. И там, кажется, ответ может быть во второй части вашего ответа, а именно, что z/Architecture при полной загрузке требований к виртуализации основывается не только на классической виртуализации, но и на паравиализации. Гость тесно сотрудничает с гипервизором через помощь, и есть много привилегированных вещей, включая управление окружающей памятью ... – Morty