В следующих примерах показан перенос с корневой файловой системы 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.
Создание среды загрузки 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. |
Можно обновить среду загрузки ZFS с помощью дополнительных пакетов или исправлений.
Основной процесс выглядит следующим образом:
Создайте другую среду загрузки с помощью команды lucreate.
Активируйте другую среду загрузки и загрузитесь из нее.
Обновите основную среду загрузки ZFS командой luupgrade для добавления пакетов или исправлений.
# 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. |