Руководство по системному администрированию: контейнеры в Solaris - управление ресурсами и зонами

Solaris 10 11/06: перенос неглобальной зоны на другой компьютер

Следует отметить, что в Solaris 10 5/08 можно выполнить пробный перенос зоны до ее фактического переноса на другую машину. Для получения дополнительной информации см. Solaris 10 5/08: проверка возможности переноса типизированной зоны перед переносом.

Перенос зоны

Этот раздел дополнен описанием новых возможностей, появившихся в Solaris, начиная с версии 10 11/06.

Команды zonecfg и zoneadm можно использовать для переноса существующих неглобальных зон из одной системы в другую. Зона останавливается и отсоединяется от текущего узла. zonepath перемещается на целевой узел, где происходит его присоединение.

К переносу зоны применяются следующие ограничения:

Для проверки версии Solaris и машинной архитектуры введите следующую команду:


#uname -m

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

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

После прикрепления к новой системе зона считается установленной.

ProcedureПеренос неглобальной зоны

Для выполнения этой процедуры необходимо иметь роль глобального администратора в глобальной зоне.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Остановите перемещаемую зону (в этой процедуре – my-zone).


    host1# zoneadm -z my-zone halt
    
  3. Отсоедините зону.


    host1# zoneadm -z my-zone detach
    

    Отсоединенная зона теперь находится в настроенном состоянии.

  4. Переместите zonepath для my-zone на новый узел.

    Для получения дополнительной информации см. Перемещение zonepath на новый узел.

  5. Настройте зону на новом узле.


    host2# zonecfg -z my-zone
    

    Появится следующее системное сообщение:


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. Для создания зоны my-zone на новом узле используется команда zonecfg с параметром -a и zonepath на новом узле.


    zonecfg:my-zone> create -a /export/zones/my-zone
    
  7. (Дополнительно.) Изучите конфигурацию.


    zonecfg:my-zone> info
    zonename: my-zone
    zonepath: /export/zones/my-zone
    autoboot: false
    pool:
    inherit-pkg-dir:
             dir: /lib
    inherit-pkg-dir:
             dir: /platform
    inherit-pkg-dir:
             dir: /sbin
    inherit-pkg-dir:
             dir: /usr
    net:
             address: 192.168.0.90
             physical: bge0
  8. Внесите в конфигурацию необходимые изменения.

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


    zonecfg:my-zone> select net physical=bge0
    zonecfg:my-zone:net> set physical=e1000g0
    zonecfg:my-zone:net> end
    
  9. Зафиксируйте конфигурацию и выполните выход.


    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  10. Присоедините зону к новому узлу, используя один из следующих способов.

    • Присоедините зону с проверкой допустимости.


      host2# zoneadm -z my-zone attach
      

      Системный администратор уведомляется о требуемых действиях, если выполняется по крайней мере одно из следующих условий:

      • На новом компьютере отсутствуют требуемые пакеты и исправления

      • программные уровни компьютеров различаются.

    • Solaris 10 10/08: Присоединение зоны с проверкой допустимости и обновление зоны с целью обеспечить соответствие узлу, который имеет другой класс машины, или на котором выполняются более поздние версии зависимых пакетов.


      host2# zoneadm -z my-zone attach -u
      

      Совет –

      Solaris 10 10/08 Если исходная система работает под управлением более старой версии Solaris, она может не поддерживать корректное создание перечня пакетов при отсоединении зоны. Чтобы убедиться, что для целевой системы создан надлежащий перечень пакетов, можно удалить из zonepath файл SUNWdetached.xml. Удаление этого файла приведет к созданию целевой системой нового списка пакетов.

      Это не требуется в Solaris 10 5/09 и более поздних версиях..


    • Solaris 10 5/09 и выше: параметр -b также используется для отката указанных исправлений - официальных или IDR - во время присоединения.


      host2# zoneadm -z my-zone attach -u -b IDR246802-01 -b 123456-08
      

      Следует отметить, что параметр -b можно использовать независимо от параметра -u.

    • Выполните операцию присоединения принудительно без проверки допустимости.


      host2# zoneadm -z my-zone attach -F
      

      Внимание – Внимание –

      Параметр -F позволяет принудительно выполнить операцию attach без проверки допустимости. Это удобно в ряде случаев, например в кластерной среде или при операциях резервного копирования и восстановления, однако важна правильная настройка системы для поддержки зоны. Неправильная настройка может впоследствии привести к непредвиденному поведению.


ProcedureПеремещение zonepath на новый узел

Существует множество способов создания архива zonepath. Например, можно использовать команды cpio и pax, описанные на справочных страницах cpio(1)) и pax(1).

Также существует несколько способов перемещения архива на новый узел. Механизм, используемый для перемещения zonepath с исходного узла на целевой, зависит от локальной конфигурации. В некоторых случаях, например в SAN, данные zonepath могут вовсе не перемещаться. SAN можно просто перенастроить, обеспечив видимость zonepath для нового узла. В других случаях zonepath может потребоваться записать на ленту и переслать эту ленту по почте в новое местоположение.

Этими соображениями обусловливается отсутствие автоматизации данного этапа. Системному администратору следует выбрать наиболее адекватный метод перемещения zonepath на новый узел.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Переместите zonepath на новый узел. Можно использовать метод, описанный в этой процедуре, либо другой метод по выбору.


Пример 23–1 Архивация и перемещение zonepath с помощью команды tar

  1. Создайте файл tar из zonepath на host1 и передайте его на host2 командой sftp.


    host1# cd /export/zones
    host1# tar cf my-zone.tar my-zone
    host1# sftp host2
    Connecting to host2...
    Password:
    sftp> cd /export/zones
    sftp> put my-zone.tar
    Uploading my-zone.tar to /export/zones/my-zone.tar
    sftp> quit
    
  2. Распакуйте файл tar на host2.


    host2# cd /export/zones
    host2# tar xf my-zone.tar
    

Для получения дополнительной информации см. sftp(1) и tar(1).


Устранение неполадок

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

Дальнейшие шаги

Если вместо перенастройки SAN данные были просто скопированы, zonepath будет по-прежнему виден на исходном узле даже несмотря на то, что зона теперь находится в настроенном состоянии. Необходимо либо удалить zonepath вручную из исходного узла после перемещения данных на новый узел, либо снова прикрепить зону к исходному узлу и посредством команды zoneadm uninstall удалить zonepath.

Solaris 10 5/08: проверка возможности переноса типизированной зоны перед переносом

Перед переносом зоны на новую машину можно выполнить пробный перенос при помощи параметра "не выполнять" (-n).

Выполните подкоманду zoneadm detach с параметром -n для генерации манифеста по работающей зоне без ее фактического отсоединения. Состояние зоны в исходной системе при этом не изменяется. Манифест зоны передается в stdout. Глобальный администратор может перенаправить вывод в файл или, через канал, в удаленную команду для немедленной проверки на целевом узле. Затем с помощью подкоманды zoneadm attach с параметром -n можно будет считать этот манифест и удостовериться, что конфигурация целевой машины позволяет разместить на ней зону без фактического присоединения.

В случае пробного присоединения предварительно настраивать зону в целевой системе не требуется.

ProcedureSolaris 10 5/08: проверка возможности переноса зоны перед переносом

Для выполнения этой процедуры необходимо иметь роль глобального администратора в глобальной зоне.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью главного администратора (Primary Administrator).

    Инструкции по созданию роли и ее назначению пользователю приведены в разделе Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Выберите один из следующих методов:

    • Сгенерируйте манифест my-zone на исходном узле и передайте его в удаленную команду, которая немедленно проверит целевой узел:


      global# zoneadm -z my-zone detach -n | ssh remotehost zoneadm attach -n -
      

      Дефис (-) в конце строки указывает stdin в качестве пути.

      Результаты проверки правильности выводятся на экран исходного узла, т.е. на stdout.

    • Сгенерируйте манифест my-zone на исходном узле и передайте его в файл:


      global# zoneadm -z my-zone detach -n > filename
      

      Скопируйте манифест в систему на новом узле согласно описанию в разделе Перемещение zonepath на новый узел и выполните проверку:


      global# zoneadm attach -n path_to_manifest
      

      Для указания stdin в качестве пути можно использовать дефис ().