Когда речь идет о поддержании самых новых версий VM Tools (набора утилит для увеличения производительности виртуальных машин) существует 6 разных способов, которые могут использовать администраторы vSphere. Эти способы обеспечивают оптимизацию для процессов автоматизации, стандартизации и разделения обязанностей.

Статус VMware зависит от базового хоста


Напомним, что каждый хост ESXi предполагает хранилище для инсталлеров VM Tools, что является настраиваемой опцией и явно ссылается на /productLocker symlink. Цель может быть как локальной для каждого узла, так и может указывать на централизованное хранилище VM Tools в общем хранилище данных.
image
Статус VM Tools для каждой отдельно взятой виртуальной машины всегда находится в контексте базового хоста. Как показано ниже, две разные версии Tools могут считаться актульными, поскольку базовые хосты неидентичны.
image
Когда на определенной виртуальной машине происходит какое-то событие, например, включение vMotion, версия VM Tools, запущенная на гостевой ОС, сравнивается с версией на основном хосте ESXi. Если на хосте используется более новая версия, то версия виртуальной машины считается устаревшей.
image
Обратите внимание, что не существует механизма для того, чтобы виртуальные машины, запущенные на vSphere, могли связаться с the mother ship и узнать о наличии более новых версия VM Tools — только отношения виртуальной машины с хостом в данном случае имеют значение. Этим можно объяснить, почему ВМ может внезапно пожаловаться на устаревшие VM Tools после миграции с одного хоста на другой — хост места назначения может иметь более новые версии.

Тип VM Tools определяет выбор способа обновления


Существует три типа VM Tools — свой для каждой поддерживаемой операционной системы, плюс два дополнительных предложения в виде бинарных пакетов для Linux. Существуеет несколько способов инициировать обновление VM Tools с vSphere или с гостевой ОС. Способы, предложенные ниже, применимы только для гостевых Windows или Linux, использующих ISO VM Tools, за исключением отдельно отмеченных случаев. Пакеты VM Tools для Linux — OVT и OSP — не управляются через vSphere, поэтому они могут быть установлены и обновлены только внутри каждой гостевой ОС с использованием родных инструментов управления.

1. Автоматическое обновление при загрузке ВМ


Самый простой способ постоянно поддерживать наличие новых версий VM Tools — установить флажок и забыть об этом элементе инфраструктуры. После перезагрузки виртуальной машины, например, после установки патчей гостевой ОС, состояние инструментов виртуальной машины будет проверены и при необходимости будут установлены обновления. Во многих случаях это приведет к дополнительной перезагрузке после завершения установки VM Tools.

image
Такой подход может быть применим для менее важных нагрузок, возможно, для инфраструктур, предназначенных для тестирования или разработки. Представьте себе ситуацию, когда ВМ неожиданно перезагружается из-за широкомасштабного отключения инфраструктуры. После экстренного запуска и при запуске приложений администраторы могут столкнуться с непредвиденными последующими перезагрузками, если обнаруживаются доступные для загрузки новые версии VM Tools. Это крайний случай, но все же стоит держать его в уме.

2. Обновление одной или нескольких ВМ с помощью интерфейса vSphere


В веб-клиенте vSphere, когда ВМ указывает на то, что VM Tools устарели, может появиться кнопка для автоматического инициирования обновлений. Это может быть сделано в интерактивном или в полностью автоматическом режиме. В последнем случае администраторы также имеют возможность подавления любых возможных перезагрузок на виртуальных машинах с Windows — это хороший вариант, позволяющий координировать время перезагрузки в соответствии с плановой перезагрузкой ОС.

Важное примечание для гостевых ОС, отличных от Windows и Linux: VM Tools на Solaris, FreeBSD, и Mac ОС ВМ могут быть обновлены только с помощью ручного интерактивного метода. В настоящее время нет средств автоматического обновления для этих гостей.
Идя дальше, можно также выделить несколько виртуальных машин в интерфейсе веб-клиента и инициировать обновление VM Tools для всех ВМ сразу.
image

3. VMware Update Manager: немедленное или запланированное обновление, а также обновление при загрузке


VMware Update Manager (VUM) играет две очень важные роли, когда дело доходит до обновления инструментов ВМ. Первая роль — извлечение обновленных VM Tools из ISO в форме, которая необходима для нормального патч стрима ESXi. Этот патч затем направляется во все управляемые хосты в соответствии с базовыми показателями, установленными администраторами. Как только это происходит, отдельные виртуальные машины начнут проверять наличие новой версии VM Tools и будут иметь право на обновление.
image
Вторая роль VUM в управлении VM Tools — отслеживать обновления для отдельных ВМ в соответствии с исходными данными. Следует держать в уме, что VUM проделывает эту работу с использованием методов vSphere, описанных в двух предыдущих пунктах. В одном режиме VUM может использоваться для массового изменения конфигурации нескольких виртуальных машин таким образом, чтобы обновления VM Tools проверялись и загружались при необходимости при каждой перезагрузке гостевой ОС, как это делает администратор в пункте 1. Преимуществом использования VUM в том, что несколько виртуальных машин может быть настроено и перенастроено за раз.

image
Другие режимы VUM предназначены для запуска обновлений VM Tools как немедленно, так и в запланированное время, также как администратор может сделать это вручную (см. пункт 2). Одно дополнительное преимущество использования VUM для инициирования этих обновлений — это способность восстанавливать отключенные или приостановленные виртуальные машины, впоследствии возвращая их в первоначальное состояние после обновления.

4. Гостевое обновление — делегирование управления владельцам приложений


В тех случаях, когда владельцы приложения требуют жесткого контроля за всем, что происходит в гостевой ОС, есть возможность разрешить обновления VM Tools внутри гостевой ОС. Иконка в трее в Windows будет показывать, что доступно обновление, а диалоговое окно конфигурирования VM Tools позволит интерактивно начать обновление в удобное время.
image
Для аналогичного функционала с помощью командной строки предлагается vmware-toolbox-cmd для гостевых ОС Linux и Windows. Имейте в виду, что в случае с Linux это касается только ISO VM Tools, тогда как для OVT и OSP используется другой способ, описанный в пункте 6.

5. Массовое обновление с помощью автоматики PowerCLI


В очень больших средах или для тех, которые используются для более зрелых производственных процессов, мощным инструментом обновления VM Tools является PowerCLI. Этот подход может использоваться для конкретных групп виртуальных машин множеством удобных способов, таких, как кластеризация, теги или с помощью других атрибутов vSphere.
image

6. «Родные» процессы управления пакетами Linux


По своей природе гостевые ОС Linux, использующие OSP или OVT, обновляют VM Tools в составе более широкого процесса исправления и обновления, используемого для других компонентов. Это позволяет администраторам использовать существующие пакетные менеджеры в Linux или более гибкие решения для управления и мониторинга без согласования с администраторам vSphere.

Вместо заключения


С этими гибкими способами обновления VM Tools можно найти подходящий метод для каждого датацентра VMware, вне зависимости от того, каковы требования: централизованный контроль, автоматизация, делегирование владельцам приложений или интеграция с существующими процессами управления исправлениями.
Поделиться с друзьями
-->

Комментарии (20)


  1. lovecraft
    15.06.2016 13:14
    +2

    1. Самому вменяемому способу обновления vm-tools под Linux (apt-get update && apt-get install open-vm-tools) уделено даже меньше места, чем в оригинальной статье. Там хоть команда упоминается.

    2. Переводчик Google, конечно, хорошая штука, но академические словари никто не отменял. Я вот про это:

    После скремблирования и при запуске приложений администраторы могут столкнуться с непредвиденными последующими перезагрузками
    В данном контексте scrambling это «экстренный запуск», например http://dictionary.cambridge.org/dictionary/english-russian/scramble


    1. Cloud4Y
      15.06.2016 13:52

      Спасибо, скремблирование исправили.


    1. navion
      15.06.2016 18:19
      +1

      Самому вменяемому способу обновления vm-tools под Linux

      К сожалению, он не универсален — open-vm-tools официально не поддерживается на RHEL6 (хотя сам пакет есть в EPEL) и в них забыли добавить скрипт по увеличению дисковых таймаутов. А для FreeBSD мейнтейнеры просто забили на обновления.


      1. m0ps
        24.06.2016 13:10

        Тем не менее — vmware крайне рекомендуют этот метод. На серверах с Ubuntu уже более года как перешел на этот способ. Для кастомизации (при развертывании с шаблона или клонировании) — необходимо еще установить пакет open-vm-tools-deploypkg из стороннего репозитария (поддерживаемого vmware). Пока для 16.04 еще не собрали, скорее всего выпустят со следующим релизом, в котором 16.04 будет официально поддерживаться.


        1. navion
          24.06.2016 13:13

          еще установить пакет open-vm-tools-deploypkg

          Уже давно не надо, там в зависимостях только Perl. А VMware рекомендует ставить open-vm-tools там где они есть в официальных репозиториях — RHEL 7, SLES 12 и Ubuntu 12.04.


          1. m0ps
            24.06.2016 13:19

            Точно… Что-то я пропустил что:
            open-vm-tools version 9.10.0 and later includes the functionality provided by open-vm-tools-deploypkg and there is no need to install this additional package.


        1. navion
          24.06.2016 14:01

          Кстати, в некоторых репозиториях не включен автостарт для vmtoolsd и надо делать это самому после установки (например, в openSUSE 13).


  1. dshumov
    15.06.2016 13:53

    Было бы еще интересно про тоже самое для Hyper-v


    1. DaemonGloom
      15.06.2016 19:15

      В hyper-v:
      Для гостевых Windows обновление Integration services выходит через Windows Update / WSUS, таким образом у вас уже есть централизованное обновление.
      Гостевые *nix системы обновляются пакетным менеджером, что позволяет аналогичным образом централизованно обновлять их через puppet/chief или прочие средства управления *nix системой.


  1. foxka
    17.06.2016 12:54

    Господа, спасибо за статью.
    заинтересовало следующее:
    Гостевое обновление — делегирование управления владельцам приложений т.е пункт №4
    как это сделать? подскажите пожалуйста.


    1. navion
      20.06.2016 12:24

      Через командную строку:

      VMwareToolboxCmd.exe upgrade start

      Возможно придётся добавить в конфигурацию isolation.tools.guestInitiatedUpgrade.disable, как описано тут.


      1. foxka
        20.06.2016 12:29

        спасибо за ответ.
        на клинской VM? или где?


        1. navion
          20.06.2016 12:34

          Не понял про «клинскую ВМ», запускать надо внутри виртуальной машины из папки %ProgramFiles%\VMware\VMware Tools.
          А владельцем приложения выступает администратор ВМ, не знаю почему они так озаглавили этот пункт.


          1. foxka
            20.06.2016 12:43

            клиентскую хотел написать ) т9 исправил.
            т.е я не смогу с вицентра глобально сказать что бы запустилось уведомление о том, что пора тулзы обновить админу клиентской виртуальной машины? это он сам должен всё делать получается в ручную?


            1. navion
              20.06.2016 12:48

              Уведомление появится автоматически после некоторых опираций (vMotion, включение, перезапуск vmtoolsd), а для централизованного запуска самого обновления есть третий и пятый способы.


              1. foxka
                20.06.2016 12:53

                3 и 5 не годится, так как это установка в принудительном порядке запущена админом сферы, а не админом данной конкретно VM.
                я так понял, что имено 4тый пункт именно то что мне нужно — типа админу падает уведомление в трее, что пора обновить тулзы, а он уже сам выбирает время когда их ставить.
                или я не правильно понял?


                1. navion
                  20.06.2016 12:57

                  Именно так, но ему придётся запускать обновление через командную строку (по крайней мере на ESXi 5.5).

                  Поставьте галку с обновлением при перезагрузке — в большинстве случаев этого хватает, а при критических багах в тулзах всё равно придётся обновлять их принудительно.


                  1. foxka
                    20.06.2016 12:59

                    так вот я и спрашиваю — как сделать так что бы на VM клиента вышло это уведомление об необходимости произвести обновление тулзов? я это не могу понять.


                    1. navion
                      20.06.2016 14:04

                      Уведомление появится автоматически после некоторых опираций (vMotion, включение, перезапуск vmtoolsd).

                      Сам диалог для интерактивного обновления вырезали в версии 9.0.0 и кроме него там было много полезного.
                      Автор статьи забыл про это упомянуть, а переводчики не проверили корректность информации перед публикацией.


                      1. foxka
                        20.06.2016 14:09

                        спасибо, большое за ответ. теперь понятно всё.