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

Загрузка с корневой файловой системы 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 имеется возможность выбора конкретной среды загрузки, выберите среду загрузки с исправленными точками монтирования.