Руководство по администрированию файловых систем ZFS Solaris

Глава 5 Установка и загрузка корневой файловой системы ZFS

В этой главе описывается установка и загрузка файловой системы ZFS. Обсуждается также переход с корневой файловой системы UFS на корневую файловую систему ZFS с помощью Solaris Live Upgrade.

В этой главе содержатся следующие разделы:

Список известных проблем данной версии приведен в сопроводительной документации к Solaris 10 10/09.

Для получения самой свежей информации по диагностике проблем посетите следующий сайт:

http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

Установка и загрузка корневой файловой системы ZFS (обзор)

Начиная с версии Solaris 10 10/08 установку и загрузку с файловой системы ZFS можно проводить следующими способами:

После установки на компьютере с архитектурой SPARC или x86 корневой файловой системы ZFS или перехода такого компьютера на корневую файловую систему ZFS он автоматически загружается из корневой файловой системы ZFS. Дополнительная информация об изменениях загрузки приведена в разделе Загрузка с корневой файловой системы ZFS.

Функциональные возможности установки ZFS

В данной версии ОС Solaris предоставляются следующие функциональные возможности установки:

Следующие функциональные возможности установки не предоставляются в данной версии:

Требования к установке Solaris и Solaris Live Upgrade для поддержки ZFS

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

Требования для версии Solaris

Установку и загрузку корневой файловой системы ZFS или перенос на корневую файловую систему ZFS можно выполнить одним из следующих способов.

Общие требования для пула устройств хранения ZFS

Ознакомьтесь со следующими разделами, в которых описываются требования к объемам и настройке пула устройств хранения данных ZFS.

Требования к объемам для пула устройств хранения данных ZFS

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

При установке или обновлении системы с корневой файловой системой ZFS размер области подкачки и устройства дампа зависят от количества физической памяти. Минимальный доступный объем пула для загружаемой корневой файловой системы ZFS зависит от количества физической памяти, доступного пространства на диске и количества создаваемых загрузочных сред (boot environment, BE).

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

Требования к настройке пула устройств хранения ZFS

Ознакомьтесь со следующими требованиями к настройке для пула устройств хранения ZFS:

Установка корневой файловой системы ZFS (начальная установка)

В данной версии Solaris можно выполнить начальную установку с помощью интерактивной текстовой программы установки Solaris для создания пула устройств хранения ZFS, содержащего загружаемую корневую файловую систему ZFS. Если существует пул устройств хранения ZFS, который нужно использовать для корневой файловой системы ZFS, используйте Solaris Live Upgrade для перехода с существующей корневой файловой системы UFS в корневую файловую систему ZFS в существующем пуле устройств хранения ZFS. Дополнительная информация приведена в разделе Переход корневой файловой системы UFS в корневую файловую систему ZFS (Solaris Live Upgrade).

Если настройка зон выполняется после первоначальной установки корневой файловой системы ZFS, и в дальнейшем предполагается установка исправлений и обновление системы, см. раздел Перенос или обновление системы с зонами с помощью Solaris Live Upgrade (Solaris 10 10/08) или Перенос или обновление системы с зонами с помощью Solaris Live Upgrade (Solaris 10 5/09 и Solaris 10 10/09).

Если в системе уже есть пулы хранения ZFS, это подтверждается следующим сообщением, но эти пулы не будут затронуты, пока вы не выберете диски существующих пулов для создания нового пула хранения.


There are existing ZFS pools available on this system.  However, they can only be upgraded 
using the Live Upgrade tools.  The following screens will only allow you to install a ZFS root system, 
not upgrade one.

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

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


Прежде чем приступить к начальной установке для создания пула устройств хранения ZFS, ознакомьтесь с разделом Требования к установке Solaris и Solaris Live Upgrade для поддержки ZFS .


Пример 5–1 Начальная установка загружаемой корневой файловой системы ZFS

Процесс интерактивной установки Solaris в текстовом режиме почти не изменился по сравнению с предыдущими версиями Solaris, за исключением того, что система спрашивает, какую корневую файловую систему нужно создать – UFS или ZFS. По умолчанию в этой версии все еще используется файловая система UFS. Если выбрать корневую файловую систему ZFS, система выведет запрос для создания пула устройств хранения ZFS. Установка корневой файловой системы ZFS включает в себя следующие действия:

  1. Выберите метод интерактивной установки Solaris, поскольку установка путем клонирования Solaris не может создать загружаемую корневую файловую систему ZFS. Однако пользователь может создать архив ZFS на флеш-накопителе для использования во время установки методом JumpStart. Для получения подробных сведений см. Установка корневой файловой системы ZFS (установка архива на флеш-накопителе).

    Начиная с версии Solaris 10 10/08 пользователь может перенести корневую файловую систему UFS в корневую файловую систему ZFS после установки версии Solaris 10 10/08 или выше. Дополнительная информация о переходе на корневую файловую систему ZFS приведена в разделе Переход корневой файловой системы UFS в корневую файловую систему ZFS (Solaris Live Upgrade).

  2. Если нужно создать корневую файловую систему ZFS, выберите пункт ZFS. Пример:


    Choose Filesystem Type
    
      Select the filesystem to use for your Solaris installation
    
    
                [ ] UFS
                [X] ZFS
  3. После выбора программного обеспечения для установки появится приглашение выбрать диски для создания пула хранения ZFS. Этот экран похож на экран в предыдущих версиях Solaris:


    Select Disks
    
      On this screen you must select the disks for installing Solaris software.
      Start by looking at the Suggested Minimum field; this value is the
      approximate space needed to install the software you've selected. For ZFS,
      multiple disks will be configured as mirrors, so the disk you choose, or the
      slice within the disk must exceed the Suggested Minimum value.
      NOTE: ** denotes current boot disk
    
      Disk Device                                              Available Space
    =============================================================================
      [X] ** c1t1d0                                           69994 MB
      [ ]    c1t2d0                                           69994 MB  (F4 to edit)
    
                                      Maximum Root Size:  69994 MB
                                      Suggested Minimum:   7466 MB

    Можно выбрать диск или диски для использования в корневом пуле ZFS. Если выбраны два диска, для корневого пула настраивается конфигурация с двумя зеркалированными дисками. Оптимальным является пул с зеркалированием на базе двух или трех дисков. Если имеется восемь дисков и все они выбраны, корневой пул создается как одно большое зеркало на базе восьми дисков. Такая конфигурация не является оптимальной. Альтернативный способ заключается в создании зеркального корневого пула по завершении первоначальной установки. Конфигурация пула RAID-Z для корневого пула не поддерживается. Дополнительная информация о настройке пулов устройств хранения данных ZFS приведена в разделе Функции репликации пула устройств хранения данных ZFS.

  4. Если для создания зеркалируемого корневого пула требуется выбрать два диска, используйте клавиши управления курсором для выбора второго диска. Например, для дисков корневого пула выбран как c1t1d1, так и c0t2d0. Оба диска должны иметь метку SMI и подраздел 0. Если диски не имеют метки SMI или содержат подразделы, следует закрыть программу установки, выполнить служебную программу format для изменения меток и деления диска на разделы, а затем снова запустить программу установки.


    Select Disks
    
      On this screen you must select the disks for installing Solaris software.
      Start by looking at the Suggested Minimum field; this value is the
      approximate space needed to install the software you've selected. For ZFS,
      multiple disks will be configured as mirrors, so the disk you choose, or the
      slice within the disk must exceed the Suggested Minimum value.
      NOTE: ** denotes current boot disk
    
     Disk Device                                              Available Space
    =============================================================================
      [X] ** c1t1d0                                           69994 MB
      [X]    c1t2d0                                           69994 MB  (F4 to edit)
    
                                      Maximum Root Size:  69994 MB
                                      Suggested Minimum:   7466 MB

    Если в столбце "Доступное пространство" указано значение 0 МБ, обычно это свидетельствует о том, что данный диск имеет метку EFI.

  5. После выбора диска или дисков для пула устройств хранения ZFS выводится экран следующего вида:


    Configure ZFS Settings
    
      Specify the name of the pool to be created from the disk(s) you have chosen.
      Also specify the name of the dataset to be created within the pool that is
      to be used as the root directory for the filesystem.
    
    
                  ZFS Pool Name: rpool                                   
          ZFS Root Dataset Name: s10s_u8wos_08a
          ZFS Pool Size (in MB): 69994
      Size of Swap Area (in MB): 2048
      Size of Dump Area (in MB): 1024
            (Pool size must be between 6442 MB and 69995 MB)
    
                             [X] Keep / and /var combined
                             [ ] Put /var on a separate dataset

    Из этого экрана можно изменить имя пула ZFS, набор данных, размер пула, размеры устройств подкачки и дампа, перемещаясь по записям с помощью клавиш передвижения курсора и заменяя текстовые значения по умолчанию на новые. Можно также принять значения по умолчанию. Кроме того, можно изменить способ создания и монтирования файловой системы /var.

    В этом примере имя корневого набора данных меняется на zfs1009BE.


           ZFS Pool Name: rpool
          ZFS Root Dataset Name: zfs1009BE                               
          ZFS Pool Size (in MB): 69994
      Size of Swap Area (in MB): 2048
      Size of Dump Area (in MB): 1024
            (Pool size must be between 6442 MB and 69995 MB)
    
                             [X] Keep / and /var combined
                             [ ] Put /var on a separate dataset
  6. В этом последнем экране установки можно изменить профиль установки. Пример:


    Profile
    
      The information shown below is your profile for installing Solaris software.
      It reflects the choices you've made on previous screens.
    
      ============================================================================
    
                    Installation Option: Initial
                            Boot Device: c1t1d0
                  Root File System Type: ZFS
                        Client Services: None
    
                                Regions: North America
                          System Locale: C ( C )
    
                               Software: Solaris 10, Entire Distribution
                              Pool Name: rpool
                  Boot Environment Name: zfs1009BE
                              Pool Size: 69994 MB
                        Devices in Pool: c1t1d0
                                         c1t2d0

После завершения установки проверьте сведения о новом пуле устройств хранения ZFS и файловой системе. Пример:


# zpool status
  pool: rpool
 state: ONLINE
 scrub: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c1t1d0s0  ONLINE       0     0     0
            c1t2d0s0  ONLINE       0     0     0

errors: No known data errors
# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
rpool                 6.66G  60.3G    97K  /rpool
rpool/ROOT            4.66G  60.3G    21K  legacy
rpool/ROOT/zfs1009BE  4.66G  60.3G  4.66G  /
rpool/dump            1.00G  60.3G  1.00G  -
rpool/export            44K  60.3G    23K  /export
rpool/export/home       21K  60.3G    21K  /export/home
rpool/swap               1G  61.3G    16K  -

В образце вывода команды zfs list показаны компоненты корневого пула, например каталог rpool/ROOT, который по умолчанию недоступен.

Если вы первоначально создали пул устройств хранения ZFS с одним диском, можно преобразовать его в конфигурацию зеркалируемого ZFS после завершения установки, воспользовавшись командой zpool attach для прикрепления диска. Пример:


# zpool attach rpool c1t1d0s0 c1t2d0s0
# zpool status
  pool: rpool
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h0m, 5.03% done, 0h13m to go
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c1t1d0s0  ONLINE       0     0     0
            c1t2d0s0  ONLINE       0     0     0

errors: No known data errors

На перенос данных на новый диск понадобится некоторое время, но пул по-прежнему доступен.

Пока дефект CR 6668666 не устранен, вам понадобится установить загрузочную информацию на дополнительно присоединенные диски с помощью команды installboot или installgrub, если нужно разрешить загрузку с других дисков зеркала. Если создается зеркалируемый корневой пул ZFS методом начальной установки, это действие не требуется. Дополнительная информация об установке загрузочной информации приведена в разделе Загрузка с другого диска в зеркалируемом корневом пуле ZFS.

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

Если нужно создать другую среду загрузки (BE) ZFS в том же пуле устройств хранения, можно использовать командуlucreate. В следующем примере создается новая BE с именем zfs10092BE. Текущая BE с именем zfs509BE, показанная в выводе zfs list, не распознается в выводе командыlustatus, пока не создана новая BE.


# lustatus
ERROR: No boot environments are configured on this system
ERROR: cannot determine list of all boot environment names

Если в том же пуле создается новая среда загрузки ZFS, используйте следующую конструкцию:


# lucreate -n zfs10092BE
Analyzing system configuration.
No name for current boot environment.
INFORMATION: The current boot environment is not named - assigning name <zfs1009BE>.
Current boot environment is named <zfs1009BE>.
Creating initial configuration for primary boot environment <zfs1009BE>.
The device </dev/dsk/c1t1d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <zfs1009BE> PBE Boot Device </dev/dsk/c1t1d0s0>.
Comparing source boot environment <zfs1009BE> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs10092BE>.
Source boot environment is <zfs1009BE>.
Creating boot environment <zfs10092BE>.
Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
Creating snapshot for <rpool/ROOT/zfs1009BE> on <rpool/ROOT/zfs1009BE@zfs10092BE>.
Creating clone for <rpool/ROOT/zfs1009BE@zfs10092BE> on <rpool/ROOT/zfs10092BE>.
Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs10092BE>.
Population of boot environment <zfs10092BE> successful.
Creation of boot environment <zfs10092BE> successful.

При создании среды загрузки ZFS в том же пуле используются функциональные возможности клонов и снимков ZFS, так что BE создается мгновенно. Дополнительная информация об использовании Solaris Live Upgrade для перехода корня ZFS приведена в разделе Переход корневой файловой системы UFS в корневую файловую систему ZFS (Solaris Live Upgrade).

Затем проверьте новые среды загрузки. Пример:


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE                  yes      yes    yes       no     -         
zfs10092BE                 yes      no     no        yes    -         
# zfs list
NAME                              USED  AVAIL  REFER  MOUNTPOINT
rpool                            6.66G  60.3G    97K  /rpool
rpool/ROOT                       4.66G  60.3G    21K  legacy
rpool/ROOT/zfs10092BE              93K  60.3G  4.66G  /
rpool/ROOT/zfs1009BE             4.66G  60.3G  4.66G  /
rpool/ROOT/zfs1009BE@zfs10092BE  81.5K      -  4.66G  -
rpool/dump                       1.00G  60.3G  1.00G  -
rpool/export                       44K  60.3G    23K  /export
rpool/export/home                  21K  60.3G    21K  /export/home
rpool/swap                          1G  61.3G    16K  -

Если нужно загрузиться из другой среды загрузки, используйте команду luactivate. После активации среды загрузки на компьютере архитектуры SPARC используйте команду boot-L для обнаружения доступных сред загрузки, когда загрузочное устройство содержит пул устройств хранения ZFS. При загрузке с компьютера архитектуры x86 укажите нужную среду загрузки из меню GRUB.

Например, на компьютерах с архитектурой SPARC используйте команду boot-L для вывода списка доступных сред загрузки. Для загрузки из новой среды загрузки zfs5092BE выберите параметр 2. Затем введите показанную команду boot -Z.


ok boot -L
Executing last command: boot -L                                       
Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0:a  File and args: -L
1 zfs1009BE
2 zfs10092BE
Select environment to boot: [ 1 - 2 ]: 2

To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfs10092BE
ok boot -Z rpool/ROOT/zfs10092BE

Дополнительная информация о загрузке файловой системы ZFS приведена в разделе Загрузка с корневой файловой системы ZFS.


Установка корневой файловой системы ZFS (установка архива на флеш-накопителе)

В версии Solaris 10 10/09 возможно создание архива на флеш-накопителе в системе, использующей корневую файловую систему UFS или ZFS. Архив корневого пула ZFS на флеш-накопителе содержит полную корневую иерархию, кроме разделов подкачки и дампа, а также исключенных наборов данных. Разделы подкачки и дампа создаются при подключении архива на флеш-накопителе. Можно использовать один из следующих методов установки архива на флеш-накопителе:

Перед установкой системы с помощью архива ZFS на флеш-накопителе ознакомьтесь со следующими ограничениями:

После установки или обновления основной системы до версии Solaris 10 10/09 можно создать архив ZFS на флеш-накопителе для выполнения установки в целевой системе. Ниже приведено описание базового процесса.

При установке корневого пула ZFS с помощью архива на флеш-накопителе поддерживаются следующие параметры архива.

После установки архива ZFS на флеш-накопителе система имеет следующую конфигурацию.


Пример 5–2 Установка системы с помощью архива ZFS на флеш-накопителе

Создайте архив на флеш-накопителе для корневого пула ZFS после установки основной системы или ее обновления до версии Solaris 10 10/09. Пример:


# flarcreate -n zfs10u8BE zfs10u8flar
Full Flash
Checking integrity...
Integrity OK.
Running precreation scripts...
Precreation scripts done.
Determining the size of the archive...
The archive will be approximately 4.94GB.
Creating the archive...
Archive creation complete.
Running postcreation scripts...
Postcreation scripts done.

Running pre-exit scripts...
Pre-exit scripts done.

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


install_type flash_install
archive_location nfs system:/export/jump/zfs10u8flar
partitioning explicit
pool rpool auto auto auto mirror c0t1d0s0 c0t0d0s0

Установка корневой файловой системы ZFS (установка методом JumpStart)

Можно создать профиль JumpStart для установки корневой файловой системы ZFS или корневой файловой системы UFS. Если профиль настроен для установки корневой файловой системы UFS, все существующие ключевые слова профиля работают как в предыдущих версиях Solaris.

Профиль, специфичный для ZFS, должен содержать новое ключевое слово pool . Ключевое слово pool устанавливает новый корневой пул, и по умолчанию создается новая среда загрузки. Можно задать имя среды загрузки и создать отдельный набор данных /var с ключевыми словами bootenv installbe и опциями bename и dataset.

Для получения информации об установке в режиме JumpStart см. Solaris 10 Installation Guide: Custom JumpStart and Advanced Installations.

Если после установки корневой файловой системы ZFS методом JumpStart будет выполняться настройка зон и в дальнейшем планируется осуществить исправление или обновление системы, см. раздел Перенос или обновление системы с зонами с помощью Solaris Live Upgrade (Solaris 10 10/08).

Примеры профилей JumpStart для ZFS

В данном разделе предоставлены примеры специфичных для ZFS профилей JumpStart.

Следующий профиль выполняет начальную установку, заданную командой install_type initial-install в новом пуле, связанном с пулом pool newpool, размер которого с помощью ключевого слова auto автоматически устанавливается равным размеру указанных дисков. На зеркалируемых дисках размеры области подкачки и устройства дампа устанавливаются автоматически с помощью ключевого слова auto (используется ключевое слово mirror, а диски указаны как c0t0d0s0 и c0t1d0s0). Характеристики среды загрузки устанавливаются с ключевым словом bootenv для установки новой BE с помощью ключевого слова installbe , и создается bename с именем s10up-xx.


install_type initial_install
pool newpool auto auto auto mirror c0t0d0s0 c0t1d0s0
bootenv installbe bename s10up-xx

Следующий профиль выполняет начальную установку с ключевым словом install_type initial-install метакластера SUNWCall в новом пуле с именем newpool размером 80 ГБ. Этот пул создается с томом подкачки объемом 2 ГБ и томом дампа объемом 2 ГБ, в зеркалируемой конфигурации из любых двух доступных устройств, достаточно больших для создания пула размером 80 ГБ. Если нет двух доступных устройств такого типа, установка завершается сбоем. Характеристики среды загрузки устанавливаются с ключевым словом bootenv для установки новой BE с помощью ключевого слова installbe , и создается bename с именем s10up-xx.


install_type initial_install
cluster SUNWCall
pool newpool 80g 2g 2g mirror any any
bootenv installbe bename s10up-xx

Синтаксис установки с помощью JumpStart позволяет сохранить или создать файловую систему UFS на диске, также содержащем корневой пул ZFS. Подобная схема не рекомендуется для продуктивных систем, однако может подойти для нужд перехода в небольшой системе, например, на портативном компьютере.

Ключевые слова профилей JumpStart для ZFS

В профиле, специфичном для ZFS, допускаются следующие ключевые слова:

auto

Автоматически указывает размер подразделов для пула, объема области подкачки или дампа. Размер диска проверяется, чтобы убедиться, что выполнены требования сведения размера к минимуму. Если требования сведения размера к минимуму выполнены, для пула выделяется максимально возможный размер, принимая во внимание ограничения: размер дисков, сохраняемые подразделы и т. п.

Например, если указать c0t0d0s0, создается подраздел как можно большего размера, если указать ключевые слова all или auto. Можно также указать размер подраздела, тома подкачки или дампа в явном виде.

Ключевое слово auto при использовании с корневым пулом ZFS работает подобно ключевому слову all, поскольку у пулов нет понятия неиспользуемого объема.

bootenv

Это ключевое слово показывает характеристики среды загрузки.

Ключевое слово bootenv уже существует, но у него появились новые параметры. Для создания загружаемой корневой среды ZFS ключевое слово bootenv используется в следующей конструкции:

bootenv installbe bename BE-name [ dataset mount-point]

installbe

Создает новую BE, опознаваемую параметром bename и записью BE-name, и устанавливает ее.

bename BE-name

Задает BE-name для установки.

Если ключевое слово benameне использовать с ключевым словом pool , создается BE по умолчанию.

dataset mount-point

Используйте необязательное ключевое слово dataset для задания набора данных /var, отдельного от корневого набора данных. В настоящее время mount-point может принимать только значение /var. Например, командная строка bootenv для отдельного набора данных /var будет иметь приблизительно следующий вид:


bootenv installbe bename zfsroot dataset /var
pool

Указывает новый корневой пул, который будет создан. Необходимо использовать следующие ключевые слова:


poolname poolsize swapsize dumpsize vdevlist
poolname

Задает имя пула, который должен быть создан. Пул создается с указанным размером size и указанными физическими устройствами (vdev). Параметр poolname не должен совпадать с именем существующего пула, иначе он будет переписан.

poolsize

Указывает размер пула, который должен быть создан. Этот параметр может иметь значение auto или existing. Значение auto указывает, что нужно выделить максимально возможный размер пула, учитывая ограничения – размер дисков, сохраняемые подразделы и т. п. Значение existing означает, что границы существующих подразделов с этим именем будут сохранены и перезаписаны. Предполагается, что размер указан в мегабайтах, если не указан параметр g (гигабайты).

swapsize

Указывает размер тома подкачки, который должен быть создан. Допускаются значения auto, означающее, что будет использован размер области подкачки по умолчанию, или size для явного указания размера. Предполагается, что размер указан в мегабайтах, если не задан параметр g (гигабайты).

dumpsize

Указывает размер тома дампа, который должен быть создан. Допускаются значения auto, означающее, что будет использован размер области подкачки по умолчанию, или size для явного указания размера. Предполагается, что размер указан в мегабайтах, если не задан параметр g (гигабайты).

vdevlist

Указывает одно или несколько устройств, которые используются для создания пула. Формат списка vdevlist тот же, что и у команды zpool create. В настоящее время при указании нескольких устройств поддерживаются только зеркалируемые конфигурации. Устройства в списке vdevlist должны быть подразделами для корневого пула. Строка any означает, что программа-установщик выберет подходящее устройство.

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

Проблемы профилей JumpStart для ZFS

До установки загружаемой корневой файловой системы ZFS методом JumpStart необходимо принять во внимание следующие проблемы:

Переход корневой файловой системы UFS в корневую файловую систему ZFS (Solaris Live Upgrade)

Функциональные возможности Solaris Live Upgrade предыдущих версий по-прежнему доступны, и, если относятся к компонентам UFS, работают как в предыдущих версиях Solaris.

Доступны следующие функции:

Дополнительную информацию о функциональных возможностях установки Solaris и Solaris Live Upgrade см. в разделе Solaris 10 Installation Guide: Solaris Live Upgrade and Upgrade Planning

Базовый процесс для миграции корневой файловой системы UFS в корневую файловую систему ZFS выглядит следующим образом:

Дополнительная информация о требованиях к ZFS и Solaris Live Upgrade приведена в разделе Требования к установке Solaris и Solaris Live Upgrade для поддержки ZFS .

Проблемы перехода ZFS Solaris Live Upgrade

Перед использованием Solaris Live Upgrade для перехода корневой файловой системы UFS в корневую файловую систему ZFS ознакомьтесь со следующим списком проблем:

Использование Solaris Live Upgrade для перехода в корневую файловую систему ZFS (без зон)

В следующих примерах показан перенос с корневой файловой системы UFS в корневую файловую систему ZFS.

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


Пример 5–3 Функцию Solaris Live Upgrade можно использовать для перехода с корневой файловой системы UFS в корневую файловую систему ZFS.

Следующий пример демонстрирует создание BE корневой файловой системы ZFS из корневой файловой системы UFS. Текущая BE ufs509BE, содержащая корневую файловую систему UFS, указывается параметром -c. Если не указан дополнительный параметр -c, в качестве имени текущей среды загрузки по умолчанию используется имя устройства. Новая BE (zfs1009BE) указывается параметром -n. Пул устройств хранения ZFS должен существовать на момент выполнения операции lucreate.

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


# zpool create mpool mirror c1t2d0s0 c2t1d0s0
# lucreate -c ufs1009BE -n zfs1009BE -p mpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <ufs1009BE>.
Creating initial configuration for primary boot environment <ufs1009BE>.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <ufs1009BE> PBE Boot Device </dev/dsk/c1t0d0s0>.
Comparing source boot environment <ufs1009BE> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
The device </dev/dsk/c1t2d0s0> is not a root device for any boot environment; cannot get BE ID.
Creating configuration for boot environment <zfs1009BE>.
Source boot environment is <ufs1009BE>.
Creating boot environment <zfs1009BE>.
Creating file systems on boot environment <zfs1009BE>.
Creating <zfs> file system for </> in zone <global> on <mpool/ROOT/zfs1009BE>.
Populating file systems on boot environment <zfs1009BE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Creating compare databases for boot environment <zfs1009BE>.
Creating compare database for file system </mpool/ROOT>.
Creating compare database for file system </>.
Updating compare databases on boot environment <zfs1009BE>.
Making boot environment <zfs1009BE> bootable.
Creating boot_archive for /.alt.tmp.b-qD.mnt
updating /.alt.tmp.b-qD.mnt/platform/sun4u/boot_archive
Population of boot environment <zfs1009BE> successful.
Creation of boot environment <zfs1009BE> successful.

После завершения операции lucreate используйте команду lustatus для просмотра статуса BE. Пример:


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
ufs1009BE                  yes      yes    yes       no     -         
zfs1009BE                  yes      no     no        yes    -         

Затем ознакомьтесь со списком компонентов ZFS. Пример:


# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
mpool                 7.17G  59.8G  95.5K  /mpool
mpool/ROOT            4.66G  59.8G    21K  /mpool/ROOT
mpool/ROOT/zfs1009BE  4.66G  59.8G  4.66G  /
mpool/dump               2G  61.8G    16K  -
mpool/swap             517M  60.3G    16K  -

Затем используйте команду luactivate для активации новой среды загрузки ZFS. Например:


# luactivate zfs1009BE
A Live Upgrade Sync operation will be performed on startup of boot environment <zfs1009BE>.

**********************************************************************

The target boot environment has been activated. It will be used when you 
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You 
MUST USE either the init or the shutdown command when you reboot. If you 
do not use either init or shutdown, the system will not boot using the 
target BE.

**********************************************************************
.
.
.
Modifying boot archive service
Activation of boot environment <zfs1009BE> successful.

Затем перезагрузите систему в среде загрузки ZFS.


# init 6

Убедитесь, что среда загрузки ZFS активна.


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
ufs1009BE                  yes      no     no        yes    -         
zfs1009BE                  yes      yes    yes       no     -      

При переключении обратно в среду загрузки UFS необходимо заново импортировать все пулы устройств хранения данных, которые были созданы в среде загрузки ZFS, поскольку они не становятся автоматически доступными в среде загрузки UFS.

Если среда загрузки UFS больше не нужна, можно удалить ее с помощью команды ludelete.



Пример 5–4 Использование Solaris Live Upgrade для создания среды загрузки ZFS из среды загрузки ZFS

Создание среды загрузки ZFS из среды загрузки ZFS в том же пуле происходит очень быстро, поскольку эта операция использует функциональные возможности ZFS snapshot (моментальный снимок) и clone (клонирование). Если текущая BE располагается в том же пуле ZFS, например mpool, параметр -p опускается.

Если на компьютере с архитектурой SPARC есть несколько сред загрузки ZFS, можно использовать команду boot -L для обнаружения доступных сред загрузки. BE, из которой будет производиться загрузка, выбирается с помощью команды boot -Z. На компьютерах с архитектурой x86 можно выбрать BE в меню GRUB. Дополнительно см. Пример 5–9.


# lucreate -n zfs10092BE
Analyzing system configuration.
Comparing source boot environment <zfs1009BE> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs10092BE>.
Source boot environment is <zfs1009BE>.
Creating boot environment <zfs10092BE>.
Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
Creating snapshot for <mpool/ROOT/zfs1009BE> on <mpool/ROOT/zfs1009BE@zfs10092BE>.
Creating clone for <mpool/ROOT/zfs1009BE@zfs10092BE> on <mpool/ROOT/zfs10092BE>.
Setting canmount=noauto for </> in zone <global> on <mpool/ROOT/zfs10092BE>.
Population of boot environment <zfs10092BE> successful.
Creation of boot environment <zfs10092BE> successful.


Пример 5–5 Обновление среды загрузки ZFS (luupgrade)

Можно обновить среду загрузки ZFS с помощью дополнительных пакетов или исправлений.

Основной процесс выглядит следующим образом:


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE                  yes      no     no        yes    -         
zfs10092BE                 yes      yes    yes       no     -         
# luupgrade -p -n zfs1009BE -s /net/system/export/s10u8/Solaris_10/Product SUNWchxge

Validating the contents of the media </net/system/export/s10u8/Solaris_10/Product>.
Mounting the BE <zfs1009BE>.
Adding packages to the BE <zfs1009BE>.

Processing package instance <SUNWchxge> from </net/install/export/s10u8/Solaris_10/Product>

Chelsio N110 10GE NIC Driver(sparc) 11.10.0,REV=2006.02.15.20.41
Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.

This appears to be an attempt to install the same architecture and
version of a package which is already installed.  This installation
will attempt to overwrite this package.

Using </a> as the package base directory.
## Processing package information.
## Processing system information.
   4 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of <SUNWchxge> [y,n,?] y

Installing Chelsio N110 10GE NIC Driver as <SUNWchxge>

## Installing part 1 of 1.
## Executing postinstall script.

Installation of <SUNWchxge> was successful.
Unmounting the BE <zfs1009BE>.
The package add to the BE <zfs1009BE> completed.

Перенос или обновление системы с зонами с помощью Solaris Live Upgrade (Solaris 10 10/08)

С помощью функции Solaris Live Upgrade можно выполнить перенос системы вместе с зонами, однако поддержка возможных конфигураций в версии Solaris 10 10/08 ограничена). При установке Solaris 10 5/09 или при обновлении до этой версии поддерживается более широкий диапазон конфигураций зон. Дополнительные сведения приведены в разделе Перенос или обновление системы с зонами с помощью Solaris Live Upgrade (Solaris 10 5/09 и Solaris 10 10/09).

В этом разделе описывается, как настроить и установить систему с зонами, чтобы можно было выполнить обновление или исправление этой системы с помощью функции Solaris Live Upgrade. Если выполняется переход в корневую файловую систему ZFS без зон, см. раздел Использование Solaris Live Upgrade для перехода в корневую файловую систему ZFS (без зон).

Если выполняется перенос системы с зонами или настройка системы с зонами в версии Solaris 10 10/08, воспользуйтесь следующими процедурами:

С помощью рекомендованных процедур установите зоны в системе с корневой файловой системой ZFS таким образом, чтобы можно было использовать функцию Live Upgrade в этой системе.

ProcedureПеренос корневой файловой системы UFS с корнями зон в системе UFS в корневую файловую систему ZFS (Solaris 10 10/08)

Выполните описанные ниже действия для перехода корневой файловой системы UFS с установленными зонами в корневую файловую систему ZFS и настройки корня зоны в системе ZFS таким образом, чтобы эту систему можно было обновлять или исправлять.

В приведенных ниже действиях используется для примера имя пула rpool и имя активной среды загрузки S10BE*.

  1. Обновите систему до версии Solaris 10 от 10.2008, если используется более ранняя версия Solaris 10.

    Дополнительные сведения об обновлении системы с функционирующей версией Solaris 10 приведены в документе Solaris 10 Installation Guide: Solaris Live Upgrade and Upgrade Planning.

  2. Создайте корневой пул.

    Дополнительная информация о требованиях к корневому пулу приведена в разделе Требования к установке Solaris и Solaris Live Upgrade для поддержки ZFS .

  3. Подтвердите, что зоны из среды UFS загружены.

  4. Создайте новую среду загрузки.


    # lucreate -n S10BE2 -p rpool
    

    С помощью этой команды устанавливаются наборы данных в корневом пуле для новой среды загрузки и текущая среда загрузки (включая зоны) копируется в эти наборы данных.

  5. Активируйте новую среду загрузки.


    # luactivate s10BE2
    

    Теперь в системе функционирует корневая файловая система ZFS, но корни зон UFS все еще находятся в корневой файловой системе UFS. В последующих действиях необходимо полностью осуществить переход зон UFS в поддерживаемую настройку ZFS.

  6. Перезагрузите систему.


    # init 6
    
  7. Выполните переход зон в среду загрузки ZFS.

    1. Загрузите зоны.

    2. Создайте еще одну среду загрузки внутри пула.


      # lucreate S10BE3
      
    3. Активируйте новую среду загрузки.


      # luactivate S10BE3
      
    4. Перезагрузите систему.


      # init 6
      

      В этом действии проверяется, загружены ли среда загрузки ZFS и зоны.

  8. Устраните потенциальные проблемы с точками монтирования в этой версии Solaris.

    В результате ошибки функции Live Upgrade неактивная среда загрузки может не загрузиться из-за неверной точки монтирования для набора данных ZFS системы или набора данных ZFS зоны в среде загрузки.

    1. Просмотрите выходные данные команды zfs list.

      Найдите неверные временные точки монтирования. Пример:


      # zfs list -r -o name,mountpoint rpool/ROOT/s10u6
      
      NAME                               MOUNTPOINT
      rpool/ROOT/s10u6                   /.alt.tmp.b-VP.mnt/
      rpool/ROOT/s10u6/zones             /.alt.tmp.b-VP.mnt//zones
      rpool/ROOT/s10u6/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

      Точкой монтирования для среды загрузки корневой системы ZFS (rpool/ROOT/s10u6) должна быть /.

    2. Переопределите точки монтирования для среды загрузки системы ZFS и ее наборов данных.

      Пример:


      # zfs inherit -r mountpoint rpool/ROOT/s10u6
      # zfs set mountpoint=/ rpool/ROOT/s10u6
      
    3. Перезагрузите систему.

      Если в меню GRUB или командах ППЗУ OpenBoot имеется возможность выбора конкретной среды загрузки, выберите среду загрузки с исправленными точками монтирования.

ProcedureНастройка корневой файловой системы ZFS с корнями зон в системе ZFS (Solaris 10 10/08)

Выполните приведенные ниже действия для установки корневой файловой системы ZFS и настройки корней зон ZFS, которые затем можно будет обновлять или исправлять. В данной настройке корни зон ZFS созданы как наборы данных ZFS.

В приведенных ниже действиях в качестве примера используется имя пула rpool и имя активной среды загрузки S10be.

  1. Установите систему с корнем ZFS методом интерактивной начальной установки или методом установки Solaris JumpStart.

    Дополнительная информация об установке корневой файловой системы ZFS с помощью метода интерактивной начальной установки или метода Solaris JumpStart приведена в разделе Установка корневой файловой системы ZFS (начальная установка) или Установка корневой файловой системы ZFS (установка методом JumpStart).

  2. Загрузите систему из вновь созданного корневого пула.

  3. Создайте набор данных для группирования корней зон.

    Пример:


    # zfs create -o canmount=noauto rpool/ROOT/S10be/zones
    

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

    При указании значения noauto для свойства canmount монтирование набора данных можно выполнить только посредством явного действия функции Solaris Live Upgrade и системного кода запуска.

  4. Смонтируйте вновь созданный контейнерный набор данных для зон.


    # zfs mount rpool/ROOT/S10be/zones
    

    Набор данных монтируется в папке /zones.

  5. Создайте и смонтируйте набор данных для корня каждой зоны.


    # zfs create -o canmount=noauto rpool/ROOT/S10be/zones/zonerootA
    # zfs mount rpool/ROOT/S10be/zones/zonerootA
    
  6. Задайте соответствующие разрешения в корневом каталоге зоны.


    # chmod 700 /zones/zonerootA
    
  7. Выполните настройку зоны, для чего установите путь к ней следующим образом.


    # zonecfg -z zoneA
        zoneA: No such zone configured
        Use 'create' to begin configuring a new zone.
        zonecfg:zoneA> create
        zonecfg:zoneA> set zonepath=/zones/zonerootA
    

    Чтобы разрешить автоматическую загрузку зон при загрузке системы, используйте следующий синтаксис:


    zonecfg:zoneA> set autoboot=true
    
  8. Установите зону.


    # zoneadm -z zoneA install
    
  9. Выполните начальную загрузку зоны.


    # zoneadm -z zoneA boot
    

ProcedureОбновление или исправление корневой файловой системы ZFS с корнями зон в системе ZFS (Solaris 10 10/08)

Если требуется обновить или исправить корневую файловую систему с корнями зон в ZFS, выполните описанные ниже действия. Можно либо произвести обновление версии системы, либо применить исправления.

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

  1. Создайте среду загрузки для обновления или исправления.


    # lucreate -n newBE
    

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

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

    • Обновите систему.


      # luupgrade -u -n newBE -s /net/install/export/s10u7/latest
      

      Параметр -s указывает на расположение носителя установки системы Solaris.

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


       # luupgrade -t -n newBE -t -s /patchdir 139147-02 157347-14
      
  3. После завершения обновления новой среды загрузки активируйте эту новую среду.


    # luactivate newBE
    
  4. Выполните загрузку из вновь активированной среды загрузки.


    # init 6
    
  5. Устраните потенциальные проблемы с точками монтирования в версии Solaris 10/08.

    В результате ошибки функции Live Upgrade неактивная среда загрузки может не загрузиться из-за неверной точки монтирования для набора данных ZFS системы или набора данных ZFS зоны в среде загрузки.

    1. Просмотрите выходные данные команды zfs list.

      Найдите неверные временные точки монтирования. Пример:


      # zfs list -r -o name,mountpoint rpool/ROOT/newBE
      
      NAME                               MOUNTPOINT
      rpool/ROOT/newBE                   /.alt.tmp.b-VP.mnt/
      rpool/ROOT/newBE/zones             /.alt.tmp.b-VP.mnt//zones
      rpool/ROOT/newBE/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

      Точкой монтирования для среды загрузки корневой системы ZFS (rpool/ROOT/newBE) должна быть /.

    2. Переопределите точки монтирования для среды загрузки системы ZFS и ее наборов данных.

      Пример:


      # zfs inherit -r mountpoint rpool/ROOT/newBE
      # zfs set mountpoint=/ rpool/ROOT/newBE
      
    3. Перезагрузите систему.

      Если в меню GRUB или командах ППЗУ OpenBoot имеется возможность выбора конкретной среды загрузки, выберите среду загрузки с исправленными точками монтирования.

Перенос или обновление системы с зонами с помощью Solaris Live Upgrade (Solaris 10 5/09 и Solaris 10 10/09)

Использование функции Live Upgrade для переноса или обновления системы с зонами доступно начиная с версии Solaris 10 10/08. В Live Upgrade начиная с версии Solaris 10 5/09 доступны дополнительные варианты настройки разреженных и целостных зон.

В этом разделе описывается процедура настройки и установки системы с зонами начиная с версии Solaris 10 5/09 с возможностью обновления или исправления этой системы посредством функции Solaris Live Upgrade. Если выполняется перенос в корневую файловую систему ZFS без зон, см. раздел Использование Solaris Live Upgrade для перехода в корневую файловую систему ZFS (без зон).

При работе с ZFS и зонами начиная с версии Solaris 10 5/09 с использованием Live Upgrade необходимо обратить внимание на следующие аспекты:

Если выполняется перенос системы с зонами или настройка системы с зонами начиная с версии Solaris 10 5/09, ознакомьтесь со следующей информацией:

Информация о поддерживаемых конфигурациях ZFS с корнями зон (Solaris 10 5/09 или Solaris 10 10/09)

Перед переносом или обновлением системы с зонами с помощью Live Upgrade следует ознакомиться с поддерживаемыми конфигурациями зон.

ProcedureСоздание среды загрузки ZFS с корневой файловой системой ZFS и корнем зоны (Solaris 10 5/09 или Solaris 10 10/09)

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

В приведенных ниже действиях в системе Solaris 10 10/09, используемой в качестве примера, имеется корневая файловая система ZFS и набор данных корня зоны в /rpool/zones. Создается среда загрузки ZFS с именем zfs10092BE; после этого ее можно обновить или применить к ней исправления.

  1. Исследуйте имеющиеся файловые системы ZFS. Пример:


    # zfs list
    NAME                   USED  AVAIL  REFER  MOUNTPOINT
    rpool                 7.26G  59.7G    98K  /rpool
    rpool/ROOT            4.64G  59.7G    21K  legacy
    rpool/ROOT/zfs1009BE  4.64G  59.7G  4.64G  /
    rpool/dump            1.00G  59.7G  1.00G  -
    rpool/export            44K  59.7G    23K  /export
    rpool/export/home       21K  59.7G    21K  /export/home
    rpool/swap               1G  60.7G    16K  -
    rpool/zones            633M  59.7G   633M  /rpool/zones
  2. Убедитесь в том, что зоны установлены и загружены. Пример:


    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       2 zfszone          running    /rpool/zones                   native   shared
  3. Создайте среду загрузки ZFS. Пример:


    # lucreate -n zfs10092BE
    Analyzing system configuration.
    Comparing source boot environment <zfs1009BE> file systems with the file 
    system(s) you specified for the new boot environment. Determining which 
    file systems should be in the new boot environment.
    Updating boot environment description database on all BEs.
    Updating system configuration files.
    Creating configuration for boot environment <zfs10092BE>.
    Source boot environment is <zfs1009BE>.
    Creating boot environment <zfs10092BE>.
    Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
    Creating snapshot for <rpool/ROOT/zfs1009BE> on <rpool/ROOT/zfs1009BE@zfs10092BE>.
    Creating clone for <rpool/ROOT/zfs1009BE@zfs10092BE> on <rpool/ROOT/zfs10092BE>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs10092BE>.
    Creating snapshot for <rpool/zones> on <rpool/zones@zfs10092BE>.
    Creating clone for <rpool/zones@zfs10092BE> on <rpool/zones-zfs10092BE>.
    Population of boot environment <zfs10092BE> successful.
    Creation of boot environment <zfs10092BE> successful.
  4. Активируйте среду загрузки ZFS.


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    zfs1009BE                  yes      yes    yes       no     -         
    zfs10092BE                 yes      no     no        yes    -         
    # luactivate zfs10092BE
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs10092BE>.
    .
    .
    .
    # init 6
    
  5. Убедитесь в том, что в новой среде загрузки созданы файловые системы ZFS и зоны. Пример:


    # zfs list
    NAME                               USED  AVAIL  REFER  MOUNTPOINT
    rpool                             7.38G  59.6G    98K  /rpool
    rpool/ROOT                        4.72G  59.6G    21K  legacy
    rpool/ROOT/zfs10092BE             4.72G  59.6G  4.64G  /
    rpool/ROOT/zfs10092BE@zfs10092BE  74.0M      -  4.64G  -
    rpool/ROOT/zfs1009BE              5.45M  59.6G  4.64G  /.alt.zfs1009BE
    rpool/dump                        1.00G  59.6G  1.00G  -
    rpool/export                        44K  59.6G    23K  /export
    rpool/export/home                   21K  59.6G    21K  /export/home
    rpool/swap                           1G  60.6G    16K  -
    rpool/zones                       17.2M  59.6G   633M  /rpool/zones
    rpool/zones-zfs1009BE              653M  59.6G   633M  /rpool/zones-zfs1009BE
    rpool/zones-zfs1009BE@zfs10092BE  19.9M      -   633M  -
    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       - zfszone          installed  /rpool/zones                   native   shared

ProcedureОбновление или исправление корневой файловой системы ZFS с корнями зон (Solaris 10 5/09 или Solaris 10 10/09)

Если требуется обновить или исправить корневую файловую систему с корнями зон в версии Solaris 10 5/09 или Solaris 10 10/09 , выполните описанные ниже действия. Можно либо произвести обновление версии системы, либо применить исправления.

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

  1. Исследуйте имеющиеся файловые системы ZFS. Пример:


    # zfs list
    NAME                               USED  AVAIL  REFER  MOUNTPOINT
    rpool                             7.38G  59.6G   100K  /rpool
    rpool/ROOT                        4.72G  59.6G    21K  legacy
    rpool/ROOT/zfs10092BE             4.72G  59.6G  4.64G  /
    rpool/ROOT/zfs10092BE@zfs10092BE  75.0M      -  4.64G  -
    rpool/ROOT/zfs1009BE              5.46M  59.6G  4.64G  /
    rpool/dump                        1.00G  59.6G  1.00G  -
    rpool/export                        44K  59.6G    23K  /export
    rpool/export/home                   21K  59.6G    21K  /export/home
    rpool/swap                           1G  60.6G    16K  -
    rpool/zones                       22.9M  59.6G   637M  /rpool/zones
    rpool/zones-zfs1009BE              653M  59.6G   633M  /rpool/zones-zfs1009BE
    rpool/zones-zfs1009BE@zfs10092BE  20.0M      -   633M  -
  2. Убедитесь в том, что зоны установлены и загружены. Пример:


    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       5 zfszone          running    /rpool/zones                   native   shared
  3. Создайте среду загрузки ZFS для обновления или исправления. Пример:


    # lucreate -n zfs10093BE
    Analyzing system configuration.
    Comparing source boot environment <zfs10092BE> file systems with the file 
    system(s) you specified for the new boot environment. Determining which 
    file systems should be in the new boot environment.
    Updating boot environment description database on all BEs.
    Updating system configuration files.
    Creating configuration for boot environment <zfs10093BE>.
    Source boot environment is <zfs10092BE>.
    Creating boot environment <zfs10093BE>.
    Cloning file systems from boot environment <zfs10092BE> to create boot environment <zfs10093BE>.
    Creating snapshot for <rpool/ROOT/zfs10092BE> on <rpool/ROOT/zfs10092BE@zfs10093BE>.
    Creating clone for <rpool/ROOT/zfs10092BE@zfs10093BE> on <rpool/ROOT/zfs10093BE>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs10093BE>.
    Creating snapshot for <rpool/zones> on <rpool/zones@zfs10093BE>.
    Creating clone for <rpool/zones@zfs10093BE> on <rpool/zones-zfs10093BE>.
    Population of boot environment <zfs10093BE> successful.
    Creation of boot environment <zfs10093BE> successful.
  4. Выберите одно из следующих действий, чтобы обновить систему или применить исправления к новой среде загрузки.

    • Обновите систему. Пример:


      # luupgrade -u -n zfs10093BE -s /net/install/export/s10uX/combined.s10s_uXwos/latest
      

      Параметр -s указывает на расположение носителя установки системы Solaris.

      Данный процесс может занять значительное время.

      С полным примером процесса luupgrade можно ознакомиться в разделе Пример 5–6.

    • Примените исправления к новой среде загрузки. Пример:


      # luupgrade -t -n zfs10093BE -t -s /patchdir patch-id-02 patch-id-04
      
  5. После завершения обновления новой среды загрузки активируйте эту новую среду.


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    zfs1009BE                  yes      no     no        yes    -         
    zfs10092BE                 yes      yes    yes       no     -         
    zfs10093BE                 yes      no     no        yes    -     
    # luactivate zfs10093BE
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs10093BE>.
    .
    .
    .
  6. Выполните загрузку из вновь активированной среды загрузки.


    # init 6
    

Пример 5–6 Обновление корневой файловой системы ZFS с корнем зоны до корневой файловой системы ZFS версии Solaris 10 10/09.

В данном примере среда загрузки ZFS (zfs509BE), созданная в системе Solaris 5/09 с корневой файловой системой и корнем зоны в некорневом пуле, обновляется до выпуска Solaris 10 10/09. Данный процесс может занять значительное время. После этого выполняется активация обновленной среды загрузки (zfs10092BE). Перед началом переноса следует убедиться в том, что зоны установлены и загружены.

В этом примере пул zonepool, набор данных /zonepool/zones и zfszone создаются следующим образом:


# zpool create zonepool mirror c2t1d0 c2t5d0
# zfs create zonepool/zones
# chmod 700 zonepool/zones
# zonecfg -z zfszone
zfszone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zfszone> create
zonecfg:zfszone> set zonepath=/zonepool/zones
zonecfg:zfszone> verify
zonecfg:zfszone> exit
# zoneadm -z zfszone install
cannot create ZFS dataset zonepool/zones: dataset already exists
Preparing to install zone <zfszone>.
Creating list of files to copy from the global zone.
Copying <8960> files to the zone.
.
.
.

# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   2 zfszone          running    /zonepool/zones                native   shared

# lucreate -n zfs1009BE
.
.
.
# luactivate zfs1009BE
.
.
.

# init 6
# luupgrade -u -n zfs1009BE -s /net/install/export/s10u8/combined.s10s_u8wos/latest
40410 blocks
miniroot filesystem is <lofs>
Mounting miniroot at </net/system/export/s10u8/latest/Solaris_10/Tools/Boot>
Validating the contents of the media </net/system/export/s10u8//latest>.
The media is a standard Solaris media.
The media contains an operating system upgrade image.
The media contains <Solaris> version <10>.
Constructing upgrade profile to use.
Locating the operating system upgrade program.
Checking for existence of previously scheduled Live Upgrade requests.
Creating upgrade profile for BE <zfs1009BE>.
Determining packages to install or upgrade for BE <zfs1009BE>.
Performing the operating system upgrade of the BE <zfs1009BE>.
CAUTION: Interrupting this process may leave the boot environment unstable 
or unbootable.
Upgrading Solaris: 100% completed
Installation of the packages from this media is complete.
Updating package information on boot environment <zfs1009BE>.
Package information successfully updated on boot environment <zfs1009BE>.
Adding operating system patches to the BE <zfs1009BE>.
The operating system patch installation is complete.
INFORMATION: The file </var/sadm/system/logs/upgrade_log> on boot 
environment <zfs1009BE> contains a log of the upgrade operation.
INFORMATION: The file </var/sadm/system/data/upgrade_cleanup> on boot 
environment <zfs1009BE> contains a log of cleanup operations required.
INFORMATION: Review the files listed above. Remember that all of the files 
are located on boot environment <zfs1009BE>. Before you activate boot 
environment <zfs1009BE>, determine if any additional system maintenance is 
required or if additional media of the software distribution must be 
installed.
The Solaris upgrade of the boot environment <zfs1009BE> is complete.
Installing failsafe
Failsafe install is complete.
# luactivate zfs1009BE
# init 6
# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfs509BE                   yes      no     no        yes    -         
zfs1009BE                  yes      yes    yes       no     -   
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - zfszone          installed  /zonepool/zones                native   shared

ProcedureПеренос корневой файловой системы UFS с корнем зоны в корневую файловую систему ZFS (Solaris 10 5/09 или Solaris 10 10/09)

Данная процедура позволяет обновить систему с корневой файловой системой UFS и корнем зоны до выпуска Solaris 10 5/09 или Solaris 10 10/09. После этого следует создать среду загрузки ZFS с помощью Live Upgrade.

В приведенной ниже последовательности действий образцовая среда загрузки UFS названа c0t1d0s0, корень зоны UFS – zonepool/zfszone, а корневая загружаемая среда ZFS – zfs1009.

  1. Обновите систему до версии Solaris 10 5/09 или Solaris 10 10/09, если используется более ранняя версия Solaris 10.

    Дополнительные сведения об обновлении системы с функционирующей версией Solaris 10 приведены в документе Solaris 10 Installation Guide: Solaris Live Upgrade and Upgrade Planning.

  2. Создайте корневой пул.

    Дополнительные сведения о требованиях к корневому пулу приведены в разделе Требования к установке Solaris и Solaris Live Upgrade для поддержки ZFS .

  3. Убедитесь в загрузке зон из среды UFS. Пример:


    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       2 zfszone          running    /zonepool/zones                native   shared
  4. Создайте новую среду загрузки ZFS. Пример:


    # lucreate -c c1t1d0s0 -n zfs1009 -p rpool
    

    С помощью этой команды устанавливаются наборы данных в корневом пуле для новой среды загрузки и текущая среда загрузки (включая зоны) копируется в эти наборы данных.

  5. Активируйте новую среду загрузки ZFS. Пример:


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    c1t1d0s0                   yes      yes    yes       no     -         
    zfs1009BE                  yes      no     no        yes    -         
    # luactivate zfs1009BE       
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs1009BE>.
    .
    .
    .
  6. Перезагрузите систему.


    # init 6
    
  7. Убедитесь в том, что в новой среде загрузки созданы файловые системы ZFS и зоны. Пример:


    # zfs list
    NAME                                USED  AVAIL  REFER  MOUNTPOINT
    rpool                              6.17G  60.8G    98K  /rpool
    rpool/ROOT                         4.67G  60.8G    21K  /rpool/ROOT
    rpool/ROOT/zfs1009BE               4.67G  60.8G  4.67G  /
    rpool/dump                         1.00G  60.8G  1.00G  -
    rpool/swap                          517M  61.3G    16K  -
    zonepool                            634M  7.62G    24K  /zonepool
    zonepool/zones                      270K  7.62G   633M  /zonepool/zones
    zonepool/zones-c1t1d0s0             634M  7.62G   633M  /zonepool/zones-c1t1d0s0
    zonepool/zones-c1t1d0s0@zfs1009BE   262K      -   633M  -
    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       - zfszone          installed  /zonepool/zones                native   shared

Пример 5–7 Перенос корневой файловой системы UFS с корнем зоны в корневую файловую систему ZFS

В этом примере выполняется перенос системы Solaris 10 10/09 с корневой файловой системой UFS и корнем зоны (/uzone/ufszone) и некорневым пулом ZFS (pool), а также корнем зоны (/pool/zfszone) на корневую файловую систему ZFS. Перед началом переноса следует убедиться в том, что создан корневой пул ZFS, а зоны установлены и загружены.


# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   2 ufszone          running    /uzone/ufszone                 native   shared
   3 zfszone          running    /pool/zones/zfszone            native   shared

# lucreate -c ufs1009BE -n zfs1009BE -p rpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <ufs509BE>.
Creating initial configuration for primary boot environment <ufs509BE>.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <ufs1009BE> PBE Boot Device </dev/dsk/c1t0d0s0>.
Comparing source boot environment <ufs1009BE> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
The device </dev/dsk/c1t1d0s0> is not a root device for any boot environment; cannot get BE ID.
Creating configuration for boot environment <zfs1009BE>.
Source boot environment is <ufs1009BE>.
Creating boot environment <zfs1009BE>.
Creating file systems on boot environment <zfs1009BE>.
Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfs1009BE>.
Populating file systems on boot environment <zfs1009BE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Copying root of zone <ufszone> to </.alt.tmp.b-EYd.mnt/uzone/ufszone>.
Creating snapshot for <pool/zones/zfszone> on <pool/zones/zfszone@zfs1009BE>.
Creating clone for <pool/zones/zfszone@zfs1009BE> on <pool/zones/zfszone-zfs1009BE>.
Creating compare databases for boot environment <zfs1009BE>.
Creating compare database for file system </rpool/ROOT>.
Creating compare database for file system </>.
Updating compare databases on boot environment <zfs1009BE>.
Making boot environment <zfs1009BE> bootable.
Creating boot_archive for /.alt.tmp.b-DLd.mnt
updating /.alt.tmp.b-DLd.mnt/platform/sun4u/boot_archive
Population of boot environment <zfs1009BE> successful.
Creation of boot environment <zfs1009BE> successful.
# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
ufs1009BE                  yes      yes    yes       no     -         
zfs1009BE                  yes      no     no        yes    -         
# luactivate zfs1009BE    
.
.
.
# init 6
.
.
.
# zfs list
NAME                                    USED  AVAIL  REFER  MOUNTPOINT
pool                                    628M  66.3G    19K  /pool
pool/zones                              628M  66.3G    20K  /pool/zones
pool/zones/zfszone                     75.5K  66.3G   627M  /pool/zones/zfszone
pool/zones/zfszone-ufs1009BE            628M  66.3G   627M  /pool/zones/zfszone-ufs1009BE
pool/zones/zfszone-ufs1009BE@zfs1009BE   98K      -   627M  -
rpool                                  7.76G  59.2G    95K  /rpool
rpool/ROOT                             5.25G  59.2G    18K  /rpool/ROOT
rpool/ROOT/zfs1009BE                   5.25G  59.2G  5.25G  /
rpool/dump                             2.00G  59.2G  2.00G  -
rpool/swap                              517M  59.7G    16K  -
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - ufszone          installed  /uzone/ufszone                 native   shared
   - zfszone          installed  /pool/zones/zfszone            native   shared

Поддержка устройств подкачки и дампа в ZFS

Во время начальной установки или операции Solaris Live Upgrade из файловой системы UFS в томе ZFS корневого пула ZFS создается область подкачки. Например:


# swap -l
swapfile                  dev    swaplo   blocks     free
/dev/zvol/dsk/mpool/swap 253,3        16  8257520  8257520

Во время начальной установки или операции Solaris Live Upgrade из файловой системы UFS в томе ZFS корневого пула ZFS создается устройство дампа. После создания устройство дампа не требует администрирования. Пример:


# dumpadm
      Dump content: kernel pages
       Dump device: /dev/zvol/dsk/mpool/dump (dedicated)
Savecore directory: /var/crash/t2000
  Savecore enabled: yes

Сведения о размерах тома подкачки и тома для дампа, создаваемых программой установки, представлены в документе Требования к установке Solaris и Solaris Live Upgrade для поддержки ZFS .

Размер тома подкачки и размер тома для дампа можно регулировать во время установки и после нее. Дополнительная информация приведена в разделе Изменение размеров устройств свопинга и дампа ZFS.

При работе с устройствами подкачки и дампа в ZFS учитывайте следующее:

Изменение размеров устройств свопинга и дампа ZFS

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

Загрузка с корневой файловой системы ZFS

Компьютеры архитектуры SPARC и x86 используют новый стиль загрузки – с помощью загрузочного архива, который представляет собой образ файловой системы, содержащий файлы для загрузки. При загрузке с корневой файловой системы ZFS имена путей файлов архива и ядра разрешаются в корневой файловой системе, которая выбрана для загрузки.

Когда система загружается для установки, диск ОЗУ используется для корневой файловой системы в продолжение всего процесса установки, что избавляет от необходимости загружаться со съемного носителя.

Если проводится начальная установка выпуска Solaris 10 10/08 или 10 5/09, либо используется Solaris Live Upgrade для миграции этого выпуска в корневую файловую систему ZFS на компьютерах архитектуры SPARC и x86, загрузку можно выполнять из корневой файловой системы ZFS.

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

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

Загрузка с другого диска в зеркалируемом корневом пуле ZFS

Можно создать зеркалируемый корневой пул ZFS при установке системы или прикрепить диск для создания зеркалируемого корневого пула ZFS после установки. Ознакомьтесь со следующими известными проблемами зеркалируемых корневых пулов ZFS:

Загрузка из корневой файловой системы ZFS на компьютере архитектуры SPARC

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

Во время установки и выполнения Solaris Live Upgrade корневая файловая система ZFS выбирается автоматически с помощью свойства bootfs.

В пуле может существовать несколько загружаемых наборов данных. По умолчанию запись загружаемого набора данных в файле /pool-name/boot/menu.lst определяется по свойству bootfs этого пула. Однако запись menu.lst может содержать команду bootfs, которая указывает альтернативный набор данных в пуле. Таким образом, файл menu.lst может содержать записи для нескольких корневых файловых систем в данном пуле.

При установке системы с корневой файловой системой ZFS или переходе в корневую файловую систему ZFS в файл menu.lst добавляется запись, подобная следующей:


title zfs1009BE
bootfs rpool/ROOT/zfs1009BE
title zfs509BE
bootfs rpool/ROOT/zfs509BE

При создании новой среды загрузки в файл menu.lst автоматически вносятся изменения.

На компьютерах с архитектурой SPARC доступны два новых параметра загрузки:


Пример 5–8 Загрузка из конкретной среды загрузки ZFS

Если в пуле устройств хранения ZFS на загрузочном устройстве вашего компьютера есть несколько сред загрузки ZFS, можно использовать для указания BE по умолчанию команду luactivate.

Например, доступны следующие среды загрузки ZFS, описанные выводом команды lustatus:


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE                  yes      yes    yes       no     -         
zfs509BE                   yes      no     no        yes    -         

Если на компьютере с архитектурой SPARC есть несколько сред загрузки ZFS, можно использовать команду boot - L. Пример:


ok boot -L
Rebooting with command: boot -L
Boot device: /pci@8,600000/SUNW,qlc@2/fp@0,0/disk@w500000e01082bbd1,0:a  File and args: -L
1 zfs1009BE
2 zfs509BE
Select environment to boot: [ 1 - 2 ]: 2
ok boot -Z rpool/ROOT/zfs509BE


Пример 5–9 SPARC: загрузка файловой системы ZFS в отказоустойчивом режиме

На компьютерах с архитектурой SPARC можно загружаться из отказоустойчивого архива, расположенного в каталоге / /platform/`uname -i`/failsafe, следующим образом. Пример:


ok boot -F failsafe

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


ok boot -Z rpool/ROOT/zfs1009BE -F failsafe

Загрузка из корневой файловой системы ZFS на компьютерах архитектуры x86

Следующие записи добавляются в файл /pool-name /boot//grub/menu.lst в процессе установки или операции Solaris Live Upgrade для автоматической загрузки ZFS:


title Solaris 10 10/09 s10x_u8wos_07b X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

Если устройство, опознанное GRUB как загрузочное устройство, содержит пул устройств хранения ZFS, файл menu.lst используется для создания меню GRUB.

На компьютерах с архитектурой x86 с несколькими ZFS BE можно выбрать BE в меню GRUB. Если корневая файловая система, соответствующая этому пункту меню, представляет собой набор данных ZFS, добавляется следующий параметр.


-B $ZFS-BOOTFS

Пример 5–10 x86: загрузка файловой системы ZFS

При загрузке с использованием файловой системы ZFS корневое устройство указывается параметром - B $ZFS-BOOTFS команды boot в строке kernel или module пункта меню GRUB. Это значение, как и для всех остальных параметров, указываемых параметром -B, передается из GRUB в ядро. Пример:



title Solaris 10 10/09 s10x_u8wos_07b X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

Пример 5–11 x86: загрузка файловой системы ZFS в отказоустойчивом режиме

Отказоустойчивый архив x86 –/boot//x86.miniroot-safe. Его можно загрузить, выбрав пункт Solaris failsafe в меню GRUB. Пример:


title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

Устранение проблем с точками монтирования ZFS, которые препятствуют успешной загрузке

Для смены активной среды загрузки лучше всего использовать команду luactivate. Если не удается выполнить загрузку активной среды из-за неверного исправления или ошибки настройки, единственный способ загрузить другую среду – выбрать ее во время загрузки. Альтернативную среду загрузки можно выбрать в меню GRUB на компьютере архитектуры x86 или загрузить ее явным образом из ППЗУ на компьютере архитектуры SPARC.

В результате ошибки функции Live Upgrade в версии Solaris 10 10/08 неактивная среда загрузки может не загрузиться из-за неверной точки монтирования для наборов данных ZFS или набора данных ZFS зоны в среде загрузки. Та же ошибка не позволяет выполнить монтирование среды загрузки при наличии отдельного набора данных /var.

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

ProcedureРазрешение проблем с точками монтирования в системе ZFS

  1. Загрузите систему из отказоустойчивого архива.

  2. Импортируйте пул.

    Пример:


    # zpool import rpool
    
  3. После импорта пула просмотрите выходные данные команды zfs list.

    Найдите неверные временные точки монтирования. Пример:


    # zfs list -r -o name,mountpoint rpool/ROOT/s10u6
        
        NAME                               MOUNTPOINT
        rpool/ROOT/s10u6                   /.alt.tmp.b-VP.mnt/
        rpool/ROOT/s10u6/zones             /.alt.tmp.b-VP.mnt//zones
        rpool/ROOT/s10u6/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

    Точкой монтирования для среды загрузки корневой системы (rpool/ROOT/s10u6) должна быть /.

    Если выполнить загрузку не удается из-за проблем с монтированием /var, найдите подобную временную точку монтирования для набора данных /var.

  4. Переопределите точки монтирования для среды загрузки системы ZFS и ее наборов данных.

    Пример:


    # zfs inherit -r mountpoint rpool/ROOT/s10u6
    # zfs set mountpoint=/ rpool/ROOT/s10u6
    
  5. Перезагрузите систему.

    Если в меню GRUB или командах ППЗУ OpenBoot имеется возможность выбора конкретной среды загрузки, выберите среду загрузки с исправленными точками монтирования.

Восстановление корневого пула ZFS или снимков корневого пула

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

ProcedureЗамена диска в корневом пуле ZFS

Замена диска в корневом пуле может потребоваться в следующих случаях:

Определите пути к загрузочным устройствам для имеющегося и нового диска, чтобы протестировать загрузку с диска, подготовленного для замены, а также для загрузки вручную с имеющегося диска, что может потребоваться в случае отказа нового диска. В примере, приведенном ниже, текущий диск корневого пула (c1t10d0s0), имеет следующий путь:


/pci@8,700000/pci@3/scsi@5/sd@a,0

В примере, приведенном ниже, загрузочный диск, подготовленный для замены (c4t0d0s0), имеет следующий путь:


/pci@8,700000/pci@3/scsi@5/sd@9,0
  1. Подключите требуемые кабели к диску, подготовленному для замены.

  2. Убедитесь, что новый диск имеет метку SMI и подраздел 0.

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

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  3. Подключите новый диск к корневому пулу.

    Пример:


    # zpool attach rpool c1t10d0s0 c4t0d0s0
    
  4. Подтвердите состояние корневого пула.

    Пример:


    # zpool status rpool
      pool: rpool
     state: ONLINE
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scrub: resilver in progress, 25.47% done, 0h4m to go
    config:
    
            NAME          STATE     READ WRITE CKSUM
            rpool         ONLINE       0     0     0
              mirror      ONLINE       0     0     0
                c1t0d0s0  ONLINE       0     0     0
                c1t5d0s0  ONLINE       0     0     0
    
    errors: No known data errors
  5. После завершения переноса актуальных данных к новому диску следует применить загрузочные блоки.

    Пример:

    Система на основе SPARC:


    # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t5d0s0
    

    Система на основе x86:


    # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t5d0s0
    
  6. Убедитесь в возможности загрузки с нового диска.

    Пример для системы на основе SPARC:


    ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
    
  7. Если систему удается загрузить с нового диска, старый можно отсоединить.

    Пример:


    # zpool detach rpool c1t0d0s0
    
  8. Настройка автоматической загрузки системы с нового диска выполняется либо командой eeprom, либо командой setenv из загрузочного ППЗУ SPARC, либо перенастройкой ПЗУ ПК.

Procedure Создание снимков корневого пула

Создание снимков корневого пула в целях восстановления. Рекомендуемый способ создания снимков корневого пула заключается в создании рекурсивного снимка корневого пула.

Описанная ниже процедура позволяет создать рекурсивный снимок корневого пула и сохранить его в виде файла в пуле удаленной системы. В случае сбоя корневого пула удаленный набор данных можно смонтировать с помощью NFS, после чего получить файл снимка в восстановленный пул. Кроме того, снимки корневого пула можно сохранить в качестве текущих в пуле удаленной системы. Отправка снимков для удаленной системы и получение их является несколько более сложным, так как необходимо выполнить настройку ssh или использовать rsh, загрузив подлежащую восстановлению систему из миникорня ОС Solaris.

Информация об удаленном сохранении и восстановлении снимков корневого пула и наиболее актуальные сведения о восстановлении корневога пула представлена на следующей странице:

http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

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

В приведенном ниже примере выполняется загрузка системы из среды загрузки zfs1009BE.

  1. Освобождение дискового пространства на удаленной системе для хранения снимков.

    Пример:


    remote# zfs create rpool/snaps
    
  2. Совместное использование дискового пространства с локальной системой.

    Пример:


    remote# zfs set sharenfs='rw=local-system,root=local-system' rpool/snaps
    # share
    -@rpool/snaps   /rpool/snaps   sec=sys,rw=local-system,root=local-system   "" 
  3. Создание рекурсивного снимка корневого пула.


    local# zfs snapshot -r rpool@0804
    local# zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT
    rpool                      6.17G  60.8G    98K  /rpool
    rpool@0804                     0      -    98K  -
    rpool/ROOT                 4.67G  60.8G    21K  /rpool/ROOT
    rpool/ROOT@0804                0      -    21K  -
    rpool/ROOT/zfs1009BE       4.67G  60.8G  4.67G  /
    rpool/ROOT/zfs1009BE@0804   386K      -  4.67G  -
    rpool/dump                 1.00G  60.8G  1.00G  -
    rpool/dump@0804                0      -  1.00G  -
    rpool/swap                  517M  61.3G    16K  -
    rpool/swap@0804                0      -    16K  -
  4. Перешлите снимки корневого пула на удаленную систему.

    Пример:


    local# zfs send -Rv rpool@0804 > /net/remote-system/rpool/snaps/rpool.0804
    sending from @ to rpool@0804
    sending from @ to rpool/swap@0804
    sending from @ to rpool/ROOT@0804
    sending from @ to rpool/ROOT/zfs1009BE@0804
    sending from @ to rpool/dump@0804

Procedure Повторное создание корневого пула ZFS и восстановление снимков корневого пула

В рамках этого сценария предположим, что действуют следующие условия:

Все действия, приведенные ниже, выполняются на локальной системе.

  1. Загрузка с компакт-диска/диска DVD или сети.

    В системе на основе SPARC выберите один из следующих методов загрузки:


    ok boot net -s
    ok boot cdrom -s
    

    Если не используется параметр -s, из программы установки придется выйти.

    В системах на основе x86 укажите параметр для загрузки с диска DVD или из сети. После этого выйдите из программы установкию

  2. Смонтируйте набор данных с удаленным снимком.

    Пример:


    # mount -F nfs remote-system:/rpool/snaps /mnt
    

    Если сетевые службы не настроены, может потребоваться указать IP-адрес удаленной системы.

  3. Если диск с корневым пулом заменен, и на нем отсутствует метка диска, пригодная для использования файловой системой ZFS, метку диска придется изменить.

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

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  4. Воссоздайте корневой пул.

    Пример:


    # zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=
    /etc/zfs/zpool.cache rpool c1t1d0s0
    
  5. Восстановление снимков корневого пула

    Это действие может занять некоторое время. Пример:


    # cat /mnt/rpool.0804 | zfs receive -Fdu rpool
    
  6. Убедитесь в том, что наборы данных корневого пула восстановлены.

    Пример:


    # zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT
    rpool                      6.17G  60.8G    98K  /a/rpool
    rpool@0804                     0      -    98K  -
    rpool/ROOT                 4.67G  60.8G    21K  /legacy
    rpool/ROOT@0804                0      -    21K  -
    rpool/ROOT/zfs1009BE       4.67G  60.8G  4.67G  /a
    rpool/ROOT/zfs1009BE@0804   398K      -  4.67G  -
    rpool/dump                 1.00G  60.8G  1.00G  -
    rpool/dump@0804                0      -  1.00G  -
    rpool/swap                  517M  61.3G    16K  -
    rpool/swap@0804                0      -    16K  -
  7. Настройте свойство bootfs в среде загрузки корневого пула.

    Пример:


    # zpool set bootfs=rpool/ROOT/zfs1009BE rpool
    
  8. Установите загрузочные блоки на новый диск.

    Система на основе SPARC:


    # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t5d0s0
    

    Система на основе x86:


    # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t5d0s0
    
  9. Перезагрузите систему.


    # init 6
    

Procedure Откат предыдущих снимков корневого пула при загрузке в безопасном режиме

Для выполнения этой процедуры должны быть доступны существующие снимки корневого пула. В этом примере снимки корневого пула расположены на локальной системе. Пример:


# zfs snapshot -r rpool@0804
# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT
rpool                      6.17G  60.8G    98K  /rpool
rpool@0804                     0      -    98K  -
rpool/ROOT                 4.67G  60.8G    21K  /rpool/ROOT
rpool/ROOT@0804                0      -    21K  -
rpool/ROOT/zfs1009BE       4.67G  60.8G  4.67G  /
rpool/ROOT/zfs1009BE@0804   398K      -  4.67G  -
rpool/dump                 1.00G  60.8G  1.00G  -
rpool/dump@0804                0      -  1.00G  -
rpool/swap                  517M  61.3G    16K  -
rpool/swap@0804                0      -    16K  -
  1. Завершите работу системы и выполните загрузку в безопасном режиме.


    ok boot -F failsafe
    Multiple OS instances were found. To check and mount one of them
    read-write under /a, select it from the following list. To not mount
    any, select 'q'.
    
     1  /dev/dsk/c1t1d0s0              Solaris 10 10/09 s10s_u8wos_04 SPARC
     2  rpool:11306141908645873833     ROOT/zfs10092BE
    
    Please select a device to be mounted (q for none) [?,??,q]: 2
    mounting rpool on /a
    
    Starting shell.
  2. Выполните откат отдельных снимков корневого пула.


    # zfs rollback -rf rpool@0804
    # zfs rollback -rf rpool/ROOT@0804
    # zfs rollback -rf rpool/ROOT/zfs1009BE@0804
    
  3. Выполните перезагрузку обратно в многопользовательский режим.


    # init 6