Oracle Guia de instalação do Solaris 10 9/10: Solaris Live Upgrade e planejamento da atualização

Migrando um sistema de arquivos UFS para um sistema de arquivos ZFS

Esse procedimento descreve como migrar um sistema de arquivos UFS para um sistema de arquivos ZFS. Criar um ambiente e inicialização fornece um método de copiar sistema de arquivos críticos de um ambiente de inicialização UFS ativo para um conjunto raiz ZFS. O comando lucreate copia os sistemas de arquivos críticos para um novo ambiente de inicialização em um conjunto raiz ZFS existente. Sistemas de arquivos (compartilháveis) definidos pelo usuário não são copiados e não são compartilhados com o ambiente de inicialização UFS fonte. Além disso, /swap não é compartilhado entre o sistema de arquivos UFS e o conjunto raiz ZFS. Para uma visão geral de sistemas de arquivos críticos e compartilháveis, consulte Tipos de sistemas de arquivos.

ProcedureHow to Migrate a UFS File System to a ZFS File System


Observação –

Para migrar um sistema de arquivos (/) UFS raiz para um conjunto raiz ZFS, é necessário fornecer o nome do conjunto raiz. Os sistemas de arquivos críticos são copiados no conjunto raiz.


  1. Antes de executar o Solaris Live Upgrade pela primeira vez, é necessário instalar os pacotes do Solaris Live Upgrade mais recentes a partir da mídia de instalação e instalar os patches listados no SunSolve Infodoc 206844. Pesquise pelo Infodoc 206844 (formalmente 72099) no site SunSolve.

    Os pacotes e patches mais recentes garantem que você possua todas as últimas correções de erros e novos recursos dessa versão. Assegure-se de que foram instalados todos os patches que são relevantes para o sistema antes de continuar para criar um novo ambiente de inicialização.

    As subetapas a seguir descrevem as etapas no SunSolve Infodoc 206844.


    Observação –

    Utilizar o Solaris Live Upgrade para criar os novos ambientes de inicialização ZFS exige, pelo menos, que a versão 10 10/08 do Solaris esteja instalada. Versões anteriores não possuem o software Solaris Live Upgrade e ZFS para efetuar as tarefas.


    1. Torne-se superusuário ou assuma uma função equivalente.


      Observação –

      Funções contêm autorizações e comandos privilegiados. Para mais informações sobre funções, consulte Configuring RBAC (Task Map) no System Administration Guide: Security Services.


    2. Do site SunSolve, siga as instruções no Infodoc 206844 para remover e adicionar pacotes Solaris Live Upgrade.

      Os três pacotes Solaris Live Upgrade, SUNWluu, SUNWlur e SUNWlucfg, incluem o software necessário para atualizar utilizando o Solaris Live Upgrade. Esses pacotes incluem o software existente, novos recursos e correções de erros. Se você não remover os pacotes existentes e instalar os novos pacotes no sistema antes de utilizar o Solaris Live Upgrade, a atualização para a versão de destino falha. O pacote SUMWlucfg é o novo iniciando com a versão 10 8/07 do Solaris. Se você estiver utilizando os pacotes Solaris Live Upgrade de uma versão anterior ao Solaris 10 8/07, não é necessário remover esse pacote.


      # pkgrm SUNWlucfg SUNWluu SUNWlur
      
    3. Instale os novos pacotes Solaris Live Upgrade da versão para a qual você está atualizando. Para instruções, consulte  Instalando o Solaris Live Upgrade.

    4. Antes de executar o Solaris Live Upgrade, é necessário instalar os patches a seguir. Esses patches garantem que você possua todas as últimas correções de erros e novos recursos dessa versão.

      Assegure-se de que você possua a lista de patch mais atualizada consultando SunSolve. Pesquise pelo Infodoc 206844 (formalmente 72099) no site SunSolve.

      • Se você estiver armazenando os patches em um disco local, crie um diretório como /var/tmp/lupatches e baixe os patches para este diretório.

      • Obtenha a lista de patches a partir do site SunSolve .

      • Altere para o diretório de patch.


        # cd /var/tmp/lupatches
        
      • Instale os patches com o comando patchadd.


        # patchadd patch_id
        

        patch_id é o número ou números de patch. Separe vários nomes de patch com um espaço.


        Observação –

        Os patches precisam ser aplicados na ordem especificada no Infodoc 206844.


      • Reinicialize o sistema se necessário. Certos patches necessitam de uma reinicialização para ser efetivados.

        apenas x86 : se o sistema não for inicializado o Solaris Live Upgrade falha.


        # init 6
        

        Agora, você possui os pacotes e os patches necessários para efetuar uma migração com sucesso.

  2. Crie um conjunto raiz ZFS.

    O conjunto raiz ZFS deve estar em um segmento único para ser inicializável e atualizável.


    # zpool create rpool  c0t1d0s5
    
    rpool

    Especifique o nome do novo conjunto raiz ZFS a ser criado.

    c0t1d0s5

    Crie o novo conjunto raiz no segmento de disco, c0t1d0s5 .

    Para obter informações sobre como criar um novo conjunto raiz, consulte Guia de administração do ZFS Oracle Solaris.

  3. Migre o sistema de arquivo (/) raiz UFS para o novo conjunto raiz ZFS.


    # lucreate [-c ufsBE] -n new-zfsBE -p rpool
    
    -c ufsBE

    Atribua o nome ufsBE para o ambiente de inicialização UFS atual. Essa opção não é necessária e é utilizada apenas quando o primeiro ambiente de inicialização é criado. Se você executar o comando lucreate pela primeira vez e omitir a opção -c, o software cria um nome padrão.

    -n new-zfsBE

    Atribua o nome new-zfsBE para o ambiente de inicialização a ser criado. O nome deve ser único no sistema.

    -p rpool

    Coloca o sistema de arquivos (/) ZFS raiz recém criado no conjunto raiz ZFS definido em rpool.

    A criação do novo ambiente de inicialização ZFS pode demorar. Os dados do sistema de arquivos UFS estão sendo copiados para o conjunto raiz ZFS. Quando o ambiente de inicialização inativo for criado, é possível utilizar o comando luupgrade ou luactivate para atualizar ou ativar o novo ambiente de inicialização ZFS.

  4. (Opcional) Verifique se o ambiente de inicialização está concluído.

    Neste exemplo, o comando lustatus informa se a criação do ambiente de inicialização foi concluída e inicializada.


    # lustatus
    boot environment   Is         Active   Active     Can	    Copy 
    Name               Complete   Now	  OnReboot   Delete	 Status 
    -----------------------------------------------------------------
    ufsBE               yes       yes      yes        no         -
    new-zfsBE           yes       no       no        yes         -
  5. (Opcional) Verifique as informações básicas do conjunto de dados no sistema.

    O comando list exibe os nomes de todos os conjuntos de dados do sistema. Neste exemplo, rpool é o nome do conjunto ZFS e new-zfsBE é o nome do ambiente de inicialização ZFS recém criado.


    # zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT 
    rpool                      9.29G  57.6G    20K  /rpool
    rpool/ROOT                 5.38G  57.6G    18K  /rpool/ROOT
    rpool/ROOT/new-zfsBE       5.38G  57.6G   551M  /tmp/.alt.luupdall.110034
    rpool/dump                 1.95G      -  1.95G  - 
    rpool/swap                 1.95G      -  1.95G  - 

    Os pontos de montagem listados para o novo ambiente de inicialização são temporários até que o comando luactivate seja executado. Os volumes /dump e /swap não são compartilhados com o ambiente de inicialização UFS original, mas são compartilhados no conjunto raiz ZFS e os ambientes de inicialização no conjunto raiz.

    Agora é possível atualizar e ativar o novo ambiente de inicialização. Consulte Exemplo 13–1.


Exemplo 13–1 Migrando um sistema de arquivos (/) raiz UFS para um conjunto raiz ZFS

Neste exemplo, o novo conjunto raiz ZFS, rpool, é criado em um segmento separado, C0t0d0s4. O comando lucreate migra o ambiente de inicialização UFS atualmente em execução, c0t0d0, para o novo ambiente de inicialização ZFS, new-zfsBE, e coloca o novo ambiente de inicialização no rpool.


# zpool create rpool C0t0d0s4

# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT 
rpool                      9.29G  57.6G    20K  /rpool
# lucreate -c c0t0d0 -n new-zfsBE -p rpool
Analyzing system configuration.
Current boot environment is named <c0t0d0>.
Creating initial configuration for primary boot environment <c0t0d0>.
The device </dev/dsk/c0t0d0> is not a root device for any boot 
environment; cannot get BE ID.
PBE configuration successful: PBE name <c0t0d0> PBE Boot Device 
</dev/dsk/c0t0d0>.
Comparing source boot environment <c0t0d0> 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/c1t0d0s0> is not a root device for any boot 
environment; cannot get BE ID.
Creating configuration for boot environment <new-zfsBE>.
Source boot environment is <c0t0d0>.
Creating boot environment <new-zfsBE>.
Creating file systems on boot environment <new-zfsBE>.
Creating <zfs> file system for </> in zone <global> on 
<rpool/ROOT/new-zfsBE>.
Populating file systems on boot environment <new-zfsBE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Creating compare databases for boot environment <zfsBE>.
Creating compare database for file system </>.
Making boot environment <zfsBE> bootable.
Creating boot_archive for /.alt.tmp.b-cBc.mnt
updating /.alt.tmp.b-cBc.mnt/platform/sun4u/boot_archive
Population of boot environment <new-zfsBE> successful.
Creation of boot environment <new-zfsBE> successful.

# lustatus
boot environment   Is         Active   Active     Can	    Copy 
Name               Complete   Now	  OnReboot   Delete	 Status 
------------------------------------------------------------------------ 
c0t0d0             yes       yes      yes        no         - 
new-zfsBE           yes       no       no        yes       -

# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT 
rpool                      9.29G  57.6G    20K  /rpool
rpool/ROOT                 5.38G  57.6G    18K  /rpool/ROOT
rpool/ROOT/zfsBE           5.38G  57.6G   551M  
rpool/ROOT/new-zfsBE       5.38G  57.6G   551M  /tmp/.alt.luupdall.110034
rpool/dump                 1.95G      -  1.95G  - 
rpool/swap                 1.95G      -  1.95G  - 

Agora é possível atualizar e ativar o novo ambiente de inicialização.

Neste exemplo, o novo ambiente de inicialização é atualizado utilizando o comando luupgrade a partir de uma imagem armazenada no local indicado com a opção -s.


# luupgrade -n zfsBE -u -s /net/install/export/s10/combined.s10
 51135 blocks 
miniroot filesystem is <lofs>
Mounting miniroot at 
</net/install/export/solaris_10/combined.solaris_10_wos
/Solaris_10/Tools/Boot> 
Validating the contents of the media 
</net/install/export/s10/combined.s10>. 
The media is a standard Solaris media. 
The media contains an operating system upgrade image. 
The media contains Solaris version <10_1008>. 
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 <zfsBE>. 
Determining packages to install or upgrade for BE <zfsBE>. 
Performing the operating system upgrade of the BE <zfsBE>. 
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. 
Adding operating system patches to the BE <zfsBE>. 
The operating system patch installation is complete. 
INFORMATION: The file /var/sadm/system/logs/upgrade_log on boot 
environment <zfsBE> contains a log of the upgrade operation. 
INFORMATION: The file var/sadm/system/data/upgrade_cleanup on boot 
environment <zfsBE> contains a log of cleanup operations required. 
INFORMATION: Review the files listed above. Remember that all 
of the files are located on boot environment <zfsBE>. 
Before you activate boot environment <zfsBE>, 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 <zfsBE> is complete.

O novo ambiente de inicialização pode ser ativado a qualquer momento depois de sua criação.


# luactivate new-zfsBE
**********************************************************************

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.

**********************************************************************
In case of a failure while booting to the target BE, the following process 
needs to be followed to fallback to the currently working boot environment:

1. Enter the PROM monitor (ok prompt).

2. Change the boot device back to the original boot environment by typing:

     setenv boot-device /pci@1f,0/pci@1/scsi@4,1/disk@2,0:a

3. Boot to the original boot environment by typing:

     boot

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

Modifying boot archive service
Activation of boot environment <new-zfsBE> successful.

Reinicialize o sistema para o ambiente de inicialização ZFS.


# init 6
# svc.startd: The system is coming down.  Please wait.
svc.startd: 79 system services are now being stopped.
.
.
.

Se você retroceder para o ambiente de inicialização UFS, então é necessário importar novamente quaisquer conjuntos de armazenamento ZFS que foram criados no ambiente de inicialização ZFS, porque eles não estão automaticamente disponíveis no ambiente de inicialização UFS. Você verá mensagens semelhantes ao exemplo a seguir quando voltar para o ambiente de inicialização UFS.


# luactivate c0t0d0
WARNING: The following files have changed on both the current boot 
environment <new-zfsBE> zone <global> and the boot environment 
to be activated <c0t0d0>:
 /etc/zfs/zpool.cache
INFORMATION: The files listed above are in conflict between the current 
boot environment <zfsBE> zone <global> and the boot environment to be 
activated <c0t0d0>. These files will not be automatically synchronized 
from the current boot environment <new-zfsBE> when boot environment <c0t0d0>