Professional Documents
Culture Documents
Copyright 2006, 2011, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados e de titularidade da Oracle Corporation. Proibida a reproduo total ou parcial. Este programa de computador e sua documentao so fornecidos sob um contrato de licena que contm restries sobre seu uso e divulgao, sendo tambm protegidos pela legislao de propriedade intelectual. Exceto em situaes expressamente permitidas no contrato de licena ou por lei, no permitido usar, reproduzir, traduzir, divulgar, modificar, licenciar, transmitir, distribuir, expor, executar, publicar ou exibir qualquer parte deste programa de computador e de sua documentao, de qualquer forma ou atravs de qualquer meio. No permitida a engenharia reversa, a desmontagem ou a descompilao deste programa de computador, exceto se exigido por lei para obter interoperabilidade. As informaes contidas neste documento esto sujeitas a alterao sem aviso prvio. A Oracle Corporation no garante que tais informaes estejam isentas de erros. Se voc encontrar algum erro, por favor, nos envie uma descrio de tal problema por escrito. Se este programa de computador, ou sua documentao, for entregue / distribudo(a) ao Governo dos Estados Unidos ou a qualquer outra parte que licencie os Programas em nome daquele Governo, a seguinte nota ser aplicvel: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065. Este programa de computador foi desenvolvido para uso em diversas aplicaes de gerenciamento de informaes. Ele no foi desenvolvido nem projetado para uso em aplicaes inerentemente perigosas, incluindo aquelas que possam criar risco de leses fsicas. Se utilizar este programa em aplicaes perigosas, voc ser responsvel por tomar todas e quaisquer medidas apropriadas em termos de segurana, backup e redundncia para garantir o uso seguro de tais programas de computador. A Oracle Corporation e suas afiliadas se isentam de qualquer responsabilidade por quaisquer danos causados pela utilizao deste programa de computador em aplicaes perigosas. Oracle e Java so marcas comerciais registradas da Oracle Corporation e/ou de suas empresas afiliadas. Outros nomes podem ser marcas comerciais de seus respectivos proprietrios. Intel e Intel Xeon so marcadas comerciais ou marcas comerciais registradas da Intel Corporation. Todas as marcas comerciais SPARC so usadas sob licena e so marcas comerciais ou marcas comerciais registradas da SPARC International, Inc. AMD, Opteron, o logotipo da AMD e o logotipo do AMD Opteron so marcas comerciais ou marcas comerciais registradas da Advanced Micro Devices. UNIX uma marca comercial registrada licenciada por meio do consrcio The Open Group. Este programa e sua documentao podem oferecer acesso ou informaes relativas a contedos, produtos e servios de terceiros. A Oracle Corporation e suas empresas afiliadas no fornecem quaisquer garantias relacionadas a contedos, produtos e servios de terceiros e esto isentas de quaisquer responsabilidades associadas a eles. A Oracle Corporation e suas empresas afiliadas no so responsveis por quaisquer tipos de perdas, despesas ou danos incorridos em conseqncia do acesso ou da utilizao de contedos, produtos ou servios de terceiros. Copyright 2006, 2011, Oracle et/ou ses affilis. Tous droits rservs. Ce logiciel et la documentation qui laccompagne sont protgs par les lois sur la proprit intellectuelle. Ils sont concds sous licence et soumis des restrictions dutilisation et de divulgation. Sauf disposition de votre contrat de licence ou de la loi, vous ne pouvez pas copier, reproduire, traduire, diffuser, modifier, breveter, transmettre, distribuer, exposer, excuter, publier ou afficher le logiciel, mme partiellement, sous quelque forme et par quelque procd que ce soit. Par ailleurs, il est interdit de procder toute ingnierie inverse du logiciel, de le dsassembler ou de le dcompiler, except des fins dinteroprabilit avec des logiciels tiers ou tel que prescrit par la loi. Les informations fournies dans ce document sont susceptibles de modification sans pravis. Par ailleurs, Oracle Corporation ne garantit pas quelles soient exemptes derreurs et vous invite, le cas chant, lui en faire part par crit. Si ce logiciel, ou la documentation qui laccompagne, est concd sous licence au Gouvernement des Etats-Unis, ou toute entit qui dlivre la licence de ce logiciel ou lutilise pour le compte du Gouvernement des Etats-Unis, la notice suivante sapplique : U.S. GOVERNMENT RIGHTS. Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065. Ce logiciel ou matriel a t dvelopp pour un usage gnral dans le cadre dapplications de gestion des informations. Ce logiciel ou matriel nest pas conu ni nest destin tre utilis dans des applications risque, notamment dans des applications pouvant causer des dommages corporels. Si vous utilisez ce logiciel ou matriel dans le cadre dapplications dangereuses, il est de votre responsabilit de prendre toutes les mesures de secours, de sauvegarde, de redondance et autres mesures ncessaires son utilisation dans des conditions optimales de scurit. Oracle Corporation et ses affilis dclinent toute responsabilit quant aux dommages causs par lutilisation de ce logiciel ou matriel pour ce type dapplications. Oracle et Java sont des marques dposes dOracle Corporation et/ou de ses affilis.Tout autre nom mentionn peut correspondre des marques appartenant dautres propritaires quOracle. AMD, Opteron, le logo AMD et le logo AMD Opteron sont des marques ou des marques dposes dAdvanced Micro Devices. Intel et Intel Xeon sont des marques ou des marques dposes dIntel Corporation. Toutes les marques SPARC sont utilises sous licence et sont des marques ou des marques dposes de SPARC International, Inc. UNIX est une marque dpose concd sous license par X/Open Company, Ltd.
111014@25097
Contedo
Prefcio ..................................................................................................................................................11
Sistema de arquivos Oracle Solaris ZFS (introduo) .................................................................... 15 O que h de novo no ZFS? .................................................................................................................. 15 Novos recursos de instalao do Oracle Solaris ZFS ................................................................ 17 Aprimoramentos no fluxo de envio do ZFS .............................................................................. 17 Diferenas do instantneo do ZFS (zfs diff) ..........................................................................17 Recuperao do pool de armazenamento do ZFS e aprimoramentos no desempenho ...... 18 Ajuste do comportamento sncrono do ZFS ............................................................................. 18 Mensagens aprimoradas do pool ZFS ........................................................................................ 19 Aprimoramentos de interoperabilidade ACL do ZFS ............................................................. 20 Dividindo um conjunto de armazenamento do ZFS espelhado (zpool split) ...................21 Novo processo do sistema ZFS ................................................................................................... 21 Aprimoramentos no comando zpool list ..............................................................................21 Recuperao do conjunto de armazenamento do ZFS ............................................................ 22 Aprimoramentos no dispositivo de log do ZFS ........................................................................ 22 RAID-Z de paridade tripla (raidz3) ......................................................................................... 23 Contendo instantneos do ZFS .................................................................................................. 23 Aprimoramentos de substituio de dispositivo do ZFS ......................................................... 23 Suporte de instalao do ZFS e Flash ......................................................................................... 25 Cotas de usurio e grupo do ZFS ................................................................................................ 25 Herana ACL de passar para permisses de executar ZFS ...................................................... 26 Aprimoramentos de propriedades do ZFS ............................................................................... 26 Recuperao do dispositivo de registro do ZFS ........................................................................ 29 Utilizando dispositivos de cache no conjunto de armazenamento do ZFS .......................... 30 Migrao de regio em um ambiente do ZFS ........................................................................... 31 Suporte inicializao e instalao do ZFS ............................................................................... 31 Revertendo um conjunto de dados sem desmontar ................................................................. 32
3
Contedo
Aprimoramentos no comando zfs send ..................................................................................32 Cotas e reservas do ZFS somente para dados do sistema de arquivos ................................... 33 Propriedades do pool de armazenamento do ZFS ................................................................... 33 Aprimoramentos no histrico do comando do ZFS (zpool history) ..................................34 Atualizando os sistemas de arquivos do ZFS (zfs upgrade) ...................................................34 Administrao delegada do ZFS ................................................................................................. 35 Configurando dispositivos de log do ZFS separados ............................................................... 35 Criando conjuntos de dados do ZFS intermedirios ............................................................... 36 Aprimoramentos de conexo automtica do ZFS .................................................................... 37 Renomear recursivamente instantneos do ZFS (zfs rename -r) .........................................38 gzip A compactao est disponvel para ZFS ......................................................................... 39 Armazenamento de vrias cpias de dados de usurio do ZFS .............................................. 39 Sada zpool status aprimorada ................................................................................................40 Aprimoramentos na iSCSI do Solaris e ZFS .............................................................................. 40 Histrico do comando ZFS (zpool history) ...........................................................................41 Melhorias das propriedades do ZFS ........................................................................................... 41 Exibindo todas as informaes do sistema de arquivos do ZFS ............................................. 42 Nova opo zfs receive -F ........................................................................................................43 Instantneos recursivos do ZFS .................................................................................................. 43 RAID-Z de paridade dupla (raidz2) ......................................................................................... 43 Sobressalentes para dispositivos do pool de armazenamento do ZFS ................................... 43 Substituindo um sistema de arquivos do ZFS por um clone do ZFS (zfs promote) ............44 Atualizando conjuntos de armazenamento do ZFS (zpool upgrade) ...................................44 Comandos de restaurao e backup do ZFS renomeados ....................................................... 44 Recuperando conjuntos de armazenamento destrudos ......................................................... 45 O ZFS integrado com o gerenciador de falhas ....................................................................... 45 O comando zpool clear .............................................................................................................45 Formato compacto da ACL NFSv4 ............................................................................................ 46 Ferramenta de monitoramento do sistema de arquivos (fsstat) ......................................... 46 Gerenciamento do ZFS baseado na Web .................................................................................. 46 O que ZFS? ......................................................................................................................................... 47 Armazenamento de ZFS em pool ............................................................................................... 47 Semnticas transacionais ............................................................................................................ 48 Somas de verificao e autocorreo de dados ......................................................................... 48 Escalabilidade no paralela ......................................................................................................... 49 Instantneos do ZFS .................................................................................................................... 49
4 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Contedo
Administrao simplificada ........................................................................................................ 49 Terminologia do ZFS .......................................................................................................................... 50 Requisitos para nomeao de componentes do ZFS ....................................................................... 52
Introduo ao ZFS do Oracle Solaris ................................................................................................. 55 Recomendaes e requisitos de software e hardware do ZFS ........................................................ 55 Criando um sistema de arquivos ZFS bsico .................................................................................... 56 Criando um pool de armazenamento do ZFS .................................................................................. 57 Como identificar os requisitos de armazenamento para o pool de armazenamento do ZFS ................................................................................................................................................. 57 Como criar um pool de armazenamento do ZFS ..................................................................... 57 Criando uma hierarquia de sistemas de arquivos ZFS .................................................................... 58 Como determinar a hierarquia do sistema de arquivos ZFS ................................................... 59 Como criar sistemas de arquivos ZFS ........................................................................................ 59
Diferenas entre o sistema de arquivos tradicional e o ZFS do Oracle Solaris .......................... 63 Granularidade do sistema de arquivos ZFS ...................................................................................... 63 Contabilidade de espao em disco do ZFS ....................................................................................... 64 Comportamento por espao excedido ...................................................................................... 64 Montando sistemas de arquivos ZFS ................................................................................................ 65 Gerenciamento de volume tradicional ............................................................................................. 65 Novo modelo de ACL do Solaris ........................................................................................................ 65
Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris ............................................ 67 Componentes de um pool de armazenamento do ZFS ................................................................... 67 Usando discos em um pool de armazenamento do ZFS .......................................................... 67 Usando faixas em um pool de armazenamento do ZFS .......................................................... 69 Usando arquivos em um pool de armazenamento do ZFS ..................................................... 70 Recursos de replicao de um pool de armazenamento do ZFS .................................................... 71 Configurao de pool de armazenamento espelhado .............................................................. 71 Configurao de pool de armazenamento RAID-Z ................................................................. 71 Pool armazenamento hbrido do ZFS ........................................................................................ 73 Dados de autocorreo em uma configurao redundante .................................................... 73 Distribuio dinmica em um pool de armazenamento ......................................................... 73 Criando e destruindo pools de armazenamento do ZFS ................................................................ 74
5
Contedo
Criando um pool de armazenamento do ZFS .......................................................................... 74 Exibindo informaes do dispositivo virtual do pool de armazenamento ........................... 79 Manipulando erros de criao do pool de armazenamento do ZFS ...................................... 80 Destruindo pools de armazenamento do ZFS .......................................................................... 83 Gerenciando dispositivos em pools de armazenamento do ZFS ................................................... 84 Adicionando dispositivos a um pool de armazenamento ....................................................... 84 Anexando e desanexando dispositivos em um pool de armazenamento .............................. 89 Criando um novo conjunto ao dividir um conjunto de armazenamento ZFS espelhado ... 91 Colocando dispositivos off-line e on-line em um pool de armazenamento ......................... 94 Limpando erros de dispositivo de conjunto de armazenamento ........................................... 97 Substituindo dispositivos em um pool de armazenamento .................................................... 97 Designando sobressalentes no pool de armazenamento ......................................................... 99 Gerenciando propriedades do pool de armazenamento do ZFS ................................................. 105 Consultando status de pool de armazenamento do ZFS .............................................................. 108 Exibindo informaes sobre os conjuntos de armazenamento ZFS .................................... 108 Visualizando estatsticas E/S para conjuntos de armazenamento ZFS ............................... 112 Determinando o status de integridade de pools de armazenamento do ZFS ..................... 114 Migrando pools de armazenamento do ZFS .................................................................................. 118 Preparando para migrao do pool de armazenamento do ZFS .......................................... 119 Exportando um pool de armazenamento do ZFS .................................................................. 119 Determinando pools de armazenamento disponveis para importao ............................. 120 Importando conjuntos de armazenamento ZFS de diretrios alternativos ........................ 122 Importando pools de armazenamento do ZFS ....................................................................... 122 Recuperando pools de armazenamento destrudos do ZFS .................................................. 126 Atualizando pools de armazenamento do ZFS .............................................................................. 128
Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris .......................131 Instalando e inicializando um sistema de arquivos ZFS do Oracle Solaris (viso geral) ........... 132 Recursos de instalao do ZFS .................................................................................................. 132 Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS .................... 133 Instalao de um sistema de arquivos raiz ZFS (instalao inicial do Oracle Solaris) ............... 136 Como migrar um pool raiz ZFS espelhado (ps-instalao) ................................................ 142 Instalando um sistema de arquivos raiz ZFS (instalao de arquivo do Oracle Solaris Flash) . 143 Instalando um sistema de arquivos raiz ZFS (Instalao com JumpStart) ................................. 147 Palavras-chave do JumpStart para ZFS ................................................................................... 147
Contedo
Exemplos de perfil do JumpStart para ZFS ............................................................................. 149 Problemas do JumpStart ZFS .................................................................................................... 150 Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade) ..... 151 Problemas de migrao ZFS com o Live Upgrade ................................................................. 152 Using Live Upgrade to Migrate or Update a ZFS Root File System (Without Zones) ....... 153 Uso do Live Upgrade para migrar ou atualizar um sistema com regies (Solaris 10 10/08) ........................................................................................................................................... 160 Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies (no mnimo Solaris 10 5/09) ..................................................................................................... 165 Suporte do ZFS para dispositivos de intercmbio e dump ........................................................... 176 Ajustando os tamanhos dos dispositivos de permuta e despejo ZFS ................................... 177 Soluo de problemas para dispositivo de despejo ZFS ........................................................ 178 Inicializando a partir de um sistema de arquivos raiz ZFS ........................................................... 179 Inicializando a partir de um disco alternativo em um pool raiz ZFS espelhado ................. 180 SPARC: inicializando a partir de um sistema de arquivos raiz ZFS ..................................... 181 x86: inicializando a partir de um sistema de arquivos raiz ZFS ............................................ 183 Resolvendo problemas do ponto de montagem ZFS que impedem a inicializao com xito (Solaris 10 10/08) ........................................................................................................................ 184 Inicializao para fins de recuperao em um ambiente raiz ZFS ........................................ 185 Recuperando o pool raiz ZFS ou instantneos do pool raiz ......................................................... 187 Como substituir um disco no pool raiz ZFS ........................................................................... 187 Como criar instantneos do pool raiz ...................................................................................... 189 How to Re-create a ZFS Root Pool and Restore Root Pool Snapshots ................................. 191 Como reverter os instantneos do pool raiz a partir da inicializao prova de falhas .... 192
Gerenciando sistemas de arquivos ZFS do Oracle Solaris .......................................................... 195 Gerenciando de sistemas de arquivos ZFS (viso geral) ............................................................... 195 Criando, destruindo e renomeando sistemas de arquivos ZFS .................................................... 196 Criando um sistema de arquivos ZFS ...................................................................................... 196 Destruindo um sistema de arquivos ZFS ................................................................................ 197 Renomeando um sistema de arquivos ZFS ............................................................................. 198 Introduzindo as propriedades do ZFS ............................................................................................ 199 Propriedades nativas somente leitura do ZFS ........................................................................ 207 Propriedades nativas definveis do ZFS ................................................................................... 209 Propriedades de usurio do ZFS .............................................................................................. 212 Consultando informaes sobre o sistema de arquivos ZFS ........................................................ 213
7
Contedo
Listando informaes bsicas do ZFS ...................................................................................... 213 Criando consultas complexas de ZFS ...................................................................................... 214 Gerenciando propriedades do ZFS ................................................................................................. 215 Definindo propriedades do ZFS ............................................................................................... 215 Herdando propriedades do ZFS ............................................................................................... 216 Consultando propriedades do ZFS .......................................................................................... 217 Montando e compartilhando sistemas de arquivos ZFS ............................................................... 220 Gerenciando pontos de montagem do ZFS ............................................................................ 220 Montando sistemas de arquivos ZFS ....................................................................................... 222 Usando propriedades de montagem temporrias .................................................................. 224 Desmontando sistemas de arquivos ........................................................................................ 224 Compartilhando e descompartilhando sistemas de arquivos ZFS ....................................... 225 Definindo cotas e reservas do ZFS ................................................................................................... 227 Definindo cotas em sistemas de arquivos ZFS ........................................................................ 228 Definindo reservas nos sistemas de arquivos ZFS .................................................................. 231 Atualizao de sistemas de arquivos ZFS ........................................................................................ 233
Trabalhando com instantneos e clones do ZFS do Oracle Solaris ............................................235 Viso geral dos instantneos do ZFS ............................................................................................... 235 Criando e destruindo instantneos do ZFS ............................................................................. 236 Exibindo e acessando instantneos do ZFS ............................................................................ 239 Retornando um instantneo ZFS ............................................................................................. 241 Identificao de diferenas do instantneo do ZFS (zfs diff ............................................. 241 Viso geral dos clones do ZFS .......................................................................................................... 242 Criando um clone do ZFS ......................................................................................................... 243 Destruindo um clone do ZFS .................................................................................................... 243 Substituindo um sistema de arquivos ZFS por um clone do ZFS ......................................... 244 Enviando e recebendo dados do ZFS .............................................................................................. 245 Salvando dados do ZFS com outros produtos de backup ...................................................... 246 Enviando um instantneo do ZFS ............................................................................................ 246 Recebendo um instantneo do ZFS ......................................................................................... 247 Aplicao de valores de propriedade diferentes a um fluxo de instantneos do ZFS ......... 248 Enviando e recebendo fluxos complexos de instantneos do ZFS ....................................... 250 Replicao remota de dados do ZFS ........................................................................................ 252
Contedo
Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris ....................................253 Novo modelo de ACL do Solaris ...................................................................................................... 253 Descries de sintaxe para definio de ACLs ........................................................................ 255 Herana da ACL ......................................................................................................................... 258 Propriedade da ACL (aclinherit) ......................................................................................... 258 Definindo ACLs em arquivos ZFS ................................................................................................... 259 Definindo e exibindo ACLs em arquivos ZFS no formato verboso ............................................. 261 Definindo a herana da ACL em arquivos ZFS no formato verboso ................................... 266 Definindo e exibindo ACLs em arquivos ZFS no formato compacto ......................................... 272
Administrao delegada do ZFS do Oracle Solaris ...................................................................... 277 Viso geral da administrao delegada de ZFS .............................................................................. 277 Desativando permisses delegadas do ZFS ............................................................................. 278 Delegando permisses do ZFS ......................................................................................................... 278 Delegao de permisses do ZFS (zfs allow) ....................................................................... 281 Removendo as permisses delegadas do ZFS (zfs unallow) .............................................. 282 Delegando permisses do ZFS (Exemplos) .................................................................................... 282 Exibindo permisses delegadas do ZFS (Exemplos) ..................................................................... 286 Removendo permisses delegadas ZFS (exemplos) ...................................................................... 287
10
Tpicos avanados do ZFS do Oracle Solaris ................................................................................. 289 Volumes ZFS ...................................................................................................................................... 289 Usando um volume ZFS como um dispositivo de intercmbio ou de dump ..................... 290 Usando um volume ZFS como um destino iSCSI Solaris ..................................................... 291 Usando ZFS em um sistema Solaris com regies instaladas ......................................................... 292 Adicionando sistemas de arquivos ZFS a uma regio no global ......................................... 293 Delegando conjuntos de dados a uma regio no global ....................................................... 294 Adicionando volumes ZFS a uma regio no global .............................................................. 294 Usando pools de armazenamento do ZFS dentro de uma regio ......................................... 295 Gerenciando propriedades do ZFS dentro de uma regio .................................................... 295 Entendendo a propriedade zoned ............................................................................................ 296 Usando pools de raiz alternativa do ZFS ........................................................................................ 298 Criando pools de raiz alternativa do ZFS ................................................................................ 298 Importando pools de raiz alternativa ...................................................................................... 298 Perfis de direitos do ZFS ................................................................................................................... 299
9
Contedo
11
Soluo de problemas e conjunto de recuperao do Oracle Solaris ZFS ................................301 Identificando falhas do ZFS .............................................................................................................. 301 Ausncia de dispositivos em um pool de armazenamento do ZFS ...................................... 302 Dispositivos danificados em um pool de armazenamento do ZFS ...................................... 302 Dados corrompidos do ZFS ...................................................................................................... 302 Verificando a integridade do sistema de arquivos ZFS ................................................................. 303 Reparo de sistema de arquivos ................................................................................................. 303 Validao do sistema de arquivos ............................................................................................ 303 Controlando o scrubbing de dados do ZFS ............................................................................ 304 Resolvendo problemas com o ZFS .................................................................................................. 305 Determinando se h problemas em um conjunto de armazenamento do ZFS .................. 306 Revisando a sada de zpool status ........................................................................................ 307 Relatrio de mensagens de erros do ZFS do sistema ............................................................. 310 Reparando uma configurao do ZFS danificada .......................................................................... 310 Reparando um dispositivo faltando ................................................................................................ 311 Reanexando fisicamente um dispositivo ................................................................................. 312 Notificando o ZFS da disponibilidade de um dispositivo ..................................................... 312 Substituindo ou reparando um dispositivo modificado ............................................................... 313 Determinando o tipo de falha do dispositivo ......................................................................... 313 Apagando erros transitrios ..................................................................................................... 315 Substituindo um dispositivo em um pool de armazenamento do ZFS ................................ 315 Reparando dados danificados .......................................................................................................... 322 Identificando o tipo de corrupo de dados ............................................................................ 323 Reparando arquivos ou diretrios corrompidos .................................................................... 324 Reparando o dano de todo o pool de armazenamento do ZFS ............................................. 325 Reparando um sistema no inicializvel ......................................................................................... 327
Descrio da verso do ZFS do Oracle Solaris ............................................................................... 329 Viso geral das verses do ZFS ......................................................................................................... 329 Verses do conjunto do ZFS ............................................................................................................ 329 Verses do sistema de arquivos do ZFS .......................................................................................... 331
10
Prefcio
O Guia de administrao do ZFS do Oracle Solaris fornece informaes sobre a configurao e o gerenciamento de sistemas de arquivos ZFS do Oracle Solaris. Este guia contm informaes para sistemas baseados em SPARC e em x86.
Observao Esta verso do Oracle Solaris oferece suporte a sistemas que usam as famlias SPARC e x86 de arquiteturas de processadores. Os sistemas suportados aparecem na Oracle Solaris Hardware Compatibility List em http://www.oracle.com/webfolder/technetwork/hcl/ index.html . Este documento cita quaisquer diferenas de implementao entre os tipos de plataformas.
Oferece uma viso geral do ZFS e de seus recursos e benefcios. Abrange tambm algumas terminologias e conceitos bsicos.
Captulo 2, Introduo ao ZFS Oferece instrues passo a passo sobre as configuraes bsicas do ZFS com do Oracle Solaris conjuntos e sistemas de arquivos simples. Este captulo oferece tambm o hardware e o software necessrios para criar sistemas de arquivos ZFS.
11
Prefcio
Captulo
Descrio
Captulo 3, Diferenas entre o sistema de arquivos tradicional e o ZFS do Oracle Solaris Captulo 4, Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris Captulo 5, Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris Captulo 6, Gerenciando sistemas de arquivos ZFS do Oracle Solaris
Identifica os importantes recursos que tornam o ZFS significativamente diferente dos sistemas de arquivos tradicionais. A compreenso dessas diferenas chaves o ajudar a reduzir a confuso ao utilizar ferramentas tradicionais para interagir com o ZFS. Oferece uma descrio detalhada de como criar e administrar conjuntos de armazenamento do ZFS. Descreve como instalar e inicializar um sistema de arquivos ZFS Tambm trata da migrao de um sistema de arquivos raiz do UFS para um sistema de arquivos raiz do ZFS utilizando o Oracle Solaris Live Upgrade. Oferece informaes detalhadas sobre o gerenciamento de sistemas de arquivos ZFS. Esto includos conceitos como layout do sistema de arquivos hierrquico, herana de propriedade, gerenciamento do ponto de montagem automtico e interaes compartilhadas.
Captulo 7, Trabalhando com Descreve como criar e administrar clones e instantneos do ZFS. instantneos e clones do ZFS do Oracle Solaris Captulo 8, Uso de ACLs e Descreve como utilizar as listas de controle de acesso (ACLs) para proteger atributos para proteger os arquivos do ZFS, proporcionando permisses mais granulares que as arquivos ZFS do Oracle Solaris permisses padro do UNIX. Captulo 9, Administrao delegada do ZFS do Oracle Solaris Captulo 10, Tpicos avanados do ZFS do Oracle Solaris Captulo 11, Soluo de problemas e conjunto de recuperao do Oracle Solaris ZFS Apndice A, Descrio da verso do ZFS do Oracle Solaris Descreve como utilizar a administrao delegada do ZFS para permitir que usurios no-privilegiados efetuem tarefas de administrao do ZFS. Fornece informaes sobre o uso dos volumes do ZFS, sobre o uso do ZFA em um sistema Oracle Solaris com regies instaladas e conjuntos raiz alternativas. Descreve como identificar falhas do ZFS e como realizar recuperaes a partir delas. Abrange tambm medidas para evitar falhas.
Descreve verses do ZFS disponveis, recursos de cada verso, e o Solaris OS que fornece a verso do ZFS e o recurso.
12
Prefcio
Livros relacionados
Informaes relacionadas aos tpicos gerais de administrao do sistema Oracle Solaris podem ser encontradas nos seguintes livros:
System Administration Guide: Basic Administration System Administration Guide: Advanced Administration System Administration Guide: Devices and File Systems System Administration Guide: Security Services
Convenes tipogrficas
A tabela a seguir descreve as convenes tipogrficas usadas neste livro.
TABELA P1 Fonte
Convenes tipogrficas
Significado Exemplo
AaBbCc123
Edite o arquivo .login. Use ls -a para listar todos os arquivos. nome_da_mquina% you have mail.
AaBbCc123
O que voc digitou, contrastado com a sada para computador na tela Espao reservado: substituir por um nome ou valor real
aabbcc123
13
Prefcio
TABELA P1 Fonte
Convenes tipogrficas
Significado
(Continuao)
Exemplo
AaBbCc123
Leia o Captulo 6 do Guia do Usurio. Um cache uma cpia armazenada localmente. No salve o arquivo. Nota: alguns itens enfatizados aparecem on-line em negrito.
Prompts do shell
Prompt
Bash shell, Korn shell e Bourne shell Bash shell, Korn shell e Bourne shell para o superusurio C shell Shell C para superusurio
$ #
nome_da_mquina% nome_da_mquina#
14
C A P T U L O
Este captulo oferece uma viso geral do sistema de arquivos Oracle Solaris ZFS e de seus recursos e benefcios. Este captulo abrange tambm algumas terminologias bsicas usadas neste livro. Este captulo traz as seguintes sees:
O que h de novo no ZFS? na pgina 15 O que ZFS? na pgina 47 Terminologia do ZFS na pgina 50 Requisitos para nomeao de componentes do ZFS na pgina 52
Novos recursos de instalao do Oracle Solaris ZFS na pgina 17 Aprimoramentos no fluxo de envio do ZFS na pgina 17 Diferenas do instantneo do ZFS (Diferenas do instantneo do ZFS (zfs diff) na pgina 17) Recuperao do pool de armazenamento do ZFS e aprimoramentos no desempenho na pgina 18 Ajuste do comportamento sncrono do ZFS na pgina 18 Mensagens aprimoradas do pool ZFS na pgina 19 Aprimoramentos de interoperabilidade ACL do ZFS na pgina 20 Dividindo um conjunto de armazenamento do ZFS espelhado (zpool split) na pgina 21 Novo processo do sistema ZFS na pgina 21 Aprimoramentos no comando zpool list na pgina 21 Recuperao do conjunto de armazenamento do ZFS na pgina 22 Aprimoramentos no dispositivo de log do ZFS na pgina 22 RAID-Z de paridade tripla (raidz3) na pgina 23
15
Contendo instantneos do ZFS na pgina 23 Aprimoramentos de substituio de dispositivo do ZFS na pgina 23 Suporte de instalao do ZFS e Flash na pgina 25 Cotas de usurio e grupo do ZFS na pgina 25 Herana ACL de passar para permisses de executar ZFS na pgina 26 Aprimoramentos de propriedades do ZFS na pgina 26 Recuperao do dispositivo de registro do ZFS na pgina 29 Utilizando dispositivos de cache no conjunto de armazenamento do ZFS na pgina 30 Migrao de regio em um ambiente do ZFS na pgina 31 Suporte inicializao e instalao do ZFS na pgina 31 Revertendo um conjunto de dados sem desmontar na pgina 32 Aprimoramentos no comando zfs send na pgina 32 Cotas e reservas do ZFS somente para dados do sistema de arquivos na pgina 33 Propriedades do pool de armazenamento do ZFS na pgina 33 Aprimoramentos no histrico do comando do ZFS (zpool history) na pgina 34 Atualizando os sistemas de arquivos do ZFS (zfs upgrade) na pgina 34 Administrao delegada do ZFS na pgina 35 Configurando dispositivos de log do ZFS separados na pgina 35 Criando conjuntos de dados do ZFS intermedirios na pgina 36 Aprimoramentos de conexo automtica do ZFS na pgina 37 Renomear recursivamente instantneos do ZFS (zfs rename -r) na pgina 38 gzip A compactao est disponvel para ZFS na pgina 39 Armazenamento de vrias cpias de dados de usurio do ZFS na pgina 39 Sada zpool status aprimorada na pgina 40 Aprimoramentos na iSCSI do Solaris e ZFS na pgina 40 Histrico do comando ZFS (zpool history) na pgina 41 Melhorias das propriedades do ZFS na pgina 41 Exibindo todas as informaes do sistema de arquivos do ZFS na pgina 42 Nova opo zfs receive -F na pgina 43 Instantneos recursivos do ZFS na pgina 43 RAID-Z de paridade dupla (raidz2) na pgina 43 Sobressalentes para dispositivos do pool de armazenamento do ZFS na pgina 43 Substituindo um sistema de arquivos do ZFS por um clone do ZFS (zfs promote) na pgina 44 Atualizando conjuntos de armazenamento do ZFS (zpool upgrade) na pgina 44 Comandos de restaurao e backup do ZFS renomeados na pgina 44 Recuperando conjuntos de armazenamento destrudos na pgina 45 O ZFS integrado com o gerenciador de falhas na pgina 45 O comando zpool clear na pgina 45 Formato compacto da ACL NFSv4 na pgina 46 Ferramenta de monitoramento do sistema de arquivos (fsstat) na pgina 46 Gerenciamento do ZFS baseado na Web na pgina 46
16
Voc pode usar o mtodo de instalao no modo de texto para instalar um sistema com um arquivo flash ZFS. Para obter mais informaes, consulte o Exemplo 53. Voc pode usar o comando luupgrade do Oracle Solaris Live Upgrade para instalar um arquivo flash raiz ZFS. Para obter mais informaes, consulte o Exemplo 58. Voc pode usar o comando lucreate do Oracle Solaris Live Upgrade para especificar um sistema de arquivos /var separado. Para obter mais informaes, consulte o Exemplo 55.
Por exemplo, para identificar as diferenas entre dois instantneos, use sintaxe semelhante seguinte:
$ zfs diff tank/cindy@0913 tank/cindy@0914 M /tank/cindy/ + /tank/cindy/fileB
Na sada, M indica que o diretrio foi modificado. + indica que fileB existe no instantneo posterior.
Captulo 1 Sistema de arquivos Oracle Solaris ZFS (introduo) 17
Para obter mais informaes, consulte Identificao de diferenas do instantneo do ZFS (zfs diff na pgina 241.
Voc pode importar um pool com um log ausente usando o comando zpool import -m. Para obter mais informaes, consulte Importao de um pool com um dispositivo de log ausente na pgina 123. Voc pode importar um pool no modo somente leitura. Este recurso principalmente para recuperao do pool. Se um pool danificado no puder ser acessado porque os dispositivos subjacentes esto danificados, voc poder importar o pool somente leitura para recuperar os dados. Para obter mais informaes, consulte Importao de um pool no modo somente leitura na pgina 125. Um pool de armazenamento RAID-Z (raidz1, raidz2 ou raidz3)que criado nesta verso e atualizado para pelo menos a verso do pool 29 ter alguns metadados sensveis latncia espelhados automaticamente para aprimorar o desempenho de transferncia de E/S de leitura. Para pools RAID-Z existentes atualizados para pelo menos o pool verso 29, alguns metadados sero espelhados para todos os dados recm-gravados. Os metadados espelhados em um pool RAID-Z no fornece proteo adicional contra falhas de hardware, semelhante ao que um pool de armazenamento espelhado oferece. Espao adicional consumido por metadados espelhados, mas a proteo RAID-Z permanece igual de verses anteriores. Este aprimoramento para fins de desempenho apenas.
O parmetro zil_disable no est mais disponvel nas verses do Oracle Solaris que incluem a propriedade sync. Para obter mais informaes, consulte a Tabela 61.
As seguinte sintaxe usa o intervalo e a opo de contagem para exibir informaes constantes de polimento do pool. Voc pode usar o valor -T d para exibir as informaes no formato de data padro ou -T u para exibir as informaes em um formato interno.
# zpool Wed Jun pool: state: status: status -T d tank 3 2 22 14:35:40 GMT 2011 tank ONLINE 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. scan: resilver in progress since Wed Jun 22 14:33:29 2011 3.42G scanned out of 7.75G at 28.2M/s, 0h2m to go 3.39G resilvered, 44.13% done
Captulo 1 Sistema de arquivos Oracle Solaris ZFS (introduo) 19
config: NAME tank mirror-0 c2t3d0 c2t4d0 mirror-1 c2t7d0 c2t8d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (resilvering)
ACLs triviais no exigem ACEs negadas, exceto para permisses no usuais. Por exemplo, um modo de 0644, 0755 ou 0664 no precisa de ACEs negadas, mas modos como 0705, 0060, e assim por diante, exigem ACEs negadas. O comportamento antigo inclui ACEs negadas em qualquer ACL trivial, como 644. Por exemplo:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 14 11:52 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
O novo comportamento para um ACL trivial, como 644, no inclui as ACEs negadas. Por exemplo:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 22 14:30 file.1 0:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
ACLs no so mais divididas em vrias ACEs durante a herana para tentar preservar a permisso no modificada original. Em vez disso, as permisses so modificadas conforme necessrio para impor o modo de criao de arquivo. O comportamento da propriedade aclinherit inclui uma reduo de permisses quando a propriedade definida como restricted, o que significa que as ACLs no so mais divididas em vrias ACEs durante a herana.
20
Uma ACL existente descartada durante operaes chmod(2) por padro. Essa alterao significa que a propriedade aclmode ZFS no est mais disponvel. Uma nova regra de clculo do modo de permisso especifica que, se uma ACL tiver uma ACE de usurio que tambm seja o proprietrio do arquivo, ento essas permisses sero includas no clculo do modo de permisso. A mesma regra ser aplicada se uma ACE ao grupo for o proprietrio do grupo do arquivo.
Para obter mais informaes, consulte Captulo 8, Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris.
O campo ALLOC identifica a quantidade de espao fsico alocado para todos os conjuntos de dados e metadados internos. O campo FREE identifica a quantidade de espao no alocada no conjunto. Para maiores informaes, consulte, Exibindo informaes sobre os conjuntos de armazenamento ZFS na pgina 108.
A propriedade logbias - pode ser utilizada para instruir o ZFS sobre como manipular as solicitaes sincronizadas para um conjunto de dados especfico. Se logbias estiver definida como latncia, o ZFS utiliza os dispositivos de log separados do conjunto, se houver algum, para manipular as solicitaes em baixa latncia. Se logbias estiver definida como throughput, o ZFS no utiliza os dispositivos de log separados do conjunto. Em vez disso, o ZFS otimiza operaes sncronas para throughput de conjunto global e uso eficiente de recursos. O valor padro latncia. Para a maioria das configuraes, recomendado o valor padro. Utilizar o valor logbias=throughput pode melhorar o desempenho da gravao de arquivos de banco de dados. Remoo do dispositivo de log: agora possvel remover um dispositivo de log de um conjunto de armazenamento do ZFS utilizando o comando zpool remove. Voc pode remover um nico dispositivo de log especificando o nome do dispositivo. Voc pode remover um dispositivo de log espelhado especificando um espelhamento de nvel superior para o log. Quando voc remove um dispositivo de log separado do sistema, os registros de transao ZIL so gravados no pool principal.
22
Os dispositivos virtuais de nvel superior redundantes so agora identificados por um identificador em numrico. Por exemplo, em um conjunto de armazenamento espelhado de dois discos, o dispositivo virtual de nvel superior mirror-0. Esse aprimoramento significa que um dispositivo de log espelhado pode ser removido especificando seu identificador numrico. Para obter mais informaes, consulte o Exemplo 43.
Esses aprimoramentos permitem aumentar o tamanho do pool sem precisar exportar e importar o pool ou reinicializar o sistema. Por exemplo, a expanso LUN automtica ativada no conjunto tank.
# zpool set autoexpand=on tank
A propriedade autoexpand desativada por padro, portanto voc pode decidir se deseja que o tamanho do pool seja expandido quando um disco maior substituir um disco menor. O tamanho do pool tambm pode ser expandido utilizando o comando zpool online - e. Por exemplo:
# zpool online -e tank c1t6d0
possvel redefinir a propriedade autoexpand depois de o LUN ser anexado ou disponibilizado com a utilizao do comando zpool replace. Por exemplo, o conjunto a seguir criado com um disco de 8 GB (c0t0d0). O disco de 8 GB substitudo por um disco de 16 GB (c1t13d0), mas o tamanho do conjunto no expandido at que a propriedade autoexpand seja ativada.
# zpool create pool c0t0d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH pool 8.44G 76.5K 8.44G 0% ONLINE # zpool replace pool c0t0d0 c1t13d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH pool 8.44G 91.5K 8.44G 0% ONLINE # zpool set autoexpand=on pool # zpool list NAME SIZE ALLOC FREE CAP HEALTH pool 16.8G 91.5K 16.8G 0% ONLINE
Outra maneira de expandir o disco sem ativar a propriedade autoexpand utilizar o comando zpool online - e mesmo que o dispositivo j esteja on-line. Por exemplo:
# zpool create tank c0t0d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH tank 8.44G 76.5K 8.44G 0% ONLINE # zpool replace tank c0t0d0 c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH tank 8.44G 91.5K 8.44G 0% ONLINE # zpool online -e tank c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH tank 16.8G 90K 16.8G 0% ONLINE
24
Em verses anteriores, o ZFS no conseguia substituir um disco existente por outro disco ou anexar um disco se o disco de substituio fosse de um tamanho ligeiramente diferente. Nessa verso, possvel substituir um disco existente por outro disco ou anexar um novo disco que seja quase do mesmo tamanho, desde que o pool no esteja cheio. Nesta verso, no necessrio reinicializar o sistema ou exportar e importar um pool para expandir o tamanho do pool. Conforme descrito anteriormente, voc pode ativar a propriedade autoexpand ou utilizar o comando zpool online -e para expandir o tamanho do pool.
Para obter informaes sobre a substituio de dispositivos, consulte Substituindo dispositivos em um pool de armazenamento na pgina 97.
Voc pode exibir o valor de cota atual de um usurio ou grupo como a seguir:
# zfs get userquota@user1 tank/data NAME PROPERTY VALUE SOURCE tank/data userquota@user1 5G local # zfs get groupquota@staff tank/staff/admins NAME PROPERTY VALUE tank/staff/admins groupquota@staff 10G
SOURCE local
# zfs userspace tank/data TYPE NAME USED QUOTA POSIX User root 3K none POSIX User user1 0 5G # zfs groupspace tank/staff/admins TYPE NAME USED QUOTA POSIX Group root 3K none POSIX Group staff 0 10G
possvel exibir a utilizao de espao de um usurio individual visualizando o valor de propriedade userused@user. possvel exibir a utilizao de espao de diso de um grupo visualizando o valor da propriedade groupused@ group. Por exemplo:
# zfs get userused@user1 tank/staff NAME PROPERTY VALUE tank/staff userused@user1 213M # zfs get groupused@staff tank/staff NAME PROPERTY VALUE tank/staff groupused@staff 213M SOURCE local SOURCE local
Para mais informaes sobre como definir cotas de usurio, consulte Definindo cotas e reservas do ZFS na pgina 227.
Aprimoramentos de propriedade de fluxo de instantneos do ZFS: possvel definir uma propriedade recebida que seja diferente de sua configurao de propriedade local. Por exemplo, possvel receber um fluxo com a propriedade de compactao desativada, mas voc deseja a compactao ativada no sistema de arquivos recebedor. Isso significa que o fluxo recebido possui um valor de compactao recebido de off e um valor de compactao local deon. Uma vez que o valor local ignora o valor recebido, no necessrio se preocupar com a configurao no lado de envio substituindo o valor do lado recebido. O comando zfs get mostra o valor efetivo da propriedade de compactao na coluna VALUE. As novas propriedades e opes de comando do ZFS para suportar valores de propriedade locais e de envio so como a seguir:
Utilize o zfs inherit - S para reverter um valor de propriedade local para o valor recebido, se houver algum. Se uma propriedade no possuir um valor recebido, o comportamento do comando zfs inherit - S o mesmo do comando zfs inherit sem a opo- S. Se a propriedade no possuir um valor recebido, o comando zfs inherit mascara o valor recebido com o valor herdado at que a emisso de um comando zfs inherit -S o reverta para o valor recebido. possvel utilizar o zfs get -o para incluir a nova coluna RECEIVED no padro. Ou utilize o comando zfs get -o all para incluir todas as colunas, inclusive a RECEIVED. possvel utilizar a opo zfs send -p para incluir propriedades no fluxo de envio sem a opo -R.
Alm disso, possvel utilizar a opo zfs send -e para utilizar o ltimo elemento do nome do instantneo enviado para determinar o novo nome do instantneo. O exemplo a seguir envia o instantneo poola/bee/cee@1 ao sistema de arquivos poold/eee e utiliza somente o ltimo elemento (cee@1) do nome do instantneo para criar o instantneo e o sistema de arquivos recebido.
# zfs list -rt all poola NAME USED AVAIL REFER MOUNTPOINT poola 134K 134G 23K /poola poola/bee 44K 134G 23K /poola/bee poola/bee/cee 21K 134G 21K /poola/bee/cee poola/bee/cee@1 0 21K # zfs send -R poola/bee/cee@1 | zfs receive -e poold/eee # zfs list -rt all poold NAME USED AVAIL REFER MOUNTPOINT poold 134K 134G 23K /poold poold/eee 44K 134G 23K /poold/eee poold/eee/cee 21K 134G 21K /poold/eee/cee poold/eee/cee@1 0 21K
Definindo as propriedades do sistema de arquivos do ZFS no momento da criao do conjunto: possvel definir as propriedades do sistema de arquivos do ZFS quando o conjunto criado. No exemplo a seguir, a compactao ativada no sistema de arquivos do ZFS que criado quando o conjunto criado:
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0
27
Definindo as propriedades do cache em um sistema de arquivos do ZFS: duas novas propriedades do sistema de arquivos do ZFS permitem que voc controle o que armazenado em cache no cache primrio (ARC) e no cache secundrio (L2ARC). As propriedades do cache so definidas como segue:
primarycache Controla o que colocado no cache no ARC. secondarycache Controla o que colocado no cache no L2ARC. Os valores possveis para ambas as propriedades all, none e metadata. Se forem definidas como todos, os dados do usurio e os metadados sero armazenados em cache. Se forem definidas como nenhum, nem os dados do usurio nem os metadados sero armazenados em cache. Se forem definidas como metadados, somente os metadados sero armazenados em cache. O padro e all.
possvel definir essas propriedades em um sistema de arquivos existente ou quando um sistema de arquivos criado. Por exemplo:
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab
Quando essas propriedades so definidas no sistema de arquivos existente, somente E/S nova armazenada em cache com base no valor dessas propriedades. Alguns ambientes de banco de dados podem se beneficiar de no colocar os dados do usurio no cache. necessrio determinar se as definies das propriedades do cache so apropriadas para seu ambiente.
Visualizar propriedades de contabilidade de espao em disco: novas propriedades de sistema de arquivos de somente leitura lhe ajudam a identificar o uso do espao em disco para clones, sistemas de arquivos, volumes e instantneos. As propriedades so as seguintes:
usedbychildren: identifica a quantidade de espao em disco utilizado pelos filhos desse conjunto de dados, que seria liberado se todos os filhos do conjunto de dados fossem destrudos. A abreviatura da propriedade usedchild. usedbydataset: identifica a quantidade de espao em disco utilizado por esse prprio conjunto de dados, que seria liberado se o conjunto de dados fosse destrudo, depois de primeiramente destruir quaisquer instantneos e remover quaisquer reservas. A abreviatura da propriedade usedds. usedbyrefreservation: identifica a quantidade de espao em disco utilizado por uma reserva definida nesse conjunto de dados, que seria liberado se a reserva fosse removida. A abreviatura da propriedade usedrefreserv. usedbysnapshots: identifica a quantidade de espao em disco utilizado por instantneos desse conjunto de dados, que seria liberado se todos os instantneos do conjunto de dados fossem destrudos. Observe que essa no a soma das propriedades utilizadas do instantneo, porque o espao em disco pode ser compartilhado por instantneos mltiplos. A abreviatura da propriedade usedsnap.
28
Essas novas propriedades discriminam o valor da propriedade utilizado nos diversos elementos que consomem espao em disco. Em particular, o valor da propriedade utilizado discriminado como a seguir:
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots
possvel visualizar essas propriedades ao utilizar o comando zfs list - o space. Por exemplo:
$ zfs list -o space NAME AVAIL rpool 25.4G rpool/ROOT 25.4G rpool/ROOT/snv_98 25.4G rpool/dump 25.4G rpool/export 25.4G rpool/export/home 25.4G rpool/swap 25.8G USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD 7.79G 0 64K 0 7.79G 6.29G 0 18K 0 6.29G 6.29G 0 6.29G 0 0 1.00G 0 1.00G 0 0 38K 0 20K 0 18K 18K 0 18K 0 0 512M 0 111M 401M 0
Listando instantneos: a propriedade listsnapshots do conjunto controla se a exibio das informaes do instantneo esto exibidos pelo comando zfs list. O valor padro on, o que significa que as informaes do instantneo so exibidas por padro. Se seu sistema possuir muitos instantneos do ZFS e voc desejar desativar a exibio das informaes do instantneo no comando zfs list, desabilite o listsnapshots devidamente como a seguir:
# zpool get listsnapshots pool NAME PROPERTY VALUE SOURCE pool listsnapshots on default # zpool set listsnaps=off pool
Se voc desativar a propriedade listsnapshots, possvel utilizar o comando zfs list -t snapshots para listar as informaes do instantneo. Por exemplo:
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT pool/home@today 16K 22K pool/home/user1@today 0 18K pool/home/user2@today 0 18K pool/home/user3@today 0 18K -
status -x pool FAULTED One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run zpool online, or ignore the intent log records by running zpool clear. scrub: none requested config: NAME pool mirror c0t1d0 c0t4d0 logs c0t5d0 STATE FAULTED ONLINE ONLINE ONLINE FAULTED UNAVAIL READ WRITE CKSUM 0 0 0 bad intent log 0 0 0 0 0 0 0 0 0 0 0 0 bad intent log 0 0 0 cannot open
Substitua ou recupere o dispositivo de registro. Neste exemplo, o dispositivo c0t5d0. Coloque o dispositivo de registro de volta on-line.
# zpool online pool c0t5d0
Se desejar recuperar esse erro sem substituir o dispositivo de log falho, possvel limpar o erro com o comando zpool clear. Nesse cenrio, o conjunto ir operar em um modo degradado e os logs sero gravados no conjunto principal at que o dispositivo de log separado seja substitudo. Considere o uso de dispositivos de log espelhados para evitar o cenrio de falha do dispositivo de log.
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME pool mirror c0t2d0 c0t4d0 cache c0t0d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Depois que os dispositivos de cache so adicionados, eles gradualmente so preenchidos com o contedo da memria principal. Dependendo do tamanho do dispositivo de cache, poder demorar mais de uma hora para que os dispositivos sejam preenchidos. A capacidade e as leituras podem ser monitoradas usando o comando zpool iostat como segue:
# zpool iostat -v pool 5
Os dispositivos de cache podem ser adicionados ou removidos de um conjunto depois dele ser criado. Para mais informaes, consulte Criando um conjunto de armazenamento do ZFS com dispositivos de cache na pgina 78 e Exemplo 44.
Para obter uma lista de problemas conhecidos dessa verso, visite o site a seguir: http://hub.opensolaris.org/bin/view/Community+Group+zfs/boot Consulte tambm as notas de verso do Solaris 10 10/08.
Enviar todos os fluxos incrementais de um instantneo para um instantneo cumulativo. Por exemplo:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K pool/fs@snapB 17K 20K pool/fs@snapC 17K - 20.5K pool/fs@snapD 0 21K # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo
Essa sintaxe envia todos os instantneos incrementais entre fs@snapA e fs@snapD para fs@combo.
Enviar um fluxo incremental de um instantneo original para criar um clone. O instantneo original j deve existir no lado de recepo para aceitar o fluxo incremental. Por exemplo:
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I
Enviar um fluxo de replicao de todos os sistemas de arquivos descendentes at os instantneos com nome. Quando recebidos, todas as propriedades, instantneos, sistemas de arquivo descendentes e clones so preservados. Por exemplo:
# zfs send -R pool/fs@snap > snaps/fs-R
32
Para um exemplo mais amplo, consulte o Exemplo 71. Para mais informaes, consulte Enviando e recebendo fluxos complexos de instantneos do ZFS na pgina 250.
A propriedade refquota impe um limite rgido sobre a quantidade de espao em disco que um conjunto de dados pode utilizar. Esse limite rgido no inclui o espao em disco utilizado pelos descendentes, como instantneos e clones. A propriedade refreservation define a quantidade mnima de espao em disco que garantida para um conjunto de dados, no incluindo seus descendentes.
Por exemplo, possvel definir um limite refcota de 10 GB para studentA que define um limite rgido de 10 GB do espao em disco referenciado. Para obter flexibilidade adicional, voc pode ajustar uma cota de 20 GB que lhe permite gerenciar os instantneos do studentA.
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA
Para mais informaes, consulte Definindo cotas e reservas do ZFS na pgina 227.
A propriedade cachefile: essa propriedade controla onde as informaes de configurao do conjunto so armazenadas em cache. Todos os conjuntos no cache so automaticamente importados quando o sistema inicializado. No entanto, os ambientes de instalao e de cluster podem precisar armazenar em cache essas informaes em um local diferente, de forma que os conjuntos no sejam automaticamente importados. possvel configurar essa propriedade para armazenar em cache a configurao de conjunto em um local diferente que possa ser importado depois, utilizando o comando zpool import -c. Na maioria das configuraes ZFS, essa propriedade no seria usada.
33
A propriedade cachefile no persistente, no sendo armazenada em disco. Essa propriedade substitui a propriedade temporary, que foi usada para indicar que as informaes de pool no deveriam ser armazenadas em cache nas verses anteriores do Solaris.
A propriedade failmode: essa propriedade determina o comportamento de uma falha catastrfica de conjunto devido perda da conectividade do dispositivo ou falha de todos os dispositivos no conjunto. A propriedade failmode pode ser configurada com estes valores: wait, continue ou panic. O valor padro espera, o que significa que voc deve reconectar o dispositivo ou substituir um dispositivo com falha e, em seguida, limpar o erro com o comando zpool clear. A propriedade failmode definida como outras propriedades ZFS configurveis, que podem ser configuradas antes ou depois do conjunto ser criado. Por exemplo:
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local # zpool create -o failmode=continue users mirror c0t1d0 c1t1d0
As informaes dos eventos do sistema de arquivos do ZFS so exibidos. A opo -l pode ser utilizada para exibir um formato longo que inclui o nome de usurio, o nome do host e a regio na qual a operao foi efetuada. A opo -i pode ser utilizada para exibir informaes de eventos internos para fins de diagnstico.
Para mais informaes sobre utilizar do comando zpool history, consulte Resolvendo problemas com o ZFS na pgina 305.
Por exemplo:
# zfs upgrade This system is currently running ZFS filesystem version 3. All filesystems are formatted with the current version. Observao Os sistemas de arquivos atualizados e quaisquer fluxos criados a partir desses sistemas de arquivos atualizados atravs do comando zfs send no esto acessveis em sistemas que executam verses mais antigas do software.
Por padro, a propriedade delegation habilitada. Para mais informaes, consulte o Captulo 9, Administrao delegada do ZFS do Oracle Solaris and zfs(1M).
Os dispositivos de log intencional do ZFS no esto relacionados aos arquivos de log do banco de dados. possvel configurar o dispositivo de log do ZFS quando o conjunto de armazenamento for criado ou depois da sua criao. Para exemplos sobre a configurao dos dispositivos de log, consulte Criando um conjunto de armazenamento do ZFS com dispositivos de log na pgina 77 e Adicionando dispositivos a um pool de armazenamento na pgina 84. possvel anexar um dispositivo de log a um dispositivo de log existente para criar um dispositivo de log espelhado. Essa operao idntica anexao de um dispositivo em um conjunto de armazenamento no espelhado. Ao determinar se a configurao de um dispositivo de registro ZFS apropriada para o seu ambiente, leve em considerao o seguinte:
Qualquer melhoria no desempenho visto pela implementao de um dispositivo de log separado depende do tipo de dispositivo, da configurao de hardware do conjunto e da carga de trabalho do aplicativo. Para obter informaes preliminares sobre desempenho, consulte este blog: http://blogs.oracle.com/perrin/entry/slog_blog_or_blogging_on Os dispositivos de log podem ser no replicado ou espelhados, mas o RAID-Z no suportado por dispositivos de log. Se um dispositivo de log separado no for espelhado e o dispositivo que contm o log falhar, o armazenamento dos blocos de log revertido ao conjunto de armazenamento. Os dispositivos de log podem ser adicionados, substitudos, anexados, desanexados, importados e exportados como parte do conjunto de armazenamento maior. Dispositivos de log podem ser removidos a partir da verso 10 9/10 do Solaris. O tamanho mnimo de um dispositivo de log o mesmo do tamanho mnimo de cada dispositivo em um conjunto, que de 64 MB. A quantidade de dados em atividade que pode ser armazenada em um dispositivo de registro relativamente pequena. Os blocos de registro so liberados quando a transao de registro (chamada do sistema) enviada. O tamanho mximo de um dispositivo de log deve ser aproximadamente a metade do tamanho da memria fsica, porque essa a quantidade mxima de possveis dados em atividade que podem ser armazenados. Por exemplo, se um sistema possuir 16 GB de memria fsica, considere que o tamanho mximo de um dispositivo de log ser de 8 GB.
# zfs list NAME USED AVAIL REFER MOUNTPOINT datab 106K 16.5G 18K /datab # zfs create -p -o compression=on datab/users/area51
O conjunto de dados intermedirio j existe durante a operao de criao, a operao ser concluda com xito. As propriedades especificadas se aplicam ao conjunto de dados de destino e no ao conjunto de dados intermedirio. Por exemplo:
# zfs get mountpoint,compression NAME PROPERTY datab/users/area51 mountpoint datab/users/area51 compression datab/users/area51 VALUE SOURCE /datab/users/area51 default on local
O conjunto de dados intermedirio criado com o ponto padro de montagem. Quaisquer propriedades adicionais so desativadas para o conjunto de dados intermedirio. Por exemplo:
# zfs get mountpoint,compression datab/users NAME PROPERTY VALUE SOURCE datab/users mountpoint /datab/users default datab/users compression off default
Voc pode substituir um dispositivo atual por um dispositivo equivalente, sem precisar usar o comando zpool replace. A propriedade autoreplace controla a substituio automtica de dispositivos. Se for definido como off, a substituio do dispositivo deve ser iniciada pelo administrador utilizando o comando zpool replace. Se for definido como on, qualquer dispositivo novo encontrado no mesmo local fsico de um dispositivo que antes pertencia ao conjunto ser automaticamente formatado e substitudo. O comportamento padro off.
O estado do conjunto de armazenamento REMOVED fornecido quando um dispositivo ou de reserva tiver sido fisicamente removido enquanto o sistema estava em execuo. Um dispositivo de reserva substitudo pelo dispositivo removido, se disponvel. Se um dispositivo for removido e depois inserido, o dispositivo ser colocado on-line. Se um de reserva foi ativado quando o dispositivo foi reinserido, o de reserva removido quando a operao on-line for concluda.
37
Quando os dispositivos so removidos ou inseridos, a deteco automtica depende do hardware e pode no ser suportada em todas as plataformas. Por exemplo, os dispositivos USB so configurados automaticamente ao serem inseridos. No entanto, voc pode ter que usar o comando cfgadm -c configure para configurar uma unidade SATA. Os de reservas so verificados periodicamente para garantir que estejam on-line e disponveis.
Um instantneo o nico tipo de conjunto de dados que pode ser renomeado recursivamente. Para mais informaes sobre instantneos, consulte Viso geral dos instantneos do ZFS na pgina 235 e esta entrada do blog que descreve como criar instantneos sucessivos: http://blogs.oracle.com/mmusante/entry/rolling_snapshots_made_easy
38
Para mais informaes sobre a configurao das propriedades do ZFS, consulte Definindo propriedades do ZFS na pgina 215.
SOURCE local
Os valores disponveis so 1, 2 ou 3. O valor padro 1. Essas cpias esto em acrscimo a qualquer redundncia de nvel de conjunto, tal como na configurao espelhada ou RAID-Z. Os benefcios do armazenamento de cpias mltiplas dos dados do usurio do ZFS so os seguintes:
Melhora a reteno de dados, permitindo recuperaes de falhas de leituras em blocos irrecuperveis, como falhas de mdia (comumente conhecidas como bit rot) em todas as configuraes do ZFS. Oferece proteo de dados, mesmo quando apenas um disco nico est disponvel. Permite que voc selecione as polticas de proteo de dados por bases de sistema de arquivos, alm das capacidades do conjunto de armazenamento.
39
Observao Dependendo da alocao de blocos idnticos no conjunto de armazenamento, as cpias mltiplas podem ser colocadas em um nico disco. Uma falha de disco cheio subsequente pode fazer com que todos os blocos idnticos fiquem indisponveis.
possvel levar em considerao o uso de blocos idnticos ao criar acidentalmente um conjunto no redundante e quando precisar definir as polticas de reteno de dados. Para obter uma descrio detalhada de como armazenar cpias mltiplas em um sistema com um conjunto de disco nico ou um conjunto de disco mltiplo pode afetar a proteo geral dos dados, consulte este blog: http://blogs.oracle.com/relling/entry/zfs_copies_and_data_protection Para mais informaes sobre a configurao das propriedades do ZFS, consulte Definindo propriedades do ZFS na pgina 215.
Depois da criao do destino iSCSI, possvel configurar o iniciador iSCSI. Para mais informaes sobre a configurao do iniciador iSCSI do Solaris, consulte o Captulo 14, Configuring Oracle Solaris iSCSI Targets and Initiators (Tasks), no System Administration Guide: Devices and File Systems.
40 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Para mais informaes sobre gerenciamento de volumes do ZFS como um destino de iSCSI, consulte Usando um volume ZFS como um destino iSCSI Solaris na pgina 291.
Esses recursos permitem que voc ou a equipe de suporte do Oracle identifique os comandos reais do ZFS que foram executados para corrigir um cenrio de erro. possvel identificar um conjunto de armazenamento especfico com o comando zpool history. Por exemplo:
# zpool history newpool History for newpool: 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1
Nessa verso do , o comando zpool history no registra o ID de usurio, o nome do host nem o nome da regio. No entanto, essas informaes so gravadas a partir da verso 10 10/08 do Solaris. Para mais informaes, consulte Aprimoramentos no histrico do comando do ZFS (zpool history) na pgina 34. Para mais informaes sobre a resoluo de problemas ZFS, consulte Resolvendo problemas com o ZFS na pgina 305.
conjuntos de armazenamento. Designar um dispositivo como um de reserva significa que, se um dispositivo ativo no conjunto falhar, o dispositivo de reserva substitui automaticamente o dispositivo falho. Ou ento, possvel substituir manualmente um dispositivo em um conjunto de armazenamento por um de reserva. Para mais informaes, consulte Designando sobressalentes no pool de armazenamento na pgina 99 e zpool(1M).
Para mais informaes sobre esses comandos, consulte Enviando e recebendo dados do ZFS na pgina 245.
Ao revisar a ao recomendada, que ser seguir as direes mais especficas no comando zpool status, voc poder identificar e resolver rapidamente a falha. Para obter um exemplo de recuperao de um problema do ZFS reportado, consulte Reparando um dispositivo faltando na pgina 311.
limpas quando um dispositivo em um conjunto era colocado on-line com o comando zpool online. Para mais informaes, consulte Limpando erros de dispositivo de conjunto de armazenamento na pgina 97 e zpool(1M).
Criar um novo pool de armazenamento. Adicionar capacidade a um pool existente. Mover (exportar) um pool de armazenamento para outro sistema. Importar um pool de armazenamento exportado anteriormente para torn-lo disponvel em outro sistema. Visualizar informaes sobre pools de armazenamento. Criar um sistema de arquivos.
46
O que ZFS?
Criar um volume. Criar um instantneo de um sistema de arquivos ou um volume. Reverter um sistema de arquivos para um instantneo anterior.
possvel acessar o console de administrao do ZFS atravs de um navegador da Web seguro em:
https://system-name:6789/zfs
Se voc digitar o URL apropriado e no conseguir encontrar o console Administrao do ZFS, o servidor no deve ter sido iniciado. Para iniciar o servidor, execute o seguinte comando:
# /usr/sbin/smcwebserver start
Se quiser que o servidor seja executado automaticamente quando o sistema for inicializado, execute o seguinte comando:
# /usr/sbin/smcwebserver enable Observao No possvel usar o console de gerenciamento Solaris (smc) para gerenciar pools
O que ZFS?
O sistema de arquivos do ZFS um novo e revolucionrio sistema de arquivos que basicamente altera a forma como os sistemas de arquivos so administrados, com recursos e benefcios que no so encontrados nos sistemas de arquivos disponveis atualmente. O ZFS robusto, dimensionvel e fcil de administrar.
O que ZFS?
redundncia de dados e assim por diante) e atua como um armazenamento de dados arbitrrio a partir do qual podem ser criados sistemas de arquivos. Os sistemas de arquivos j no esto mais limitados a dispositivos individuais, permitindo-lhes compartilhar espao em disco com todos os sistemas de arquivos do conjunto. J no mais necessrio pr-determinar o tamanho de um sistema de arquivos, visto que os sistemas de arquivos crescem automaticamente dentro do espao em disco alocado para o conjunto de armazenamento. Quando novos armazenamentos so adicionados, todos os sistemas de arquivos que esto dentro do conjunto podem utilizar imediatamente o espao adicional sem trabalho adicional. Em muitos aspectos, o conjunto de armazenamento trabalha de maneira similar a um sistema de memria virtual: quando uma memria DIMM adicionada a um sistema, o sistema operacional no o fora a executar comandos para configurar a memria e atribu-la a processos individuais. Todos os processos do sistema usam automaticamente a memria adicional.
Semnticas transacionais
O ZFS um sistema de arquivos transacional, o que significa que o estado do sistema de arquivos sempre consistente no disco. Os sistemas de arquivos tradicionais substituem os dados no local, o que significa que, se a mquina apagar, por exemplo, entre o momento em que um bloco de dados est sendo alocado e o momento em que est sendo vinculado a um diretrio, o sistema de arquivos ficar em um estado de inconsistncia. Historicamente, esse problema era solucionado atravs da utilizao do comando fsck. Esse comando era responsvel por revisar e verificar o estado do sistema de arquivos e tentar reparar quaisquer inconsistncias encontradas durante o processo. Esse problema de sistemas de arquivos inconsistentes deu muito trabalho aos administradores e nunca era garantido que o comando fsck resolvesse todos os possveis problemas. Mais recentemente, os sistemas de arquivos introduziram o conceito de ocorrncias . O processo de ocorrncias registra aes em um dirio diferente, que pode ento ser reproduzido de forma segura se ocorrer uma quebra no sistema. Esse processo introduz uma sobrecarga desnecessria, pois os dados precisam ser gravados duas vezes, resultando frequentemente em novos conjuntos de problemas, tais como quando o dirio no pode ser reproduzido apropriadamente. Com um sistema de arquivos transacional, os dados so gerenciados utilizando as semnticas de copiar ao gravar. Os dados nunca so substitudos e nenhuma seqncia de operaes totalmente comprometida ou totalmente ignorada. Assim, o sistema de arquivos nunca ser corrompido por perdas acidentais de energia ou por quebra no sistema. Embora as ltimas partes de dados gravadas possam se perder, o sistema de arquivos em si ser sempre consistente. Alm disso, os dados sncronos (escritos com o sinalizador O_DSYNC) sempre sero gravados antes de retornarem, de modo que nunca se perdero.
O que ZFS?
de verificao, efetuavam tal soma com base em blocos sem necessidade, devido camada de gerenciamento de volumes e ao design do sistema de arquivos tradicional. O design tradicional significa que determinadas falhas, tais como gravar um bloco completo em um local incorreto, podem resultar em dados incorretos mas sem erros de soma de verificao. As somas de verificao do ZFS so armazenadas de forma que essas falhas sejam detectados e possam ser recuperados adequadamente. Todas as somas de verificao e recuperaes de dados so efetuadas na camada do sistema de arquivos e so evidentes para os aplicativos. Alm disso, o ZFS oferece a autocorreo de dados. O ZFS suporta conjuntos de armazenamento com nveis variados de redundncia de dados. Quando um bloco de dados incorreto detectado, o ZFS busca os dados corretos em outra cpia redundante e repara os dados incorretos substituindo-os pela cpia dados corretos.
Escalabilidade no paralela
Um elemento de design fundamental do sistema de arquivos do ZFS a escalabilidade. O sistema de arquivos em si de 128 bits, permitindo 256 quatrilhes de zettabytes de armazenamento. Todos os metadados esto alocados dinamicamente, de forma que no h necessidade de pr-alocar inodes ou de limitar a escalabilidade do sistema de arquivos quando este for criado pela primeira vez. Todos os algoritmos foram gravados levando-se em considerao a escalabilidade. Os diretrios podem possuir at 248 (256 trilhes) de entradas e no h limites para o nmero de sistemas de arquivos ou para o nmero de arquivos que pode ser contido em um sistema de arquivos.
Instantneos do ZFS
Um instantneo uma cpia de somente leitura de um volume ou de um sistema de arquivos. Os instantneos podem ser criados rpida e facilmente. No incio, os instantneos no utilizam espao adicional em disco dentro do conjunto. Conforme os dados dentro dos conjuntos de dados ativos so alterados, o instantneo passa a utilizar mais espao em disco devido s contnuas referncias aos dados antigos. Como conseqncia, o instantneo evita que os dados sejam liberados de novo no pool.
Administrao simplificada
O mais importante que o ZFS oferece um modelo de administrao muito simplificado. Atravs do uso de um layout de sistema de arquivos hierrquico, da herana de propriedade e do gerenciamento automtico de pontos de montagem e de semnticas compartilhadas de NFS, o ZFS facilita a criao e o gerenciamento de sistemas de arquivos sem a necessidade de vrios comandos ou de editar os arquivos de configurao. Voc pode definir facilmente as cotas ou reservas, habilitar ou desabilitar a compactao ou gerenciar os pontos de montagem de
Captulo 1 Sistema de arquivos Oracle Solaris ZFS (introduo) 49
Terminologia do ZFS
numerosos sistemas de arquivos com um nico comando. possvel examinar ou substituir dispositivos sem conhecer um conjunto separado de comandos do gerenciador de volume. possvel enviar e receber fluxos de instantneos do sistema de arquivos. O ZFS gerencia sistemas de arquivos atravs de uma hierarquia que possibilita esse gerenciamento simplificado de propriedades como cotas, reservas, compactao e pontos de montagem. Nesse modelo, sistemas de arquivos so o ponto central de controle. Os sistemas de arquivos em si so muito baratos (equivalentes criao de um novo diretrio), de modo que voc estimulado a criar um sistema de arquivos para cada usurio, projeto, rea de trabalho, etc. Esse design permite que voc defina pontos de gerenciamento detalhados.
Terminologia do ZFS
Esta seo descreve a terminologia bsica utilizada neste livro: ambiente de inicializao alternativo Um ambiente de inicializao criado pelo comando lucreate e possivelmente atualizado pelo comando luupgrade, mas que no est ativo ou no o ambiente de inicializao principal. O ambiente de inicializao alternativo pode ser alterado para o ambiente de inicializao primrio por meio da execuo do comando luactivate. Uma verificao de 256 bits dos dados em um bloco de sistemas de arquivos. A capacidade da soma de verificao pode variar do fletcher4 (padro) simples e rpido a verificaes criptograficamente seguras como SHA256. Um sistema de arquivos cujo contedo inicial idntico ao contedo de um instantneo. Para informaes sobre clones, consulte Viso geral dos clones do ZFS na pgina 242. conjunto de dados Um nome genrico dos componentes do ZFS a seguir: clones, sistemas de arquivos, instantneos e volumes. Cada conjunto de dados identificado por um nome nico no espao de nome do ZFS. Os conjuntos de dados so identificados com o seguinte formato: pool/caminho [@snapshot] pool Identifica o nome do pool de armazenamento que contm o conjunto de dados
soma de verificao
clone
50
Terminologia do ZFS
caminho
o nome do caminho delimitado por barra para o componente do conjunto de dados um componente opcional que identifica um instantneo de um conjunto de dados
instantneo
Para mais informaes sobre conjuntos de dados, consulte o Captulo 6, Gerenciando sistemas de arquivos ZFS do Oracle Solaris. sistema de arquivos Conjunto de dados ZFS de tipo filesystem montado dentro do espao de nome padro do sistema e que se comporta como outros sistemas de arquivos. Para mais informaes sobre sistemas de arquivos, consulte o Captulo 6, Gerenciando sistemas de arquivos ZFS do Oracle Solaris. espelho Um dispositivo virtual que armazena cpias idnticas de dados em dois ou mais discos. Se um disco falha em um espelho, qualquer outro disco desse espelho pode fornecer os mesmos dados. Grupo lgico de dispositivos que descreve o layout e as caractersticas fsicas do armazenamento disponvel. O espao em disco para os conjuntos de dados alocado a partir de um conjunto. Para mais informaes sobre conjuntos de armazenamento, consulte o Captulo 4, Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris. ambiente de inicializao principal Um ambiente de inicializao que usado pelo comando lucreate para construir o ambiente de inicializao alternativo. Por padro, o ambiente de inicializao primrio o ambiente de inicializao atual. Esse padro pode ser ignorado com o uso da opo lucreate -s. Um dispositivo virtual que armazena dados e paridades em discos mltiplos. Para mais informaes sobre o RAID-Z, consulte Configurao de pool de armazenamento RAID-Z na pgina 71. O processo de cpia de dados de um dispositivo para outro conhecido como resilvering. Por exemplo, se
51
pool
RAID-Z
resilvering
um dispositivo do espelho substitudo ou colocado off-line, os dados de um dispositivo do espelho atualizado so copiados para o dispositivo do espelho recm-restaurado. Em produtos de gerenciamento de volumes tradicionais, faz-se referncia a esse processo como resincronizao espelhada. Para mais informaes sobre resilvering do ZFS, consulte Exibindo o status do resilvering na pgina 321. instantneo Uma cpia de somente de leitura de um volume ou de um sistema de arquivos em um determinado ponto do tempo. Para mais informaes sobre instantneos, consulte Viso geral dos instantneos do ZFS na pgina 235. dispositivo virtual Dispositivo lgico em um pool, que pode ser um dispositivo fsico, um arquivo ou um conjunto de dispositivos. Para mais informaes sobre dispositivos virtuais, consulte Exibindo informaes do dispositivo virtual do pool de armazenamento na pgina 79. volume Um conjunto de dados que representa um dispositivo de bloco. Por exemplo, voc pode criar um volume ZFS como um dispositivo de permuta. Para obter informaes sobre volumes ZFS, consulte Volumes ZFS na pgina 289.
Cada componente pode conter somente caracteres alfanumricos alm dos quatro caracteres especiais a seguir:
52
Os nomes de pool devem comear com uma letra, exceto para as seguintes restries:
A seqncia inicial c[0-9] no permitida. O nome log reservado. Um nome que comea com espelho, raidz , raidz1, raidz2, raidz3 ou spareno permitido porque esses nomes so reservados. Os nomes de conjuntos no devem conter um sinal de porcentagem (%).
Os nomes dos conjuntos de dados devem comear com caracteres alfanumricos. Os nomes de conjunto de dados no devem conter um sinal de porcentagem (%).
53
54
C A P T U L O
Este captulo fornece instrues passo a passo para fazer a configurao bsica do ZFS do Oracle Solaris. At final deste captulo, voc ter uma idia bsica de como funcionam os comandos do ZFS e ser capaz de criar conjuntos e sistemas de arquivos simples. Este captulo no oferece uma viso geral abrangente e faz referncia a captulos para informaes mais detalhadas do assunto tratado. Este captulo traz as seguintes sees:
Recomendaes e requisitos de software e hardware do ZFS na pgina 55 Criando um sistema de arquivos ZFS bsico na pgina 56 Criando um pool de armazenamento do ZFS na pgina 57 Criando uma hierarquia de sistemas de arquivos ZFS na pgina 58
Utilize um sistema com base em SPARC ou em x86 que esteja em execuo no Solaris 10 6/06 ou verso superior. O espao mnimo em disco necessrio para um conjunto de armazenamento de 64 MB. O tamanho mnimo do disco de 128 MB. O tamanho mnimo de memria necessria para a instalao de um sistema Solaris de 1568 MB. No entanto, para obter bom desempenho do ZFS, utilize pelo menos 1568 de memria. Se voc criar uma configurao de disco espelhada, utilize diversos controladores.
55
Para obter mais informaes sobre configuraes de pool do ZFS, consulte Recursos de replicao de um pool de armazenamento do ZFS na pgina 71. O novo sistema de arquivos do ZFS, tank, pode utilizar tanto espao em disco quanto for necessrio e automaticamente montado em /tank.
# mkfile 100m /tank/foo # df -h /tank Filesystem size used avail capacity Mounted on tank 80G 100M 80G 1% /tank
provvel que voc queira criar sistemas de arquivos adicionais dentro de um conjunto. Os sistemas de arquivos fornecem pontos de administrao que permitem gerenciar diferentes conjuntos de dados dentro de um mesmo conjunto. O exemplo a seguir mostra como criar um sistema de arquivos chamado fs no conjunto de armazenamento tank.
# zfs create tank/fs
O novo sistema de arquivos do ZFS, tank/fs, pode utilizar tanto espao em disco quanto for necessrio e automaticamente montando em /tank/fs.
# mkfile 100m /tank/fs/foo # df -h /tank/fs Filesystem size tank/fs 80G
Normalmente, provvel que voc queira criar e organizar uma hierarquia de sistemas de arquivos que corresponda s suas necessidades organizacionais. Para obter mais informaes sobre a criao de uma hierarquia de sistemas de arquivos do ZFS, consulte Criando uma hierarquia de sistemas de arquivos ZFS na pgina 58.
56
Escolha a replicao de dados. O ZFS oferece suporte a vrios tipos de replicao de dados, o que determina que tipos de falhas de hardware o conjunto pode suportar. O ZFS oferece suporte a configuraes no redundantes (distribudas), bem como a espelhamento e RAID-Z (uma variao de RAID-5). No exemplo de armazenamento em Como criar um pool de armazenamento do ZFS na pgina 57, utiliza-se o espelhamento bsico de dois discos disponveis. Para obter mais informaes sobre os recursos de replicao do ZFS, consulte Recursos de replicao de um pool de armazenamento do ZFS na pgina 71.
Escolha um nome para o conjunto de armazenamento. O nome do conjunto utilizado para identificar o conjunto de armazenamento quando os comandos zpool ou zfs esto sendo utilizados. A maioria dos sistemas requer somente um nico conjunto, tornando possvel selecionar o nome de sua preferncia, contanto que esteja de acordo com os requisitos de identificao citados em Requisitos para nomeao de componentes do ZFS na pgina 52.
Crie o pool. Por exemplo, o comando a seguir cria um conjunto espelhado chamado tank:
# zpool create tank mirror c1t0d0 c2t0d0
Se um ou mais dispositivos contiverem outro sistema de arquivos ou estiverem em uso, o comando no poder criar o pool. Para obter mais informaes sobre a criao de pools de armazenamento, consulte Criando um pool de armazenamento do ZFS na pgina 74. Para obter mais informaes sobre como determinado o uso do dispositivo, consulte Detectando dispositivos em uso na pgina 80.
4
Visualize os resultados. Voc pode determinar se seu pool foi criado com sucesso usando o comando zpool list .
# zpool list NAME tank SIZE 80G ALLOC 137K FREE 80G CAP HEALTH 0% ONLINE ALTROOT -
Para obter mais informaes sobre a visualizao do status do pool, consulte Consultando status de pool de armazenamento do ZFS na pgina 108.
58
Agrupe os sistemas de arquivos semelhantes. O ZFS permite que os sistemas de arquivos sejam organizados em hierarquias para que os sistemas de arquivos semelhantes possam ser agrupados. Esse modelo oferece um ponto central de administrao para o controle de propriedades e a administrao de sistemas de arquivos. Os sistemas de arquivos semelhantes devem ser criados sob um mesmo nome. No exemplo em Como criar sistemas de arquivos ZFS na pgina 59, os dois sistemas de arquivos so inseridos em um sistema de arquivos chamado home.
Escolha as propriedades do sistema de arquivos. A maioria das caractersticas do sistema de arquivos controlada por propriedades. Essas propriedades controlam vrios comportamentos, incluindo onde os sistemas de arquivos so montados, como so compartilhados, se utilizam compactao e se as cotas esto ativas. No exemplo em Como criar sistemas de arquivos ZFS na pgina 59, todos os diretrios home esto montados no usurio /export/zfs/, compartilhados atravs do NFS e apresentam a compactao ativada. Alm disso, no usurio jeff, obrigatria uma cota de 10 GB. Para obter mais informaes sobre propriedades, consulte Introduzindo as propriedades do ZFS na pgina 199.
Crie a hierarquia desejada. Neste exemplo, criado um sistema de arquivos que age como um continer para sistemas de arquivos individuais.
# zfs create tank/home
Defina as propriedades de herana. Depois que a hierarquia do sistema de arquivos tiver sido estabelecida, defina as propriedades que devem ser compartilhadas com os usurios:
# zfs set # zfs set # zfs set # zfs get NAME tank/home mountpoint=/export/zfs tank/home sharenfs=on tank/home compression=on tank/home compression tank/home PROPERTY VALUE compression on
SOURCE local
Voc pode definir as propriedades do sistema de arquivos quando o mesmo criado. Por exemplo:
# zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home
Para obter mais informaes sobre propriedades e herana de propriedades, consulte Introduzindo as propriedades do ZFS na pgina 199. Em seguida, os sistemas de arquivos individuais so agrupados no sistema de arquivos home no pool tank.
4
Crie os sistemas de arquivos individuais. Observe que os sistemas de arquivos podem ter sido criados e, ento, as propriedades podem ter sido alteradas no nvel home. Todas as propriedades podem ser alteradas dinamicamente enquanto os sistemas de arquivos esto sendo usados.
# zfs create tank/home/jeff # zfs create tank/home/bill
Esses sistemas de arquivos herdam os valores de propriedade dos seus pais, e so montados automaticamente no /export/zfs/ usurio e so compartilhados por NFS. No necessrio editar o arquivo /etc/vfstab ou o /etc/dfs/dfstab. Para obter mais informaes sobre a criao de sistemas de arquivos, consulte Criando um sistema de arquivos ZFS na pgina 196. Para mais informaes sobre a montagem e o compartilhamento de sistemas de arquivos, consulte Montando e compartilhando sistemas de arquivos ZFS na pgina 220.
5
Defina as propriedades especficas do sistema de arquivos. Neste exemplo, uma cota de 10 GB atribuda ao usurio jeff. Essa propriedade limita a quantidade de espao que o usurio pode utilizar, independentemente do espao em disco disponvel no pool.
# zfs set quota=10G tank/home/jeff
60
Visualize os resultados. Visualize as informaes disponveis do sistema de arquivos usando o zfs list:
# zfs list NAME tank tank/home tank/home/bill tank/home/jeff USED 92.0K 24.0K 8K 8K AVAIL REFER MOUNTPOINT 67.0G 9.5K /tank 67.0G 8K /export/zfs 67.0G 8K /export/zfs/bill 10.0G 8K /export/zfs/jeff
Observe que o usurio jeff tem somente 10 GB de espao disponvel, enquanto que o usurio bill pode utilizar o conjunto completo (67 GB). Para obter mais informaes sobre a visualizao do status do sistema de arquivos, consulte Consultando informaes sobre o sistema de arquivos ZFS na pgina 213. Para obter mais informaes sobre como o espao utilizado e calculado, consulte Contabilidade de espao em disco do ZFS na pgina 64.
61
62
C A P T U L O
Este captulo aborda algumas das principais diferenas existentes entre o ZFS do Oracle Solaris e os sistemas de arquivos tradicionais. Compreender essas diferenas chaves podem ajudar a diminuir as confuses ao trabalhar com ferramentas tradicionais na interao com o ZFS. Este captulo traz as seguintes sees:
Granularidade do sistema de arquivos ZFS na pgina 63 Contabilidade de espao em disco do ZFS na pgina 64 Comportamento por espao excedido na pgina 64 Montando sistemas de arquivos ZFS na pgina 65 Gerenciamento de volume tradicional na pgina 65 Novo modelo de ACL do Solaris na pgina 65
A presena de instantneos pode provocar alguns comportamentos inesperados ao tentar liberar espao em disco. Normalmente, com as permisses apropriadas, possvel remover um arquivo de todo um sistema de arquivos, e esta ao resulta em mais espao em disco disponvel no sistema de arquivos. No entanto, se o arquivo a ser removido existir no instantneo do sistema de arquivos, ento nenhum espao em disco liberado com a excluso do arquivo. Os blocos usados pelo arquivo continuam a ser referenciados a partir do instantneo. Como resultado, a excluso do arquivo pode consumir mais espao em disco, pois uma nova verso do diretrio precisa ser criada para refletir o novo estado do espao de nome. Este comportamento significa que possvel receber um erro ENOSPC ou EDQUOT inesperado ao tentar remover o arquivo.
Este modelo fornece um conjunto de privilgios de acesso mais granular. ACLs so definidas e exibidas com os comandos chmod e ls em vez dos comandos setfacl e getfacl . Semnticas mais ricas designam como os privilgios de acesso so aplicados do diretrio aos subdiretrios, e assim por diante.
Para obter mais informaes sobre o uso de ACLs com arquivos do ZFS, consulte o Captulo 8, Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris.
66
C A P T U L O
Este captulo descreve como criar e administrar conjuntos de armazenamento no ZFS do Oracle Solaris. Este captulo traz as seguintes sees:
Componentes de um pool de armazenamento do ZFS na pgina 67 Recursos de replicao de um pool de armazenamento do ZFS na pgina 71 Criando e destruindo pools de armazenamento do ZFS na pgina 74 Gerenciando dispositivos em pools de armazenamento do ZFS na pgina 84 Gerenciando propriedades do pool de armazenamento do ZFS na pgina 105 Consultando status de pool de armazenamento do ZFS na pgina 108 Migrando pools de armazenamento do ZFS na pgina 118 Atualizando pools de armazenamento do ZFS na pgina 128
Usando discos em um pool de armazenamento do ZFS na pgina 67 Usando faixas em um pool de armazenamento do ZFS na pgina 69 Usando arquivos em um pool de armazenamento do ZFS na pgina 70
Um dispositivo de armazenamento que pode ser um disco inteiro (c1t0d0) ou uma faixa individual (c0t0d0s7). O modo recomendado de operao utilizar um disco inteiro, caso em que o o disco no necessita ser especialmente formatado. O ZFS formata o disco usando uma legenda EFI para conter uma nica faixa grande. Quando usado desta forma, a tabela de partio que exibida pelo comando format aparece semelhante seguinte:
Current partition table (original): Total disk sectors available: 286722878 + 16384 (reserved sectors) Part Tag 0 usr 1 unassigned 2 unassigned 3 unassigned 4 unassigned 5 unassigned 6 unassigned 8 reserved Flag wm wm wm wm wm wm wm wm First Sector 34 0 0 0 0 0 0 286722912 Size 136.72GB 0 0 0 0 0 0 8.00MB Last Sector 286722911 0 0 0 0 0 0 286739295
Para utilizar um disco inteiro, o disco deve ser nomeado utilizando a conveno de identificao /dev/dsk/cXtXdXsX. Alguns drivers de terceiros usam uma conveno de nomeao diferente ou colocam o disco em um local diferente do diretrio /dev/dsk. Para usar estes discos, necessrio rotular manualmente o disco e fornecer uma faixa para o ZFS. O ZFS aplica uma legenda EFI quando voc cria um pool de armazenamento com discos inteiros. Para obter mais informaes sobre legendas EFI, consulte EFI Disk Label no System Administration Guide: Devices and File Systems . Um disco definido para um pool raiz ZFS, precisa ser criado com uma legenda SMI e no uma legenda EFI. Voc pode relegendar um disco com uma legenda SMI usando o comando format -e. Os discos podem ser especificados com o uso do caminho completo, como /dev/dsk/c1t0d0 , ou de um nome abreviado que consiste no nome do dispositivo dentro do diretrio /dev/dsk, como c1t0d0. Abaixo encontram-se, por exemplo, nomes de disco vlidos:
A utilizao de discos inteiros a forma mais simples de criar conjuntos de armazenamento ZFS. As configuraes do ZFS se tornam progressivamente mais complexas, dos pontos de vista de gerenciamento, confiabilidade e desempenho, quando voc constri pools a partir de faixas de disco, LUNs em matrizes de hardware RAID ou em volumes apresentados pelos gerenciadores de volume baseados em software. As consideraes abaixo podem ajudar voc a determinar como configurar o ZFS com outras solues de armazenamento de hardware ou software:
68 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Se construir as configuraes do ZFS em cima de LUNs a partir de matrizes de hardware RAID, necessrio entender a relao entre os recursos de redundncia ZFS e os recursos de redundncia oferecidos pela matriz. Determinadas configuraes podem oferecer redundncia e desempenho adequados, mas outras configuraes no. Voc pode construir dispositivos lgicos para o ZFS usando volumes apresentados pelos gerenciadores de volume baseados em software, como Solaris Volume Manager (SVM) ou Veritas Volume Manager (VxVM). No entanto, estas configuraes no so recomendveis. Embora o ZFS funcione corretamente nestes dispositivos, o resultado pode ser um desempenho inferior a timo.
Para obter informaes adicionais sobre as recomendaes de pool de armazenamento, consulte o site de boas prticas do ZFS: http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide Os discos so identificados pelo caminho e pelo ID do dispositivo, se disponvel. Em sistemas onde a informao de ID do dispositivo est disponvel, este mtodo de identificao permite que dispositivos sejam configurados sem atualizar o ZFS. Como a gerao e gerenciamento de dispositivo de ID pode variar de acordo com o sistema, exporte o conjunto primeiro antes de mover dispositivos, assim como mover um disco de um controlador para outro. Um evento do sistema, como uma atualizao de firmware ou outro alterao de hardware, pode alterar as IDs do dispositivo no conjunto de armazenamento ZFS, que pode causar a invalidao do dispositivo.
0 1 2 3 4 5 6 7
wm wm wm wm wm wm wm wm
0 - 14086 0 0 - 14086 0 0 0 0 0
68.35GB 0 68.35GB 0 0 0 0 0
(14087/0/0) 143349312 (0/0/0) 0 (14087/0/0) 143349312 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0
Em um sistema com base em x86, um disco de 72 GB possui 68 GB de espao til localizados no segmento 0, conforme mostrado na seguinte sada de format. A faixa 8 contm uma pequena quantidade de informaes de inicializao. A faixa 8 no precisa de administrao e no pode ser alterada.
# format . . . selecting c1t0d0 partition> p Current partition table (original): Total disk cylinders available: 49779 + 2 (reserved cylinders) Part Tag 0 root 1 unassigned 2 backup 3 unassigned 4 unassigned 5 unassigned 6 unassigned 7 unassigned 8 boot 9 unassigned Flag wm wu wm wu wu wu wu wu wu wu Cylinders 1 - 49778 0 0 - 49778 0 0 0 0 0 0 0 0 Size 68.36GB 0 68.36GB 0 0 0 0 0 1.41MB 0 Blocks (49778/0/0) 143360640 (0/0/0) 0 (49779/0/0) 143363520 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0 (0/0/0) 0 (1/0/0) 2880 (0/0/0) 0
Uma partio fdisk tambm existe em sistemas Solaris x86. Uma partio fdisk representada por um nome de dispositivo /dev/dsk/cN[tN]dNpN e atua como um continer para as partes disponveis do disco. No use um dispositivo cN[tN]dNpN para um componente do pool de armazenamento ZFS, porque essa configurao no foi testada nem suportada.
No entanto, os arquivos podem ser bastante teis ao utilizar o ZFS pela primeira vez ou experimentar configuraes mais complicadas quando dispositivos fsicos insuficientes esto presentes. necessrio especificar todos os arquivos como caminhos completos e estes devem ter tamanho de pelo menos 64 MB.
Configurao de pool de armazenamento espelhado na pgina 71 Configurao de pool de armazenamento RAID-Z na pgina 71 Dados de autocorreo em uma configurao redundante na pgina 73 Distribuio dinmica em um pool de armazenamento na pgina 73 Pool armazenamento hbrido do ZFS na pgina 73
Para obter mais informaes sobre a criao de pool de armazenamento espelhado, consulte Criando um pool de armazenamento espelhado na pgina 74.
Todos os algoritmos tradicionais semelhantes ao RAID-5 (RAID-4, RAID-6, RDP e EVEN-ODD, por exemplo) podem apresentar um problema conhecido como "buraco de gravao de RAID-5". Se apenas parte de uma faixa RAID-5 for gravado, e a potncia se perder antes de todos os blocos terem sido registrados no disco, a paridade permanecer dessincronizada com os dados e, portanto, ficar inutilizada para sempre (a no ser que uma gravao subsequente de faixa inteira a substitua). No RAID-Z, o ZFS usa faixas RAID de largura varivel, de forma que todas as gravaes so gravaes de faixa inteira. Este design possvel apenas porque o ZFS integra o gerenciamento do sistema de arquivos e do dispositivo de tal forma que os metadados do sistema de arquivos tm informaes suficientes sobre o modelo de redundncia de dados subjacente para lidar com faixas RAID de largura varivel. O RAID-Z a primeira soluo somente de software do mundo para o "buraco de gravao de RAID-5". Uma configurao RAID-Z com N discos de tamanho X com discos de paridade P podem conter aproximadamente (N-P)*X bytes e podem resistir a P dispositivo(s) falho(s) antes que a integridade dos dados seja comprometida. So necessrios pelo menos dois discos para uma configurao RAID-Z de paridade nica e pelo menos trs discos para uma configurao RAID-Z de paridade dupla. Por exemplo, se houver trs discos em uma configurao RAID-Z de paridade nica, os dados da paridade ocuparo espao igual a um dos trs discos. Do contrrio, nenhum hardware especial ser necessrio para criar uma configurao RAID-Z. Conceitualmente, uma configurao RAID-Z com trs discos teria a aparncia semelhante seguinte:
raidz c1t0d0 c2t0d0 c3t0d0
Conceitualmente, uma configurao espelhada RAID-Z mais complexa teria a aparncia a seguir:
raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 raidz c8t0d0 c9t0d0 c10t0d0 c11t0d0 c12t0d0 c13t0d0 c14t0d0
Se estiver criando uma configurao RAID-Z com muitos discos, considere dividir os discos em vrios agrupamentos. Por exemplo, uma configurao RAID-Z com 14 discos melhor dividido em 7 agrupamentos de disco. As configuraes RAID-Z com agrupamentos de dgito nico de discos tm um melhor desempenho. Para informaes sobre a criao de um conjunto de armazenamento RAID-Z, consulte Criando um conjunto de armazenamento RAID-Z na pgina 76. Para informaes sobre a escolha entre uma configurao espelhada ou uma configurao RAID-Z levando em considerao desempenho e espao, consulte a entrada de blog a seguir: http://blogs.oracle.com/roch/entry/when_to_and_not_to Para informaes adicionais sobre as recomendaes de conjunto de armazenamento RAID-Z, consulte o site de boas prticas do ZFS:
72 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Quatro discos que usem distribuio dinmica Uma configurao RAID-Z de quatro direes Dois espelhos bidirecionais que usem distribuio dinmica
Apesar do ZFS suportar a combinao de diferentes tipos de dispositivos virtuais dentro do mesmo conjunto, evite esta prtica. Voc pode criar, por exemplo, um pool com um espelho
Captulo 4 Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris 73
bidirecional e uma configurao RAID-Z tridirecional. No entanto, a tolerncia a falhas to boa quanto a do seu pior dispositivo virtual, RAID-Z neste caso. A melhor prtica utilizar dispositivos virtuais de nvel superior do mesmo tipo com o mesmo nvel de redundncia em cada dispositivo.
Criando um pool de armazenamento do ZFS na pgina 74 Exibindo informaes do dispositivo virtual do pool de armazenamento na pgina 79 Manipulando erros de criao do pool de armazenamento do ZFS na pgina 80 Destruindo pools de armazenamento do ZFS na pgina 83
Criar e destruir conjuntos rpido e fcil. Entretanto, seja cuidadoso ao efetuar estas operaes. Embora sejam realizadas verificaes para impedir o uso de dispositivos que esto sendo usados em um novo pool, o ZFS nem sempre sabe quando um dispositivo est sendo utilizado. Destruir um conjunto mais fcil do que construir um. Use zpool destroy com cuidado. Este comando simples tem consequncias significantes.
Nomes de dispositivos representando discos inteiros so encontrados no diretrio /dev/dsk e esto legendados adequadamente pelo ZFS para conter um nico e grande segmento. Os dados so distribudos dinamicamente nos dois discos.
A segunda palavra-chave mirror indica que um novo dispositivo virtual de primeiro nvel est sendo especificado. Os dados so distribudos dinamicamente nos dois espelhos e redundados adequadamente em cada disco. Para obter mais informaes sobre as configuraes espelhadas recomendadas, v ao site: http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide No momento, as operaes a seguir so suportadas em uma configurao espelhada do ZFS:
Adicionar outro conjunto de discos de um dispositivo de nvel superior adicional (vdev) a uma configurao espelhada existente. Para obter mais informaes, consulte Adicionando dispositivos a um pool de armazenamento na pgina 84. Anexar discos adicionais a uma configurao espelhada existente. Ou, anexar discos adicionais a uma configurao no replicada para criar uma configurao espelhada. Para obter mais informaes, consulte Anexando e desanexando dispositivos em um pool de armazenamento na pgina 89. Substituir um disco ou discos em uma configurao espelhada existente desde que os discos de substituio sejam maiores ou iguais ao tamanho do dispositivo a ser substitudo. Para obter mais informaes, consulte Substituindo dispositivos em um pool de armazenamento na pgina 97. Desanexando um disco em uma configurao espelhada desde que os dispositivos restantes forneam redundncia adequada para a configurao. Para obter mais informaes, consulte Anexando e desanexando dispositivos em um pool de armazenamento na pgina 89. Dividindo uma configurao espelhada ao desanexar um dos discos ao criar um novo conjunto idntico. Para mais informaes, consulte Criando um novo conjunto ao dividir um conjunto de armazenamento ZFS espelhado na pgina 91.
No possvel remover completamente um dispositivo que no um dispositivo de log ou cache de um conjunto de armazenamento espelhado. Uma RFE preenchida para esse recurso.
Os discos usados para o pool raiz devem ter uma legenda VTOC (SMI) e o pool deve ser criado com faixas de disco. O conjunto raiz deve ser criado como uma configurao espelhada ou uma configurao de disco nico. No possvel adicionar discos adicionais pra criar vrios dispositivos virtuais espelhados de nvel superior ao utilizar o comando zpool add, mas possvel expandir um dispositivo virtual espelhado ao utilizar o comando zpool attach.
75
A configurao distribuda ou RAID-Z no suportada. Um conjunto raiz no pode possuir um dispositivo de log em separado. Se tentar utilizar uma configurao no suportada para um conjunto raiz, sero exibidas mensagens semelhantes s seguintes:
ERROR: ZFS pool <pool-name> does not support boot environments # zpool add -f rpool log c0t6d0s0 cannot add to rpool: root pool can not have multiple vdevs or separate logs
Para mais informaes sobre a instalao e a inicializao de um sistema de arquivos raiz ZFS, consulte Captulo 5, Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris.
Este exemplo ilustra que os discos podem ser especificados ao utilizar seus nomes de dispositivo de estenografia ou seus nomes de dispositivos completos. Tanto /dev/dsk/c5t0d0 quanto c5t0d0 fazem referncia ao mesmo disco. possvel criar configuraes RAID-Z de paridade dupla ou tripla ao utilizar a palavra-chave raidz2 ou raidz3 ao criar o conjunto. Por exemplo:
# zpool create tank raidz2 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 # zpool status -v tank pool: tank state: ONLINE scrub: none requested config: NAME tank raidz2-0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
errors: No known data errors # zpool create tank raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 # zpool status -v tank pool: tank
76 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
state: ONLINE scrub: none requested config: NAME tank raidz3-0 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Adicionar outro conjunto de discos para um dispositivo virtual de nvel superior adicional em uma configurao RAID-Z existente. Para obter mais informaes, consulte Adicionando dispositivos a um pool de armazenamento na pgina 84. Substituir um disco ou discos em uma configurao RAID-Z existente desde que os discos de substituio sejam maiores ou iguais ao dispositivo a ser substitudo. Para obter mais informaes, consulte Substituindo dispositivos em um pool de armazenamento na pgina 97.
Anexao de um disco adicional a uma configurao RAID-Z existente. Desconectando um disco de uma configurao RAID-Z, exceto quando voc est desanexando um disco que foi substitudo por um disco extra ou quando voc precisa desanexar um disco extra. No possvel remover completamente um dispositivo que no seja um dispositivo de log ou de cache de uma configurao RAID-Z. Uma RFE preenchida para esse recurso.
Para obter informaes sobre a configurao RAID-Z, consulte Configurao de pool de armazenamento RAID-Z na pgina 71.
O exemplo a seguir mostra como criar um conjunto de armazenamento espelhado com dispositivos de log espelhados:
# zpool create datap mirror c1t1d0 c1t2d0 mirror c1t3d0 c1t4d0 log mirror c1t5d0 c1t8d0 # zpool status datap pool: datap state: ONLINE scrub: none requested config: NAME datap mirror-0 c1t1d0 c1t2d0 mirror-1 c1t3d0 c1t4d0 logs mirror-2 c1t5d0 c1t8d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Para obter informaes sobre como recuperar de um dispositivo de registro com falha, consulte Exemplo 112.
Considere os pontos a seguir ao determinar a criao de um conjunto de armazenamento ZFS com dispositivos de cache:
A utilizao dos dispositivos de cache fornecem o maior aperfeioamento de desempenho para cargas de trabalho aleatrias de leitura de contedo geralmente esttico. A capacidade e as leituras podem ser monitoradas usando o comando zpool iostat. Um nico ou vrios dispositivos de cache podem ser adicionados quando o conjunto criado. Tambm podem ser adicionados e removidos depois da criao do conjunto. Para obter mais informaes, consulte o Exemplo 44. Os dispositivos de cache no podem ser espalhados ou fazer parte de uma configurao RAID-Z. Se for encontrado em erro de leitura em um dispositivo de cache, aquele E/S reemitido para o dispositivo de conjunto de armazenamento original, que pode fazer parte de uma configurao espelhada ou RAID-Z. O contedo dos dispositivos de cache considerado voltil, similar a outros caches de sistema.
O exemplo abaixo mostra como criar um conjunto que consiste em um dispositivo de virtual nvel superior de quatro discos:
# zpool create mypool raidz2 c1d0 c2d0 c3d0 c4d0
possvel adicionar outro dispositivo virtual de nvel superior a este conjunto utilizando o comando zpool add. Por exemplo:
Captulo 4 Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris 79
Os discos, segmentos de discos ou arquivos que so utilizados em conjuntos no redundantes que funcionam como dispositivos virtuais de nvel superior. Os pools de armazenamento normalmente contm mltiplos dispositivos virtuais de primeiro nvel. O ZFS cria dinamicamente faixas de dados entre todos os dispositivos virtuais de primeiro nvel em um pool. Os dispositivos virtuais e os dispositivos fsicos contidos no pool de armazenamento do ZFS so exibidos com o comando zpool status. Por exemplo:
# zpool pool: state: scrub: config: status tank tank ONLINE none requested NAME tank mirror-0 c0t1d0 c1t1d0 mirror-1 c0t2d0 c1t2d0 mirror-2 c0t3d0 c1t3d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Alguns destes erros podem ser ignorados utilizando a opo -f, mas grande parte deles no. As condies a seguir no podem ser ignoradas utilizando a opo - f, sendo necessrio corrig-los manualmente: Sistema de arquivos montado O disco ou uma de suas faixas contm um sistema de arquivos que est montado atualmente. Para corrigir este erro, use o comando umount. O disco contm um sistema de arquivos que est listado no arquivo /etc/vfstab , mas o sistema de arquivos no est montado atualmente. Para corrigir este erro, remova ou anote a linha no arquivo /etc/vfstab. O disco est em uso como o dispositivo de dump dedicado para o sistema. Para corrigir este erro, use o comando dumpadm. O disco ou o arquivo faz parte de um pool de armazenamento ativo do ZFS. Para corrigir este erro, use o comando zpool destroy para destruir o pool, se este no for mais necessrio. Ou, use o comando zpool detach para desanexar o disco do outro pool. Somente possvel desanexar um disco do pool de armazenamento espelhado.
As verificaes de dispositivo em uso abaixo servem como avisos teis e podem ser ignoradas com o uso da opo -f para criar o pool: Contm um sistema de arquivos Parte de volume Live upgrade O disco contm um sistema de arquivos conhecido, embora no esteja montado e no parea estar em uso. Este disco parte de um volume do Solaris Volume Manager. O disco est em utilizao como um ambiente de inicializao alternativo para o Oracle Solaris Live Upgrade. O disco faz parte de um pool de armazenamento que foi exportado ou removido manualmente de um sistema. Neste ltimo caso, o pool relatado como potentially active, uma vez que o disco pode ser ou no uma unidade anexada a uma rede em uso por outro sistema. Tome cuidado ao substituir um pool potencialmente ativo.
81
# zpool create tank c1t0d0 invalid vdev specification use -f to override the following errors: /dev/dsk/c1t0d0s0 contains a ufs filesystem. # zpool create -f tank c1t0d0
possvel ignorar estes erros com a opo -f, mas deve-se evitar esta prtica. O comando tambm avisa sobre a criao de um pool espelhado ou RAID-Z que use dispositivos de diferentes tamanhos. Apesar desta configurao ser permitida, nveis de redundncia incompatveis resultam em espao de disco inutilizado no dispositivo maior. A opo -f necessria para ignorar os avisos.
Alguns erros no podem ser detectados sem a criao real do pool. O exemplo mais comum a especificao do mesmo dispositivo duas vezes na mesma configurao. No possvel detectar
82
este erro com certeza sem realmente gravar os dados, de forma que o comando zpool create -n pode relatar xito e ainda assim falhar em criar o conjunto quando realmente executado sem esta opo.
Este comando cria um novo conjunto home e o conjunto de dados home com um ponto de montagem /export/zfs. Para obter mais informaes sobre pontos de montagem, consulte Gerenciando pontos de montagem do ZFS na pgina 220.
83
Estes dispositivos, quando reparados de maneira adequada, so reportados como potencialmente ativos ao criar um novo conjunto. Eles aparecem como dispositivos vlidos ao buscar por conjuntos para importar. Se um pool apresentar bastantes dispositivos falhos, de forma que o prprio pool falho (o que significa que o dispositivo virtual de primeiro nvel falho), o comando imprimir um aviso e no poder concluir sem a opo -f. Esta opo necessria porque o conjunto no pode ser aberto, ento no possvel saber se os dados esto armazenados l. Por exemplo:
# zpool destroy tank cannot destroy tank: pool is faulted use -f to force destruction anyway # zpool destroy -f tank
Para obter mais informaes sobre a integridade de pools e dispositivos, consulte Determinando o status de integridade de pools de armazenamento do ZFS na pgina 114. Para obter mais informaes sobre a importao de pools, consulte Importando pools de armazenamento do ZFS na pgina 122.
Adicionando dispositivos a um pool de armazenamento na pgina 84 Anexando e desanexando dispositivos em um pool de armazenamento na pgina 89 Criando um novo conjunto ao dividir um conjunto de armazenamento ZFS espelhado na pgina 91 Colocando dispositivos off-line e on-line em um pool de armazenamento na pgina 94 Limpando erros de dispositivo de conjunto de armazenamento na pgina 97 Substituindo dispositivos em um pool de armazenamento na pgina 97 Designando sobressalentes no pool de armazenamento na pgina 99
O formato para especificar os dispositivos virtuais o mesmo para o comando zpool create. Os dispositivos so verificados para determinar se esto em uso e o comando no pode alterar o nvel de redundncia sem a opo -f. O comando tambm suporta a opo -n para que seja possvel realizar uma simulao. Por exemplo:
# zpool add -n zeepool mirror c3t1d0 c3t2d0 would update zeepool to the following configuration: zeepool mirror c1t0d0 c1t1d0 mirror c2t1d0 c2t2d0 mirror c3t1d0 c3t2d0
Esta sintaxe de comando pode adicionar dispositivos espelhados c3t1d0 e c3t2d0 configurao existente do conjunto zeepool. Para obter mais informaes sobre como realizada a validao de dispositivos virtuais, consulte Detectando dispositivos em uso na pgina 80.
EXEMPLO 41
No exemplo a seguir, outro espelho adicionado uma configurao espelhada do ZFS em um sistema do Oracle Sun Fire x4500.
# zpool pool: state: scrub: config: status tank tank ONLINE none requested NAME tank mirror-0 c0t1d0 c1t1d0 mirror-1 c0t2d0 c1t2d0 errors: # zpool # zpool pool: state: scrub: config: STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
No known data errors add tank mirror c0t3d0 c1t3d0 status tank tank ONLINE none requested
85
EXEMPLO 41
Adicionando discos a uma configurao espelhada do ZFS STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(Continuao)
NAME tank mirror-0 c0t1d0 c1t1d0 mirror-1 c0t2d0 c1t2d0 mirror-2 c0t3d0 c1t3d0
Da mesma forma, os discos extras podem ser adicionados a uma configurao RAID-Z. O exemplo a seguir mostra como converter um conjunto de armazenamento com um dispositivo RAID-Z que contm trs discos em um conjunto de armazenamento com dois dispositivos RAID-Z que contm trs discos cada.
# zpool pool: state: scrub: config: status rzpool rzpool ONLINE none requested NAME rzpool raidz1-0 c1t2d0 c1t3d0 c1t4d0 errors: # zpool # zpool pool: state: scrub: config: STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
No known data errors add rzpool raidz c2t2d0 c2t3d0 c2t4d0 status rzpool rzpool ONLINE none requested NAME rzpool raidz1-0 c1t0d0 c1t2d0 c1t3d0 raidz1-1 c2t2d0 c2t3d0 c2t4d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
86
EXEMPLO 42
(Continuao)
O exemplo a seguir mostra como adicionar um dispositivo de log espelhado a um pool de armazenamento espelhado.Para obter mais informaes sobre a utilizao de dispositivos de log no pool de armazenamento, consulte Configurando dispositivos de log do ZFS separados na pgina 35.
# zpool pool: state: scrub: config: status newpool newpool ONLINE none requested NAME newpool mirror-0 c0t4d0 c0t5d0 errors: # zpool # zpool pool: state: scrub: config: STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
No known data errors add newpool log mirror c0t6d0 c0t7d0 status newpool newpool ONLINE none requested NAME newpool mirror-0 c0t4d0 c0t5d0 logs mirror-1 c0t6d0 c0t7d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
possvel anexar um dispositivo de log a um dispositivo de log existente para criar um dispositivo de log espelhado. Essa operao idntica anexao de um dispositivo em um pool de armazenamento no espelhado. possvel remover dispositivos de log usando o comando zpool remove. O dispositivo de log espelhado no exemplo anterior pode ser removido ao especificar o argumento mirror-1. Por exemplo:
# zpool remove newpool mirror-1 # zpool status newpool
87
EXEMPLO 43
(Continuao)
pool: newpool state: ONLINE scrub: none requested config: NAME newpool mirror-0 c0t4d0 c0t5d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
Se a configurao do pool contiver apenas um dispositivo de log, remova o dispositivo de log especificando o nome do dispositivo. Por exemplo:
# zpool pool: state: scrub: config: status pool pool ONLINE none requested NAME pool raidz1-0 c0t8d0 c0t9d0 logs c0t10d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
possvel adicionar ao seu conjunto de armazenamento ZFS e remov-los se no forem mais necessrios. Use o comando zpool add para adicionar dispositivos de cache. Por exemplo:
# zpool add tank cache c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME tank mirror-0 c2t0d0 c2t1d0 c2t3d0
88
EXEMPLO 44
(Continuao)
ONLINE ONLINE
0 0
0 0
0 0
Os dispositivos de cache no podem ser espalhados ou fazer parte de uma configurao RAID-Z. Use o comando zpool remove para remover dispositivos de cache. Por exemplo:
# zpool remove tank c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME tank mirror-0 c2t0d0 c2t1d0 c2t3d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Atualmente, o comando zpool remove suporta apenas remover reservas, dispositivos de log e de cache. Os dispositivos fazem parte da configurao de pool espelhado principal e podem ser removidos usando o comando zpool detach. Dispositivos no-redundantes e RAID-Z no podem ser removidos de um conjunto. Para obter mais informaes sobre como utilizar dispositivos de cache em um conjunto de armazenamento ZFS, consulte Criando um conjunto de armazenamento do ZFS com dispositivos de cache na pgina 78.
89
Se for substituir um disco em um conjunto raiz ZFS, consulte Como substituir um disco no pool raiz ZFS na pgina 187.
EXEMPLO 45 Convertendo um pool de armazenamento espelhado bidirecional em um pool de armazenamento espalhado tridirecional
Neste exemplo, zeepool um espelho bidirecional existente que transformado em um espelho tridirecional ao anexar c2t1d0, o novo dispositivo, ao dispositivo existente c1t1d0.
# zpool pool: state: scrub: config: status zeepool zeepool ONLINE none requested NAME zeepool mirror-0 c0t1d0 c1t1d0 errors: # zpool # zpool pool: state: scrub: config: STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
No known data errors attach zeepool c1t1d0 c2t1d0 status zeepool zeepool ONLINE resilver completed after 0h0m with 0 errors on Fri Jan 8 12:59:20 2010 NAME zeepool mirror-0 c0t1d0 c1t1d0 c2t1d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 592K resilvered
Se o dispositivo existente parte de um espelho bidirecional, a anexao do novo dispositivo criar um espelho quadridirecional, e assim por diante. Em qualquer caso, o novo dispositivo comea a realizar resilvering imediatamente.
EXEMPLO 46 Convertendo um conjunto de armazenamento no redundante do ZFS em um conjunto de armazenamento espelhado do ZFS
Alm disso, possvel converter um conjunto de armazenamento no redundante em um conjunto de armazenamento redundante utilizando o comando zpool attach. Por exemplo:
# zpool create tank c0t1d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config:
90
EXEMPLO 46 Convertendo um conjunto de armazenamento no redundante do ZFS em um conjunto de armazenamento espelhado do ZFS (Continuao)
NAME tank c0t1d0 errors: # zpool # zpool pool: state: scrub: config:
No known data errors attach tank c0t1d0 c1t1d0 status tank tank ONLINE resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 2010 NAME tank mirror-0 c0t1d0 c1t1d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 73.5K resilvered
O comando zpool detach pode ser usado para desanexar um dispositivo de um pool de armazenamento espelhado. Por exemplo:
# zpool detach zeepool c2t1d0
Entretanto, esta operao falha se nenhuma outra rplica vlida dos dados existir. Por exemplo:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs
91
status tank tank ONLINE none requested NAME tank mirror-0 c1t0d0 c1t2d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
No known data errors split tank tank2 import tank2 status tank tank2 tank ONLINE none requested NAME tank c1t0d0 STATE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0
errors: No known data errors pool: tank2 state: ONLINE scrub: none requested config: NAME tank2 c1t2d0 STATE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0
possvel identificar qual disco deve ser utilizado para o conjunto recm criado ao especific-lo com o comando zpool split. Por exemplo:
# zpool split tank tank2 c1t0d0
Antes que a real operao de diviso ocorra, os dados na memria so descarregados para os discos espelhados. Depois que os dados so esvaziados, o disco desanexado do conjunto e atribudo a um novo GUID de conjunto. O novo GUID de conjunto gerado para que o conjunto possa ser importado no mesmo sistema no qual foi dividido. Se o pool a ser dividido possuir pontos de montagem no padres e o novo conjunto criado no mesmo sistema, voc dever utilizar a opo zpool split -R para identificar um diretrio raiz alternativo para o novo pool para que qualquer ponto de montagem existente no entre em conflito. Por exemplo:
# zpool split -R /tank2 tank tank2
92
Se no utilizar a opo zpool split -R e for possvel visualizar que os pontos de montagem entram em conflito quando tentam importar o novo conjunto, importe o novo conjunto com a opo -R. Se o novo pool for criado em um sistema diferente, ento no ser necessrio especificar um diretrio raiz alternativo, a no ser que ocorra um conflito no ponto de montagem. Revise as consideraes a seguir antes de utilizar o recurso zpool split:
Este recurso no est disponvel para configuraes RAIDZ ou conjunto no redundante de vrios discos. Operaes de aplicativo e dados devem ser pausados antes de tentar uma operao zpool split. Tendo em discos essa honra que, ao invs de ignorar, o comando de cache de gravao de esvaziamento do disco importante. Um conjunto no pode ser dividido se o resilvering estiver sendo processado. Dividir um pool espelhado o ideal quando o pool contm dois ou trs discos, onde o ltimo disco no conjunto original utilizado para o conjunto recm-criado. Ento, possvel utilizar o comando zpool attach para recriar o pool de armazenamento original espelhado ou converter o conjunto recm-criado em um pool de armazenamento espelhado. No existe nenhum mtodo atualmente de criar um pool espelhado novo de um pool espelhado existente ao utilizar este recurso. Se o conjunto existente um espelho tridirecional, ento o novo conjunto conter um disco depois da operao de diviso. Se o conjunto existente um espelho bidirecional, ento o resultado de dois conjuntos no redundantes de dois discos. Voc dever anexar dois discos adicionais para converter os conjuntos no redundantes para conjuntos espelhados. Uma boa maneira de manter os dados redundantes durante uma operao de diviso dividir um pool de armazenamento espelhado que contm trs discos para que o conjunto original contenha dois discos espelhados depois da operao de diviso.
Dividindo um conjunto ZFS espelhado
EXEMPLO 47
No exemplo a seguir, um conjunto de armazenamento espelhado chamado trinity, com trs discos, c1t0d0, c1t2d0 e c1t3d0, dividido. Os dois conjuntos resultantes so os conjuntos espelhados trinity, com discos c1t0d0 e c1t2d0, e o novo conjunto, neo, com disco c1t3d0. Cada conjunto possui contedo idntico.
# zpool pool: state: scrub: config: status trinity trinity ONLINE none requested NAME STATE trinity ONLINE mirror-0 ONLINE READ WRITE CKSUM 0 0 0 0 0 0
93
EXEMPLO 47
Dividindo um conjunto ZFS espelhado c1t0d0 ONLINE c1t2d0 ONLINE c1t3d0 ONLINE 0 0 0 0 0 0 0 0 0
(Continuao)
No known data errors split trinity neo import neo status trinity neo neo ONLINE none requested NAME neo c1t3d0 STATE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0
errors: No known data errors pool: trinity state: ONLINE scrub: none requested config: NAME trinity mirror-0 c1t0d0 c1t2d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
94
No possvel colocar um pool off-line no momento em que se torna falho. Por exemplo, no possvel colocar off-line dois dispositivos de uma configurao raidz1, nem colocar off-line um dispositivo virtual de nvel superior.
# zpool offline tank c1t0d0 cannot offline c1t0d0: no valid replicas
Por padro, o estado OFF-LINE persistente. O dispositivo permanece off-line quando o sistema reiniciado. Para colocar um dispositivo temporariamente off-line, use a opo zpool offline -t. Por exemplo:
# zpool offline -t tank c1t0d0 bringing device c1t0d0 offline
Quando um dispositivo colocado off-line, ele no desanexado do pool de armazenamento. Se tentar utilizar o dispositivo colocado off-line em outro conjunto, mesmo depois de o conjunto original ter sido destrudo, ser exibida uma mensagem semelhante seguinte:
device is part of exported or potentially active ZFS pool. Please see zpool(1M)
Se desejar utilizar o dispositivo off-line em outro conjunto de armazenamento depois de ter destrudo o conjunto de armazenamento original, primeiro coloque o dispositivo online, e ento destrua o conjunto de armazenamento original. Outra forma de utilizar um dispositivo de outro conjunto de armazenamento, enquanto mantm o conjunto de armazenamento original, substituindo o dispositivo existente no conjunto de armazenamento original por outro dispositivo semelhante. Para obter informaes sobre a substituio de dispositivos, consulte Substituindo dispositivos em um pool de armazenamento na pgina 97. Os dispositivos off-line aparecem no estado OFF-LINE quando consultado o estado do conjunto. Para obter informaes sobre consultas de status do pool, consulte Consultando status de pool de armazenamento do ZFS na pgina 108.
95
Para obter mais informaes sobre a integridade de dispositivos, consulte Determinando o status de integridade de pools de armazenamento do ZFS na pgina 114.
Quando um dispositivo colocado on-line, quaisquer dados que tenham sido gravados no conjunto so sincronizados novamente com o dispositivo recm disponvel. Observe que no possvel utilizar dispositivos on-line para substituir um disco. Se ao colocar um dispositivo off-line, substituir o dispositivo e coloc-lo on-line, ele permanece no estado de falho. Se tentar colocar um dispositivo falho on-line, ser exibida uma mensagem semelhante seguinte:
# zpool online tank c1t0d0 warning: device c1t0d0 onlined, but remains in faulted state use zpool replace to replace devices that are no longer present
Tambm pode ser possvel visualizar a mensagem de disco falho exibida no console ou escrita no arquivo /var/adm/messages. Por exemplo:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run zpool status -x and replace the bad device.
Para obter mais informaes sobre a substituio de um dispositivo falho, consulte Reparando um dispositivo faltando na pgina 311. Voc pode usar o comando zpool online -e para expandir o tamanho do pool se um disco maior foi conectado ao pool ou se um disco menor foi substitudo por um disco maior. Por padro, um disco que adicionado a um conjunto no expandido ao seu tamanho total a no ser que a propriedade do pool autoexpand esteja ativada. possvel expandir automaticamente o pool utilizando o comando zpool online - e, mesmo se o disco de substituio j estiver on-line ou se o disco estiver atualmente off-line. Por exemplo:
# zpool online -e tank c1t13d0
96
Se um ou mais dispositivos forem especificados, este comando limpar somente erros associados aos dispositivos especificados. Por exemplo:
# zpool clear tank c1t0d0
Para obter mais informaes sobre a limpeza de erros de zpool, consulte Apagando erros transitrios na pgina 315.
Se estiver substituindo um dispositivo em um pool de armazenamento por um disco em uma localizao fsica diferente, voc dever especificar ambos os dispositivos. Por exemplo:
# zpool replace tank c1t1d0 c1t2d0
Se for substituir um disco no pool raiz ZFS, consulte Como substituir um disco no pool raiz ZFS na pgina 187.
97
A seguir, as etapas bsicas para substituir um disco: 1. Coloque o disco off-line, se necessrio, com o comando zpool offline. 2. Remova o disco que ser substitudo. 3. Insira o disco de substituio. 4. Execute o comando zpool replace. Por exemplo:
# zpool replace tank c1t1d0
5. Coloque o disco on-line outra vez com o comando zpool online. Em alguns sistemas, como o Sun Fire da Oracle, necessrio desconfigurar o disco antes de coloc-lo off-line. Se estiver substituindo um disco na mesma posio de slot neste sistema, ento possvel apenas executar o comando zpool replace como descrito no primeiro exemplo nesta seo. Para um exemplo de substituio de um disco em um sistema Sun Fire X4500, consulte Exemplo 111. Considere o seguinte ao substituir dispositivos em um conjunto de armazenamento ZFS:
Se a propriedade autoreplace do conjunto for definida como on, qualquer dispositivo novo encontrado na mesma localizao fsica que um dispositivo que antes pertencia ao conjunto ser automaticamente formatado e substitudo. No necessrio utilizar o comando zpool replace quando esta propriedade estiver ativada. Este recurso pode no estar disponvel em todos os hardwares. O tamanho do dispositivo de substituio deve ser igual ou maior que o menor disco em um uma configurao espelhada ou RAID-Z. Quando um dispositivo de substituio com tamanho maior que o dispositivo que est substituindo adicionado ao pool, ele no expandido automaticamente para seu tamanho total. A propriedade do pool autoexpand determina se o pool expandido quando um disco maior adicionado ao pool. Por padro, a propriedade autoexpand desativada. possvel ativar esta propriedade ao expandir o tamanho do pol antes ou depois de adicionar o maior disco ao pool. No exemplo a seguir, dois discos de 16 GB em um conjunto espelhado so substitudos por dois discos de 72 GB. A propriedade autoexpand ativada aps as substituies do disco para expandir os tamanho completo do disco.
# zpool create pool mirror c1t16d0 c1t17d0 # zpool status pool: pool state: ONLINE scrub: none requested config: NAME pool STATE ONLINE READ WRITE CKSUM 0 0 0
98
0 0 0
0 0 0
0 0 0 ALTROOT -
zpool list pool NAME SIZE ALLOC FREE CAP HEALTH pool 16.8G 76.5K 16.7G 0% ONLINE # zpool replace pool c1t16d0 c1t1d0 # zpool replace pool c1t17d0 c1t2d0 # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH pool 16.8G 88.5K 16.7G 0% ONLINE # zpool set autoexpand=on pool # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH pool 68.2G 117K 68.2G 0% ONLINE
ALTROOT ALTROOT -
Substituir muitos discos em um conjunto grande demorado devido ao resilvering de dados nos novos discos. Alm disso, deve ser considerada a execuo do comando zpool scrub entre as substituies de disco para garantir que os dispositivos de substituio estejam operacionais e que os dados estejam sendo gravados corretamente. Se um disco defeituoso foi substitudo automaticamente por um sobressalente, pode ser necessrio desanexar o sobressalente depois que o disco defeituoso for substitudo. Voc pode usar o comando zpool detach para desanexar um extra em um pool espelhado ou RAID-Z. Para obter mais informaes sobre a desanexao de um sobressalente, consulte Ativando e desativando sobressalentes no pool de armazenamento na pgina 101.
Para obter mais informaes sobre a substituio de dispositivos, consulte Reparando um dispositivo faltando na pgina 311 e Substituindo ou reparando um dispositivo modificado na pgina 313.
Quando o conjunto criado com o comando zpool create. Aps o pool ser criado com o comando zpool add.
Os exemplos a seguir mostram atribuir dispositivos como reservas quando o conjunto criado:
99
# zpool create trinity mirror c1t1d0 c2t1d0 spare c1t2d0 c2t2d0 # zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME trinity mirror-0 c1t1d0 c2t1d0 spares c1t2d0 c2t2d0 STATE ONLINE ONLINE ONLINE ONLINE AVAIL AVAIL READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
O exemplo a seguir mostra como atribuir reservas ao adicion-los a um conjunto depois que o conjunto criado:
# zpool add neo spare c5t3d0 c6t3d0 # zpool status neo pool: neo state: ONLINE scrub: none requested config: NAME neo mirror-0 c3t3d0 c4t3d0 spares c5t3d0 c6t3d0 STATE ONLINE ONLINE ONLINE ONLINE AVAIL AVAIL READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
Os sobressalentes podem ser removidos de um pool de armazenamento com o uso do comando zpool remove. Por exemplo:
# zpool remove zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME zeepool mirror-0 c1t1d0 c2t1d0 spares c1t3d0 STATE ONLINE ONLINE ONLINE ONLINE AVAIL READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
100
Um reserva no pode ser removido se estiver sendo utilizado atualmente por um conjunto de armazenamento. Considere o seguinte quando estiver utilizando reservas ZFS:
Atualmente, o comando zpool remove pode ser utilizado apenas para remover reservas, dispositivos de cache e log. Para adicionar um disco como um reserva, o reserva deve ter tamanho igual ou maior ao tamanho do maior disco no conjunto. permitido adicionar um disco menor como um sobressalente de um pool. Entretanto, quando o sobressalente menor ativado, automaticamente ou com o comando zpool replace, a operao falha com um erro semelhante ao seguinte:
cannot replace disk3 with disk4: device is too small
Substituio manual: substitui um dispositivo falho em um conjunto de armazenamento por um reserva utilizando o comando zpool replace. Substituio automtica: quando a falha detectada, um agente FMA examina o conjunto para verificar se existem reservas disponveis. Se existirem, ele substituir o dispositivo falho por um sobressalente disponvel. Se um reserva atualmente em uso falha, o agente desanexa tal sobressalente, cancelando assim a substituio. O agente tenta, ento, substituir o dispositivo por outro sobressalente, se houver um disponvel. Este recurso atualmente limitado pelo fato de o mecanismo de diagnstico do ZFS emitir falhas somente quando um dispositivo desaparece do sistema. Se substituir fisicamente um dispositivo falho por um sobressalente ativo, possvel reativar o dispositivo original, utilizando o comando zpool detach para desanexar o sobressalente. Se definir a propriedade autoreplace do conjunto como on, o sobressalente desanexado e devolvido automaticamente para o grupo disponvel quando o novo dispositivo for inserido e a operao on-line terminar.
Substitua manualmente um dispositivo com um reserva utilizando o comando zpool replace. Consulte Exemplo 48. Um dispositivo falho substitudo automaticamente quando um sobressalente est disponvel. Por exemplo:
# zpool status -x pool: zeepool state: DEGRADED
101
status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using zpool online. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: resilver completed after 0h0m with 0 errors on Mon Jan 11 10:20:35 2010 config: NAME zeepool mirror-0 c1t2d0 spare-1 c2t1d0 c2t3d0 spares c2t3d0 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 DEGRADED 0 0 0 UNAVAIL 0 0 0 cannot open ONLINE 0 0 0 88.5K resilvered INUSE currently in use
Ao remover o reserva do conjunto de armazenamento. Ao desanexar um reserva depois que o disco falho substitudo fisicamente. Consulte Exemplo 49. Ao permutar temporariamente ou permanentemente o reserva. Consulte Exemplo 410.
Substituindo manualmente um disco com um reserva
EXEMPLO 48
Neste exemplo, o comando zpool replace utilizado para substituir o disco c2t1d0 com o reserva c2t3d0.
# zpool replace zeepool c2t1d0 c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME zeepool mirror-0 c1t2d0 spare-1 c2t1d0 c2t3d0 spares c2t3d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE INUSE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90K resilvered currently in use
102
EXEMPLO 48
(Continuao)
pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME zeepool mirror-0 c1t2d0 c2t3d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 90K resilvered
Neste exemplo, o disco falho (c2t1d0) substitudo fisicamente e o ZFS notificado ao utilizar o comando zpool replace.
# zpool replace zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME zeepool mirror-0 c1t2d0 spare-1 c2t3d0 c2t1d0 spares c2t3d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE INUSE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90K resilvered 0 0 0 currently in use
Ento, possvel utilizar o comando zpool detach para retornar o reserva para o grupo disponvel. Por exemplo:
# zpool detach zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME zeepool mirror c1t2d0 c2t1d0 spares STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
103
EXEMPLO 49
(Continuao)
Se deseja substituir um disco falho ao permutar temporariamente ou permanentemente em um reserva que est atualmente substituindo-o, ento desanexe o disco original (falho). Se o disco falho substitudo eventualmente, ento possvel adicion-lo de volta ao conjunto de armazenamento como um sobressalente. Por exemplo:
# zpool pool: state: status: status zeepool zeepool DEGRADED One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using zpool online. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: resilver in progress for 0h0m, 70.47% done, 0h0m to go config: NAME zeepool mirror-0 c1t2d0 spare-1 c2t1d0 c2t3d0 spares c2t3d0 errors: # zpool # zpool pool: state: scrub: config: STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 DEGRADED 0 0 0 UNAVAIL 0 0 0 cannot open ONLINE 0 0 0 70.5M resilvered INUSE currently in use
No known data errors detach zeepool c2t1d0 status zeepool zeepool ONLINE resilver completed after 0h0m with 0 errors on Wed Jan 20 13:46:46 2010 NAME zeepool mirror-0 c1t2d0 c2t3d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 70.5M resilvered
errors: No known data errors (Original failed disk c2t1d0 is physically replaced) # zpool add zeepool spare c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:48:46 2010 config:
104
EXEMPLO 410
(Continuao)
As propriedades do pool de armazenamento podem ser definidas com o comando zpool set. Por exemplo:
# zpool # zpool NAME zeepool set autoreplace=on zeepool get autoreplace zeepool PROPERTY VALUE SOURCE autoreplace on local
105
alocados
N/D
Valor de somente leitura que identifica a quantidade de espao de armazenamento dentro do conjunto que foi fisicamente alocado. Identifique um diretrio raiz alternativo. Se definido, este diretrio anteposto a quaisquer pontos de montagem dentro do pool. Esta propriedade pode ser utilizada ao examinar um conjunto desconhecido, se os pontos de montagem no forem de confiana ou em um ambiente de inicializao alternativo no qual os caminhos tpicos no so vlidos. Controla a substituio automtica do dispositivo. Se for definido como desativado, a substituio do dispositivo deve ser iniciada pelo administrador utilizando o comando zpool replace. Se for definido como ativado, qualquer dispositivo novo encontrado no mesmo local fsico que um dispositivo que antes pertencia ao conjunto ser automaticamente formatado e substitudo. A abreviao da propriedade replace. Identifica o conjunto de dados inicializvel padro do pool raiz. Esta propriedade tipicamente definida pelos programas de instalao e atualizao. Controla onde as informaes de configurao do conjunto so armazenadas. Todos os pools no cache so automaticamente importados quando o sistema reinicializado. Entretanto, os ambientes de instalao e cluster podem precisar armazenar em cache essas informaes em um local diferente, de forma que os conjuntos no sejam automaticamente importados. possvel definir esta propriedade para efetuar cache das informaes de configurao do conjunto em um local diferente. Esta informao pode ser importada mais tarde ao utilizar o comando zpool import - c. Para a maioria das configuraes ZFS, esta propriedade no utilizada. Valor somente leitura que identifica a porcentagem de espao usado do pool. A abreviatura da propriedade cap.
altroot
off
autoreplace
Booleano
off
bootfs
Booleano
N/D
cachefile
Sequncia de caracteres
N/D
capacity
Nmero
N/D
delegation
Booleano
on
Controla se um usurio no-privilegiado pode obter permisses de acesso definidas para o conjunto de dados. Para mais informaes, consulte o Captulo 9, Administrao delegada do ZFS do Oracle Solaris.
106
(Continuao)
failmode
Seqncia
wait
Controla o comportamento do sistema se uma falha catastrfica do conjunto ocorrer. Esta situao causada normalmente pela perda de conectividade com o dispositivo ou dispositivos de armazenamento subjacentes ou por uma falha de todos os dispositivos do conjunto. O comportamento de tal evento determinado por um dos valores a seguir: espera: bloqueia todos os acessos de E/S ao conjunto at que a conectividade com o dispositivo seja restaurada e os erros sejam apagados com o comando zpool clear. Neste estado, operaes E/S para o conjunto so bloqueadas, mas operaes de leitura podem ter xito. Um conjunto mantido no estado espera at que o problema do dispositivo seja resolvido.
continuar: retorna um erro EIO a quaisquer novas solicitaes de E/S escritas, mas permite a leitura dos dispositivos com integridade restantes. Quaisquer solicitaes escritas que ainda no foram enviadas ao disco podem ser bloqueadas. Depois de reconectar ou substituir o dispositivo, os erros devem ser apagados com o comando zpool clear. pnico: imprime uma mensagem ao console e gera um despejo de memria de sistema.
livre
N/D
Valor de somente leitura que identifica o nmero de bloqueios dentro do conjunto que no alocado. Valor somente leitura que identifica o identificador exclusivo do pool. Valor somente leitura que identifica a integridade atual do pool, como ONLINE, DEGRADED, FAULTED, OFFLINE, REMOVED ou UNAVAIL. propriedade Controla de as informaes do instantneo que esto associadas com este pool so exibidas com o comando zfs list . Se esta propriedade estiver desabilidade, as informaes do instantneo podem ser exibidas com o comando zfs list -t snapshot. Valor somente leitura que identifica o tamanho total do pool de armazenamento.
guid
N/D N/D
health
listsnapshots
Sequncia de caracteres
on
size
Nmero
N/D
107
(Continuao)
version
Nmero
N/D
Identifica a verso atual em disco do pool. O mtodo preferido de atualizao de pools com o comando zpool upgrade, embora esta propriedade possa ser usada quando uma verso especfica seja necessria para obter a compatibilidade com verses anteriores. Esta propriedade pode ser definida com qualquer nmero entre 1 e a verso atual informada pelo comando zpool upgrade -v.
Exibindo informaes sobre os conjuntos de armazenamento ZFS na pgina 108 Visualizando estatsticas E/S para conjuntos de armazenamento ZFS na pgina 112 Determinando o status de integridade de pools de armazenamento do ZFS na pgina 114
Esta sada de comando exibe as informaes a seguir: NAME SIZE O nome do pool. O tamanho total do conjunto, igual soma do tamanho de todos os dispositivos virtuais de nvel superior.
108
ALLOC
A quantidade de espao fsico alocado para todos os conjuntos de dados e metadados internos. Observe que esta quantidade difere da quantidade de espao em disco relatada no nvel do sistema de arquivos. Para mais informaes sobre a determinao de espao disponvel no sistema de arquivos, consulte Contabilidade de espao em disco do ZFS na pgina 64.
A quantidade de espao no alocado no pool. A quantidade de espao utilizada, expressa como uma porcentagem do espao total de disco. O status de integridade atual do pool. Para obter mais informaes sobre a integridade de pools, consulte Determinando o status de integridade de pools de armazenamento do ZFS na pgina 114.
ALTROOT
A raiz alternativa do conjunto, se houver alguma. Para obter mais informaes sobre pools de raiz alternativa, consulte Usando pools de raiz alternativa do ZFS na pgina 298.
Tambm possvel reunir estatsticas de um determinado pool especificando o nome do pool. Por exemplo:
# zpool list tank NAME tank SIZE 80.0G ALLOC 22.3G FREE 47.7G CAP HEALTH 28% ONLINE ALTROOT -
Voc pode usar o intervalo zpool list e as opes de contagem para reunir estatsticas sobre um perodo. Alm disso, voc pode exibir um registro de data e hora usando a opo -T. Por exemplo:
# zpool list -T d 3 Tue Nov 2 10:36:11 NAME SIZE ALLOC pool 33.8G 83.5K rpool 33.8G 12.2G Tue Nov 2 10:36:14 pool 33.8G 83.5K rpool 33.8G 12.2G 2 MDT 2010 FREE CAP DEDUP HEALTH ALTROOT 33.7G 0% 1.00x ONLINE 21.5G 36% 1.00x ONLINE MDT 2010 33.7G 0% 1.00x ONLINE 21.5G 36% 1.00x ONLINE -
109
Os nomes de coluna correspondem s propriedades listadas em Listando informaes sobre todos os conjuntos de armazenamento ou de um conjunto especfico na pgina 108.
110
possvel utilizar uma sada similar em seu sistema para identificar os comandos exatos do ZFS que foram executados para solucionar um problema de condio de erro. Os recursos do registro de histrico so:
O registro no pode ser desativado. O log salvo constantemente no disco, o que significa que o log salvo nas atravs das reinicializaes do sistema. O registro implementado como buffer de anel. O tamanho mnimo de 128 KB. O tamanho mximo de 32 MB. Para conjuntos menores, o tamanho mximo est limitado a 1% do tamanho do conjunto, nos quais o tamanho determinado no momento da criao do conjunto. O log no requer administrao, o que significa que ajustar o tamanho ou alterar a localizao do log desnecessrio.
Para identificar o histrico de comandos de uma pool de armazenamento especfico, use a sintaxe semelhante seguinte:
# zpool history tank History for tank: 2011-05-27.13:10:43 zpool create tank mirror c8t1d0 c8t2d0 2011-06-01.12:05:23 zpool scrub tank 2011-06-13.16:26:07 zfs create tank/users 2011-06-13.16:26:27 zfs create tank/users/finance 2011-06-13.16:27:15 zfs set users:dept=finance tank/users/finance
Utilize a opo -l para exibir um formato longo que inclui o nome de usurio, o nome do host e a regio na qual a operao foi efetuada. Por exemplo:
# zpool history -l tank 2011-05-27.13:10:43 zpool create tank mirror c8t1d0 c8t2d0 [user root on neo:global] 2011-06-01.12:05:23 zpool scrub tank [user root on neo:global] 2011-06-13.16:26:07 zfs create tank/users [user root on neo:global] 2011-06-13.16:26:27 zfs create tank/users/finance [user root on neo:global] 2011-06-13.16:27:15 zfs set users:dept=finance tank/users/finance [user root ...]
Use a opo -i para exibir de informaes dos eventos internos que podem ser usadas para fins de diagnsticos. Por exemplo:
# zpool history -i tank History for tank: 2011-05-27.13:10:43 zpool create tank mirror c8t1d0 c8t2d0 2011-05-27.13:10:43 [internal pool create txg:5] pool spa 33; zfs spa 33; zpl 5;... 2011-05-31.15:02:39 [internal pool scrub done txg:11828] complete=1 2011-06-01.12:04:50 [internal pool scrub txg:14353] func=1 mintxg=0 maxtxg=14353 2011-06-01.12:05:23 zpool scrub tank 2011-06-13.16:26:06 [internal create txg:29879] dataset = 52 2011-06-13.16:26:07 zfs create tank/users 2011-06-13.16:26:07 [internal property set txg:29880] $share2=2 dataset = 52
111
[internal create txg:29881] dataset = 59 zfs create tank/users/finance [internal property set txg:29882] $share2=2 dataset = 59 [internal property set txg:29883] users:dept=finance dataset = 59 zfs set users:dept=finance tank/users/finance
112
# zpool iostat pool ---------rpool tank ---------capacity operations bandwidth alloc free read write read write ----- ----- ----- ----- ----- ----6.05G 61.9G 0 0 786 107 31.3G 36.7G 4 1 296K 86.1K ----- ----- ----- ----- ----- -----
Uma vez que estas estatsticas so acumuladas desde a inicializao, a largura de banda pode parecer baixa se o pool estiver relativamente ocioso. possvel solicitar uma viso mais precisa do uso da largura de banda atual especificando um intervalo. Por exemplo:
# zpool iostat tank 2 capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----tank 18.5G 49.5G 0 187 0 23.3M tank 18.5G 49.5G 0 464 0 57.7M tank 18.5G 49.5G 0 457 0 56.6M tank 18.8G 49.2G 0 435 0 51.3M
Neste exemplo, o comando exibe estatsticas de utilizao para o conjunto tank a cada dois segundos at que digite Ctrl-C. Como alternativa, possvel especificar um parmetro de count adicional, que faz com que o comando termine depois do nmero especificado de iteraes. Por exemplo, zpool iostat 2 3 imprimiria um resumo a cada dois segundos com trs iteraes, em um total de seis segundos. Se houver apenas um conjunto nico, as estatsticas sero exibidas em linhas consecutivas. Se houver mais de um pool, uma linha tracejada adicional delinear cada iterao para fornecer separao visual.
113
Note dois pontos importantes ao visualizar estatsticas E/S para dispositivos virtuais:
Primeiro, estatsticas e utilizao do espao de disco esto disponveis apenas para dispositivos virtuais de nvel superior. A forma como o espao de disco alocado entre os dispositivos virtuais de espelho e RAID-Z especfica para a implementao e no expressa facilmente como um nico nmero. Em segundo lugar, os nmeros talvez no sejam somados com exatido, como seria de esperar. Em especial, operaes nos dispositivos espelhados e RAID-Z no sero exatamente iguais. Esta diferena particularmente evidente logo depois que um conjunto criado, uma vez que uma quantidade significativa de E/S feita diretamente para os discos como parte da criao do conjunto, que no contabilizada ao nvel do espelho. Com o tempo, estes nmeros equalizam gradualmente. Entretanto, dispositivos corrompidos, que no respondem ou esto off-line tambm podem afetar esta simetria.
possvel usar o mesmo conjunto de opes (intervalo e contagem) ao examinar estatsticas de dispositivos virtuais.
114
possveis falhas de dispositivo e conjunto so relatadas pelo fmd e exibidas no console do sistema, e registradas no arquivo /var/adm/messages. Esta seo descreve como determinar a integridade de pools e dispositivos. Este captulo no documenta como reparar ou recuperar dados de pools sem integridade. Para mais informaes sobre a soluo de problemas e a recuperao de dados, consulte Captulo 11, Soluo de problemas e conjunto de recuperao do Oracle Solaris ZFS. Cada dispositivo pode se enquadrar em um dos seguintes estados: ONLINE O dispositivo ou dispositivo virtual est em funcionamento de trabalho normal. Embora alguns erros transitrios ainda possam ocorrer, o dispositivo est em perfeito funcionamento. O dispositivo virtual falhou, mas continua podendo funcionar. Este estado muito comum quando um dispositivo de espelho ou RAID-Z perde um ou mais dispositivos constituintes. A tolerncia a falhas do pool pode ficar comprometida, uma vez que uma falha subseqente em outro dispositivo pode ser irrecupervel. O dispositivo ou dispositivo virtual est completamente inacessvel. Este estado geralmente indica falha total do dispositivo, de forma que o ZFS est incapaz de enviar ou receber dados dele. Se um dispositivo de primeiro nvel estiver neste estado, o pool estar totalmente inacessvel. O dispositivo foi colocado explicitamente off-line pelo administrador. O dispositivo ou o dispositivo virtual no pode ser aberto. Em alguns casos, conjuntos com dispositivos UNAVAIL aparecem no modo DEGRADED. Se um dispositivo virtual de nvel superior estiver UNAVAIL, nada no conjunto poder ser acessado. O dispositivo foi removido fisicamente enquanto o sistema estava em execuo. A deteco da remoo do dispositivo depende do hardware e pode no ser suportada em todas as plataformas.
DEGRADED
FAULTED
OFFLINE UNAVAIL
REMOVED
A integridade de um pool determinada a partir da integridade de todos os seus dispositivos virtuais de primeiro nvel. Se todos os dispositivos virtuais estiverem ONLINE, o pool tambm estar ONLINE. Se algum dos dispositivos virtuais estiver DEGRADED ou UNAVAIL, o conjunto tambm estar DEGRADED. Se um dispositivo virtual de primeiro nvel estiver FAULTED ou OFFLINE, o pool tambm estar FAULTED. Um conjunto no estado FAULTED est completamente inacessvel. Nenhum dado poder ser recuperado at que os dispositivos necessrios sejam anexados ou reparados. Um conjunto no estado DEGRADED continua a ser executado, mas talvez no atinja o mesmo nvel de redundncia de dados ou throughput de dados se o conjunto estivesse on-line.
115
possvel examinar um determinado conjunto ao especificar o nome de um conjunto na sintaxe do comando. Qualquer pool que no esteja no estado ONLINE deve ser investigado no caso de haver problemas potenciais, como descrito na seo a seguir.
Esta sada exibe uma descrio completa dos motivos pelos quais o pool est no estado atual, incluindo uma descrio legvel do problema e um link a um artigo informativo para a obteno de mais informaes. Cada artigo informativo fornece informaes atualizadas sobre a melhor forma de obter recuperao do problema atual. Utilizando as informaes de configurao detalhadas, possvel determinar que dispositivo est danificado e como reparar o conjunto. No exemplo anterior, o dispositivo falho deve ser substitudo. Depois de o dispositivo ser substitudo, utilize o comando zpool online para recolocar o dispositivo on-line. Por exemplo:
# zpool online tank c1t0d0 Bringing device c1t0d0 online # zpool status -x all pools are healthy
116
Se um conjunto tiver um dispositivo off-line, a sada do comando identifica o conjunto com problema. Por exemplo:
# zpool pool: state: status: status -x tank DEGRADED One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using zpool online or replace the device with zpool replace. scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 15:15:09 2010 config: NAME tank mirror-0 c1t0d0 c1t1d0 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 OFFLINE 0 0 0 48K resilvered
As colunas READ e WRITE fornecem uma contagem dos erros de E/S ocorridos com o dispositivo, enquanto a coluna CKSUM fornece uma contagem dos erros de soma de verificao incorrigveis que ocorreram no dispositivo. As duas contagens de erros indicam falhas potenciais do dispositivo, e algumas aes de correo so necessrias. Se forem relatados erros diferentes de zero em um dispositivo virtual de primeiro nvel, partes dos dados podero estar inacessveis. O campo erros: identifica erros de dados conhecidos. Na sada do exemplo anterior, o dispositivo off-line no est causando erros de dados. O comandozpool status exibe as informaes de limpeza e polimento a seguir: Para obter mais informaes sobre o diagnstico e a correo de conjuntos e dados falhos, consulte Captulo 11, Soluo de problemas e conjunto de recuperao do Oracle Solaris ZFS.
117
errors: No known data errors pool: rpool state: ONLINE scan: resilvered 12.2G in 0h14m with 0 errors on Thu Oct 28 14:55:57 2010 config: NAME rpool mirror-0 c3t0d0s0 c3t2d0s0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
errors: No known data errors Tue Nov 2 10:38:21 MDT 2010 pool: pool state: ONLINE scan: none requested config: NAME pool c3t3d0 STATE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0
errors: No known data errors pool: rpool state: ONLINE scan: resilvered 12.2G in 0h14m with 0 errors on Thu Oct 28 14:55:57 2010 config: NAME rpool mirror-0 c3t0d0s0 c3t2d0s0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
118
informaes sobre replicao ou migrao de sistemas de arquivos entre diferentes pools de armazenamento que possam residir em diferentes mquinas, consulte Enviando e recebendo dados do ZFS na pgina 245.
Preparando para migrao do pool de armazenamento do ZFS na pgina 119 Exportando um pool de armazenamento do ZFS na pgina 119 Determinando pools de armazenamento disponveis para importao na pgina 120 Importando conjuntos de armazenamento ZFS de diretrios alternativos na pgina 122 Importando pools de armazenamento do ZFS na pgina 122 Recuperando pools de armazenamento destrudos do ZFS na pgina 126
O comando tenta desmontar quaisquer sistemas de arquivos montados dentro do pool antes de continuar. Se qualquer um dos sistemas de arquivos no for desmontado, voc poder forar a desmontagem com o uso da opo -f. Por exemplo:
# zpool export tank cannot unmount /export/home/eschrock: Device busy # zpool export -f tank
Depois que o comando executado, o conjunto tank deixa de ser visvel no sistema.
119
Se os dispositivos estiverem indisponveis no momento da exportao, os dispositivos no podero ser especificados como exportados corretamente. Se um destes dispositivos for posteriormente anexado a um sistema sem nenhum dos dispositivos em funcionamento, ele aparecer como "potencialmente ativo". Se os volumes ZFS estiverem em uso no pool, o pool no poder ser exportado, mesmo com a opo -f. Para exportar um conjunto com um volume ZFS, primeiro certifique-se de que todos os consumidores do volume no esto mais ativos. Para obter mais informaes sobre volumes ZFS, consulte Volumes ZFS na pgina 289.
Neste exemplo, o pool tank est disponvel para ser importado no sistema de destino. Cada pool identificado por um nome e por um identificador numrico exclusivo. Se vrios conjuntos com o mesmo nome estiverem disponveis para importao, possvel utilizar identificadores numricos para fazer a distino entre eles. Da mesma forma que o comando zpool status, o comando zpool import inclui um link a um artigo informativo disponvel na Web com as informaes mais atualizadas em relao aos procedimentos para correo de um problema que esteja impedindo um conjunto de ser importado. Neste caso, o usurio pode forar o pool a ser importado. No entanto, a importao de um pool que esteja atualmente em uso por outro sistema em uma rede de armazenamento pode resultar na corrupo de dados e em avisos graves, uma vez que ambos os sistemas tentam
120 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
gravar no mesmo armazenamento. Se alguns dispositivos no estiverem disponveis no conjunto, mas houver redundncia disponvel suficiente para fornecer um conjunto utilizvel, o conjunto aparecer no estado DEGRADED. Por exemplo:
# zpool pool: id: state: status: action: import tank 11809215114195894163 DEGRADED One or more devices are missing from the system. The pool can be imported despite missing or damaged devices. The fault tolerance of the pool may be compromised if imported. see: http://www.sun.com/msg/ZFS-8000-2Q config: NAME tank mirror-0 c1t0d0 c1t3d0 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 UNAVAIL 0 0 0 cannot open ONLINE 0 0 0
Neste exemplo, o primeiro disco est danificado ou ausente, embora voc ainda possa importar o pool devido ao fato de que os dados espelhados ainda esto acessveis. Se houver muitos dispositivos falhos ou ausentes, o pool no poder ser importado. Por exemplo:
# zpool pool: id: state: action: import dozer 9784486589352144634 FAULTED The pool cannot be imported. Attach the missing devices and try again. see: http://www.sun.com/msg/ZFS-8000-6X config: raidz1-0 FAULTED c1t0d0 ONLINE c1t1d0 FAULTED c1t2d0 ONLINE c1t3d0 FAULTED
Neste exemplo, dois discos de um dispositivo virtual RAID-Z esto ausentes, o que significa que no h dados replicados suficientes para reconstruir o pool. Em alguns casos, no h dispositivos suficientes para determinar a configurao completa. Neste caso, o ZFS no pode determinar quais eram os outros dispositivos que faziam parte do conjunto, embora o ZFS relate o mximo de informaes possveis sobre a situao. Por exemplo:
# zpool import pool: dozer id: 9784486589352144634 state: FAULTED status: One or more devices are missing from the system. action: The pool cannot be imported. Attach the missing devices and try again. see: http://www.sun.com/msg/ZFS-8000-6X config:
121
dozer FAULTED missing device raidz1-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE c1t2d0 ONLINE c1t3d0 ONLINE Additional devices are known to be part of this pool, though their exact configuration cannot be determined.
Se houver dispositivos em vrios diretrios, voc pode especificar vrias opes -d.
Se vrios conjuntos disponveis tiverem o mesmo nome, especifique o conjunto que ser importando utilizando o identificador numrico. Por exemplo:
# zpool import pool: dozer id: 2704475622193776801
122 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
state: ONLINE action: The pool can be imported using its name or numeric identifier. config: dozer c1t9d0 pool: id: state: action: config: ONLINE ONLINE
dozer 6223921996155991199 ONLINE The pool can be imported using its name or numeric identifier.
dozer ONLINE c1t8d0 ONLINE # zpool import dozer cannot import dozer: more than one matching pool import by numeric ID instead # zpool import 6223921996155991199
Se o nome do pool estiver em conflito com um nome de pool existente, voc poder importar o pool com outro nome. Por exemplo:
# zpool import dozer zeepool
Este comando importa o pool exportado dozer usando o novo nome zeepool. O nome do novo pool persistente. Se o pool no tiver sido exportado corretamente, o ZFS precisar do sinalizador -f para impedir que os usurios importem por acidente um pool ainda em uso em outro sistema. Por exemplo:
# zpool import dozer cannot import dozer: pool may be in use on another system use -f to import anyway # zpool import -f dozer Observao No tente importar um conjunto que est ativo em um sistema para outro sistema. O ZFS no um sistema de arquivos cluster nativo, distribudo ou paralelo, e no pode fornecer acesso de vrios host diferentes.
Os pools tambm podem ser importados em uma raiz alternativa com o uso da opo -R. Para obter mais informaes sobre pools raiz alternativos, consulte Usando pools de raiz alternativa do ZFS na pgina 298.
123
# zpool import dozer The devices below are missing, use -m to import the pool anyway: c3t3d0 [log] cannot import dozer: one or more devices is currently unavailable
Depois de conectar o dispositivo de log ausente, execute o comando zpool clear para limpar os erros do pool. Uma recuperao semelhante pode ser tentada com dispositivos de log espelhados ausentes. Por exemplo:
# zpool import dozer The devices below are missing, use -m to import the pool anyway: mirror-1 [log] c3t3d0 c3t4d0 cannot import dozer: one or more devices is currently unavailable # zpool import -m dozer # zpool status dozer pool: dozer state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using zpool online. see: http://www.sun.com/msg/ZFS-8000-2Q scan: scrub repaired 0 in 0h0m with 0 errors on Fri Oct 15 16:51:39 2010 config: NAME dozer mirror-0 c3t1d0 c3t2d0
124
0 0 0
0 0 0
Depois de conectar os dispositivos de log ausentes, execute o comando zpool clear para limpar os erros do pool.
Todos os sistemas e volumes so montados no modo somente leitura. O processamento de transaes do pool desativado. Isso tambm significa que qualquer gravao sncrona pendente no log de intenes no ser reproduzida at que o pool seja importado no modo leitura-gravao. As tentativas de definir uma propriedade do pool durante a importao somente leitura so ignoradas.
Um pool somente leitura pode ser definido de volta para o modo leitura-gravao exportando e importando o pool. Por exemplo:
# zpool export tank # zpool import tank # zpool scrub tank
125
0 0
0 0
0 0
Uma limitao existente que, embora este pool esteja composto por discos inteiros, o comando deve incluir o identificador de parte do dispositivo especfico.
Na sada zpool import acima, possvel identificar o conjunto tank como o conjunto destrudo por causa das informaes de estado a seguir:
state: ONLINE (DESTROYED)
Para recuperar o conjunto destrudo, execute o comando zpool import - D novamente com o conjunto a ser recuperado. Por exemplo:
# zpool import -D tank # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME tank mirror-0 c1t0d0 c1t1d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM
126
Se um dos dispositivos do pool destrudo estiver falho ou no estiver disponvel, voc poder recuperar o pool destrudo mesmo assim, ao incluir a opo -f . Neste cenrio, importe o conjunto degradado e, em seguida, tente corrigir a falha do dispositivo. Por exemplo:
# zpool destroy dozer # zpool import -D pool: dozer id: 13643595538644303788 state: DEGRADED (DESTROYED) status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using zpool online. see: http://www.sun.com/msg/ZFS-8000-2Q config: NAME dozer raidz2-0 c2t8d0 c2t9d0 c2t10d0 c2t11d0 c2t12d0 errors: # zpool # zpool pool: state: status: STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 UNAVAIL 0 35 1 cannot open ONLINE 0 0 0
No known data errors import -Df dozer status -x dozer DEGRADED One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using zpool online. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: scrub completed after 0h0m with 0 errors on Thu Jan 21 15:38:48 2010 config: NAME dozer raidz2-0 c2t8d0 c2t9d0 c2t10d0 c2t11d0 c2t12d0 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 UNAVAIL 0 37 0 cannot open ONLINE 0 0 0
errors: No known data errors # zpool online dozer c2t11d0 Bringing device c2t11d0 online # zpool status -x all pools are healthy
127
Voc pode usar a sintaxe abaixo para identificar informaes adicionais sobre uma verso especfica e verses suportadas:
# zpool upgrade -v This system is currently running ZFS pool version 22. The following versions are supported: VER --1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DESCRIPTION -------------------------------------------------------Initial ZFS version Ditto blocks (replicated metadata) Hot spares and double parity RAID-Z zpool history Compression using the gzip algorithm bootfs pool property Separate intent log devices Delegated administration refquota and refreservation properties Cache devices Improved scrub performance Snapshot properties snapused property passthrough-x aclinherit user/group space accounting stmf property support Triple-parity RAID-Z Snapshot user holds Log device removal Compression using zle (zero-length encoding)
128
21 Reserved 22 Received properties For more information on a particular version, including supported releases, see the ZFS Administration Guide.
Em seguida, pode executar o comando zpool upgrade para atualizar todos os pools. Por exemplo:
# zpool upgrade -a Observao Se voc atualiza seu pool para uma verso ZFS mais recente, o pool no estar acessvel nos sistemas que executam verses mais antigas do ZFS.
129
130
C A P T U L O
Este captulo descreve como instalar e inicializar um sistema de arquivos raiz ZFS do Oracle Solaris. Tambm tratada a migrao de um sistema de arquivos raiz UFS para um sistema de arquivos ZFS com o recurso Oracle Solaris Live Upgrade. Este captulo traz as seguintes sees:
Instalando e inicializando um sistema de arquivos ZFS do Oracle Solaris (viso geral) na pgina 132 Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS na pgina 133 Instalao de um sistema de arquivos raiz ZFS (instalao inicial do Oracle Solaris) na pgina 136 Como migrar um pool raiz ZFS espelhado (ps-instalao) na pgina 142 Instalando um sistema de arquivos raiz ZFS (instalao de arquivo do Oracle Solaris Flash) na pgina 143 Instalando um sistema de arquivos raiz ZFS (Instalao com JumpStart) na pgina 147 Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade) na pgina 151 Suporte do ZFS para dispositivos de intercmbio e dump na pgina 176 Inicializando a partir de um sistema de arquivos raiz ZFS na pgina 179 Recuperando o pool raiz ZFS ou instantneos do pool raiz na pgina 187
Para uma lista de problemas conhecidos nesta verso, consulte Notas da verso Oracle Solaris 11 8/10. Para obter informaes atualizadas sobre a soluo de problemas, visite o seguinte site: http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
131
Selecione e instale o ZFS como o sistema de arquivos raiz. Instale um arquivo flash do ZFS. Migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS. Criar um novo ambiente de inicializao em um novo pool raiz ZFS. Crie ou atualize um ambiente de inicializao em um pool raiz do ZFS existente. Atualize um ambiente de inicializao (BE) alternativo com um arquivo flash do ZFS. Crie um perfil para instalar automaticamente um sistema de arquivos raiz ZFS. Crie um perfil para instalar automaticamente um arquivo flash ZFS.
Depois que um sistema com base em SPARC ou em x86 tiver sido instalado com um sistema de arquivos raiz ZFS ou migrado para um sistema de arquivos raiz ZFS, o sistema inicializa automaticamente a partir do sistema de arquivos raiz ZFS. Para obter mais informaes sobre alteraes na inicializao, consulte Inicializando a partir de um sistema de arquivos raiz ZFS na pgina 179.
Com o recurso do instalador de texto interativo, possvel instalar um sistema de arquivos raiz UFS ou ZFS. O sistema de arquivos padro ainda o UFS nesta verso do Voc pode acessar o instalador de texto interativo das seguintes maneiras:
x86: selecione o mtodo de instalao no modo de texto. Voc pode definir um perfil para criar um pool de armazenamento do ZFS e designar um sistema de arquivos ZFS inicializvel. possvel configurar um perfil para instalar um arquivo flash de um pool raiz ZFS.
132
Utilizando o Live Upgrade, possvel migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS. Os comandos lucreate e luactivate foram melhorados para suportar pools e sistemas de arquivos ZFS. possvel configurar um pool raiz ZFS espelhado selecionando dois discos durante a instalao. Ou, possvel anexar discos adicionais depois da instalao para criar um pool raiz ZFS espelhado. Os dispositivos de intercmbio e dump so criados automaticamente nos volumes ZFS do pool raiz ZFS.
O recurso de instalao IGU para instalao de sistemas de arquivos raiz ZFS no est disponvel no momento. Voc deve selecionar o mtodo de instalao no modo de texto para instalar um sistema de arquivos raiz ZFS. No possvel usar o programa de atualizao padro a fim de atualizar o sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS.
Instalar um sistema de arquivos raiz ZFS Disponvel a partir do Solaris 10 10/08. Migrar de um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS com o Live Upgrade necessrio ter no mnimo a verso Solaris 10 10/08 instalada ou ter realizado a atualizao para o Solaris 10 10/08.
intercmbio e dump devem ser dispositivos diferentes em um ambiente de raiz ZFS. Por padro, os dispositivos de intercmbio e dump so um mesmo dispositivo em sistema de arquivos raiz UFS. Quando um sistema instalado ou atualizado com um sistema de arquivos raiz ZFS, o tamanho da rea de permuta e o dispositivo de despejo dependem da quantidade de memria fsica. A quantidade mnima de espao disponvel para o pool em um sistema de arquivos raiz ZFS inicializvel depende da quantidade de memria fsica, do espao em disco disponvel e do nmero de ambientes de inicializao (BEs) que sero criados. Revise os requisitos de espao de disco a seguir para grupos de armazenamento ZFS:
1536 MB a quantidade de memria mnima necessria para instalar um sistema de arquivos raiz ZFS. 1536 MB de memria ou mais recomendado para melhor desempenho geral do ZFS. recomendado como mnimo 16 GB de espao em disco. O espao de disco consumido da seguinte forma:
rea de permute e dispositivo de despejo Os tamanhos padro dos volumes de permuta e despejo criados por programas de instalao do Oracle Solaris so:
Instalao inicial No novo ambiente de inicializao ZFS, o tamanho de permuta padro calculado como metade do tamanho da memria fsica, geralmente na mdia de 512 MB at 2 GB. Voc pode ajustar o tamanho da intercmbio durante uma instalao inicial. O tamanho padro de despejo calculado pelo kernel com base nas informaes de dumpadm e no tamanho da memria fsica. Voc pode ajustar o tamanho do dump durante uma instalao inicial. Live Upgrade quando um sistema de arquivos raiz UFS migrado para um sistema de arquivos raiz ZFS, o tamanho padro do de permuta do ambiente de inicializao do BE do ZFS calculado de acordo com o tamanho do dispositivo de permuta do BE do UFS. O clculo do tamanho padro do de permuta adiciona os tamanhos de todos os dispositivos de permuta do BE do UFS e cria um volume ZFS de tal tamanho no BE do ZFS. Se nenhum dispositivo de permuta estiver definido no BE do UFS, ento o tamanho padro do de permuta definido em 512 MB. No BE do ZFS, o tamanho do de despejo padro configurado como metade do tamanho da memria fsica, entre 512 MB e 2 GB.
possvel ajustar o tamanho dos volumes de permuta e despejo com o tamanho da sua preferncia, contanto que os novos tamanhos suportem as operaes do sistema. Para mais informaes, consulte Ajustando os tamanhos dos dispositivos de permuta e despejo ZFS na pgina 177.
Ambiente de inicializao (BE): alm dos novos requisitos de espao de permuta e despejo ou ajuste dos tamanhos dos dispositivos de permuta e despejo, um BE do ZFS que migrado de um BE do UFS precisa de 6 GB aproximadamente. Cada BE do ZFS
134
clonado de outro BE do ZFS no requer espao adicional em disco, mas considere que o tamanho do BE aumentar quando os patches forem aplicados. Todos os BEs do ZFS do mesmo pool raiz usam os mesmos dispositivos de intercmbio e dump.
Componentes do SO Oracle Solaris: todos os subdiretrios do sistema de arquivos raiz que so parte da imagem do sistema operacional, com exceo de /var, devem estar no mesmo conjunto de dados que o sistema de arquivos raiz. Alm disso, todos os componentes do OS devem residir no conjunto raiz, com exceo dos dispositivos de permuta e despejo. Outra restrio que o diretrio ou conjunto de dados /var deve ser um conjunto de dados nico. Por exemplo, no possvel criar um conjunto de dados descendente /var, como /var/tmp, se deseja utilizar tambm o Live Upgrade para migrar ou instalar patch em um BE do ZFS ou criar um arquivo Flash ZFS deste conjunto.
Por exemplo, um sistema com 12 GB de espao em disco pode ser muito pequeno para um ambiente ZFS inicializvel, porque so necessrios 2 GB de espao em disco para cada dispositivo de permuta e despejo e aproximadamente 6 GB para o BE do ZFS migrado de um BE do UFS.
O conjunto que est dirigido para o conjunto raiz precisa ter uma legenda SMI. Este requisito geralmente cumprido caso o pool seja criado com segmentos de disco. O pool deve existir tanto em uma faixa de disco quanto em faixas de disco espelhadas. Se voc tentar usar uma configurao de pool no suportada durante a migrao do Live Upgrade, ver uma mensagem semelhante seguinte:
ERROR: ZFS pool name does not support boot environments
Para obter uma descrio detalhada das configuraes suportadas do pool raiz ZFS, consulte Criando um pool raiz ZFS na pgina 75.
x86: o disco deve conter uma partio fdisk do Oracle Solaris. Esta partio fdisk criada automaticamente quando o sistema baseado em x86 instalado. Para obter mais informaes sobre as parties fdisk do Solaris, consulte Guidelines for Creating an fdisk Partition no System Administration Guide: Devices and File Systems . Os discos destinados inicializao em um pool raiz ZFS devem ser menores que 2 TB de tamanho em sistemas baseados em SPARC e em x86. A compresso pode ser habilitada no pool raiz, mas somente aps o pool raiz tiver sido instalado. No existe forma de habilitar a compresso em um pool raiz durante a instalao. O algoritmo de compresso gzip no suportado em pool raiz. No renomeie o conjunto raiz depois dele ter sido criado como uma instalao inicial ou depois da migrao do Oracle Solaris Live Upgrade para um sistema de arquivos raiz ZFS. Renomear o conjunto raiz pode causar em um sistema no inicializvel.
135
Use o instalador de texto interativo para instalar inicialmente um pool de armazenamento ZFS que contenha um sistema de arquivos raiz ZFS inicializvel. Se tiver um pool de armazenamento do ZFS que deseja usar no sistema de arquivos raiz ZFS, voc deve usar o Live Upgrade para migrar o sistema de arquivos raiz UFS existente em um pool de armazenamento do ZFS existente. Para obter mais informaes, consulte Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade) na pgina 151. Use o instalador de texto interativo para instalar inicialmente um pool de armazenamento ZFS que contenha um sistema de arquivos raiz ZFS inicializvel de um arquivo flash ZFS.
Antes de comear a instalao inicial para criar um conjunto de armazenamento ZFS, consulte Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS na pgina 133. Se for configurar regies depois da instalao inicial de um sistema de arquivos raiz ZFS e tiver planos de atualizar ou instalar patches no sistema, consulte Uso do Live Upgrade para migrar ou atualizar um sistema com regies (Solaris 10 10/08) na pgina 160 or Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies (no mnimo Solaris 10 5/09) na pgina 165. Se j possuir conjuntos de armazenamento ZFS no sistema, eles so reconhecidos pela mensagem a seguir. Entretanto, estes conjuntos permanecem intocados, a menos que selecione os discos nos conjuntos existentes para criar um novo conjunto de armazenamento.
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. Cuidado Os pools existentes sero destrudos se qualquer um dos seus discos estiverem selecionados no novo pool.
EXEMPLO 51
O processo de instalao de texto interativo basicamente o mesmo das verses anteriores do Oracle Solaris, exceto que solicitado que voc crie um sistema de arquivos raiz UFS ou ZFS. O UFS ainda o sistema de arquivos padro nesta verso. Se selecionar um sistema de arquivos raiz ZFS, ser solicitada a criao de um conjunto de armazenamento ZFS. As etapas para instalar o sistema de arquivos raiz ZFS seguem: 1. Insira a mdia de instalao do Oracle Solaris ou inicialize o sistema a partir de um servidor de instalao. Em seguida, selecione o mtodo de instalao de texto interativo para criar um sistema de arquivos raiz ZFS inicializvel.
136 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
EXEMPLO 51
(Continuao)
Voc tambm pode criar um arquivo flash ZFS a ser instalado usando os mtodos a seguir:
instalao JumpStart. Para obter mais informaes, consulte o Exemplo 52. Instalao inicial. Para obter mais informaes, consulte o Exemplo 53.
Voc pode executar uma atualizao padro para atualizar um sistema de arquivos ZFS inicializvel existente, mas no pode usar esta opo para criar um novo sistema de arquivos ZFS inicializvel. Comeando com a verso do Solaris 10 10/08, possvel migrar de um sistema de arquivo raiz UFS para um sistema de arquivos raiz ZFS desde que a verso do Solaris 10 10/08 ou posterior j esteja instalada. Para mais informaes sobre a migrao para um sistema de arquivos raiz ZFS, consulte Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade) na pgina 151. 2. Para criar um sistema de arquivos raiz ZFS, selecione a opo ZFS. Por exemplo:
Choose Filesystem Type Select the filesystem to use for your Solaris installation [ ] UFS [X] ZFS
3. Aps selecionar o software que ser instalado, voc solicitado a selecionar os discos para criar o pool de armazenamento ZFS. Esta tela semelhante das verses anteriores do
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 youve 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] c1t0d0 69994 MB (F4 to edit) [ ] c1t1d0 69994 MB [-] c1t2d0 0 MB [-] c1t3d0 0 MB Maximum Root Size: 69994 MB Suggested Minimum: 8279 MB
Captulo 5 Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris 137
EXEMPLO 51
(Continuao)
Voc pode selecionar um ou mais discos a serem usados para o pool raiz ZFS. Se selecionar dois discos, uma configurao espelhada de dois discos definida para o pool raiz. Tanto um conjunto espelhado de dois discos quanto de trs discos excelente. Se voc tiver oito discos e selecionar todos eles, esses oito discos sero utilizados para o pool raiz como um grande espelho. Esta configurao no considerada tima. Outra opo criar um pool raiz espalhado aps a concluso da instalao inicial. Uma configurao de pool RAID-Z para o pool raiz no suportada. Para obter mais informaes sobre a configurao de pools de armazenamento do ZFS, consulte Recursos de replicao de um pool de armazenamento do ZFS na pgina 71. 4. Para selecionar dois discos para criar um conjunto raiz espelhado, utilize as teclas de controle do cursor para selecionar o segundo disco. No exemplo a seguir, ambos c0t1d0 e c0t1d0 so selecionados para os discos de pool raiz. Ambos os discos precisam ter uma legenda SMI e uma fatia 0. Se os discos no esto legendados com um SMI ou no contm segmentos, preciso sair do programa de instalao. Utilize o utilitrio format para legendar novamente e reparticionar os discos e, a seguir, reinicie o programa de instalao.
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 youve 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] c1t0d0 69994 MB [X] c1t1d0 69994 MB (F4 to edit) [-] c1t2d0 0 MB [-] c1t3d0 0 MB Maximum Root Size: 69994 MB Suggested Minimum: 8279 MB
Se a coluna Espao disponvel identifica 0 MB, o disco provavelmente possui uma legenda EFI. Se deseja utilizar um disco com um rtulo EFI, necessrio sair do programa de instalao, rotular novamente o disco com um rtulo SMI usando o comando format -e e, ento, reiniciar o programa de instalao. Se no for criado um conjunto raiz espelhado durante a instalao, possvel criar um facilmente depois da instalao. Para obter informaes, consulte Como migrar um pool raiz ZFS espelhado (ps-instalao) na pgina 142. Depois de selecionar um ou mais discos para o pool de armazenamento ZFS, ser exibida uma tela semelhante seguinte:
138 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
EXEMPLO 51
(Continuao)
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_u9wos_08 ZFS Pool Size (in MB): 69995 Size of Swap Area (in MB): 2048 Size of Dump Area (in MB): 1536 (Pool size must be between 6231 MB and 69995 MB) [X] Keep / and /var combined [ ] Put /var on a separate dataset
5. Nesta tela, possvel alterar o nome do conjunto ZFS, o nome do conjunto de dados, o tamanho do conjunto e o tamanho dos dispositivos de permuta e despejo movendo as teclas de controle do cursor pelas entradas e substituindo o valor do texto padro pelo novo valor. Ou, pode aceitar os valores padro. Alm disso, possvel modificar a forma como o sistema de arquivos /var criado e montado. Neste exemplo, o nome do conjunto de dados alterado para zfsBE.
ZFS Pool Name: rpool ZFS Root Dataset Name: zfsBE ZFS Pool Size (in MB): 69995 Size of Swap Area (in MB): 2048 Size of Dump Area (in MB): 1536 (Pool size must be between 6231 MB and 69995 MB) [X] Keep / and /var combined [ ] Put /var on a separate dataset
6. Nesta tela de instalao final, opcionalmente voc pode alterar o perfil de instalao. Por exemplo:
Profile The information shown below is your profile for installing Solaris software. It reflects the choices youve made on previous screens. ============================================================================ Installation Option: Boot Device: Root File System Type: Client Services: Initial c1t0d0 ZFS None
Regions: North America System Locale: C ( C ) Software: Pool Name: Boot Environment Name: Pool Size: Solaris 10, Entire Distribution rpool zfsBE 69995 MB
139
EXEMPLO 51
Instalao inicial de um sistema de arquivos raiz ZFS inicializvel Devices in Pool: c1t0d0 c1t1d0
(Continuao)
7. Quando a instalao estiver concluda, revise as informaes resultantes do conjunto de armazenamento e do sistema de arquivos ZFS. Por exemplo:
# zpool pool: state: scrub: config: status rpool ONLINE none requested NAME rpool mirror-0 c1t0d0s0 c1t1d0s0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
errors: No known data errors # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 8.03G 58.9G 96K /rpool rpool/ROOT 4.47G 58.9G 21K legacy rpool/ROOT/zfsBE 4.47G 58.9G 4.47G / rpool/dump 1.50G 58.9G 1.50G rpool/export 44K 58.9G 23K /export rpool/export/home 21K 58.9G 21K /export/home rpool/swap 2.06G 61.0G 16K -
A sada zfs list de amostra identifica os componentes do pool raiz, como o diretrio rpool/ROOT, que no est acessvel por padro. 8. Para criar outro ambiente de inicializao (BE) ZFS no mesmo conjunto de armazenamento, use o comando lucreate. No exemplo seguinte, criado um novo BE denominado zfs2BE. O BE atual nomeado zfsBE, como mostrado na sada zfs list. Entretanto, o BE atual no reconhecido na sada lustatus at que o novo BE seja criado.
# lustatus ERROR: No boot environments are configured on this system ERROR: cannot determine list of all boot environment names
Se criar um novo BE do ZFS no mesmo pool, use uma sintaxe semelhante seguinte:
# lucreate -n zfs2BE INFORMATION: The current boot environment is not named - assigning name <zfsBE>. Current boot environment is named <zfsBE>. Creating initial configuration for primary boot environment <zfsBE>. The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <zfsBE> PBE Boot Device </dev/dsk/c1t0d0s0>. Comparing source boot environment <zfsBE> 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.
140 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
EXEMPLO 51
(Continuao)
Updating system configuration files. Creating configuration for boot environment <zfs2BE>. Source boot environment is <zfsBE>. Creating boot environment <zfs2BE>. Cloning file systems from boot environment <zfsBE> to create boot environment <zfs2BE>. Creating snapshot for <rpool/ROOT/zfsBE> on <rpool/ROOT/zfsBE@zfs2BE>. Creating clone for <rpool/ROOT/zfsBE@zfs2BE> on <rpool/ROOT/zfs2BE>. Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs2BE>. Population of boot environment <zfs2BE> successful. Creation of boot environment <zfs2BE> successful.
Criando um BE do ZFS dentro do mesmo conjunto utiliza recursos de clone ZFS e instantneo para criar instantaneamente o BE. Para mais detalhes sobre a utilizao do Live Upgrade em uma migrao de raiz ZFS, consulte Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade) na pgina 151. 9. Depois, verifique os novos ambientes de inicializao. Por exemplo:
# lustatus Boot Environment Is Active Active Can Name Complete Now On Reboot Delete -------------------------- -------- ------ --------- -----zfsBE yes yes yes no zfs2BE yes no no yes # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 8.03G 58.9G 97K /rpool rpool/ROOT 4.47G 58.9G 21K legacy rpool/ROOT/zfs2BE 116K 58.9G 4.47G / rpool/ROOT/zfsBE 4.47G 58.9G 4.47G / rpool/ROOT/zfsBE@zfs2BE 75.5K - 4.47G rpool/dump 1.50G 58.9G 1.50G rpool/export 44K 58.9G 23K /export rpool/export/home 21K 58.9G 21K /export/home rpool/swap 2.06G 61.0G 16K
10. Se desejar inicializar a partir de BE alternativo, utilize o comando luactivate. SPARC - Use o comando boot -L para identificar os ambientes de inicializao disponveis quando o dispositivo de inicializao contiver um pool de armazenamento ZFS. Por exemplo, em um sistema com base no SPARC, use o comando boot - L para exibir uma lista dos BEs disponveis. Para inicializar do novo BE, zfs2BE, selecione a opo 2. Em seguida, digite o comando boot -Z exibido.
ok boot -L Executing last command: boot -L Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0 File and args: -L 1 zfsBE 2 zfs2BE Select environment to boot: [ 1 - 2 ]: 2 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/zfs2BE ok boot -Z rpool/ROOT/zfs2BE
Captulo 5 Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris 141
EXEMPLO 51
(Continuao)
Para obter mais informaes sobre a inicializao de um sistema de arquivos ZFS, consulte Inicializando a partir de um sistema de arquivos raiz ZFS na pgina 179.
Visualize o estado do conjunto raiz para confirmar que o resilvering foi concludo.
# zpool pool: state: status: status rpool rpool ONLINE 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 0h1m, 24.26% done, 0h3m to go config: NAME rpool mirror-0 c1t0d0s0 c1t1d0s0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 3.18G resilvered
Instalando um sistema de arquivos raiz ZFS (instalao de arquivo do Oracle Solaris Flash)
Na sada anterior, o processo de polimento no est concludo. Resilvering est concludo quando possvel visualizar mensagens semelhantes seguinte:
resilvered 7.61G in 0h3m with 0 errors on Fri Jun 10 11:57:06 2011 4 5
Verifique se possvel inicializar com xito a partir do segundo disco. Se necessrio, configure o sistema para inicializar automaticamente a partir do novo disco.
SPARC - Use o comando eeprom ou o comando setenv a partir do PROM de inicializao SPARC para redefinir o dispositivo de inicializao padro. x86 - reconfigure a BIOS do sistema.
Instalando um sistema de arquivos raiz ZFS (instalao de arquivo do Oracle Solaris Flash)
A partir do Solaris verso 10 10/09, possvel criar um arquivo Flash em um sistema com um sistema de arquivos raiz UFS ou ZFS. O arquivo Flash de um sistema de arquivos raiz ZFS contm toda a hierarquia do pool, exceto para volumes de dump e intercmbio, e todos os conjuntos de dados excludos. Os volumes de permuta e despejo so criados quando o arquivo Flash instalado. possvel utilizar o mtodo de instalao do arquivo Flash da seguinte forma:
Crie um arquivo flash que possa ser utilizado para instalar e inicializar um sistema com um sistema de arquivos raiz ZFS. Efetue uma instalao JumpStart ou uma instalao inicial de um sistema de clone utilizando um arquivo flash ZFS. A criao de um arquivo Flash ZFS clona todo um conjunto raiz, no dos ambientes de inicializao individuais. possvel excluir os conjuntos de dados individuais do pool usando a opo -D para os comandos flarcreate e flar.
Revise as seguintes limitaes antes de considerar a instalao de um sistema com um arquivo Flash ZFS:
A partir do Oracle Solaris verso 10 8/11, voc pode usar a opo de arquivo flash da instalao interativa para instalar um sistema com um sistema de arquivos raiz ZFS. Alm disso, voc pode usar um arquivo flash para atualizar um BE ZFS alternativo usando o comando luupgrade. S possvel instalar um arquivo Flash em um sistema que possui a mesma arquitetura que o sistema no qual foi criado o arquivo Flash ZFS. Por exemplo, um arquivo que criado em um sistema sun4v no pode ser instalado em um sistema sun4u. Apenas uma instalao inicial completa de um arquivo Flash ZFS suportada. No possvel instalar um arquivo flash diferencial de um sistema de arquivos raiz ZFS nem instalar um arquivo UFS/ZFS hbrido.
143
Instalando um sistema de arquivos raiz ZFS (instalao de arquivo do Oracle Solaris Flash)
A partir do Solaris verso 10 8/11, voc pode usar um arquivo flash UFS para instalar um sistema de arquivos raiz ZFS. Por exemplo:
Se voc usar a palavra-chave pool no perfil do JumpStart, o arquivo flash UFS ser instalado em um pool raiz ZFS.
pool rpool auto auto auto mirror c0t0d0s0 c0t1d0s0
Durante a instalao interativa de um arquivo flash UFS, selecione ZFS como o tipo do sistema de arquivos.
Embora todo o pool raiz, menos quaisquer conjuntos de dados explicitamente excludos, seja arquivado e instalado, apenas o ambiente de inicializao do ZFS que inicializado quando o arquivo criado utilizvel aps a instalao do arquivo flash. No entanto, pools que so arquivados com a opo -A rootdir do comando flarcreate ou flar podem ser usados para arquivar um pool raix diferente do pool raiz que est inicializado atualmente. As opes do comando flarcreate e flar que so usados para incluir e excluir arquivos individuais no so suportadas em um arquivo flash ZFS. possvel excluir apenas o conjunto completo de dados de um arquivo Flash ZFS. O comando flar info no suportado para um arquivo Flash ZFS. Por exemplo:
# flar info -l zfs10upflar ERROR: archive content listing not supported for zfs archives.
Depois que um sistema mestre instalado ou atualizado para a verso do Solaris 10 10/09, possvel criar um arquivo Flash ZFS para ser utilizado para instalar um sistema alvo. O processo bsico :
Crie o arquivo Flash ZFS com o comando flarcreate no sistema mestre. Todos os conjuntos de dados no conjunto raiz, exceto para os volumes de permuta e despejo, so includos no arquivo Flash ZFS. Crie um perfil JumpStart para incluir as informaes do arquivo flash no servidor de instalao. Instale o arquivo Flash ZFS no sistema de destino.
As opes de arquivamento a seguir so suportadas para a instalao do conjunto raiz ZFS com um arquivo Flash:
Utilize o comando flarcreate ou flar para criar um arquivo Flash do conjunto raiz ZFS especificado. Se no for especificado, um arquivo Flash do conjunto raiz padro criado. Utilize flarcreate -D dataset para excluir o conjunto de dados especificado do arquivo flash. Esta opo pode ser usada mltiplas vezes para excluir mltiplos conjuntos de dados.
Aps a instalao de uma arquivo Flash ZFS, o sistema configurado como segue:
Toda a hierarquia do conjunto de dados que existia no sistema onde o arquivo Flash foi criado recriada no sistema destino, exceto quaisquer conjuntos de dados que foram especificamente excludos no momento da criao do arquivo. Os volumes de permuta e despejo no esto includos no arquivo Flash.
144
Instalando um sistema de arquivos raiz ZFS (instalao de arquivo do Oracle Solaris Flash)
O pool raiz tem o mesmo nome do pool que foi usado para criar o arquivo. O ambiente de inicializao que estava ativo quando o arquivo flash foi criado o BE ativo e padro nos sistemas implementados.
Instalao de um sistema com um arquivo Flash do ZFS (instalao JumpStart)
EXEMPLO 52
Depois da instalao ou atualizao de um sistema mestre com no mnimo o Solaris verso 10 10/09, crie um arquivo flash do pool raiz ZFS. Por exemplo:
# flarcreate -n zfsBE zfs10upflar Full Flash Checking integrity... Integrity OK. Running precreation scripts... Precreation scripts done. Determining the size of the archive... The archive will be approximately 6.77GB. Creating the archive... Archive creation complete. Running postcreation scripts... Postcreation scripts done. Running pre-exit scripts... Pre-exit scripts done.
No sistema que ser utilizado como o servidor de instalao, crie um perfil JumpStart da mesma maneira que faria para instalar qualquer sistema. Por exemplo, o perfil a seguir utilizado para instalar o arquivo zfs10flar .
install_type flash_install archive_location nfs system:/export/jump/zfs10upflar partitioning explicit pool rpool auto auto auto mirror c0t1d0s0 c0t0d0s0
EXEMPLO 53
Flash)
possvel instalar um sistema de arquivos raiz ZFS selecionando uma opo de instalao Flash. Esta opo considera que um arquivo flash ZFS j tenha sido criado e est disponvel. 1. Na tela Instalao interativa do Solaris, selecione a opo F4_Flash. 2. Na tela Reinicializar aps instalao, selecione a opo Reinicializao automtica ou Reinicializao manual. 3. Na tela Escolher tipo de sistema de arquivos, selecione ZFS. 4. Na tela Mtodo de recuperao de arquivo Flash, selecione o mtodo de recuperao, como HTTP, FTP, NFS, Arquivo Local, Fita Local ou Dispositivo Local. Por exemplo, selecione NFS se o arquivo flash for compartilhado de um servidor NFS. 5. Na tela Incluso de arquivo Flash, especifique o local do arquivo flash ZFS.
Captulo 5 Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris 145
Instalando um sistema de arquivos raiz ZFS (instalao de arquivo do Oracle Solaris Flash)
EXEMPLO 53
Flash)
Instalao inicial de um sistema de arquivos raiz ZFS inicializvel (instalao de arquivo (Continuao)
Por exemplo, se o local for um servidor NFS, identifique o servidor por seu endereo IP e depois especifique o caminho para o arquivo flash ZFS.
NFS Location: 12.34.567.890:/export/zfs10upflar
7. Reveja o prximo conjunto de telas, semelhante a uma instalao inicial, e selecione as opes que correspondem sua configurao:
Selecionar discos Deseja preservar os dados? Definir configuraes do ZFS Reveja as informaes de resumo e depois selecione a opo Continuar. Por exemplo:
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: s10zfsBE ZFS Pool Size (in MB): 69995 Size of Swap Area (in MB): 2048 Size of Dump Area (in MB): 1024 (Pool size must be between 7591 MB and 69995 MB)
Se o arquivo flash for um fluxo de envio do ZFS, opes do sistema de arquivos combinadas ou separadas /var no estaro presentes. Neste caso, se /var combinado ou no dependente de como est configurado no sistema mestre.
Pressione Continuar em Montar sistemas de arquivos remotos ? tela. Reveja a tela Perfil e pressione F4 para fazer alteraes. Caso contrrio, pressione Begin_Installation (F2). Por exemplo:
Profile The information shown below is your profile for installing Solaris software.
146
EXEMPLO 53
Flash)
Instalao inicial de um sistema de arquivos raiz ZFS inicializvel (instalao de arquivo (Continuao)
It reflects the choices youve made on previous screens. ============================================================================ Installation Option: Boot Device: Root File System Type: Client Services: Flash c1t0d0 ZFS None
Software: 1 Flash Archive NFS: zfsBE Pool Name: rpool Boot Environment Name: s10zfsBE Pool Size: 69995 MB Devices in Pool: c1t0d0
comprovar que o tamanho mnimo pode ser alojado. Se o tamanho mnimo puder ser acomodado, o maior tamanho possvel do conjunto alocado, dadas as limitaes, como o tamanho dos discos, os segmentos preservados, e assim por diante. Por exemplo, se voc especificar c0t0d0s0, o segmento de pool raiz criado com o maior tamanho possvel tanto se especificar a palavra-chave all ou auto. Ou possvel especificar um tamanho determinado para o segmento ou para o volume de permuta ou despejo. A palavra-chave auto funciona de forma semelhante palavra-chave all quando utilizada com um pool raiz ZFS porque os pools no tm espao no utilizado. bootenv Identifica as caractersticas do ambiente de inicializao. Use a seguinte sintaxe da palavra-chave bootenv para criar um ambiente de raiz ZFS inicializvel: bootenv installbe bename BE-name [ dataset mount-point] installbe bename nome-do-BE Cria e instala um novo BE identificado pela opo bename e pela entrada BE-name. Identifica o nome-do-BE a ser instalado. Se bename no for usado com a palavra-chave pool, criado um BE padro. dataset mount-point Use a palavra-chave dataset opcional para identificar o conjunto de dados /var, que diferente do conjunto de dados raiz. O valor do mount-point est atualmente limitado a /var. Por exemplo, a linha de sintaxe de bootenv de um conjunto de dados /var diferente semelhante seguinte:
bootenv installbe bename zfsroot dataset /var
pool
Define o novo pool raiz que ser criado. Deve ser fornecida a seguinte sintaxe da palavra-chave:
pool poolname poolsize swapsize dumpsize vdevlist
poolname
Identifica o nome do pode que ser criado. O pool criado com o pool especificado poolsize e com os dispositivos fsicos especificados com um ou mais dispositivos vdevlist O valor poolname no deve identificar o nome de um pool existente porque o pool existente ser substitudo.
148
poolsize
Especifica o tamanho do pool que ser criado. O valor pode ser auto ou existing. O valor auto aloca o maior tamanho possvel do conjunto, dadas as limitaes, como o tamanho dos discos, e assim por diante. O tamanho adotado em MB, a menos que esteja especificado por g (GB). Especifica o tamanho do volume de intercmbio que ser criado. O valor autosignifica que o tamanho de permuta padro utilizado. possvel especificar um tamanho com um valor size. O tamanho adotado em MB, a menos que estiver especificado por g (GB). Especifica o tamanho do volume de dump que ser criado. O valor autosignifica que o tamanho de despejo padro utilizado. possvel especificar um tamanho com um valor size. O tamanho adotado em MB, a menos que esteja especificado por g (GB). Especifica um ou mais dispositivos que sero usados para criar o pool. O formato de vdevlist o mesmo que o formato do comando zpool create. Atualmente, somente as configuraes espelhadas so suportadas quando vrios dispositivos so especificados. Os dispositivos de vdevlist devem ser segmentos para o conjunto raiz. O valor any significa que o software de instalao seleciona um dispositivo adequado. possvel espelhar quantos discos quiser, mas o tamanho do conjunto criado determinado pelo menor dos discos especificados. Para obter mais informaes sobre a criao de pools de armazenamento espelhados, consulte Configurao de pool de armazenamento espelhado na pgina 71.
swapsize
dumpsize
vdevlist
149
install_type initial_install pool newpool auto auto auto mirror c0t0d0s0 c0t1d0s0 bootenv installbe bename s10-xx
O perfil a seguir efetua uma instalao inicial com a palavra-chave install_type initial_install do metacluster SUNWCall em um novo grupo chamado newpool, que possui tamanho de 80 GB. Este conjunto criado com um volume de permuta de 2 GB e um volume de despejo de 2 GB, em uma configurao espelhada de qualquer um dos dois dispositivos disponveis que seja grande o suficiente para criar um grupo de 80 GB. Se nenhum dos dois dispositivos estiverem disponveis, a instalao falha. As caractersticas do ambiente de inicializao so definidas com a palavra-chave bootenv para instalar um novo BE com a palavra-chave installbe e um bename denominado s10xx criado.
install_type initial_install cluster SUNWCall pool newpool 80g 2g 2g mirror any any bootenv installbe bename s10-xx
A sintaxe de instalao do JumpStart permite a preservao ou criao de um sistema de arquivos UFS em um disco que inclui tambm o conjunto raiz ZFS. Esta configurao no recomendvel para os sistemas de produo. No entanto, pode ser usada para transio ou necessidades de migrao em um sistema pequeno, como um laptop.
No possvel usar um pool de armazenamento do ZFS existente em uma instalao JumpStart para criar um sistema de arquivos raiz ZFS inicializvel. Voc deve criar um novo pool de armazenamento do ZFS com uma sintaxe semelhante seguinte:
pool rpool 20G 4G 4G c0t0d0s0
necessrio criar o conjunto com segmentos de disco e no com o disco inteiro, conforme descrito em Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS na pgina 133. Por exemplo, a sintaxe em negrito no exemplo a seguir no aceitvel:
install_type initial_install cluster SUNWCall pool rpool all auto auto mirror c0t0d0 c0t1d0 bootenv installbe bename newBE
150
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Os recursos relacionados do Live Upgrade esto disponveis e, se estiverem relacionados aos componentes UFS, funcionam como nas verses anteriores do . Esto disponveis os recursos seguintes:
Ao migrar o sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS, voc deve designar um pool de armazenamento do ZFS existente com a opo -p. Se o sistema de arquivos raiz UFS tiver componentes em diferentes faixas, eles so migrados para o pool raiz ZFS. No Oracle Solaris verso 10 8/11, voc pode especificar um sistema de arquivos separado /var ao migrar seu sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS O processo bsico para migrar de um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS o seguinte: 1. Instale os patches necessrios do Live Upgrade, se necessrio. 2. Instale uma verso atual do Oracle Solaris 10 (Solaris 10 10/08 para Oracle Solaris 10 8/11) ou utilize o programa de atualizao padro para atualizar de uma verso anterior do Oracle Solaris 10 em qualquer sistema suportado com base em SPARC ou x 86. 3. Quando estiver executando o Solaris 10 10/08, crie um conjunto de armazenamento ZFS para o sistema de arquivos raiz ZFS. 4. Use o Live Upgrade para migrar o sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS. 5. Ative o BE do ZFS com o comando luactivate.
possvel utilizar o comando luupgrade para corrigir ou atualizar um BE ZFS. Voc tambm pode usar luupgrade para atualizar um BE ZFS alternativo com um arquivo flash ZFS. Para obter informaes, consulte o Exemplo 58. O Live Upgrade pode utilizar os recursos de clone e instantneo ZFS ao criar um BE do ZFS no mesmo conjunto. Consequentemente, a criao do ambiente de inicializao muito mais rpida do que nas verses anteriores.
Suporte para migrao de regio possvel migrar um sistema com regies, mas as configuraes suportadas so limitadas no Solaris verso 10 10/08. Mais configuraes de regies so suportadas a partir da verso do Solaris 10 5/09. Para obter mais informaes, consulte as seguintes sees:
151
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Uso do Live Upgrade para migrar ou atualizar um sistema com regies (Solaris 10 10/08) na pgina 160 Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies (no mnimo Solaris 10 5/09) na pgina 165
Se for migrar para um sistema de arquivos raiz ZFS sem regies, consulte Using Live Upgrade to Migrate or Update a ZFS Root File System (Without Zones) na pgina 153. Para informaes detalhadas sobre a instalao do e os recursos do Oracle Solaris Live Upgrade, consulte Oracle Guia de instalao do Solaris 10 9/10: Solaris Live Upgrade e planejamento da atualizao. Para informaes sobre requisitos do ZFS e do Live Upgrade, consulte Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS na pgina 133.
A opo de atualizao padro da GUI de instalao do Oracle Solaris no est disponvel para migrao de um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS. Para migrar de um sistema de arquivos UFS, voc deve usar o Live Upgrade. Voc deve criar o pool de armazenamento do ZFS que ser usado para a inicializao antes da operao com o Live Upgrade. Alm disso, devido s limitaes atuais da inicializao, o pool raiz ZFS deve ser criado com faixas em vez de discos inteiros. Por exemplo:
# zpool create rpool mirror c1t0d0s0 c1t1d0s0
Antes de criar o novo conjunto, certifique-se de que os discos a serem utilizados no grupo tenham uma legenda SMI (VTOC) em vez de uma legenda EFI. Se o disco for remarcado com uma legenda SMI, certifique-se de que o processo de rotulao no altera o esquema de particionamento. Na maioria dos casos, toda capacidade do disco deve estar nos segmentos destinados ao conjunto raiz.
No possvel utilizar o Oracle Solaris Live Upgrade para criar um BE do UFS a partir de um BE do ZFS. Se migrar o BE do UFS para um BE do ZFS e reter o BE do UFS, voc pode inicializar tanto do BE do UFS quanto do BE do ZFS. No renomeie os ambientes de inicializao do ZFS com o comando zfs rename, porque o Live Upgrade no pode detectar a alterao de nome. Os comando subseqentes, como ludelete, falharo. De fato, no renomeie os pools ou sistemas de arquivos ZFS se tiver BEs que deseja continuar usando.
152
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Ao criar um ambiente de inicializao alternativo que seja um clone do ambiente de inicializao primrio, voc no pode usar as opes -f, -x, -y, - Y e -z para incluir ou excluir arquivos de tal ambiente de inicializao primrio. possvel usar as opes de incluso e excluso definidas nos seguintes casos:
UFS -> UFS UFS -> ZFS ZFS -> ZFS (different pool)
Embora seja possvel usar o Live Upgrade para atualizar um sistema de arquivos raiz UFS para um ZFS, no possvel us-lo para atualizar sistemas de arquivos no raiz ou compartilhados. No possvel usar o comando lu para criar e migrar um sistema de arquivos raiz ZFS.
Using Live Upgrade to Migrate or Update a ZFS Root File System (Without Zones)
Os exemplos a seguir mostram como migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS e como atualizar um sistema de arquivos raiz ZFS. Se for migrar ou atualizar um sistema com regies, consulte as seguintes sees:
Uso do Live Upgrade para migrar ou atualizar um sistema com regies (Solaris 10 10/08) na pgina 160 Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies (no mnimo Solaris 10 5/09) na pgina 165
EXEMPLO 54 Usando o Live Upgrade para migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS
O exemplo seguinte mostra como migrar um sistema de arquivos raiz ZFS de um sistema de arquivos raiz UFS. O BE atual, ufsBE, que contm um sistema de arquivos raiz UFS, identificado pela opo -c. Se a opo - c no for includa, o nome do BE atual ser, por padro, o nome do dispositivo. O novo BE, zfsBE, identificado pela opo -n. Um pool de armazenamento ZFS deve existir para que a operao lucreate seja executada. O conjunto de armazenamento ZFS deve ser criado com segmentos em vez de com um disco inteiro para que possa ser atualizvel e inicializvel. Antes de criar o novo grupo, certifique-se de que os discos a serem utilizados no grupo tenham uma legenda SMI (VTOC) em vez de uma legenda EFI. Se o disco for remarcado com uma legenda SMI, certifique-se de que o processo de rotulao no altera o esquema de particionamento. Na maioria dos casos, toda capacidade do disco deve estar nos segmentos destinados ao conjunto raiz.
# zpool create rpool mirror c1t2d0s0 c2t1d0s0 # lucreate -c ufsBE -n zfsBE -p rpool Analyzing system configuration.
153
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
EXEMPLO 54 Usando o Live Upgrade para migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS (Continuao)
No name for current boot environment. Current boot environment is named <ufsBE>. Creating initial configuration for primary boot environment <ufsBE>. The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <ufsBE> PBE Boot Device </dev/dsk/c1t0d0s0>. Comparing source boot environment <ufsBE> 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 <zfsBE>. Source boot environment is <ufsBE>. Creating boot environment <zfsBE>. Creating file systems on boot environment <zfsBE>. Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>. Populating file systems on boot environment <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 </rpool/ROOT>. Creating compare database for file system </>. Updating compare databases on boot environment <zfsBE>. Making boot environment <zfsBE> bootable. Creating boot_archive for /.alt.tmp.b-qD.mnt updating /.alt.tmp.b-qD.mnt/platform/sun4u/boot_archive Population of boot environment <zfsBE> successful. Creation of boot environment <zfsBE> successful.
Aps a operao com lucreate ter terminado, use o comando lustatus para exibir o status do BE. Por exemplo:
# lustatus Boot Environment Name -------------------------ufsBE zfsBE Is Complete -------yes yes Active Now -----yes no Active On Reboot --------yes no Can Delete -----no yes Copy Status ----------
154
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
EXEMPLO 54 Usando o Live Upgrade para migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS (Continuao)
Se voltar ao BE do UFS, voc ter que reimportar os conjuntos de armazenamento ZFS que foram criados enquanto o BE do ZFS estava sendo inicializado, porque tais grupos no esto automaticamente disponveis no BE do UFS. Se o BE do UFS j no for mais necessrio, voc pode remov-lo com o comando ludelete.
EXEMPLO 55
Using Live Upgrade to Create a ZFS BE From a UFS BE (With a Separate /var)
No Oracle Solaris verso 10 8/11, voc pode usar a opo lucreate - D para identificar que voc deseja um sistema de arquivos /var separado criado ao migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS. No exemplo a seguir, o BE UFS existente migrado para um BE ZFS com um sistema de arquivos /var separado.
# lucreate -n zfsBE -p rpool -D /var Determining types of file systems supported Validating file system requests
155
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
EXEMPLO 55
Using Live Upgrade to Create a ZFS BE From a UFS BE (With a Separate /var) (Continuao)
Preparing logical storage devices Preparing physical storage devices Configuring physical storage devices Configuring logical storage devices Analyzing system configuration. No name for current boot environment. INFORMATION: The current boot environment is not named - assigning name <c0t0d0s0>. Current boot environment is named <c0t0d0s0>. Creating initial configuration for primary boot environment <c0t0d0s0>. INFORMATION: No BEs are configured on this system. The device </dev/dsk/c0t0d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <c0t0d0s0> PBE Boot Device </dev/dsk/c0t0d0s0>. Updating boot environment description database on all BEs. Updating system configuration files. The device </dev/dsk/c0t1d0s0> is not a root device for any boot environment; cannot get BE ID. Creating configuration for boot environment <zfsBE>. Source boot environment is <c0t0d0s0>. Creating file systems on boot environment <zfsBE>. Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>. Creating <zfs> file system for </var> in zone <global> on <rpool/ROOT/zfsBE/var>. Populating file systems on boot environment <zfsBE>. Analyzing zones. Mounting ABE <zfsBE>. Generating file list. Copying data from PBE <c0t0d0s0> to ABE <zfsBE> 100% of filenames transferred Finalizing ABE. Fixing zonepaths in ABE. Unmounting ABE <zfsBE>. Fixing properties on ZFS datasets in ABE. Reverting state of zones in PBE <c0t0d0s0>. Making boot environment <zfsBE> bootable. Creating boot_archive for /.alt.tmp.b-iaf.mnt updating /.alt.tmp.b-iaf.mnt/platform/sun4u/boot_archive Population of boot environment <zfsBE> successful. Creation of boot environment <zfsBE> successful. # luactivate zfsBE A Live Upgrade Sync operation will be performed on startup of boot environment <zfsBE>. . . . Modifying boot archive service Activation of boot environment <zfsBE> successful. # init 6
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
EXEMPLO 55
Using Live Upgrade to Create a ZFS BE From a UFS BE (With a Separate /var) (Continuao) rpool/swap 1.03G 28.0G 16K -
EXEMPLO 56
A criao de um BE do ZFS a partir de um BE do ZFS no mesmo pool muito rpida porque esta operao usa os recursos de instantneos e clones do ZFS. Se o ambiente de inicializao atual estiver no mesmo pool ZFS, a opo -p omitida. Se possuir vrios BEs de ZFS, faa o seguinte para selecionar a partir de qual BE inicializar:
SPARC: possvel usar o comando boot -L para identificar os BEs disponveis. Em seguida, selecione um BE do qual inicializar usando o comando boot -Z. x86: voc pode selecionar um BE do menu GRUB.
Voc pode atualizar o ambiente de inicializao ZFS com correes ou pacotes adicionais. O processo bsico :
157
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
EXEMPLO 57
(Continuao)
Atualize o BE principal do ZFS com o comando luupgrade para adicionar pacotes ou patches.
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------zfsBE yes no no yes zfs2BE yes yes yes no # luupgrade -p -n zfsBE -s /net/system/export/s10up/Solaris_10/Product SUNWchxge Validating the contents of the media </net/install/export/s10up/Solaris_10/Product>. Mounting the BE <zfsBE>. Adding packages to the BE <zfsBE>. Processing package instance <SUNWchxge> from </net/install/export/s10up/Solaris_10/Product> Chelsio N110 10GE NIC Driver(sparc) 11.10.0,REV=2006.02.15.20.41 Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 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 <zfsBE>. The package add to the BE <zfsBE> completed.
Ou voc pode criar um novo BE para atualizar para uma verso mais recente do Oracle Solaris. Por exemplo:
# luupgrade -u -n newBE -s /net/install/export/s10up/latest
158
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
EXEMPLO 57
(Continuao)
EXEMPLO 58
No Oracle Solaris verso 10 8/11, voc pode usar o comando luupgrade para criar um BE ZFS a partir de um arquivo flash ZFS existente. O processo bsico realiza-se da seguinte forma: 1. Crie um arquivo flash xde um sistema mestre com um BE ZFS. Por exemplo:
master-system# flarcreate -n s10zfsBE /tank/data/s10zfsflar Full Flash Checking integrity... Integrity OK. Running precreation scripts... Precreation scripts done. Determining the size of the archive... The archive will be approximately 4.67GB. Creating the archive... Archive creation complete. Running postcreation scripts... Postcreation scripts done. Running pre-exit scripts... Pre-exit scripts done.
2. Disponibilize o arquivo flash ZFS que foi criado no sistema mestre para o sistema de clone. Locais possveis de arquivo so um sistema de arquivos local, HTTP, FTP, NFS, e assim por diante. 3. Crie um BE ZFS alternativo vazio no sistema de clone. Use a opo -s - para especificar que este um BE vazio a ser preenchido com o contedo do arquivo flash ZFS. Por exemplo:
clone-system# lucreate -n zfsflashBE -s - -p rpool Determining types of file systems supported Validating file system requests Preparing logical storage devices Preparing physical storage devices Configuring physical storage devices Configuring logical storage devices Analyzing system configuration. No name for current boot environment. INFORMATION: The current boot environment is not named - assigning name <s10zfsBE>. Current boot environment is named <s10zfsBE>. Creating initial configuration for primary boot environment <s10zfsBE>. INFORMATION: No BEs are configured on this system. The device </dev/dsk/c0t0d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <s10zfsBE> PBE Boot Device </dev/dsk/c0t0d0s0>. Updating boot environment description database on all BEs. Updating system configuration files. The device </dev/dsk/c0t1d0s0> is not a root device for any boot environment; cannot get BE ID. Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsflashBE>.
159
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
EXEMPLO 58
(Continuao)
6. Reinicialize o sistema.
clone-system# init 6
Uso do Live Upgrade para migrar ou atualizar um sistema com regies (Solaris 10 10/08)
possvel utilizar o Live Upgrade para migrar um sistema com regies, mas as configuraes suportadas so limitadas na verso Solaris 10 10/08. Se estiver instalando ou atualizando para pelo menos o o Solaris 10 5/09, mais configuraes de regio so suportadas. Para mais informaes, consulte Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies (no mnimo Solaris 10 5/09) na pgina 165. Esta seo descreve como instalar e configurar um sistema com regies para que possa ser atualizado e ter patches instalados com o Live Upgrade. Se for migrar para um sistema de arquivos raiz ZFS sem regies, consulte Using Live Upgrade to Migrate or Update a ZFS Root File System (Without Zones) na pgina 153.
160 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Se for migrar ou configurar um sistema com regies no Solaris 10 10/08, consulte os seguintes procedimentos:
Como migrar um sistema de arquivos raiz UFS com razes de regies em UFS para um sistema de arquivos raiz ZFS (Solaris 10 10/08) na pgina 161 Como configurar um sistema de arquivos raiz ZFS com razes de regio em ZFS (Solaris 10 10/08) na pgina 163 Como atualizar ou aplicar correes em um sistema de arquivos raiz ZFS com razes de regio em ZFS (Solaris 10 10/08) na pgina 164 Resolvendo problemas do ponto de montagem ZFS que impedem a inicializao com xito (Solaris 10 10/08) na pgina 184
Siga esses procedimentos recomendados para configurar regies em um sistema com sistemas de arquivos raiz ZFS para garantir que o Live Upgrade possa ser usado em tal sistema.
Atualize os sistema para o Solaris 10 10/08 se estiver executando uma verso anterior do Solaris 10. Para obter mais informaes sobre a atualizao de um sistema que executa o Solaris verso 10, consulte Oracle Guia de instalao do Solaris 10 9/10: Solaris Live Upgrade e planejamento da atualizao.
Para obter informaes sobre os requisitos do conjunto raiz, consulte Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS na pgina 133.
3 4
Comprove que as regies do ambiente do UFS estejam inicializadas. Crie o novo ambiente de inicializao do ZFS.
# lucreate -n s10BE2 -p rpool
Este comando estabelece os conjuntos de dados no conjunto raiz do novo ambiente de inicializao e copia o ambiente de inicializao atual (incluindo as regies) em tais conjuntos de dados.
161
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Agora, o sistema est executando um sistema de arquivos raiz ZFS, mas as razes de regio no UFS ainda esto no sistema de arquivos raiz UFS. necessrio completar as prximas etapas para migrar totalmente as regies UFS para uma configurao ZFS suportada.
6
Reinicialize o sistema.
# init 6
Migre as regies para um BE do ZFS. a. Inicialize as regies. b. Crie outro BE do ZFS dentro do grupo.
# lucreate s10BE3
d. Reinicialize o sistema.
# init 6
Resolva qualquer potencial problema de ponto de montagem. Devido a um erro no Live Upgrade, o ambiente de inicializao inativo pode falhar ao ser inicializado porque o conjunto de dados ZFS ou o conjunto de dados ZFS da regio no ambiente de inicializao possui um ponto de montagem invlido. a. Revise a sada do zfs list. Procure os pontos de montagem temporrios incorretos. Por exemplo:
# zfs list -r -o name,mountpoint rpool/ROOT/s10up NAME rpool/ROOT/s10up rpool/ROOT/s10up/zones rpool/ROOT/s10up/zones/zonerootA MOUNTPOINT /.alt.tmp.b-VP.mnt/ /.alt.tmp.b-VP.mnt//zones /.alt.tmp.b-VP.mnt/zones/zonerootA
O ponto de montagem do ambiente de inicializao ZFS raiz (rpool/ROOT/s10up) deve ser /. b. Redefina os pontos de montagem do BE do ZFS e seus conjuntos de dados. Por exemplo:
# zfs inherit -r mountpoint rpool/ROOT/s10up # zfs set mountpoint=/ rpool/ROOT/s10up
162 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
c. Reinicialize o sistema. Quando a opo para inicializar um BE especfico for apresentada no prompt do OpenBoot PROM ou no menu GRUB, selecione o BE cujos pontos de montagem acabam de ser corrigidos.
Instale o sistema com uma raiz ZFS utilizando o instalador de texto interativo ou o mtodo de instalao JumpStart. Dependendo do mtodo de instalao escolhido, consulte Instalao de um sistema de arquivos raiz ZFS (instalao inicial do Oracle Solaris) na pgina 136 ou Instalando um sistema de arquivos raiz ZFS (Instalao com JumpStart) na pgina 147. Inicialize o sistema a partir do conjunto raiz recm-criado. Crie um conjunto de dados para agrupar as razes da regio. Por exemplo:
# zfs create -o canmount=noauto rpool/ROOT/s10BE/zones
2 3
Definir o valor canmount para a propriedade noauto impede que o conjunto de dados seja montado de forma diferente da ao explcita do Live Upgrade e do cdigo de inicializao do sistema.
4
163
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Voc pode ativar as regies para que se inicializem automaticamente quando o sistema for inicializado usando a seguinte sintaxe:
zonecfg:zoneA> set autoboot=true 8
Instale a regio.
# zoneadm -z zoneA install
Inicialize a regio.
# zoneadm -z zoneA boot
O BE existente, incluindo todas as regies, clonado. criado um conjunto de dados para cada conjunto de dados no ambiente de inicializao original. Os novos conjuntos de dados so criados no mesmo pool do pool raiz atual.
2
Selecione um dos procedimentos a seguir para atualizar o sistema ou aplicar correes ao novo ambiente de inicializao:
Atualize o sistema.
# luupgrade -u -n newBE -s /net/install/export/s10up/latest
164
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Resolva qualquer potencial problema de ponto de montagem. Devido a um erro no Live Upgrade, o ambiente de inicializao inativo pode falhar ao ser inicializado porque o conjunto de dados ZFS ou o conjunto de dados ZFS da regio no ambiente de inicializao possui um ponto de montagem invlido. a. Revise a sada do zfs list. Procure os pontos de montagem temporrios incorretos. Por exemplo:
# zfs list -r -o name,mountpoint rpool/ROOT/newBE NAME rpool/ROOT/newBE rpool/ROOT/newBE/zones rpool/ROOT/newBE/zones/zonerootA MOUNTPOINT /.alt.tmp.b-VP.mnt/ /.alt.tmp.b-VP.mnt/zones /.alt.tmp.b-VP.mnt/zones/zonerootA
O ponto de montagem do BE do ZFS raiz (rpool/ROOT/newBE) deve ser /. b. Redefina os pontos de montagem do BE do ZFS e seus conjuntos de dados. Por exemplo:
# zfs inherit -r mountpoint rpool/ROOT/newBE # zfs set mountpoint=/ rpool/ROOT/newBE
c. Reinicialize o sistema. Quando a opo para inicializar um ambiente de inicializao especfico for apresentada no prompt do OpenBoot PROM ou no menu GRUB, selecione o ambiente de inicializao cujos pontos de montagem acabam de ser corrigidos.
Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies (no mnimo Solaris 10 5/09)
possvel utilizar o recurso Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies a partir da verso Solaris 10 10/08. Configuraes adicionais (esparsa ou completa) so suportadas pelo Live Upgrade a partir do Solaris verso 10 5/09. Esta seo descreve como configurar e instalar um sistema com regies para que possa ser atualizado e ter o patch instalado com o Live Upgrade a partir da verso Solaris 10 5/09. Se for
165
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
migrar para um sistema de arquivos raiz ZFS sem regies, consulte Using Live Upgrade to Migrate or Update a ZFS Root File System (Without Zones) na pgina 153. Considere os pontos a seguir ao utilizar o Live Upgrade com ZFS e regies comeando com a verso Solaris 10 5/09:
Para utilizar o Live Upgrade com configuraes de regies que so suportadas, comeando com o Solaris verso 10 5/09, necessrio primeiro atualizar o sistema para o Solaris verso 10 5/09 pelo menos, ao utilizar o programa de atualizao padro. Logo, com o Live Upgrade, possvel migrar o sistema de arquivos raiz UFS com razes de regio para o sistema de arquivos raiz ZFS ou atualizar ou instalar patches no sistema de arquivos raiz ZFS e razes de regio. No possvel migrar diretamente configuraes de regies no suportadas de uma verso Solaris 10 anterior verso Solaris 10 5/09, no mnimo.
Se estiver migrando ou configurando um sistema com regies comeando com a verso Solaris 10 5/09, revise as informaes a seguir:
ZFS suportado com informaes de configurao de raiz da regio (pelo menos Solaris 10 5/09) na pgina 166 Como criar um BE do ZFS com um sistema de arquivos raiz ZFS e uma raiz de regio (pelo menos Solaris 10 5/09) na pgina 168 Como atualizar ou instalar patch em um sistema de arquivos raiz ZFS com razes de regio (pelo menos Solaris 10 5/09) na pgina 169 Como migrar um sistema de arquivos raiz UFS com raiz de regio para um sistema de arquivos raiz ZFS (pelo menos Solaris 10 5/09) na pgina 173
ZFS suportado com informaes de configurao de raiz da regio (pelo menos Solaris 10 5/09)
Revise as configuraes de regio suportadas antes de utilizar o recurso Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies.
Migrar um sistema de arquivos raiz UFS para um sistema de arquivos raiz ZFS So suportadas as seguintes configuraes de razes de regio:
Em um diretrio no sistema de arquivos raiz UFS Em um subdiretrio de um ponto de montagem no sistema de arquivos raiz UFS Sistema de arquivos raiz UFS com uma raiz de regio em um diretrio de sistema de arquivos UFS ou em um subdiretrio de um ponto de montagem de sistema de arquivos raiz UFS e um grupo no raiz ZFS com uma raiz de regio
Um sistema de arquivos raiz UFS que possui uma raiz de regio como um ponto de montagem no suportado.
166
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Migrar ou atualizar um sistema de arquivos raiz ZFS So suportadas as seguintes configuraes de razes de regio:
Em um sistema de arquivos em um pool raiz ZFS ou no-raiz. Por exemplo, /zonepool/zones aceitvel. Em alguns casos, se um sistema de arquivos para a raiz da egio no for fornecido antes da operao do Live Upgrade, um sistema de arquivos para a raiz de regio (zoneds) ser criado pelo Live Upgrade. Em um sistema de arquivos descendente ou em um subdiretrio de um sistema de arquivos ZFS, desde que os caminhos de rea no estejam aninhados. Por exemplo, /zonepool/zones/zone1 e /zonepool/zones/zone1_dir so aceitveis. No exemplo a seguir, zonepool/zones um sistema de arquivos que contm as razes da regio e rpool contm o BE do ZFS:
zonepool zonepool/zones zonepool/zones/myzone rpool rpool/ROOT rpool/ROOT/myBE
O Live Upgrade faz instantneos e clones das regies em zonepool e do BE em rpool se for utilizada esta sintaxe:
# lucreate -n newBE
O BE newBE no rpool/ROOT/newBE criado. Quando ativado, newBE fornece acesso aos componentes zonepool. No exemplo anterior, se /zonepool/zones fosse um subdiretrio e no um sistema de arquivos separado, ento o Live Upgrade iria migr-lo como um componente do pool raiz, rpool.
A configurao de caminho ZFS e de rea no suportada: O Live upgrade no pode ser usado para criar um BE alternativo quando o BE de origem tem uma rea no-global com um caminho de rea definido para o ponto de montagem de um sistema de arquivos do pool de nvel superior. Por exemplo, se o pool zonepool tiver um sistema de arquivos montado como /zonepool, voc no poder ter uma rea no-global com um caminho de zona definido como /zonepool.
Migrao de regies ou informaes de atualizao com regies para UFS e ZFS: observe os fatores a seguir que podem afetar tanto a migrao quanto a atualizao de ambientes UFS e ZFS:
Se tiver configurado as regies conforme descrito em Uso do Live Upgrade para migrar ou atualizar um sistema com regies (Solaris 10 10/08) na pgina 160 na verso do Solaris 10 10/08 e atualizado para pelo menos o Solaris 10 5/09, voc pode migrar para um sistema de arquivos raiz ZFS ou utilizar o Oracle Solaris Live Upgrade a fim de atualizar para no mnimo a verso Solaris 10 5/09.
167
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
No crie razes de regies em diretrios aninhados, por exemplo zones/zone1 e zones/zone1/zone2. Caso contrrio, a montagem poder falhar no momento de inicializao.
Crie o BE do ZFS.
# lucreate -n zfs2BE Analyzing system configuration. No name for current boot environment. INFORMATION: The current boot environment is not named - assigning name <zfsBE>. Current boot environment is named <zfsBE>. Creating initial configuration for primary boot environment <zfsBE>. The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <zfsBE> PBE Boot Device </dev/dsk/c1t0d0s0>. Comparing source boot environment <zfsBE> 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 <zfs2BE>.
168
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Source boot environment is <zfsBE>. Creating boot environment <zfs2BE>. Cloning file systems from boot environment <zfsBE> to create boot environment <zfs2BE>. Creating snapshot for <rpool/ROOT/zfsBE> on <rpool/ROOT/zfsBE@zfs2BE>. Creating clone for <rpool/ROOT/zfsBE@zfs2BE> on <rpool/ROOT/zfs2BE>. Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs2BE>. Population of boot environment <zfs2BE> successful. Creation of boot environment <zfs2BE> successful. 4
Ative o BE do ZFS.
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------zfsBE yes yes yes no zfs2BE yes no no yes # luactivate zfs2BE A Live Upgrade Sync operation will be performed on startup of boot environment <zfs2BE>. . . . 5
169
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Nas etapas a seguir, zfs2BE o nome de exemplo do ambiente de inicializao que atualizado ou tem patches instalados.
1
Selecione um dos procedimentos a seguir para atualizar o sistema ou aplicar correes ao novo ambiente de inicializao:
Atualize o sistema.
# luupgrade -u -n zfs2BE -s /net/install/export/s10up/latest
170
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Este processo pode demorar um longo tempo. Para obter um exemplo completo do processo de luupgrade, consulte o Exemplo 59.
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------zfsBE yes yes yes no zfs2BE yes no no yes # luactivate zfs2BE A Live Upgrade Sync operation will be performed on startup of boot environment <zfs2BE>. . . . 6
Exemplo 59
Atualizao de um sistema de arquivos raiz ZFS com raiz de regio para um sistema de arquivos raiz ZFS do Oracle Solaris 10 9/10
Neste exemplo, um ambiente de inicializao ZFS (zfsBE), criado em um sistema Solaris verso 10 10/09 com um sistema de arquivos raiz ZFS e uma raiz de regio em um pool no-raiz, atualizado para o Oracle Solaris verso 10 9/10. Este processo pode ser demorado. A seguir, o BE atualizado (zfs2BE) ativado. Certifique-se de que as regies estejam instaladas e inicializadas antes de tentar atualizar. Neste exemplo, o grupo zonepool e o conjunto de dados /zonepool/zones e a regio zfszone so criados como segue:
# 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.
171
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
PATH / /zonepool/zones
IP shared shared
# lucreate -n zfsBE . . . # luupgrade -u -n zfsBE -s /net/install/export/s10up/latest 40410 blocks miniroot filesystem is <lofs> Mounting miniroot at </net/system/export/s10up/latest/Solaris_10/Tools/Boot> Validating the contents of the media </net/system/export/s10up/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 <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. Updating package information on boot environment <zfsBE>. Package information successfully updated on boot environment <zfsBE>. 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. Installing failsafe Failsafe install is complete. # luactivate zfs2BE # init 6 # lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------zfsBE yes no no yes zfs2BE yes yes yes no # zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared
172 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
- zfszone
installed /zonepool/zones
native
shared
Como migrar um sistema de arquivos raiz UFS com raiz de regio para
Atualize o sistema para, no mnimo, a verso Solaris 10 5/09 se estiver executando uma verso anterior do Solaris 10. Para informaes sobre atualizaes de um sistema que executa o Solaris 11, consulte Oracle Guia de instalao do Solaris 10 9/10: Solaris Live Upgrade e planejamento da atualizao. Crie o conjunto raiz. Para obter informaes sobre os requisitos do conjunto raiz, consulte Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS na pgina 133. Comprove que as regies do ambiente do UFS estejam inicializadas.
# zoneadm list -cv ID NAME 0 global 2 zfszone STATUS running running PATH / /zonepool/zones BRAND native native IP shared shared
Este comando estabelece os conjuntos de dados no conjunto raiz do novo ambiente de inicializao e copia o ambiente de inicializao atual (incluindo as regies) em tais conjuntos de dados.
5
173
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Reinicialize o sistema.
# init 6
Exemplo 510
Migrando um sistema de arquivos raiz UFS com raiz de regio para um sistema de arquivos raiz ZFS
Neste exemplo, um sistema Oracle Solaris 10 9/10 com um sistema de arquivos raiz UFS e uma raiz de regio (/uzone/ufszone) e um pool no-raiz ZFS (grupo ) e a regio raiz (/grupo/zfszone) migrado para um sistema de arquivos raiz ZFS. Certifique-se de que o conjunto raiz ZFS seja criado e que as regies estejam instaladas e inicializadas antes de realizar a migrao.
# zoneadm list -cv ID NAME 0 global 2 ufszone 3 zfszone STATUS running running running PATH / /uzone/ufszone /pool/zones/zfszone BRAND native native native IP shared shared shared
# lucreate -c ufsBE -n zfsBE -p rpool Analyzing system configuration. No name for current boot environment. Current boot environment is named <zfsBE>. Creating initial configuration for primary boot environment <zfsBE>. The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <ufsBE> PBE Boot Device </dev/dsk/c1t0d0s0>. Comparing source boot environment <ufsBE> 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 <zfsBE>. Source boot environment is <ufsBE>. Creating boot environment <zfsBE>. Creating file systems on boot environment <zfsBE>.
174
Migrating to a ZFS Root File System or Updating a ZFS Root File System (Live Upgrade)
Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>. Populating file systems on boot environment <zfsBE>. 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@zfsBE>. Creating clone for <pool/zones/zfszone@zfsBE> on <pool/zones/zfszone-zfsBE>. Creating compare databases for boot environment <zfsBE>. Creating compare database for file system </rpool/ROOT>. Creating compare database for file system </>. Updating compare databases on boot environment <zfsBE>. Making boot environment <zfsBE> bootable. Creating boot_archive for /.alt.tmp.b-DLd.mnt updating /.alt.tmp.b-DLd.mnt/platform/sun4u/boot_archive Population of boot environment <zfsBE> successful. Creation of boot environment <zfsBE> successful. # lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------ufsBE yes yes yes no zfsBE yes no no yes # luactivate zfsBE . . . # 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-ufsBE 628M 66.3G 627M /pool/zones/zfszone-ufsBE pool/zones/zfszone-ufsBE@zfsBE 98K - 627M rpool 7.76G 59.2G 95K /rpool rpool/ROOT 5.25G 59.2G 18K /rpool/ROOT rpool/ROOT/zfsBE 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
175
Durante a instalao inicial do SO Oracle Solaris de um sistema de arquivos UFS, criado um dispositivo de despejo em um volume ZFS no pool raiz ZFS. No geral, um dispositivo de despejo no necessita de administrao pois configurado automaticamente no momento da instalao. Por exemplo:
# dumpadm Dump content: Dump device: Savecore directory: Savecore enabled: Save compressed: kernel pages /dev/zvol/dsk/rpool/dump (dedicated) /var/crash/t2000 yes on
Se voc desativar e remover o dispositivo de despejo, dever ativ-lo com o comando dumpadm aps sua recriao. Na maioria dos casos, ser necessrio apenas ajustar o tamanho do dispositivo de despejo ao utilizar o comando zfs. Para obter informaes sobre os tamanhos dos volumes de permuta e despejo que so criados pelos programas de instalao, consulte Requisitos de instalao do e Oracle Solaris Live Upgrade para suporte ZFS na pgina 133. Os tamanhos do volume de intercmbio e do volume de dump podem ser ajustados durante e depois da instalao. Para mais informaes, consulte Ajustando os tamanhos dos dispositivos de permuta e despejo ZFS na pgina 177. Considere os problemas a seguir ao trabalhar com dispositivos de permuta e despejo ZFS:
Volumes ZFS separados devem ser utilizados para rea de permuta e os dispositivos de despejo. Atualmente, o uso de um arquivo de intercmbio em um sistema de arquivos ZFS no suportado. Se precisar alterar a rea de permuta ou o dispositivo de despejo aps a instalao ou atualizao do sistema, use os comandos swap e dumpadm como nas verses anteriores do Para obter mais informaes, consulte o Captulo 19, Configuring Additional Swap Space (Tasks), no System Administration Guide: Devices and File Systems e o Captulo 17, Managing System Crash Information (Tasks), no System Administration Guide: Advanced Administration.
176
Ajustando os tamanhos dos dispositivos de permuta e despejo ZFS na pgina 177 Soluo de problemas para dispositivo de despejo ZFS na pgina 178
Voc pode ajustar o tamanho dos volumes de intercmbio e dump durante uma instalao inicial. Para obter mais informaes, consulte o Exemplo 51. Voc pode criar e dimensionar os volumes de intercmbio e dump antes de realizar a operao com o Live Upgrade. Por exemplo: 1. Crie o pool de armazenamento.
# zpool create rpool mirror c0t0d0s0 c0t1d0s0
5. preciso ativar a rea de permuta quando um novo dispositivo de permuta adicionado ou alterado. 6. Adicione uma entrada para o volume de permuta para o arquivo /etc/vfstab. O Live Upgrade no redimensiona os volumes de intercmbio e dump existentes.
Voc pode redefinir a propriedade volsize do dispositivo de dump aps a instalao de um sistema. Por exemplo:
177
# zfs set volsize=2G rpool/dump # zfs get volsize rpool/dump NAME PROPERTY VALUE rpool/dump volsize 2G
SOURCE -
Voc pode redimensionar o volume de intercmbio, mas at que o CR 6765386 esteja integrado, melhor remover primeiro o dispositivo de intercmbio. Em seguida, recrie-o. Por exemplo:
# swap -d /dev/zvol/dsk/rpool/swap # zfs volsize=2G rpool/swap # swap -a /dev/zvol/dsk/rpool/swap
Para obter mais informaes sobre como remover um dispositivo de permuta em um sistema ativo, consulte este site: http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Voc pode ajustar o tamanho dos volumes de intercmbio e dump em um perfil do JumpStart usando a sintaxe de perfil semelhante seguinte:
install_type initial_install cluster SUNWCXall pool rpool 16g 2g 2g c0t0d0s0
Neste perfil, duas entradas 2g configuram o tamanho do volume de permuta e de despejo como 2 GB cada.
Caso precise de mais espao de intercmbio em um sistema que j est instalado, basta adicionar outro volume de intercmbio. Por exemplo:
# zfs create -V 2G rpool/swap2
Finalmente, adicione uma entrada para o segundo volume de permuta para o arquivo /etc/vfstab.
Se um despejo de memria no foi criado automaticamente, possvel utilizar o comando savecore para salvar o despejo de memria.
178
Um volume de despejo criado automaticamente ao instalar inicialmente um sistema de arquivos raiz ZFS ou migrar para um sistema de arquivos raiz ZFS. Na maioria dos casos, ser necessrio apenas ajustar o tamanho do volume de despejo se o tamanho do volume de despejo padro for muito pequeno. Por exemplo, em um sistema de memria grande, o tamanho do volume de despejo aumentado para 40 GB, como a seguir:
# zfs set volsize=40G rpool/dump
Redimensionando um volume de despejo grande pode ser um processo demorado. Se, por qualquer razo, necessrio ativar um dispositivo de despejo depois de criar um dispositivo de despejo manualmente, utilize a sintaxe semelhante seguinte:
# dumpadm -d /dev/zvol/dsk/rpool/dump Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash/t2000 Savecore enabled: yes
Um sistema com memria de 128 GB ou maior precisar de um dispositivo de despejo maior que o dispositivo de despejo que foi criado por padro. Se o dispositivo de despejo for muito pequeno para capturar um despejo de memria existente, uma mensagem semelhante seguinte exibida:
# dumpadm -d /dev/zvol/dsk/rpool/dump dumpadm: dump device /dev/zvol/dsk/rpool/dump is too small to hold a system dump dump size 36255432704 bytes, device size 34359738368 bytes
Para informaes sobre dimensionar os dispositivos de permuta e despejo, consulte Planning for Swap Space no System Administration Guide: Devices and File Systems.
No possvel, atualmente, adicionar um dispositivo de despejo a um grupo com vrios dispositivos de primeiro nvel. Voc ver uma mensagem semelhante a esta:
# dumpadm -d /dev/zvol/dsk/datapool/dump dump is not supported on device /dev/zvol/dsk/datapool/dump: datapool has multiple top level vdevs
Adicione o dispositivo de despejo ao conjunto raiz, que no pode possuir vrios dispositivos de primeiro nvel.
179
Quando um sistema inicializado para instalao, um disco RAM utilizado para o sistema de arquivos raiz durante todo o processo de instalao. A inicializao de um sistema de arquivos ZFS diferente da inicializao de um sistema de arquivos UFS porque, com o ZFS, o especificador de dispositivos de inicializao identifica um conjunto de armazenamento, e no um nico sistema de arquivos raiz. Um pool de armazenamento pode conter vrios conjuntos de dados inicializveis ou sistemas de arquivos raiz ZFS. Ao inicializar do ZFS, voc deve especificar um dispositivo de inicializao e um sistema de arquivos raiz dentro do pool identificado pelo dispositivo de inicializao. Por padro, o conjunto de dados selecionado para inicializao aquele identificado pela propriedade bootfs do conjunto. Esta seleo padro pode ser ignorada ao especificar um conjunto de dados inicializvel alternativo com o comando boot -Z.
Instalao de um sistema de arquivos raiz ZFS (instalao inicial do Oracle Solaris) na pgina 136 Como migrar um pool raiz ZFS espelhado (ps-instalao) na pgina 142
Se voc substituir um disco do pool raiz usando o comando zpool replace, dever instalar as informaes de inicializao no disco recm-substitudo usando o comando installboot ou installgrub . Se voc criar um pool raiz ZFS espelhado com o mtodo de instalao inicial ou se voc usar o comando zpool attach para conectar um disco ao pool raiz, ento essa etapa ser desnecessria. A sintaxe do comando installboot e installgrub a seguir:
SPARC:
sparc# installboot -F zfs /usr/platform/uname -i/lib/fs/zfs/bootblk
x86:
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0
Voc pode inicializar de outros dispositivos em um pool raiz espelhado. Dependendo da configurao de hardware, pode ser necessrio atualizar o PROM ou o BIOS para especificar outro dispositivo de inicializao. Por exemplo, possvel inicializar a partir de ambos os discos (c1t0d0s0 ou c1t1d0s0) no conjunto a seguir:
180
status rpool rpool ONLINE none requested NAME rpool mirror-0 c1t0d0s0 c1t1d0s0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
x86: selecione um disco alternativo no conjunto raiz ZFS espelhado do menu apropriado da BIOS. Ento, utilize sintaxe semelhante seguinte para confirmar que est sendo inicializado do disco alternativo:
x86# prtconf -v|sed -n /bootpath/,/value/p name=bootpath type=string items=1 value=/pci@0,0/pci8086,25f8@4/pci108e,286@0/disk@0,0:a
181
Quando um novo BE criado, o arquivo menu.lst atualizado automaticamente. Em um sistema baseado em SPARC, h duas opes de inicializao do ZFS disponveis:
Depois que o BE ativado, possvel utilizar o comando de inicializao -L para exibir uma lista dos conjuntos de dados inicializveis de um conjunto ZFS. Em seguida, pode selecionar um dos conjuntos de dados inicializveis da lista. So exibidas as instrues para a inicializao de tal conjunto de dados. possvel inicializar o conjunto de dados selecionado seguindo tais instrues. possvel utilizar o comando de inicializao -Z dataset para inicializar um conjunto de dados especfico ZFS.
SPARC: inicializando a partir de um ambiente de inicializao especfico ZFS
EXEMPLO 511
Se possuir vrios BEs do ZFS em um conjunto de armazenamento ZFS no dispositivo de inicializao do sistema, possvel utilizar o comando luactivate para especificar um BE padro. Por exemplo, a sada a seguir lustatus mostra que dois BEs ZFS esto disponveis:
# lustatus Boot Environment Name -------------------------zfsBE zfs2BE Is Complete -------yes yes Active Now -----no yes Active On Reboot --------no yes Can Delete -----yes no Copy Status ----------
Se possui vrios BEs do ZFS em seu sistema com base em SPARC, possvel utilizar o comando boot -L de um BE que diferente do BE padro. Entretanto, um BE que inicializado de uma sesso boot -L no redefinido como o BE padro, nem a propriedade bootfs atualizada. Se deseja fazer o BE inicializado de uma sesso boot -L o BE padro, ento necessrio ativ-lo com o comando luactivate. Por exemplo:
ok boot -L Rebooting with command: boot -L Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0 File and args: -L 1 zfsBE 2 zfs2BE Select environment to boot: [ 1 - 2 ]: 1 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/zfsBE Program terminated
182
EXEMPLO 511 SPARC: inicializando a partir de um ambiente de inicializao especfico ZFS (Continuao)
ok boot -Z rpool/ROOT/zfsBE
EXEMPLO 512
Em um sistema com base no SPARC, voc pode inicializar a partir do arquivo prova de falhas localizado em /platform/uname -i/failsafe da seguinte forma:
ok boot -F failsafe
Para inicializar um arquivo prova de falha a partir de um determinado conjunto de dados ZFS, utilize uma sintaxe semelhante seguinte:
ok boot -Z rpool/ROOT/zfsBE -F failsafe
Se o dispositivo identificado pelo GRUB como o dispositivo de inicializao contiver um pool de armazenamento do ZFS, o arquivo menu.lst usado para criar o menu GRUB. Em um ssietma com base no x86 com vrios BEs do ZFS, voc pode selecionar um BE no menu GRUB. Se o sistema de arquivos raiz correspondente a esta entrada do menu for um conjunto de dados ZFS, a opo seguinte adicionada:
-B $ZFS-BOOTFS
EXEMPLO 513
Quando um sistema inicializado de um sistema de arquivos ZFS, o dispositivo raiz especificado pelo parmetro de inicializao -B $ZFS-BOOTFS. Por exemplo:
183
title Solaris 10 8/11 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
EXEMPLO 514
O arquivo prova de falhas do x86 /boot/x86.miniroot-safe e pode ser inicializado pela seleo da entrada prova de falhas do Solaris no menu GRUB. Por exemplo:
title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe
Resolvendo problemas do ponto de montagem ZFS que impedem a inicializao com xito (Solaris 10 10/08)
A melhor forma de alterar o ambiente de inicializao (BE) ativo usar o comando luactivate. Se a inicializao do BE ativo falha devido uma instalao de patch incorreta ou a um erro de configurao, a nica forma de inicializar a partir de outro BE selecion-lo no momento da inicializao. Voc pode selecionar um BE alternativo inicializando-o explicitamente do PROM em um sistema baseado em SPARC ou do menu do GRUB em um sistema baseado no x86. Devido a um erro no Live Upgrade no Solaris verso 10 10/08, o ambiente de inicializao inativo pode falhar ao inicializar porque um conjunto de dados ZFS ou o conjunto de dados ZFS de uma regio no ambiente de inicializao possui um ponto de montagem invlido. O mesmo erro tambm impede que o BE seja montado se tiver um conjunto de dados /var diferente. Se um conjunto de dados ZFS de uma regio possui um ponto de montagem invlido, tal ponto de montagem pode ser corrigido realizando as etapas a seguir.
184
Inicialize o sistema a partir de um arquivo prova de falhas. Importe o pool. Por exemplo:
# zpool import rpool
O ponto de montagem do ambiente de inicializao raiz (rpool/ROOT/s10up) deve ser /. Se a inicializao estiver falhando devido a problemas com o ponto de montagem /var, procure um ponto de montagem temporrio similar do conjunto de dados /var.
4
Reinicialize o sistema. Quando a opo de inicializar um BE especfico for apresentada no prompt do OpenBoot PROM ou no menu GRUB, selecione o ambiente de inicializao cujos pontos de montagem acabam de ser corrigidos.
Como inicializar o ZFS no modo prova de falhas na pgina 186 Como inicializar o ZFS de uma mdia alternativa na pgina 186
185
Se desejar recuperar de um conjunto de raiz ou de uma captura de conjunto de raiz, consulte Recuperando o pool raiz ZFS ou instantneos do pool raiz na pgina 187.
Reinicialize o sistema.
# init 6
186
Reinicialize o sistema.
# init 6
Como substituir um disco no pool raiz ZFS na pgina 187 Como criar instantneos do pool raiz na pgina 189 How to Re-create a ZFS Root Pool and Restore Root Pool Snapshots na pgina 191 Como reverter os instantneos do pool raiz a partir da inicializao prova de falhas na pgina 192
O conjunto raiz muito pequeno e deseja substituir o disco menor por um disco maior. O disco do conjunto raiz apresenta falhas. Em um pool no redundante, se o disco estiver falhando de modo que o sistema no inicializa, ser necessrio realizar a inicializao a partir de uma mdia alternativa, como um DVD ou a rede, antes de substituir o disco do pool raiz.
Em uma configurao de conjunto raiz espelhado, possvel tentar substituir um disco sem inicializar de uma mdia alternativa. possvel substituir um disco falho ao utilizar o comando zpool replace. Ou, se possuir um disco adicional, possvel utilizar o comando zpool attach. Consulte o procedimento nesta seo para um exemplo de anexao de um disco adicional e desanexao de um disco de conjunto raiz.
187
Alguns softwares necessitam que traga um disco off-line e desconfigure-o antes de tentar a operao zpool replace para substituir um disco falho. Por exemplo:
# zpool offline rpool c1t0d0s0 # cfgadm -c unconfigure c1::dsk/c1t0d0 <Physically remove failed disk c1t0d0> <Physically insert replacement disk c1t0d0> # cfgadm -c configure c1::dsk/c1t0d0 # zpool replace rpool c1t0d0s0 # zpool online rpool c1t0d0s0 # zpool status rpool <Let disk resilver before installing the boot blocks> SPARC# installboot -F zfs /usr/platform/uname -i/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0 x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0
Com alguns hardwares, no necessrio colocar o disco on-line ou reconfigur-lo depois de inserido. necessrio identificar os nomes de caminho do dispositivo de inicializao do disco atual e do disco novo para que seja possvel testar uma inicializao de teste a partir do disco substituto e tambm uma inicializao manual a partir do disco existente, caso o disco substituto falhe. Neste exemplo no procedimento a seguir, o nome do caminho para o atual disco de pool raiz (c1t10d0s0) :
/pci@8,700000/pci@3/scsi@5/sd@a,0
Conecte fisicamente o disco de substituio (ou novo). Confirme que o novo disco possui uma legenda SMI e um segmento 0. Para obter informaes sobre como relegendar um disco reservado para o pool raiz, use o seguinte site: http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
188
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 rpool mirror-0 c1t10d0s0 c1t9d0s0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
Verifique se possvel inicializar a partir do novo disco. Por exemplo, em um sistema com base em SPARC, seria utilizada uma sintaxe semelhante seguinte:
ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
Se o sistema se inicializa a partir do novo disco, desanexe o disco antigo. Por exemplo:
# zpool detach rpool c1t10d0s0
Configure o sistema para inicializar automaticamente a partir do novo disco redefinindo o dispositivo de inicializao padro.
SPARC - Use o comando eeprom ou o comando setenv a partir do PROM de inicializao SPARC. x86 - Reconfigure a BIOS do sistema.
189
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide Validando remotamente instantneos armazenados como arquivos ou instantneos como um importante passo em uma recuperao de conjunto raiz. Com ambos os mtodos, os instantneos seriam recriados em uma base de rotina, como quando a configurao do conjunto alterada ou quando o Solaris OS atualizado. No procedimento a seguir, o sistema inicializado a partir do ambiente de inicializao BE.
1
Crie um grupo e sistema de arquivos em um sistema remoto para armazenar os instantneos. Por exemplo:
remote# zfs create rpool/snaps
Envie os instantneos do pool raiz ao sistema remoto. Por exemplo, para enviar os instantneos do pool raiz para um pool remoto como um arquivo, use sintaxe semelhante seguinte:
local# zfs send -Rv rpool@snap1 > /net/remote-system/rpool/snaps/rpool.snap1 sending from @ to rpool@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/s10zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/swap@snap1
190
Para enviar os instantneos do pool raiz para um pool remoto como instantneos, use sintaxe semelhante seguinte:
local# zfs send -Rv rpool@snap1 | ssh remote-system zfs receive -Fd -o canmount=off tank/snaps sending from @ to rpool@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/s10zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/swap@snap1
How to Re-create a ZFS Root Pool and Restore Root Pool Snapshots
Neste procedimento, suponha as condies a seguir:
O conjunto raiz ZFS no pode ser recuperado. Os instantneos do conjunto raiz ZFS esto armazenados em um sistema remoto e so compartilhados no NFS.
x86 selecione a opo para inicializar a partir do DVD ou da rede. Em seguida, saia do programa de instalao.
Monte o sistema de arquivos do instantneo remoto se voc tiver enviado os instantneos do pool raiz como um arquivo para o sistema remoto. Por exemplo:
# mount -F nfs remote-system:/rpool/snaps /mnt
Se seus servios de rede no esto configurados, poder ser necessrio especificar o endereo IP do sistema remoto .
3
Se o disco do conjunto raiz for substitudo e no contiver uma legenda de disco que possa ser utilizada pelo ZFS, ser necessrio rotular o disco novamente. Para obter mais informaes sobre como rotular um disco novamente, v ao seguinte site:
191
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
4
Restaure os instantneos do pool raiz Esta etapa pode levar algum tempo. Por exemplo:
# cat /mnt/rpool.0804 | zfs receive -Fdu rpool
O uso da opo -u significa que o arquivo restaurado no montado quando a operao do zfs receive terminar. Para restaurar os instantneos do pool raiz real que so armazenados em um pool em um sistema remoto, use sintaxe semelhante seguinte:
# rsh remote-system zfs send -Rb tank/snaps/rpool@snap1 | zfs receive -F rpool 6
SPARC:
# installboot -F zfs /usr/platform/uname -i/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
x86:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
Reinicialize o sistema.
# init 6
192
# zfs snapshot -r rpool@snap1 # zfs list -r rpool NAME USED rpool 7.84G rpool@snap1 21K rpool/ROOT 4.78G rpool/ROOT@snap1 0 rpool/ROOT/s10zfsBE 4.78G rpool/ROOT/s10zfsBE@snap1 15.6M rpool/dump 1.00G rpool/dump@snap1 16K rpool/export 99K rpool/export@snap1 18K rpool/export/home 49K rpool/export/home@snap1 18K rpool/swap 2.06G rpool/swap@snap1 0 1
REFER 109K 106K 31K 31K 4.76G 4.75G 1.00G 1.00G 32K 32K 31K 31K 16K 16K
193
194
C A P T U L O
Este captulo oferece informaes detalhadas sobre o gerenciamento de sistemas de arquivos ZFS do Oracle Solaris. Conceitos como layout de sistema de arquivos hierrquico, herana de propriedade, gerenciamento de ponto de montagem automtico e interaes de compartilhamento esto includos neste captulo. Este captulo traz as seguintes sees:
Gerenciando de sistemas de arquivos ZFS (viso geral) na pgina 195 Criando, destruindo e renomeando sistemas de arquivos ZFS na pgina 196 Introduzindo as propriedades do ZFS na pgina 199 Consultando informaes sobre o sistema de arquivos ZFS na pgina 213 Gerenciando propriedades do ZFS na pgina 215 Montando e compartilhando sistemas de arquivos ZFS na pgina 220 Compartilhando e descompartilhando sistemas de arquivos ZFS na pgina 225 Definindo cotas e reservas do ZFS na pgina 227 Atualizao de sistemas de arquivos ZFS na pgina 233
Captulo 7, Trabalhando com instantneos e clones do ZFS do Oracle Solaris. Para informaes detalhadas sobre volumes ZFS, consulte Volumes ZFS na pgina 289.
Observao O termo conjunto de dados usado neste captulo como um termo genrico para fazer referncia a um sistema de arquivos, instantneo, clone ou volume.
Criando um sistema de arquivos ZFS na pgina 196 Destruindo um sistema de arquivos ZFS na pgina 197 Renomeando um sistema de arquivos ZFS na pgina 198
O ZFS monta automaticamente o sistema de arquivos recm-criado se a criao de tal sistema tiver sido bem-sucedida. Por padro, os sistemas de arquivos so montados como /conjunto de dados, usando o caminho fornecido pelo nome do sistema de arquivos no subcomando create. Neste exemplo, o sistema de arquivos jeff recm-criado est montado em /tank/home/jeff. Para mais informaes sobre os pontos de montagem gerenciados automaticamente, consulte Gerenciando pontos de montagem do ZFS na pgina 220. Para mais informaes sobre o comando zfs create, consulte zfs(1M).
196 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Voc pode definir as propriedades do sistema de arquivos quando ele criado. No exemplo a seguir, um ponto de montagem de /export/zfs criado para o sistema de arquivos tank/home:
# zfs create -o mountpoint=/export/zfs tank/home
Para mais informaes sobre propriedades do sistema de arquivos, consulte Introduzindo as propriedades do ZFS na pgina 199.
Se o sistema de arquivos que ser destrudo est ocupado e no pode ser desmontado, o comando zfs destroy falha. Para destruir um sistema de arquivos ativo, use a opo -f. Utilize essa opo com cuidado j que ela pode desmontar, descompartilhar e destruir sistemas de arquivos ativos, provocando comportamentos inesperados no aplicativo.
# zfs destroy tank/home/matt cannot unmount tank/home/matt: Device busy # zfs destroy -f tank/home/matt
O comando zfs destroy tambm falha se um sistema de arquivos possuir descendentes. Para destruir repetidamente um sistema de arquivos e todos os seus descendentes, use a opo -r. Observe que uma destruio recursiva tambm destri instantneos, por isso utilize essa opo com cuidado.
# zfs destroy tank/ws cannot destroy tank/ws: filesystem has children use -r to destroy the following datasets: tank/ws/jeff tank/ws/bill tank/ws/mark # zfs destroy -r tank/ws
Captulo 6 Gerenciando sistemas de arquivos ZFS do Oracle Solaris 197
Se o sistema de arquivos a ser destrudo possuir dependentes indiretos, mesmo o comando de destruio recursivo descrito acima falha. Para forar a destruio de todos os dependentes, incluindo os sistemas de arquivos clonados fora da hierarquia, deve ser usada a opo -R. Use este opo com muito cuidado.
# zfs destroy -r tank/home/eric cannot destroy tank/home/eric: filesystem has dependent clones use -R to destroy the following datasets: tank/clones/eric-clone # zfs destroy -R tank/home/eric Cuidado Nenhum aviso de confirmao aparece com as opes -f, - r ou -R para o comando zfs destroy, por isso utilize estas opes com precauo.
Para mais informaes sobre instantneos e clones, consulte Captulo 7, Trabalhando com instantneos e clones do ZFS do Oracle Solaris.
Alterar o nome de um sistema de arquivos. Realoque o sistema de arquivos dentro da hierarquia ZFS. Alterar o nome de um sistema de arquivos e realoc-lo com a hierarquia ZFS.
O exemplo a seguir utiliza o subcomando rename para renomear um sistema de arquivos de eric para eric_old:
# zfs rename tank/home/eric tank/home/eric_old
O exemplo a seguir mostra como utilizar o zfs rename para realocar um sistema de arquivos:
# zfs rename tank/home/mark tank/ws/mark
Neste exemplo, o sistema de arquivos mark realocado de tank/home para tank/ws. Quando um sistema de arquivos realocado por meio de renomeao, o novo local deve estar dentro do mesmo conjunto e possuir espao em disco suficiente para conter esse novo sistema de arquivos. Se o novo local no possuir espao em disco suficiente, possivelmente por ter ultrapassado sua cota, a operao renomear falha. Para mais informaes sobre as cotas, consulte Definindo cotas e reservas do ZFS na pgina 227.
198 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
A operao renomear tenta uma sequncia de desmontagem/remontagem no sistema de arquivos e nos sistemas de arquivos descendentes. O comando renomear falha se a operao no puder desmontar um sistema de arquivos ativo. Se ocorre um problema, desmonte o sistema de arquivos a fora. Para obter informaes sobre a renomeao de instantneos, consulte Renomeando instantneos do ZFS na pgina 238.
Propriedades nativas somente leitura do ZFS na pgina 207 Propriedades nativas definveis do ZFS na pgina 209 Propriedades de usurio do ZFS na pgina 212
As propriedades esto dividas em dois tipos: propriedades nativas e propriedades definidas pelo usurio. As propriedades nativas exportam estatsticas internas ou controlam o sistema de arquivos ZFS. Alm disso, as propriedades nativas ou so definveis ou somente leitura. As propriedades de usurio no afetam o comportamento do ZFS, mas podem ser usadas para anotar conjuntos de dados de forma significativa no ambiente. Para mais informaes sobre as propriedades de usurio, consulte Propriedades de usurio do ZFS na pgina 212. A maioria das propriedades configurveis tambm so herdveis. Uma propriedade herdvel uma propriedade que, quando configurada no conjunto de dados pai, propagada para todos os seus descendentes. Todas as propriedades herdveis possuem uma origem associada que indica como a propriedade foi obtida. A origem de uma propriedade pode ter os seguintes valores: local Indique que a propriedade foi definida explicitamente no conjunto de dados utilizando o comando zfs set conforme descrito em Definindo propriedades do ZFS na pgina 215. inherited from nome-do-conjunto-de-dados Indique que a propriedade foi herdada do predecessor nomeado. default Indique que o valor de propriedade no foi herdado ou configurado localmente. Essa origem resultado de nenhum predecessor possuir a propriedade definida como origem local. A tabela seguinte identifica as propriedades nativas somente leitura e definveis dos sistema de arquivos ZFS. As propriedades nativas somente leitura so identificadas como tal. Todas as outras propriedades nativas listadas nesta tabela so definveis. Para obter informaes sobre as propriedades de usurio, consulte Propriedades de usurio do ZFS na pgina 212.
Captulo 6 Gerenciando sistemas de arquivos ZFS do Oracle Solaris 199
TABELA 61
Nome da propriedade
aclinherit
Seqncia
secure
Controla como as entradas ACL so herdadas quando os arquivos e diretrios so criados. Os valores so discard, noallow, secure e passthrough. Para uma descrio desses valores, consulte Propriedade da ACL (aclinherit) na pgina 258. Controla se o tempo de acesso dos arquivos atualizado quando eles so lidos. A desativao dessa propriedade evita o trfego de gravao de produo durante a leitura de arquivos e pode proporcionar melhoras significativas no desempenho, embora possa confundir utilitrios de correio e similares. A propriedade de somente leitura que identifica a quantidade de espao em disco disponvel no conjunto de dados e todos os seus filhos, mas no assume nenhuma outra atividade no conjunto. Como o espao em disco compartilhado dentro de um conjunto, o espao disponvel pode ser limitado por vrios fatores, inclusive tamanho fsico do conjunto, cotas, reservas ou outros conjuntos de dados dentro do conjunto. A abreviatura da propriedade avail. Para mais informaes sobre contabilidade de espao em disco, consulte Contabilidade de espao em disco do ZFS na pgina 64.
atime
Booleano
on
available
Nmero
N/D
canmount
Booleano
on
Controla se um sistema de arquivos pode ser montado com o comando zfs mount. Essa propriedade pode ser definida em qualquer sistema de arquivos e a propriedade em si no pode ser herdada. No entanto, quando essa propriedade estiver definida como off, um ponto de montagem pode ser herdado pelos sistemas de arquivos descendentes, mas o sistema de arquivos em si nunca montado. Quando a opo noauto estiver definida, um conjunto de dados pode ser montado e desmontado apenas explicitamente. O conjunto de dados no montado automaticamente ao ser criado ou importado, e tambm no montado pelo comando zfs mount- a nem desmontado pelo comando zfs unmount-a. Para obter mais informaes, consulte A propriedade canmount na pgina 210.
200
TABELA 61
(Continuao)
Nome da propriedade
Descrio
soma de verificao
Sequncia
on
Controla a soma de verificao usada para verificar a integridade dos dados. O valor padro on, que seleciona automaticamente um algoritmo apropriado, atualmente fletcher4. Os valores so on, off, fletcher2 , fletcher4 e sha256. O valor de off desativa a verificao da integridade dos dados do usurio. No se recomenda o valor off. Ativa ou desativa a compactao de um conjunto de dados. Os valores so on, off, lzjb, gzip e gzip-N. Nesse momento, definir esta propriedade como lzjb, gzip ou gzip- N tem o mesmo efeito que defini-la como on. A ativao da compactao em um sistema de arquivos com dados existentes compacta somente os novos dados. Os dados existentes permanecem descompactados. A abreviatura da propriedade compress.
compression
Sequncia
off
compressratio
Nmero
N/D
Propriedade de somente leitura que identifica a taxa de compactao atingida para um conjunto de dados, expressa como um multiplicador. A compactao pode ser ativada pelo zfs set compression=on conjunto de dados comando. O valor calculado a partir do tamanho lgico de todos os arquivos e da quantidade de dados fsicos referenciados. Isso inclui economias explcitas atravs do uso da propriedade compression.
copies
Nmero
Define o nmero de cpias de dados do usurio por sistema de arquivos. Os valores disponveis so 1, 2 ou 3. Essas cpias so adicionais a qualquer redundncia de nvel de pool. O espao em disco utilizado por vrias cpias de dados do usurio cobrado at o arquivo, conjunto de dados e contagens correspondentes contra cotas e reservas. Alm disso, a propriedade used atualizada quando vrias cpias so ativadas. Leve em considerao definir essa propriedade quando o sistema de arquivos for criado porque alter-la em um sistema de arquivos existente afeta somente os dados recm-gravados. A propriedade de somente leitura identifica a data e a hora em que um conjunto de dados foi criado. Controle se os arquivos do dispositivo no sistema de arquivos podem ser abertos.
creation
Seqncia Booleano
N/D on
devices
201
TABELA 61
(Continuao)
Nome da propriedade
Descrio
exec
Booleano
on
Controle se os programas dentro de um sistema de arquivos possuem permisso para serem executados. Tambm, quando definido como off, as chamadas de mmap(2) com PROT_EXEC no so permitidas. Propriedade de somente leitura que indica se um sistema de arquivos, clone ou instantneo esto atualmente montados. Esta propriedade no se aplica aos volumes. O valor pode ser sim ou no. Controla o ponto de montagem usado neste sistema de arquivos. Quando a propriedade mountpoint alterada para um sistema de arquivos, o sistema de arquivos e os descendentes que herdam o ponto de montagem so desmontados. Se o novo valor for legacy, ento eles permanecem desmontados. Do contrrio, sero remontados automaticamente no novo local se a propriedade anterior era legacy ou none ou se foram montados antes de a propriedade ter sido alterada. Alm disso, quaisquer sistemas de arquivos compartilhados sero descompartilhados e compartilhados no novo local. Para obter mais informaes sobre o uso desta propriedade, consulte Gerenciando pontos de montagem do ZFS na pgina 220.
mounted
Booleano
N/D
mountpoint
Sequncia
N/D
primarycache
Sequncia
tudo
Controle o que armazenado no cache primrio (ARC). Os valores possveis so all, none e metadata. Se definido como all, os dados do usurio e os metadados sero colocado no cache. Se definir como nenhum, nem os dados do usurio, nem os metadados sero armazenados em cache. Se configurar para metadados, somente os metadados sero armazenados. Propriedade somente leitura para volumes ou sistemas de arquivos clonados que identifica o instantneo a partir do qual o clone foi criado. A origem no pode ser destruda (mesmo com as opes -r ou -f) enquanto o clone existir. Os sistemas de arquivos no clonados apresentam uma origem de nenhum.
origin
Seqncia
N/D
202
TABELA 61
(Continuao)
Nome da propriedade
Descrio
quota
Limita a quantidade de espao em disco que um conjunto de dados e seus descendentes podem utilizar. Essa propriedade impe um limite de disco rgido na quantidade do espao em disco utilizado, incluindo todo o espao utilizado pelos descendentes, inclusive os sistemas de arquivos e os instantneos. A definio de uma cota em um descendente de um sistema de arquivos que j possui uma cota, no substitui a cota do antepassado, mas sim impe um limite adicional. As cotas no podem ser definidas em volumes, j que a propriedade volsize age como uma cota implcita. Para mais informaes sobre a definio de cotas, consulte Definindo cotas em sistemas de arquivos ZFS na pgina 228.
readonly
Booleano
off
Controla se um conjunto de dados pode ser modificado. Ao definir como on, nenhuma modificao pode ser feita. A abreviatura da propriedade rdonly.
recordsize
Nmero
128K
Especifica um tamanho do bloco sugerido para os arquivos no sistema de arquivos. A abreviatura da propriedade rcsize. Para obter uma descrio detalhada, consulte A propriedade recordsize na pgina 211.
referenced
Nmero
N/D
Propriedade de somente leitura que identifica a quantidade de dados acessveis por um conjunto de dados que pode, ou no, ser compartilhado com outros conjuntos de dados no conjunto. Quando um instantneo ou um clone criado, inicialmente faz referncia a mesma quantidade de espao em disco do sistema de arquivos ou do instantneo a partir do qual foi criado, pois seus contedos so idnticos. A abreviatura da propriedade refer.
refquota
Define a quantidade de espao em disco que um conjunto de dados pode consumir. Essa propriedade refora um limite rgido na quantidade de espao usado. Esse limite de disco rgido no inclui o espao em disco utilizado pelos descendentes, como instantneos e clones.
203
TABELA 61
(Continuao)
Nome da propriedade
Descrio
refreservation
Define a quantidade mnima de espao em disco que garantido para um conjunto de dados, no incluindo seus descendentes, como instantneos e clones. Quando a quantidade de espao em disco utilizada est abaixo desse valor, o conjunto de dados tratado como se estivesse ocupando a quantidade de espao especificada por refreservation. As reservas de refreservation so calculadas no espao em disco utilizado do conjunto de dados pai e contadas em relao s cotas e reservas do conjunto de dados pai. Se refreservation estiver configurado, um instantneo permitido somente se houver disponvel espao livre suficiente no conjunto fora da reserva para alojar o nmero atual de bytes referenciados no conjunto de dados. A abreviatura da propriedade refreserv.
reservation
Configure a quantidade mnima de espao em disco garantida para um conjunto de dados e seus descendentes. Quando a quantidade de espao em disco utilizada est abaixo desse valor, o conjunto de dados tratado como se estivesse utilizando a quantidade de espao especificada por sua reserva. As reservas so calculadas no espao em disco do conjuntos de dados pai utilizado e contadas em relao s cotas e reservas do conjunto de dados pai. A abreviatura da propriedade reserv. Para mais informaes, consulte Definindo reservas nos sistemas de arquivos ZFS na pgina 231.
secondarycache
Sequncia
tudo
Controla o que armazenado no cache secundrio (L2ARC). Os valores possveis so all, none e metadata. Se definido como all, os dados do usurio e os metadados sero colocado no cache. Se definir como nenhum, nem os dados do usurio, nem os metadados sero armazenados em cache. Se configurar para metadata, somente metadados so armazenados em cache. Controla se o bit setuid respeitado nos sistemas de arquivos.
setuid
Booleano
on
204
TABELA 61
(Continuao)
Nome da propriedade
Descrio
shareiscsi
Sequncia
off
Controla se um volume ZFS est compartilhado como um destino iSCSI. Os valores das propriedades so on ,off e type=dysk. Se voc desejar configurar o shareiscsi=on para um sistema de arquivos, ento todos os volumes ZFS dentro do sistema de arquivos sero compartilhados por padro. No entanto, ao configurar essas propriedades em um sistema de arquivos no possuir nenhum efeito direto. Controla se o sistema de arquivos est disponvel no NFS e quais opes so utilizadas. Se for definido como on, o comando zfs share chamado sem opes. Do contrrio, o comando zfs share chamado com opes equivalentes ao contedo desta propriedade. Se for definida como off, o sistema de arquivos gerenciado com os comandos share e unshare de legado e com o arquivo dfstab. Controla se um conjunto de dados ZFS est publicado como um compartilhamento NFS. Voc tambm pode publicar e cancelar a publicao de um compartilhamento NFS de um conjunto de dados ZFS usando os comandos zfs share e zfs unshare. Ambos os mtodos de publicao de um compartilhamento NFS exigem que as propriedades de compartilhamento NFS j estejam definidas. Para obter informaes sobre a configurao de propriedades de compartilhamento do NFS, consulte zfs set share command Quando a propriedade sharenfs alterada, o compartilhamento do sistema de arquivos e qualquer filho que herde a propriedade so republicados com as novas opes que foram definidas com o comando zfs set share apenas se a propriedade estava desativada anteriormente ou se os compartilhamentos foram publicados antes da alterao da propriedade. Se o novo valor de propriedade for off, oas publicaes de compartilhamentos do sistema de arquivos sero canceladas. Para mais informaes sobre compartilhamento de sistemas de arquivos ZFS, consulte Compartilhando e descompartilhando sistemas de arquivos ZFS na pgina 225.
sharenfs
Seqncia
off
205
TABELA 61
(Continuao)
Nome da propriedade
Descrio
snapdir
Seqncia
hidden
Controla se o diretrio .zfs est oculto ou visvel na raiz do sistema de arquivos. Para mais informaes sobre o uso de instantneos, consulte Viso geral dos instantneos do ZFS na pgina 235. Propriedade somente leitura que identifica o tipo de conjunto de dados como filesystem (sistema de arquivos ou clone), volume ou snapshot. Propriedade de somente leitura que identifica a quantidade de espao em disco utilizada pelo conjunto de dados e todos os seus descendentes. Para uma descrio detalhada, consulte A propriedade used na pgina 208.
type
Seqncia
N/D
used
Nmero
N/D
usedbychildren
Nmero
off
A propriedade de somente leitura identifica a quantidade de espao em disco utilizada pelos filhos desse conjunto de dados, que seria liberado se os filhos do conjunto de dados fossem destrudos. A abreviatura da propriedade usedchild. A propriedade de somente leitura identifica a quantidade de espao em disco utilizada por esse prprio conjunto de dados, que seria liberado se conjunto de dados fosse destrudo, depois de destruir quaisquer instantneos e remover quaisquer reservas refreservation. A abreviatura da propriedade usedds. A propriedade de somente leitura identifica a quantidade de espao em disco que utilizada por uma refreservation definida em um conjunto de dados, que seria liberado se a refreservation fosse removida. A abreviatura da propriedade usedrefreserv. A propriedade de somente leitura identifica a quantidade de espao em disco que utilizado por instantneos de um conjunto de dados. Em particular, essa a quantidade de espao em disco que seria liberado se todos os instantneos dos conjunto de dados fossem destrudos. Observe que esse valor no simplesmente a soma das propriedades utilizadas dos instantneos, porque o espao pode ser compartilhado por instantneos mltiplos. A abreviatura da propriedade usedsnap.
usedbydataset
Nmero
off
usedbyrefreservationNmero
off
usedbysnapshots
Nmero
off
206
TABELA 61
(Continuao)
Nome da propriedade
Descrio
version
Nmero
N/D
Identifique a verso em disco do sistema de arquivos, que independente da verso do conjunto. Essa propriedade pode somente ser configurada para uma verso posterior que esteja disponvel a partir da verso do software suportado. Para mais informao, consulte o comando zfs upgrade. Para volumes, especifica o tamanho lgico do volume. Para obter uma descrio detalhada, consulte A propriedade volsize na pgina 211.
volsize
Nmero
N/D
volblocksize
Nmero
8 KB
Para volumes, especifica o tamanho do bloco do volume. O tamanho do bloco no pode ser alterado depois que o volume foi gravado, portanto, defina o tamanho do bloco no momento da criao do volume. O tamanho padro do bloco para volumes de 8 KB. Qualquer potncia de 2 a partir de 512 bytes at 128 KB vlida. A abreviatura da propriedade volblock.
zoned
Booleano
N/D
Indica se um conjunto de dados foi adicionado regio no global. Se esta propriedade estiver definida, o ponto de montagem no respeitado na regio global e o ZFS no pode montar tal sistema de arquivos quando solicitado. Quando uma regio instalada pela primeira vez, esta propriedade definida para todos os sistemas de arquivos adicionados. Para obter mais informaes sobre o uso do ZFS com regies instaladas, consulte Usando ZFS em um sistema Solaris com regies instaladas na pgina 292.
xattr
Booleano
on
Indica se os atributos estendidos esto ativados (on) ou desativados (off) para esse sistema de arquivos.
available compressratio
207
creation mounted origin referenced type used Para obter informaes detalhadas, consulte A propriedade used na pgina 208. usedbychildren usedbydataset usedbyrefreservation usedbysnapshots
Para mais informaes sobre a contabilidade de espao em disco, incluindo as propriedades utilizadas, referenciadas e disponveis, consulte Contabilidade de espao em disco do ZFS na pgina 64.
A propriedade used
A propriedade utilizada uma propriedade de somente leitura que identifica a quantidade de espao em disco utilizada pelo conjunto de dados e todos seus descendentes. Este valor verificado de acordo com a cota e a reserva do conjunto de dados. O espao em disco utilizado no inclui a reserva do conjunto de dados, mas leva em considerao a reserva dos conjuntos de dados descendentes. A quantidade de espao em disco que um conjunto de dados utiliza a partir do pai, assim como a quantidade de espao em disco que liberada quando o conjunto de dados destrudo recursivamente, a maior de seu espao utilizado e de sua reserva. Quando os instantneos so criados, seu espao em disco inicialmente compartilhado entre o instantneo e o sistema de arquivos e possivelmente com os instantneos anteriores. Conforme o sistema de arquivos alterado, o espao previamente compartilhado torna-se nico para o instantneo e includo no espao do instantneo utilizado. O espao em disco utilizado por um instantneo representa seus dados nicos. Adicionalmente, a excluso de instantneos pode aumentar a quantidade de espao em disco nico para (e ser utilizada por) outros instantneos. Para obter mais informaes sobre instantneos e problemas de espao, consulte Comportamento por espao excedido na pgina 64. A quantidade do espao em disco utilizado, disponvel e referenciado no inclui alteraes pendentes. As alteraes pendentes so consideradas em geral depois de alguns segundos. A realizao de uma alterao no disco utilizando a funo fsync(3c) ou O_SYNC no garante necessariamente que as informaes sobre o uso de espao em disco sejam atualizadas imediatamente.
208 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
As informaes das propriedades usedbychildren, usedbydataset , usedbyrefreservation e usedbysnapshots podem ser exibidas com o comando zfs list - o space . Essas propriedades identificam a propriedade utilizada no espao em disco que consumido por descendentes. Para obter mais informaes, consulte a Tabela 61.
aclinherit Para uma descrio mais detalhada, consulte Propriedade da ACL (aclinherit) na pgina 258.
aclmode Para uma descrio mais detalhada, consulte Propriedade da ACL (aclinherit) na pgina 258.
atime canmount soma de verificao compression copies devices exec mountpoint primarycache quota readonly recordsize
209
Para obter uma descrio detalhada, consulte A propriedade recordsize na pgina 211.
refquota refreservation reservation secondarycache shareiscsi sharenfs setuid snapdir version volsize Para obter uma descrio detalhada, consulte A propriedade volsize na pgina 211. volblocksize zoned xattr
A propriedade canmount
Se a propriedade canmount for definida como off, o sistema de arquivos no pode ser montando utilizando os comandos zfs mount ou zfs mount -a. Configurar essa propriedade para off semelhante a configurar a propriedade mountpoint como nenhum, exceto que o conjunto de dados ainda apresenta uma propriedade mountpoint normal que pode ser herdada. Por exemplo, possvel definir essa propriedade como off, estabelecer propriedades herdveis para os sistemas de arquivos descendentes, mas o sistema de arquivos pai em si nunca montado nem pode ser acessado pelos usurios. Nesse caso, o sistema de arquivos pai serve como um recipiente, de modo que possvel definir propriedades no continer, mas o continer em si nunca est acessvel. No exemplo a seguir, userpool criado e sua propriedade canmount definida como desativadaoff. Os pontos de montagem dos sistemas de arquivos descendentes de usurio so definidos como um ponto de montagem comum, /export/home. As propriedades que esto definidas no sistema de arquivos pai so herdadas pelos sistemas de arquivos descendentes, mas o sistema de arquivos pai em si nunca montado.
# zpool create userpool mirror c0t5d0 c1t6d0 # zfs set canmount=off userpool # zfs set mountpoint=/export/home userpool # zfs set compression=on userpool # zfs create userpool/user1 # zfs create userpool/user2 # zfs mount userpool/user1 /export/home/user1 userpool/user2 /export/home/user2
210 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Se a propriedade canmount for definida como noauto, significa que o conjunto de dados pode ser montado apenas explicitamente, no automaticamente. Essa configurao utilizada pelo software de atualizao do Oracle Solaris de modo que somente os conjuntos de dados pertencentes ao ambiente de inicializao ativo so montados no momento da inicializao.
A propriedade recordsize
A propriedade recordsize especifica um tamanho de bloco sugerido para os arquivos no sistema de arquivos. Esta propriedade designada unicamente para uso com volumes de trabalho de banco de dados que acessam arquivos em registros de tamanho fixo. O ZFS ajusta automaticamente os tamanhos do bloco de acordo com os algoritmos internos otimizados para padres de acesso tpicos. Para bancos de dados que criam arquivos muito grandes, mas que acessam os arquivos em pequenos blocos aleatrios, esses algoritmos podem ser ideais. Especificar um valor recordsize maior ou igual ao tamanho do registro do banco de dados pode resultar em melhoras significativas no desempenho. A utilizao dessa propriedade para sistemas de arquivos com fins gerais totalmente desaconselhado e pode afetar negativamente o desempenho. O tamanho especificado deve ser uma potncia de 2 maior ou igual a 512 bytes e menor ou igual a 128 KB. Alterar o valor recordsize do sistema de arquivos afeta somente os arquivos criados posteriormente. Os arquivos existentes no so afetados. A abreviatura da propriedade rcsize.
A propriedade volsize
A propriedade volsize especifica o tamanho lgico do volume. Por padro, a criao de um volume estabelece uma reserva para a mesma quantidade. Quaisquer alteraes do volsize se refletem em uma alterao equivalente na reserva. Estas verificaes so usadas para evitar comportamentos inesperados para os usurios. Um volume que contm menos espao do que ele exige pode resultar em um comportamento indefinido ou corrupo de dados, dependendo de como o volume usado. Esses efeitos tambm podem ocorrer quando o tamanho do volume alterado enquanto ele utilizado, particularmente quando o espao diminudo. Tenha extremo cuidado ao ajustar o tamanho do volume. Embora no seja recomendvel, possvel criar um volume esparso especificando o sinalizador -s para zfs create -V ou alterando a reserva depois que o volume for criado. Um volume esparso um volume em que a reserva no igual ao tamanho do volume. Em um volume esparso, as alteraes para volsize no se refletem na reserva. Para obter mais informaes sobre o uso de volumes, consulte Volumes ZFS na pgina 289.
211
Eles precisam conter dois pontos (':') para distingui-los das propriedades nativas. Eles precisam conter letras minsculas, nmeros ou caracteres de pontuao: ':', '+','.', '_'. O comprimento mximo de uma propriedade de usurio de 256 caracteres.
A conveno esperada que o nome da propriedade esteja dividido nos dois componentes seguintes, mas que este espao de nome no seja imposto pelo ZFS:
module:property
Ao fazer utilizao programtica das propriedades do usurio, utilize um nome de domnio DNS reverso para o componente mdulo dos nomes da propriedade para diminuir a possibilidade de que dois pacotes desenvolvidos independentemente utilizem o mesmo nome de propriedade para fins diferentes. Os nomes de propriedade que comeam com com.sun. esto reservados para utilizao da Oracle Corporation. O valor da propriedade do usurio deve estar de acordo com as convenes a seguir:
Eles devem consistir de sequncias arbitrrias que so sempre herdadas e nunca validadas. O comprimento mximo do valor da propriedade de usurio de 1024 caracteres.
Por exemplo:
# zfs set dept:users=finance userpool/user1 # zfs set dept:users=general userpool/user2 # zfs set dept:users=itops userpool/user3
Todos os comandos que operam em propriedades, tais como zfs list, zfs get, zfs set, etc., podem ser usados para manipular propriedades nativas e de usurio. Por exemplo:
zfs get -r dept:users userpool NAME PROPERTY VALUE userpool dept:users all userpool/user1 dept:users finance userpool/user2 dept:users general userpool/user3 dept:users itops SOURCE local local local local
Para limpar uma propriedade de usurio, use o comando zfs inherit. Por exemplo:
# zfs inherit -r dept:users userpool
212 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Se a propriedade no estiver definida em nenhum conjunto de dados pai, ela totalmente removida.
Tambm possvel usar este comando para exibir conjuntos de dados especficos proporcionando o nome do banco de dados na linha de comando. Adicionalmente, use a opo -r para exibir repetidamente todos os descendentes de tal conjunto de dados. Por exemplo:
# zfs list -t all -r users/home/mark NAME USED AVAIL users/home/mark 1.00G 64.9G users/home/mark@yesterday 0 users/home/mark@today 0 REFER 1.00G 1.00G 1.00G MOUNTPOINT /users/home/mark -
possvel utilizar o comando zfs list com o ponto de montagem de um sistema de arquivos. Por exemplo:
# zfs list /user/home/mark NAME USED AVAIL REFER MOUNTPOINT users/home/mark 1.00G 64.9G 1.00G /users/home/mark
O exemplo a seguir ilustra como exibir informaes bsicas sobre tank/home/gina e todos os seus conjuntos de dados descendentes:
# zfs list -r users/home/gina NAME USED AVAIL REFER MOUNTPOINT
Captulo 6 Gerenciando sistemas de arquivos ZFS do Oracle Solaris 213
62.9G 32K /users/home/gina 62.9G 33K /users/home/gina/projects 62.9G 1.00G /users/home/gina/projects/fs1 62.9G 1.00G /users/home/gina/projects/fs2
Para obter informaes adiiconais sobre o comando zfs list , consulte zfs(1M).
A opo -t pode ser usada para especificar os tipos de conjuntos de dados a serem exibidos. Os tipos vlidos esto descritos na tabela abaixo.
TABELA 62 Tipo
As opes -t utilizam uma lista separada por vrgulas dos tipos de conjuntos de dados a serem exibidos. O exemplo abaixo usa simultaneamente as opes -t e - o para exibir o nome e a propriedade used em todos os sistemas de arquivos:
214 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
# zfs list -r -t filesystem -o name,used users/home NAME USED users/home 4.00G users/home/cindy 548K users/home/gina 2.00G users/home/gina/projects 2.00G users/home/gina/projects/fs1 1.00G users/home/gina/projects/fs2 1.00G users/home/mark 1.00G users/home/neil 1.00G
A opo -H pode ser usada para omitir o cabealho zfs list da sada gerada. Com a opo -H, todo espao em branco substitudo pelo caractere Tab. Esta opo pode ser til quando uma sada analisvel necessria, por exemplo, ao realizar script. O exemplo abaixo ilustra a sada gerada do uso do comando zfs list com a opo -H:
# zfs list -r -H -o name users/home users/home users/home/cindy users/home/gina users/home/gina/projects users/home/gina/projects/fs1 users/home/gina/projects/fs2 users/home/mark users/home/neil
Definindo propriedades do ZFS na pgina 215 Herdando propriedades do ZFS na pgina 216 Consultando propriedades do ZFS na pgina 217
Alm disso, qualquer propriedade do sistema de arquivos pode ser definida quando o sistema de arquivos criado. Por exemplo:
# zfs create -o atime=off tank/home
possvel especificar valores de propriedades numrica utilizando os sufixos fceis de entender (em tamanhos crescentes): BKMGTPEZ. Todos estes sufixos podem ser seguidos de b opcional, indicando bytes, com exceo do sufixo B, que j indica bytes. As quatro chamadas a seguir de zfs set so expresses numricas equivalentes que configuram a propriedade quota para ser definida com o valor de 20 GB no sistema de arquivos users/home/mark:
# # # # zfs zfs zfs zfs set set set set quota=20G users/home/mark quota=20g users/home/mark quota=20GB users/home/mark quota=20gb users/home/mark
Os valores de propriedades no numricas fazem a diferenciao entre maisculas e minsculas e devem ser em minsculas, com exceo de mountpoint e sharenfs. Os valores destas propriedades podem apresentar maisculas e minsculas misturadas. Para obter mais informaes sobre o comando zfs set, consulte zfs(1M).
O subcomando inherit aplicado repetidamente quando a opo -r est especificada. No exemplo abaixo, o comando faz com que o valor da propriedade compression seja herdada por tank/home e pelos descendentes que possa ter:
# zfs inherit -r compression tank/home Observao Tenha em mente que o uso da opo -r limpa a definio da propriedade atual de
todos os conjuntos de dados descendentes. Para mais informaes sobre o comando zfs inherit, consulte zfs(1M).
A quarta coluna, SOURCE, indica a origem do valor da propriedade. A tabela a seguir define os possveis valores de origem.
TABELA 63
Valor de origem
default
Esse valor de propriedade nunca foi definido explicitamente para esse conjunto de dados ou para qualquer um dos seus predecessores. O valor padro desta propriedade est sendo usado. Esse valor de propriedade herdado a partir do conjunto de dados pai especificado em dataset-name. Este valor de propriedade foi explicitamente definido para este conjunto de dados usando zfs set.
217
TABELA 63
(Continuao)
Valor de origem
temporary
Esse valor de propriedade foi definido utilizando a opo zfs mount -o e vlido somente durante a montagem. Para obter mais informaes sobre as propriedades do ponto de montagem, consulte Usando propriedades de montagem temporrias na pgina 224. Essa propriedade somente leitura. Seu valor gerado pelo ZFS.
- (none)
possvel utilizar a palavra-chave especial todos para recuperar todas os valores de propriedade do conjunto de dados. Os exemplos a seguir utilizam a palavra-chave todos:
# zfs get NAME tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home tank/home
218
all tank/home PROPERTY type creation used available referenced compressratio mounted quota reservation recordsize mountpoint sharenfs checksum compression atime devices exec setuid readonly zoned snapdir aclinherit canmount shareiscsi xattr copies version utf8only normalization casesensitivity vscan nbmand sharesmb refquota refreservation primarycache secondarycache usedbysnapshots usedbydataset usedbychildren usedbyrefreservation
VALUE SOURCE filesystem Wed Jun 22 15:47 2011 31K 33.2G 31K 1.00x yes none default none default 128K default /tank/home default off default on default off default on default on default on default on default off default off default hidden default restricted default on default off default on default 1 default 5 off none sensitive off default off default off default none default none default all default all default 0 31K 0 0 -
latency standard on
e vscan no so totalmente operacionais na verso 10 do Oracle Solaris porque o servio Oracle Solaris SMB no possui suporte na verso 10 do Oracle Solaris. A opo -s de zfs get permite especificar, por tipo de origem, o tipo de propriedades a exibir. Esta opo usa uma lista separada por vrgulas indicando os tipos de origem desejados. Somente as propriedades com o tipo de origem especificado so exibidas. Os tipos de origem vlidos so local, default, inherited, temporary e none. O exemplo a seguir ilustra todas as propriedades definidas localmente em tank/ws.
# zfs get -s local all tank/ws NAME PROPERTY VALUE tank/ws compression on SOURCE local
Todas as opes acima podem ser combinadas com a opo -r para exibir repetidamente as propriedades especificadas em todos os filhos do conjunto de dados especificado. No exemplo a seguir, todas as propriedades temporrias de todos os conjuntos de dados dentro de tank/home so exibidas repetidamente:
# zfs get -r -s temporary all tank/home NAME PROPERTY VALUE tank/home atime off tank/home/jeff atime off tank/home/mark quota 20G SOURCE temporary temporary temporary
possvel consultar os valores de propriedade utilizando o comando zfs get sem especificar um sistema de arquivos destino, o que significa que o comando opera em todos os conjuntos ou sistemas de arquivos. Por exemplo:
# zfs get -s local all tank/home atime tank/home/jeff atime tank/home/mark quota off off 20G local local local
Para obter mais informaes sobre o comando zfs get, consulte zfs(1M).
O nome literal pode ser utilizado com uma lista de propriedades separadas por vrgula, como definido na seo Introduzindo as propriedades do ZFS na pgina 199.
219
Uma lista de campos literais separados por vrgula, nome, valor, propriedades e origem, a ser retirada seguida por um espao e um argumento, que uma lista de propriedades separadas por vrgula.
O exemplo a seguir ilustra como recuperar um nico valor utilizando as opes -H e -o de zfs get:
# zfs get -H -o value compression tank/home on
A opo -p relata valores numricos como seus valores exatos. Por exemplo, 1 MB seria relatado como 1000000. Esta opo pode ser usada da seguinte forma:
# zfs get -H -o value -p used tank/home 182983742
possvel utilizar a opo -r, juntamente com qualquer uma das opes anteriores, para recuperar recursivamente os valores solicitados para todos os descendentes. O exemplo a seguir utiliza as opes -H, -o e - r para recuperar o nome do conjunto de dados e o valor da propriedade utilizada para export/home e seus descendentes, ao mesmo tempo em que omite a sada de cabealho:
# zfs get -H -o name,value -r used export/home
Gerenciando pontos de montagem do ZFS na pgina 220 Montando sistemas de arquivos ZFS na pgina 222 Usando propriedades de montagem temporrias na pgina 224 Desmontando sistemas de arquivos na pgina 224 Compartilhando e descompartilhando sistemas de arquivos ZFS na pgina 225
Todos os sistemas de arquivos ZFS so montados pelo ZFS no momento da inicializao utilizando o servio svc://system/filesystem/local do Service Management Facility's (SMF). Os sistemas de arquivos so montados em /path, onde path o nome do sistema de arquivos. possvel ignorar o ponto de montagem padro utilizando o comando zfs set para configurar a propriedade mountpoint para um caminho especfico. O ZFS cria automaticamente o ponto de montagem especificado, se necessrio, e monta automaticamente o sistema de arquivos associado. Os sistemas de arquivos ZFS so montados automaticamente no tempo de inicializao sem exigir a edio do arquivo /etc/vfstab. A propriedade mountpoint herdada. Por exemplo, se pool/home possui a propriedade mountpoint definida como /export/stuff, ento pool/home/user herda /export/stuff/user para seu valor de propriedade mountpoint. Para prevenir que um sistema de arquivos seja montado, configure a propriedade ponto de montagem para nenhum. Alm disso, a propriedade canmount pode ser utilizada para controlar se o sistema de arquivos pode ser montado. Para obter mais informaes sobre a propriedade canmount, consulte A propriedade canmount na pgina 210. Sistemas de arquivos tambm podem ser explicitamente gerenciados por interfaces de montagem de legado utilizando zfs set para configurar a propriedade ponto de montagem como legado. Fazer isso previne o ZFS da montagem automtica e de gerenciar um sistema de arquivos. As ferramentas de legado, que incluem os comandos mount e umount, e o arquivo /etc/vfstab devem ser usados. Para obter mais informaes sobre montagem de legado, consulte Pontos de montagem de legado na pgina 222.
Ao alterar a propriedade ponto de montagem de legado ou nenhum para um caminho especfico, o ZFS monta automaticamente o sistema de arquivos. Se o ZFS est gerenciando um sistema de arquivos mas est atualmente desmontado e a propriedade ponto de montagem est alterada, o sistema de arquivos permanece desmontado.
Todo conjunto de dados cuja propriedade mountpoint no for legacy gerenciado pelo ZFS. No exemplo a seguir, o conjunto de dados criado e seu ponto de montagem automaticamente gerenciado pelo ZFS:
# zfs create pool/filesystem # zfs get mountpoint pool/filesystem NAME PROPERTY VALUE pool/filesystem mountpoint /pool/filesystem # zfs get mounted pool/filesystem NAME PROPERTY VALUE pool/filesystem mounted yes
Captulo 6 Gerenciando sistemas de arquivos ZFS do Oracle Solaris
Tambm possvel definir explicitamente a propriedade mountpoint conforme ilustrado no exemplo abaixo:
# zfs set mountpoint=/mnt pool/filesystem # zfs get mountpoint pool/filesystem NAME PROPERTY VALUE pool/filesystem mountpoint /mnt # zfs get mounted pool/filesystem NAME PROPERTY VALUE pool/filesystem mounted yes
Quando a propriedade mountpoint alterada, o sistema de arquivos desmontado automaticamente do ponto de montagem antigo e montado novamente no novo ponto de montagem. Os diretrios de ponto de montagem so criados conforme necessrio. Se o ZFS incapaz de desmontar um sistema arquivos devido ao fato de estar ativo, um erro relatado e uma desmontagem manual forada necessria.
Para montar automaticamente um sistema de arquivos de legado no momento da inicializao, adicione um entrada ao arquivo /etc/vfstab. O exemplo a seguir mostra qual entrada no arquivo /etc/vfstab poderia se parecer:
#device #to mount # device to fsck /mnt mount point zfs FS type fsck pass mount mount at boot options yes -
tank/home/eric -
As entradas device to fsck e fsck pass so configuradas para - porque o comando fsck no aplicvel aos sistemas de arquivos ZFS. Para mais informao sobre a integridade de dados ZFS, consulte Semnticas transacionais na pgina 48.
O comando zfs mount sem argumentos mostra todos os sistemas de arquivos montados atualmente que so gerenciados pelo ZFS. Os pontos de montagem de legado gerenciados no so exibidos. Por exemplo:
# zfs mount | grep tank/home zfs mount | grep tank/home tank/home tank/home/jeff
/tank/home /tank/home/jeff
A opo -a pode ser usada para montar todos os sistemas de arquivos ZFS gerenciados. Os sistemas de arquivos gerenciados de legado no so montados. Por exemplo:
# zfs mount -a
Por padro, o ZFS no permite montagem em cima de um diretrio no vazio. Por exemplo:
# zfs mount tank/home/lori cannot mount tank/home/lori: filesystem already mounted
Pontos de montagem de legado devem ser gerenciados atravs de ferramentas de legado. Uma tentativa de usar ferramentas do ZFS resulta em erro. Por exemplo:
# zfs mount tank/home/bill cannot mount tank/home/bill: legacy mountpoint use mount(1M) to mount this filesystem # mount -F zfs tank/home/billm
Quando um sistema de arquivos montado, ele usa um conjunto de opes de montagem com base nos valores de propriedade associados ao conjunto de dados. A correlao entre propriedades e opes de montagem a seguinte:
TABELA 64 Propriedade
Para alterar temporariamente um valor de propriedade no sistema de arquivos que esteja atualmente montado, utilize a opo remontar especial. No exemplo abaixo, a propriedade atime temporariamente alterada para off para um sistema de arquivos atualmente montado:
# zfs mount -o remount,noatime users/home/neil NAME PROPERTY VALUE SOURCE users/home/neil atime off temporary # zfs get atime users/home/perrin
Para obter mais informaes sobre o comando zfs mount, consulte zfs(1M).
O comando unmount falha se o sistema de arquivos est ocupado. Para desmontar a fora um sistema de arquivos, possvel utilizar a opo -f. Seja cauteloso ao desmontar a fora um sistema de arquivos se os contedos estiverem ativamente sendo utilizados. Pode resultar em um comportamento imprevisvel do aplicativo.
224 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
# zfs unmount tank/home/eric cannot unmount /tank/home/eric: Device busy # zfs unmount -f tank/home/eric
Para proporcionar compatibilidade com verses anteriores, o comando umount de legado pode ser utilizado para desmontar sistemas de arquivos ZFS. Por exemplo:
# umount /tank/home/bob
Para obter mais informaes sobre o comando zfs unmount, consulte zfs(1M).
A propriedade sharenfs herdada, e os sistemas de arquivos so automaticamente compartilhados na criao se suas propriedades herdadas no forem off. Por exemplo:
# # # # zfs zfs zfs zfs set sharenfs=on tank/home create tank/home/bill create tank/home/mark set sharenfs=ro tank/home/bob
tank/home/bill e tank/home/mark so inicialmente compartilhados como gravveis porque herdam a propriedade sharenfs de tank/home. Depois que a propriedade configurada como ro(somente leitura), tank/home/mark compartilhado como somente leitura independente da propriedade sharenfsque configurada como tank/home.
225
Este comando descompartilha o sistema de arquivos tank/home/mark. Para descompartilhar todos os sistemas de arquivos ZFS no sistema, necessrio usar a opo - a.
# zfs unshare -a
Voc tambm pode compartilhar todos os sistemas de arquivos ZFS no sistema usando a opo - a.
# zfs share -a
226
As propriedades cota e reserva so convenientes para gerenciar o espao em disco utilizado pelo conjunto de dados e seus descendentes. As propriedades refquota e refreservation so apropriadas para gerenciar o espao em disco consumido pelo conjunto de dados. Configurando as propriedades refquota ou refreservation superiores s propriedades cota ou reserva no possuem efeito. Se configurar as propriedades quota ou refquota, as operaes que tentam exceder o valor falham. possvel exceder uma quota que maior que refquota. Por exemplo, se alguns blocos de instantneos so modificados, possvel exceder a quota antes de exceder refquota. As cotas do usurio ou grupo fornecem um meio mais fcil de gerenciar o espao em disco com muitas contas de usurio, como em um ambiente universitrio.
Para obter informaes sobre a definio de cotas e reservas, consulte Definindo cotas em sistemas de arquivos ZFS na pgina 228and Definindo reservas nos sistemas de arquivos ZFS na pgina 231.
227
As cotas tambm afetam a sada dos comandos zfs list e df. Por exemplo:
# zfs list -r tank/home NAME USED AVAIL tank/home 1.45M 66.9G tank/home/eric 547K 66.9G tank/home/jeff 322K 10.0G tank/home/jeff/ws 31K 10.0G tank/home/lori 547K 66.9G tank/home/mark 31K 66.9G # df -h /tank/home/jeff Filesystem Size Used tank/home/jeff 10G 306K REFER 36K 547K 291K 31K 547K 31K MOUNTPOINT /tank/home /tank/home/eric /tank/home/jeff /tank/home/jeff/ws /tank/home/lori /tank/home/mark
Observe que, embora tank/home possua 66,9 GB de espao em disco disponvel, tank/home/jeff e tank/home/jeff/ws possuem, cada um, somente 10 GB de espao em disco disponvel, devido cota em tank/home/jeff. No possvel definir uma cota para uma quantidade menor do que a atualmente em uso por um conjunto de dados. Por exemplo:
# zfs set quota=10K tank/home/jeff cannot set property for tank/home/jeff: size is less than current used or reserved space
possvel definir uma refquota em um conjunto de dados que limita quantidade montante de espao em disco que o conjunto de dados pode consumir. Esse limite de disco rgido no inclui o espao em disco que utilizado pelos descendentes. Por exemplo, a cota de 10 GB do aluno A no afetada pelo espao consumido por instantneos.
# zfs set refquota=10g students/studentA # zfs list -t all -r students NAME USED AVAIL REFER MOUNTPOINT students 150M 66.8G 32K /students students/studentA 150M 9.85G 150M /students/studentA students/studentA@yesterday 0 - 150M # zfs snapshot students/studentA@today # zfs list -t all -r students students 150M 66.8G 32K /students students/studentA 150M 9.90G 100M /students/studentA students/studentA@yesterday 50.0M - 150M students/studentA@today 0 - 100M 228 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Para maior comodidade, possvel configurar outra cota no conjunto de dados para ajudar a gerenciar o espao em disco que utilizado pelos instantneos. Por exemplo:
# zfs set quota=20g students/studentA # zfs list -t all -r students NAME USED AVAIL REFER MOUNTPOINT students 150M 66.8G 32K /students students/studentA 150M 9.90G 100M /students/studentA students/studentA@yesterday 50.0M - 150M students/studentA@today 0 - 100M -
Nesse cenrio, studentA deve alcanar refquota (10 GB) de limite de disco rgido, mas studentA pode remover arquivos para recuperar, mesmo se existirem instantneos. No exemplo anterior, a menor das duas cotas (10 GB comparado a 20 GB) exibida na sada zfs list. Para visualizar o valor de ambas as cotas, utilize o comando zfs get. Por exemplo:
# zfs get refquota,quota students/studentA NAME PROPERTY VALUE students/studentA refquota 10G students/studentA quota 20G SOURCE local local
possvel exibir o usurio geral ou o grupo de espao em disco consultando as propriedades a seguir:
# zfs TYPE POSIX POSIX # zfs TYPE POSIX POSIX userspace students/compsci NAME USED QUOTA User root 350M none User student1 426M 10G groupspace students/labstaff NAME USED QUOTA Group labstaff 250M 20G Group root 350M none
229
Para identificar usurios individuais ou de grupo de uso do espao em disco, consulte as propriedades a seguir:
# zfs get userused@student1 students/compsci NAME PROPERTY VALUE students/compsci userused@student1 550M # zfs get groupused@labstaff students/labstaff NAME PROPERTY VALUE students/labstaff groupused@labstaff 250 SOURCE local SOURCE local
As propriedades de cotas de usurio e de grupo no so exibidas utilizando o comando zfs get all conjunto de dados, que exibem uma lista de todas as outras propriedades do sistema de arquivos. possvel remover uma cota de usurio de grupo da seguinte forma:
# zfs set userquota@student1=none students/compsci # zfs set groupquota@labstaff=none students/labstaff
Uma cota de usurio ou de grupo definida no sistema de arquivos pai que no automaticamente herdada por um sistema de arquivos descendente. No entanto, a cota do usurio ou grupo aplicada quando um clone ou um instantneo criado a partir de um sistema de arquivos que tenha uma cota do usurio ou grupo. Do mesmo modo, uma cota de usurio ou de grupo que est includa com o sistema de arquivos quando um fluxo criado utilizando o comando zfs send, mesmo sem a opo -R. Usurios sem privilgio s podem acessar seu prprio espao em disco. O usurio raiz ou um usurio a quem foi concedido o privilgio de userused ou groupused, pode acessar a informao de contabilidade do espao em disco de um grupo ou usurio de todos. As propriedades userquota e groupquota no podem ser definidas nos volumes ZFS, em um sistema de arquivos anterior a verso 4, ou em um pool anterior a verso 15 do pool.
Aplicao de usurio e cotas de grupos podem ser adiadas por vrios segundos. Esta atraso significa que os usurios podem exceder suas cotas antes que o sistema observe que esto acima da cota e recusa gravaes adicionais EDQUOT . Voc pode usar o comando quota herdado, para rever as cotas do usurio em um ambiente NFS, por exemplo, onde uma sistema de arquivos ZFS no esteja montado. Sem quaisquer opes, o comando quota somente exibe a sada se a cota do usurio estiver excedida. Por exemplo:
# zfs set userquota@student1=10m students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 350M none POSIX User student1 550M 10M # quota student1 Block limit reached on /students/compsci
230 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Se voc predefinir a cota de usurio e o limite de cotas no estiver excedido, possvel utilizar o comando quota -v para visualizar a cota do usurio. Por exemplo:
# zfs set userquota@student1=10GB students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 350M none POSIX User student1 550M 10G # quota student1 # quota -v student1 Disk quotas for student1 (uid 102): Filesystem usage quota limit timeleft files quota limit /students/compsci 563287 10485760 10485760 -
timeleft -
Note que tank/home est utilizando 5 GB de espao em disco, embora a quantidade total do espao seja referente a tank/home e seus descendentes so menores que 5 GB. O espao usado reflete o espao reservado para tank/home/bill. As reservas so consideradas no clculo de espao em disco utilizado do conjunto de dados pai e contam contra sua cota, reserva ou ambos.
# zfs set quota=5G pool/filesystem # zfs set reservation=10G pool/filesystem/user1 cannot set reservation for pool/filesystem/user1: size is greater than available space
Captulo 6 Gerenciando sistemas de arquivos ZFS do Oracle Solaris 231
Um conjunto de dados utiliza mais espao em disco do que sua reserva, enquanto o espao no reservado est disponvel no conjunto e o conjunto de dados atualmente utilizado est abaixo de sua cota. Um conjunto de dados no pode utilizar o espao em disco que foi reservado para outro conjunto de dados. As reservas no so cumulativas. Ou seja, uma segunda chamada de zfs set para definir uma reserva no adiciona sua reserva reserva existente. Em vez disso, a segunda reserva substitui a primeira reserva. Por exemplo:
# zfs set reservation=10G tank/home/bill # zfs set reservation=5G tank/home/bill # zfs get reservation tank/home/bill NAME PROPERTY VALUE SOURCE tank/home/bill reservation 5G local
possvel definir uma reserva refreservation para garantir espao em disco para um conjunto de dados que no inclua espao em disco utilizado pelos instantneos e clones. Essa reserva contabilizada para o clculo do espao utilizado do conjunto de dados pai e conta contra as cotas e reservas do conjunto de dados pai. Por exemplo:
# zfs set refreservation=10g profs/prof1 # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 10.0G 23.2G 19K /profs profs/prof1 10G 33.2G 18K /profs/prof1
Tambm possvel definir um reserva no mesmo conjunto de dados para garantir o espao do conjunto de dados e o espao do instantneo. Por exemplo:
# zfs set reservation=20g profs/prof1 # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 20.0G 13.2G 19K /profs profs/prof1 10G 33.2G 18K /profs/prof1
As reservas regulares so contabilizados para o clculo de espao utilizado do pai. No exemplo anterior, a menor das duas cotas (10 GB comparado a 20 GB) exibida na sada zfs list. Para visualizar o valor de ambas as cotas, utilize o comando zfs get. Por exemplo:
# zfs get reservation,refreserv profs/prof1 NAME PROPERTY VALUE SOURCE profs/prof1 reservation 20G local profs/prof1 refreservation 10G local
Se refreservation est configurada, um instantneo s permitido se o espao do conjunto no reservado suficiente existe fora da reserva para acomodar o nmero atual de bytes referenciados no conjunto de dados.
232 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Use este comando para identificar os recursos que esto disponveis com cada verso do sistema de arquivos.
# zfs upgrade -v The following filesystem versions are supported: VER --1 2 3 4 5 DESCRIPTION -------------------------------------------------------Initial ZFS filesystem version Enhanced directory entries Case insensitive and File system unique identifier (FUID) userquota, groupquota properties System attributes
For more information on a particular version, including supported releases, see the ZFS Administration Guide.
233
234
C A P T U L O
Este captulo descreve como criar e gerenciar instantneos e clones do ZFS do Oracle Solaris. Tambm so fornecidas informaes sobre como salvar instantneos. Este captulo traz as seguintes sees:
Viso geral dos instantneos do ZFS na pgina 235 Criando e destruindo instantneos do ZFS na pgina 236 Exibindo e acessando instantneos do ZFS na pgina 239 Retornando um instantneo ZFS na pgina 241 Viso geral dos clones do ZFS na pgina 242 Criando um clone do ZFS na pgina 243 Destruindo um clone do ZFS na pgina 243 Substituindo um sistema de arquivos ZFS por um clone do ZFS na pgina 244 Enviando e recebendo dados do ZFS na pgina 245
Resistncia a reinicializaes do sistema. O nmero mximo de instantneos teoricamente 264. Os instantneos no utilizam armazenamento de apoio separado. Os instantneos utilizam espao em disco diretamente do mesmo conjunto de armazenamento que o sistema de arquivos ou volume a partir do qual foram criados.
235
Os instantneos recursivos so criados rapidamente como uma operao atmica. Os instantneos so criados juntos (todos de uma vez) ou simplesmente no so criados. O benefcio das operaes de instantneos atmicos que os dados do instantneo so sempre retirados em um momento consistente, mesmo nos sistemas de arquivos descendentes.
Os instantneos de volumes no podem ser acessados diretamente, mas podem ser clonados, revertidos, ter um backup, e assim por diante. Para obter mais informaes sobre o backup de um instantneo do ZFS, consulte Enviando e recebendo dados do ZFS na pgina 245.
Criando e destruindo instantneos do ZFS na pgina 236 Exibindo e acessando instantneos do ZFS na pgina 239 Retornando um instantneo ZFS na pgina 241
O nome do instantneo deve estar de acordo com os requisitos de identificao em Requisitos para nomeao de componentes do ZFS na pgina 52. No exemplo seguinte, criado um instantneo de tank/home/matt denominado friday.
# zfs snapshot tank/home/matt@friday
possvel criar instantneos para todos os sistemas de arquivos descendentes com a opo - r. Por exemplo:
# zfs snapshot -r tank/home@snap1 # zfs list -t snapshot -r tank/home zfs list -t snapshot -r tank/home NAME USED AVAIL tank/home@snap1 0 tank/home/mark@snap1 0 tank/home/matt@snap1 0 tank/home/tom@snap1 0 -
MOUNTPOINT -
Os instantneos no possuem propriedades que possam ser modificadas. E as propriedades do conjunto de dados tambm no podem ser aplicadas a um instantneo. Por exemplo:
# zfs set compression=on tank/home/matt@friday cannot set property for tank/home/matt@friday: this property can not be modified for snapshots
Um conjunto de dados no pode ser destrudo se existirem instantneos deste conjunto de dados. Por exemplo:
# zfs destroy tank/home/matt cannot destroy tank/home/matt: filesystem has children use -r to destroy the following datasets: tank/home/matt@tuesday tank/home/matt@wednesday tank/home/matt@thursday
Alm disso, se foram criados clones de um instantneo, tais clones devem ser destrudos antes que o instantneo seja destrudo. Para obter mais informaes sobre o subcomando destroy, consulte Destruindo um sistema de arquivos ZFS na pgina 197.
possvel utilizar a opo -r como recurso para conter os instantneos de todos os sistemas de arquivos descendentes. Por exemplo:
# zfs snapshot -r tank/home@now # zfs hold -r keep tank/home@now
Esta sintaxe adiciona uma nica referncia, manter, ao instantneo ou ao conjunto de instantneos. Cada instantneo possui sua prpria marcao do espao de nome e as marcaes de conteno devem ser nicas no espao. Se existir uma conteno em um instantneo, as tentativas para destruir o instantneo contido atravs do comando zfs destroy falharo. Por exemplo:
Captulo 7 Trabalhando com instantneos e clones do ZFS do Oracle Solaris 237
Utilize o comando zfs holds para exibir uma lista de instantneos contidos. Por exemplo:
# zfs holds tank/home@now NAME TAG TIMESTAMP tank/home@now keep Fri May 6 06:34:03 2011 # zfs holds -r tank/home@now NAME TAG TIMESTAMP tank/home/cindy@now keep Fri May 6 tank/home/mark@now keep Fri May 6 tank/home/matt@now keep Fri May 6 tank/home/tom@now keep Fri May 6 tank/home@now keep Fri May 6
possvel utilizar o comando zfs release para liberar a conteno de um instantneo ou de um conjunto de instantneos. Por exemplo:
# zfs release -r keep tank/home@now
Se uma conteno for liberada, o instantneo pode ser destrudo atravs do comando zfs destroy. Por exemplo:
# zfs destroy -r tank/home@now
A propriedade defer_destroy est on se o instantneo foi marcado para destruio adiada utilizando o comando zfs destroy -d. Caso contrrio, a propriedade est off. A propriedade userrefs est definida para o nmero de contenes do instantneo, tambm chamada de contagem para referncia do usurio.
A operao rename de instantneo a seguir no suportada porque o conjunto de destino e o nome do sistema de arquivos so diferentes do conjunto e do sistema de arquivos onde o instantneo foi criado:
238 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
# zfs rename tank/home/cindy@today pool/home/cindy@saturday cannot rename to pool/home/cindy@today: snapshots must be part of same dataset
Como recurso, possvel renomear instantneos com o comando zfs rename - r. Por exemplo:
# zfs list -t snapshot -r users/home NAME USED AVAIL REFER users/home@now 23.5K - 35.5K users/home@yesterday 0 38K users/home/lori@yesterday 0 - 2.00G users/home/mark@yesterday 0 - 1.00G users/home/neil@yesterday 0 - 2.00G # zfs rename -r users/home@yesterday @2daysago # zfs list -t snapshot -r users/home NAME USED AVAIL REFER users/home@now 23.5K - 35.5K users/home@2daysago 0 38K users/home/lori@2daysago 0 - 2.00G users/home/mark@2daysago 0 - 1.00G users/home/neil@2daysago 0 - 2.00G MOUNTPOINT MOUNTPOINT -
Os instantneos de sistemas de arquivos podem ser acessados no diretrio .zfs/snapshot dentro da raiz do sistema de arquivos. Por exemplo, se tank/home/ahrens estiver montado em /home/ahrens, ento os dados do instantneo tank/home/ahrens@thursday podero ser acessados no diretrio /home/ahrens/.zfs/snapshot/thursday .
# ls /tank/home/matt/.zfs/snapshot tuesday wednesday thursday
0 20K 20K 0
Os instantneos criados para um sistema de arquivos especfico podem ser listados da seguinte forma:
# zfs list -r -t snapshot NAME tank/home/cindy@today tank/home/mark@today tank/home/matt@tuesday tank/home/matt@wednesday tank/home/matt@thursday -o name,creation CREATION Fri May 6 6:32 Fri May 6 6:22 Tue May 3 6:27 Wed May 4 6:28 Thu May 5 6:28 tank/home 2011 2011 2011 2011 2011
Neste exemplo, os instantneos wednesday e thursday so destrudos porque voc reverteu para o instantneo tuesday.
# zfs list -r -t snapshot -o name,creation tank/home/matt NAME CREATION tank/home/matt@tuesday Tue May 3 6:27 2011
Por exemplo, para identificar as diferenas entre dois instantneos, use sintaxe semelhante seguinte:
$ zfs diff tank/home/tim@snap1 tank/home/timh@snap2 M /tank/home/tim/ + /tank/home/tim/fileB
Na sada, M indica que o diretrio foi modificado. + indica que fileB existe no instantneo posterior. O R na sada a seguir indica que um arquivo em um instantneo foi renomeado.
$ mv /tank/cindy/fileB /tank/cindy/fileC $ zfs snapshot tank/cindy@snap2 $ zfs diff tank/cindy@snap1 tank/cindy@snap2 M /tank/cindy/ R /tank/cindy/fileB -> /tank/cindy/fileC
A tabela a seguir resume as alteraes de arquivo ou diretrio que so identificadas pelo comando zfs diff.
Alterao de arquivo ou diretrio Identificador
O arquivo ou diretrio foi modificado ou o link do arquivo ou diretrio foi alterado O arquivo ou diretrio est presente no instantneo mais antigo, mas no no instantneo mais recente O arquivo ou diretrio est presente no instantneo mais recente, mas no no instantneo mais antigo O arquivo ou diretrio foi renomeado
Os clones no herdam as propriedades do conjunto de dados do qual foram criados. Use os comandos zfs get e zfs set para ver e alterar as propriedades de um conjunto de dados clonado. Para obter mais informaes sobre a configurao das propriedades do conjunto de dados do ZFS, consulte Definindo propriedades do ZFS na pgina 215. O clone compartilha inicialmente todo o seu espao em disco com o instantneo original e, por essa razo, o valor de sua propriedade used inicialmente zero. O clone passa a utilizar mais espao em disco medida que sofre alteraes. A propriedade used do instantneo original no inclui o espao em disco consumido pelo clone.
Criando um clone do ZFS na pgina 243 Destruindo um clone do ZFS na pgina 243 Substituindo um sistema de arquivos ZFS por um clone do ZFS na pgina 244
No exemplo abaixo, a partir do instantneo projects/newproject@today criada, para um usurio temporrio, uma rea de trabalho como projects/teamA/tempuser. As propriedades so, ento, definidas na rea de trabalho clonada.
# # # # zfs zfs zfs zfs snapshot projects/newproject@today clone projects/newproject@today projects/teamA/tempuser set sharenfs=on projects/teamA/tempuser set quota=5G projects/teamA/tempuser
Nesta sada zfs list, note que as informaes de contabilidade de espao em disco do sistema de arquivos productA original foram substitudas pelo sistema de arquivos productAbeta. possvel completar o processo de substituio de clone renomeando os sistemas de arquivos. Por exemplo:
# zfs rename tank/test/productA tank/test/productAlegacy # zfs rename tank/test/productAbeta tank/test/productA # zfs list -r tank/test
244
Salvando dados do ZFS com outros produtos de backup na pgina 246 Enviando um instantneo do ZFS na pgina 246 Recebendo um instantneo do ZFS na pgina 247 Aplicao de valores de propriedade diferentes a um fluxo de instantneos do ZFS na pgina 248 Enviando e recebendo fluxos complexos de instantneos do ZFS na pgina 250 Replicao remota de dados do ZFS na pgina 252
Produtos de backup da empresa: se precisar dos recursos a seguir, ento considere uma soluo de backup de empresa:
Instantneos de sistemas de arquivos e reverso de instantneos: utilize os comandos zfs snapshot e zfs rollback se desejar criar facilmente uma cpia de um sistema de arquivos e reverter para uma verso anterior do sistema de arquivos, se necessrio. Por exemplo, para restaurar um arquivo ou arquivos de uma verso anterior de um sistema de arquivos, voc poderia utilizar esta soluo. Para obter mais informaes sobre a criao e reverso de um instantneo, consulte Viso geral dos instantneos do ZFS na pgina 235.
Salvar instantneos Use os comandos zfs send e zfs receive para enviar e receber um instantneo do ZFS. Voc pode salvar alteraes incrementais entre instantneos, mas no pode restaurar os arquivos individualmente. Voc deve restaurar o instantneo de todo o sistema de arquivos. Estes comandos no oferecem uma soluo de backup completa para salvar dados do ZFS. Replicao remota: utilize os comandos zfs send e zfs receive para copiar um sistema de arquivos de um sistema a outro. Este processo difere do produto de gerenciamento de volumes que pode espelhar os dispositivos atravs de uma WAN. No necessrio nenhum hardware ou configurao especial. A vantagem da replicao de um sistema de arquivos ZFS que voc pode recriar um sistema de arquivos em um pool de armazenamento de outro sistema e especificar diferentes nveis de configurao para o pool recm-criado, tal como RAID-Z, mas com os dados de sistema de arquivos idnticos.
245
Utilitrios de arquivo Salvar dados do ZFS com utilitrios de arquivos como tar, cpio e pax ou produtos de backup de terceiros. Atualmente, os comandos tar e cpio traduzem as ACLs de estilo NFSv4 corretamente, mas o comando pax no.
O zfs recv pode ser usado como um alias do comando zfs receive. Se estiver enviando o fluxo de instantneo a outro sistema, conduza a sada de zfs send atravs do comando ssh. Por exemplo:
host1# zfs send tank/dana@snap1 | ssh host2 zfs recv newtank/dana
Ao enviar um fluxo completo, o sistema de arquivos de destino no deve existir. possvel salvar dados incrementais usando a opo i do -zfs send . Por exemplo:
host1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh host2 zfs recv newtank/dana
Observe que o primeiro argumento (snap1) o instantneo mais antigo e o segundo (snap2) o instantneo mais recente. Nesse caso, o sistema de arquivos newtank/dana deve existir para que o recebimento incremental tenha xito. A origem do snap1 incremental pode ser especificada como o ltimo componente do nome do instantneo. Este atalho significa que necessrio especificar o nome do snap1 somente depois do smbolo @, que se supe ser do mesmo sistema de arquivos que o snap2. Por exemplo:
246 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
host1# zfs send -i snap1 tank/dana@snap2 > ssh host2 zfs recv newtank/dana
Esta sintaxe de atalho equivalente sintaxe incremental no exemplo anterior. Se voc tentar gerar um fluxo incremental do instantneo1 de um sistema de arquivos diferente, exibida a seguinte mensagem:
cannot send pool/fs@name: not an earlier snapshot from the same fs
Se precisar restaurar vrias cpias, considere compactar uma representao de fluxo de instantneo do ZFS com o comando gzip. Por exemplo:
# zfs send pool/fs@snap | gzip > backupfile.gz
O instantneo e o sistema de arquivos so recebidos. O sistema de arquivos e todos os sistemas de arquivos descendentes so desmontados. Os sistemas de arquivos no podem ser acessados enquanto estiverem sendo recebidos. O sistema de arquivos original que ser recebido no deve existir enquanto estiver sendo recebido. Se um sistema de arquivos com o mesmo nome j existir, possvel utilizar o comando zfs rename para renomear o sistema de arquivos.
Por exemplo:
# # # # zfs zfs zfs zfs send tank/gozer@0830 > /bkups/gozer.083006 receive tank/gozer2@today < /bkups/gozer.083006 rename tank/gozer tank/gozer.old rename tank/gozer2 tank/gozer
Se fizer uma alterao no sistema de arquivos de destino, e quiser efetuar outro envio incremental de um instantneo, necessrio, primeiramente, reverter o sistema de arquivos receptor. Considere o seguinte exemplo. Primeiro, faa uma alterao ao sistema de arquivos, como segue:
host2# rm newtank/dana/file.1
Ento, efetue um envio incremental de tank/dana@snap3. No entanto, necessrio reverter o sistema de arquivos receptor para receber o novo instantneo incremental. Ou ento, a etapa de reverso pode ser eliminada utilizando a opo -F . Por exemplo:
Captulo 7 Trabalhando com instantneos e clones do ZFS do Oracle Solaris 247
host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana
Quando um instantneo incremental recebido, o sistema de arquivos de destino j dever existir. Se fizer alteraes ao sistema de arquivos e no reverter o sistema de arquivos receptores para receber o novo instantneo incremental ou no utilizar a opo -F, ser exibida uma mensagem similar seguinte:
host1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh host2 zfs recv newtank/dana cannot receive: destination has been modified since most recent snapshot
Se o instantneo mais recente no corresponder fonte incremental, nem a reverso nem o recebimento so concludos e uma mensagem de erro devolvida. Se acidentalmente for fornecido o nome de um sistema de arquivos diferentes que no correspondem fonte incremental especificada no comando zfs receive, nem a reverso e nem o recebimento so concludos e a seguinte mensagem de erro devolvida:
cannot send pool/fs@name: not an earlier snapshot from the same fs
No exemplo, a propriedade compression ativada quando o instantneo recebido em bpool. Portanto, para bpool/data, o valor de compactao on. Se este fluxo de instantneos for envado para um novo pool, restorepool, para fins de recuperao, voc pode manter toas as propriedades originais do instantneo. Nesse caso, voc usaria o comando zfs send -b para restaurar as propriedades originais do instantneo. Por exemplo:
# zfs send -b bpool/data@snap1 | zfs recv -d restorepool # zfs get -o all compression restorepool/data NAME PROPERTY VALUE RECEIVED SOURCE restorepool/data compression off off received
No exemplo, o valor de compactao off, que representa o valor de compactao do instantneo do sistema de arquivos tank/data original. Se voc tiver um valor de propriedade do sistema de arquivos local em um fluxo de instantneos e quiser desativar a propriedade quando for recebida, use o comando zfs receive -i. Por exemplo, o comando a seguir envia um fluxo de instantneos recursivo de sistemas de arquivos do diretrio inicial com todas as propriedades do sistema de arquivos reservadas para um pool de backup, mas sem os valores de propriedade de cota:
# zfs send -R tank/home@snap1 | # zfs get -r quota bpool/home NAME PROPERTY bpool/home quota bpool/home@snap1 quota bpool/home/lori quota bpool/home/lori@snap1 quota bpool/home/mark quota bpool/home/mark@snap1 quota zfs recv -x quota bpool/home VALUE none none none SOURCE local default default -
Se o instantneo recursivo no foi recebido com a opo -i, a propriedade de cota seria definida nos sistemas de arquivos recebidos.
# zfs send -R tank/home@snap1 | # zfs get -r quota bpool/home NAME PROPERTY bpool/home quota bpool/home@snap1 quota bpool/home/lori quota bpool/home/lori@snap1 quota bpool/home/mark quota bpool/home/mark@snap1 quota zfs recv bpool/home VALUE none 10G 10G SOURCE received received received -
249
Use a opo zfs send -I para enviar todos os fluxos incrementais de um instantneo para um instantneo cumulativo. Ou, utilize esta opo para enviar um fluxo incremental do instantneo original para criar um clone. O instantneo original j deve existir no lado de recepo para aceitar o fluxo incremental. Use a opo zfs send -R para enviar um fluxo de replicao de todos os sistemas de arquivos descendentes. Quando o fluxo de replicao recebido, todas as propriedades, instantneos, sistemas de arquivo descendentes e clones so preservados. Utilize ambas opes para enviar um fluxo de replicao incremental.
As alteraes feitas s propriedades so preservadas, assim como as operaes rename e destroy do instantneo e do sistema de arquivos. Se zfs recv -F no for especificado ao receber o fluxo de replicao, as operaes destroy do conjunto de dados so ignoradas. A sintaxe de zfs recv -F neste caso tambm retm seu significado de reverso se necessrio. Como em outros casos (no zfs send -R) - i ou -I, se -I for usado, todos os instantneos entre snapA e snapD so enviados. Se -i utilizado, apenas snapD (para todos os descendentes) so enviados.
Para receber qualquer um desses novos tipos de fluxos do zfs send, o sistema destinatrio deve executar uma verso do software capaz de envi-los. A verso de fluxo incrementada. No entanto, voc pode acessar os fluxos a partir das verses mais antigas do pool usando uma verso mais recente do software. Por exemplo, voc pode enviar e receber os fluxos criados com as opes mais recentes para e de um pool de verso 3. Porm, voc deve executar um software recente para receber um fluxo enviado com as opes mais recentes.
EXEMPLO 71
possvel combinar um grupo de instantneos incrementais em um instantneo usando a opozfs send -I. Por exemplo:
# zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@all-I
EXEMPLO 71
(Continuao)
# zfs receive -d -F pool/fs < /snaps/fs@all-I # zfs list NAME USED AVAIL REFER pool 428K 16.5G 20K pool/fs 71K 16.5G 21K pool/fs@snapA 16K - 18.5K pool/fs@snapB 17K 20K pool/fs@snapC 17K - 20.5K pool/fs@snapD 0 21K
Voc tambm pode usar o comando zfs send -I para combinar um instantneo e um instantneo de clone a fim de criar um conjunto de dados combinado. Por exemplo:
# # # # # # # # zfs zfs zfs zfs zfs zfs zfs zfs create pool/fs snapshot pool/fs@snap1 clone pool/fs@snap1 pool/clone snapshot pool/clone@snapA send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I destroy pool/clone@snapA destroy pool/clone receive -F pool/clone < /snaps/fsclonesnap-I
Utilize o comando zfs send -R para replicar um sistema de arquivos ZFS e todos os sistemas de arquivos descendentes, at o instantneo nomeado. Quando este fluxo recebido, todas as propriedades, instantneos, sistemas de arquivo descendentes e clones so preservados. No exemplo seguinte, so criados instantneos para os sistemas de arquivos do usurio. Um fluxo de replicao criado para todos os instantneos do usurio. A seguir, os instantneos e sistemas de arquivos originais so destrudos e, ento, recuperados.
# zfs snapshot -r users@today # zfs list NAME USED AVAIL REFER MOUNTPOINT users 187K 33.2G 22K /users users@today 0 22K users/user1 18K 33.2G 18K /users/user1 users/user1@today 0 18K users/user2 18K 33.2G 18K /users/user2 users/user2@today 0 18K users/user3 18K 33.2G 18K /users/user3 users/user3@today 0 18K # zfs send -R users@today > /snaps/users-R # zfs destroy -r users # zfs receive -F -d users < /snaps/users-R # zfs list NAME USED AVAIL REFER MOUNTPOINT users 196K 33.2G 22K /users users@today 0 22K users/user1 18K 33.2G 18K /users/user1 users/user1@today 0 18K users/user2 18K 33.2G 18K /users/user2 users/user2@today 0 18K users/user3 18K 33.2G 18K /users/user3 users/user3@today 0 18K Captulo 7 Trabalhando com instantneos e clones do ZFS do Oracle Solaris 251
EXEMPLO 71
(Continuao)
No exemplo a seguir, o comando zfs send -R foi utilizado para replicar o conjunto de dados users e seus descendentes, e enviar o fluxo replicado para outro conjunto, users2.
# zfs create users2 # zfs receive -F -d # zfs list NAME users users@today users/user1 users/user1@today users/user2 users/user2@today users/user3 users/user3@today users2 users2@today users2/user1 users2/user1@today users2/user2 users2/user2@today users2/user3 users2/user3@today mirror c0t1d0 c1t1d0 users2 < /snaps/users-R USED 224K 0 33K 15K 18K 0 18K 0 188K 0 18K 0 18K 0 18K 0 AVAIL REFER MOUNTPOINT 33.2G 22K /users 22K 33.2G 18K /users/user1 18K 33.2G 18K /users/user2 18K 33.2G 18K /users/user3 18K 16.5G 22K /users2 22K 16.5G 18K /users2/user1 18K 16.5G 18K /users2/user2 18K 16.5G 18K /users2/user3 18K -
Este comando envia os dados do instantneo tank/cindy@today e os recebe no sistema de arquivos sandbox/restfs. O comando tambm cria um instantneo restfs@today no sistema newsys. Neste exemplo, o usurio foi configurado para que use ssh no sistema remoto.
252
C A P T U L O
Este captulo oferece informaes sobre o uso das listas de controle de acesso (ACLs) para proteger os arquivos ZFS proporcionando permisses mais granulares que as permisses do UNIX padro. Este captulo traz as seguintes sees:
Novo modelo de ACL do Solaris na pgina 253 Definindo ACLs em arquivos ZFS na pgina 259 Definindo e exibindo ACLs em arquivos ZFS no formato verboso na pgina 261 Definindo e exibindo ACLs em arquivos ZFS no formato compacto na pgina 272
Baseado na especificao NFSv4 e semelhante s ACLs de estilo NT. Proporciona privilgios de acesso muito mais granulares. Para obter mais informaes, consulte a Tabela 82. definido e exibido com os comandos chmod e ls em vez dos comandos setfacl e getfacl .
253
Oferece semnticas de herana mais ricas para designar como os privilgios de acesso sero aplicados do diretrio aos subdiretrios, e assim por diante. Para obter mais informaes, consulte Herana da ACL na pgina 258.
Ambos os modelos de ACL proporcionam controles de acesso mais granulares que os disponveis nas permisses de arquivos padro. Assim como as ACLs de esquema POSIX, as novas ACLs compem-se de vrias entradas de controle de acesso (ACEs). As ACLs de esquema POSIX usam uma nica entrada para definir que permisses sero aceitas e que permisses sero negadas. O novo modelo de ACL apresenta dois tipos de ACEs que afetam a verificao de acesso: ALLOW e DENY. No possvel deduzir de nenhuma ACE que define um conjunto de permisses se as permisses definidas nesta ACE sero aceitas ou negadas. A traduo entre ACLs de estilo NFSv4 e de esquema POSIX a seguinte:
Se usar utilitrios com ACL, como os comandos cp, mv, tar, cpio ou rcp, para transferir arquivos UFS com ACLs para um sistema de arquivos ZFS, as ACLs de esquema POSIX so traduzidas para as ACLs de estilo NFSv4 equivalentes. Algumas ACLs de estilo NFSv4 so traduzidas para ACLs de esquema POSIX. Se uma ACL de estilo NFSv4 no for traduzida para uma ACL de esquema POSIX, ser exibida a seguinte mensagem:
# cp -p filea /var/tmp cp: failed to set acl entries on /var/tmp/filea
Se criar um arquivo UFS tar ou cpio com a opo de preservar ACL (tar -p ou cpio -P) em um sistema que executa uma verso atual do Solaris, voc perder as ACLs quando o arquivo for extrado para um sistema que executa uma verso anterior do Solaris. Todos os arquivos so extrados com os modos de arquivo corretos, mas as entradas ACL so ignoradas.
Voc pode usar o comando ufsrestore para restaurar os dados dentro de um sistema de arquivos ZFS. Se os dados originais possurem ACLs de estilo POSIX, elas so convertidas em ACLs de estilo NFSv4. Se tentar definir uma ACL de estilo NFSv4 em um arquivo UFS, ser exibida uma mensagem semelhante seguinte:
chmod: ERROR: ACL types are different
Se tentar definir uma ACL de esquema POSIX em um arquivo ZFS, ser exibida uma mensagem semelhante seguinte:
# getfacl filea File system doesnt support aclent_t style ACLs. See acl(5) for more information on Solaris ACL support.
Para obter mais informaes sobre outras limitaes com ACLs e produtos de backup, consulte Salvando dados do ZFS com outros produtos de backup na pgina 246.
254 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
O exemplo abaixo inclui um ID da entrada ACL porque um usurio especfico (tipo da entrada ACL) est includo na ACL.
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris 255
0:user:gozer:list_directory/read_data/execute:allow
O 2 ou a designao do ID de ndice neste exemplo identifica a entrada ACL na ACL maior, que pode ter vrias entradas para owner, UIDs especficos, group e everyone. Voc pode especificar o ID de ndice com o comando chmod para identificar que parte da ACL quer modificar. Voc pode identificar, por exemplo, o ID de ndice ID 3 como A3 para o comando chmod, semelhante a:
chmod A3=user:venkman:read_acl:allow filename
Na tabela abaixo encontram-se as descries dos tipos de entrada ACL, que so as representaes da ACL de proprietrio, grupo e outros.
TABELA 81
Especifica o acesso concedido ao proprietrio do objeto. Especifica o acesso concedido ao grupo proprietrio do objeto. Especifica o acesso permitido a todos os usurios ou grupos que no correspondam com nenhuma outra entrada ACL. Com um nome de usurio, especifica o acesso concedido a um usurio adicional do objeto. Deve incluir o ID da entrada ACL, que contm um nome de usurio ou um ID de usurio. Se o valor no for um UID numrico ou nome de usurio vlidos, o tipo de entrada ACL invlido. Com um nome de grupo, especifica acesso concedido a um grupo adicional do objeto. Deve incluir o ID da entrada ACL, que contm um nome de grupo ou um ID de grupo. Se o valor no for um GID numrico ou nome de grupo vlidos, o tipo de entrada ACL invlido.
user
group
Privilgio de acesso
w p p d
Permisso para adicionar um novo arquivo a um diretrio. Em um diretrio, permisso para criar um subdiretrio. Espao reservado. Ainda no implementado. Permisso para excluir um arquivo.
256
TABELA 82
(Continuao)
Descrio
Privilgio de acesso
D i a f a
Permisso para excluir um arquivo ou diretrio dentro de um diretrio. Permisso para executar um arquivo ou pesquisar o contedo de um diretrio. Permisso para listar o contedo de um diretrio. Permisso para ler a ACL (ls). Permisso para ler os atributos bsicos (no-ACLs) de um arquivo. Considere os atributos bsicos como sendo os atributos do nvel stat. Ao permitir este bit da mscara de acesso, a entidade pode executar ls(1) e stat(2). Permisso para ler o contedo do arquivo. Permisso para ler os atributos estendidos de um arquivo ou realizar uma pesquisa no diretrio dos atributos estendidos do arquivo. Espao reservado. Ainda no implementado. Permisso para criar atributos estendidos ou gravar no diretrio de atributos estendidos. A concesso de permisses a um usurio indica que o usurio pode criar um diretrio de atributo estendido para um arquivo. As permisses do arquivo do atributo controlam o acesso do usurio ao atributo.
read_data read_xattr
a A
synchronize write_xattr
s Q
w Um C o
Permisso para modificar ou substituir o contedo de um arquivo. Permisso para alterar para um valor arbitrrio os perodos de tempo associados a um arquivo ou diretrio. Permisso para gravar a ACL ou habilidade para modificar a ACL com o comando chmod. Permisso para alterar o proprietrio ou o grupo do arquivo. Ou, a habilidade para executar os comandos chown ou chgrp no arquivo. Permisso para tomar a propriedade de um arquivo ou permisso para alterar a propriedade do grupo do arquivo para o grupo do qual o usurio um membro. Se quiser alterar a propriedade do grupo ou arquivo para um usurio ou grupo arbitrrio, o privilgio PRIV_FILE_CHOWN exigido.
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
257
Herana da ACL
O objetivo de usar a herana da ACL que um arquivo ou diretrio recm-criado possa herdar as ACLs que pretendem herdar, mas levando em considerao os bits de permisso existentes no diretrio pai. Por padro, as ACLs no so propagadas. Se definir uma ACL no-comum em um diretrio, ela no ser herdada por nenhum diretrio subsequente. Voc deve especificar a herana de uma ACL em um arquivo ou diretrio. Os sinalizadores de herana opcionais esto descritos na seguinte tabela.
TABELA 83
Sinalizador de herana
file_inherit
Herda somente a ACL do diretrio pai at os arquivos do diretrio. Herda somente a ACL do diretrio pai at os subdiretrios do diretrio. Herda a ACL do diretrio pai, mas se aplica somente aos arquivos e subdiretrios recm-criados e no ao prprio diretrio. Este sinalizador requer o sinalizador file_inherit, o sinalizador dir_inherit, ou ambos, para indicar o que herdar. Herda somente a ACL do diretrio pai at o contedo do primeiro nvel do diretrio, no herda o contedo do segundo nvel ou dos nveis subseqentes. Este sinalizador requer o sinalizador file_inherit, o sinalizador dir_inherit, ou ambos, para indicar o que herdar. Nenhuma permisso concedida.
dir_inherit
inherit_only
no_propagate
N/D
Alm disso, voc pode definir a diretriz de herana da ACL padro no sistema de arquivos para que seja mais rigorosa ou menos rigorosa usando a propriedade aclinherit do sistema de arquivos. Para obter mais informaes, consulte a prxima seo.
discard Para novos objetos, nenhuma entrada ACL herdada quando um arquivo ou diretrio criado. A ACL no arquivo ou diretrio igual ao modo de permisso do arquivo ou diretrio.
258
noallow Para novos objetos, somente as entradas ACLs herdveis com um tipo de acesso deny so herdadas. restricted Para novos objetos, as permisses write_owner e write_acl so removidas quando uma entrada ACL herdada. passthrough Quando o valor da propriedade estiver definido como passthrough, os arquivos so criados com um modo determinado pelas ACEs herdveis. Se no houver ACEs herdveis que afetem o modo, ento o modo ser definido de acordo com o modo solicitado do aplicativo. passthrough-x Possui a mesma semntica de passthrough, exceto que, quando passthrough-x est ativado, os arquivos so criados com a permisso de execuo (x), mas somente se a permisso de execuo estiver definida no modo de criao de arquivo e em uma ACE que afeta o modo.
O ZFS processa as entradas ACLs com o objetivo de list-las na ACL, de cima para baixo. So processadas somente as entradas ACLs que tm quem corresponda ao solicitante do acesso. Depois que a permisso allow (permitir) foi concedida, ela no pode ser negada por uma entrada ACL deny (negar) subseqente no mesmo conjunto de permisses da ACL. A permisso write_acl concedida incondicionalmente ao proprietrio, mesmo se a permisso for explicitamente negada. Caso contrrio, todas as permisses no especificadas so negadas.
259
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
No caso de permisses negadas ou quando falta um acesso de permisso, o subsistema de privilgios determina que solicitao de acesso concedida ao proprietrio do arquivo ou ao superusurio. Este mecanismo evita que os proprietrios de arquivos sejam bloqueados a seus arquivos e ativa o superusurio para que modifique os arquivos para recuperao. Se definir uma ACL no-comum em um diretrio, os filhos do diretrio no herdaro a ACL automaticamente. Se definir uma ACL no-comum e quiser que ela seja herdada pelos filhos do diretrio, voc ter que usar os sinalizadores de herana da ACL. Para obter mais informaes, consulte a Tabela 83 e Definindo a herana da ACL em arquivos ZFS no formato verboso na pgina 266. Quando um novo arquivo criado e dependendo do valor de umask, um padro de ACL comum, semelhante ao ilustrado abaixo, aplicado:
$ ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 23 15:06 file.1 0:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
Cada categoria de usurio (owner@, group@, everyone@) possui uma entrada de ACL neste exemplo. Encontra-se abaixo uma descrio dessa ACL do arquivo: 0:owner@ O proprietrio pode ler e modificar o contedo do arquivo ( read_data/write_data/append_data/read_xattr). O proprietrio tambm pode modificar os atributos do arquivo, tais como carimbos de data/hora, atributos estendidos e ACLs (write_xattr/read_attributes/write_attributes/ read_acl/write_acl). Alm disso, o proprietrio pode modificar a propriedade do arquivo (write_owner:allow). A permisso de acesso synchronize no est implementada atualmente. 1:group@ 2:everyone@ O grupo recebe permisses de leitura para o arquivo e os atributos do arquivo (read_data/read_xattr/read_attributes/read_acl:allow). Todos os que no so nem usurio nem grupo tm permisses de leitura para o arquivo e os atributos do arquivo (read_data/read_xattr/read_attributes/read_acl/ synchronize:allow ). A permisso de acesso synchronize no est implementada atualmente.
Quando um novo diretrio criado e dependendo do valor de umask, a ACL padro do diretrio semelhante ao ilustrado abaixo:
260 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
$ ls -dv dir.1 drwxr-xr-x 2 root root 2 Jun 23 15:06 dir.1 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 1:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Abaixo encontra-se uma descrio do diretrio de ACL: 0:owner@ O proprietrio pode ler e modificar o contedo do diretrio (list_directory/read_data/add_file/write_data/add_subdirectory /append_data ), procura o contedo (execute) e l e modifica os atributos do arquivo, como registros de data/hora, atributos estendidos e ACLs (/read_xattr/write_xattr/read_attributes/write_attributes/read_acl/ write_acl ). Alm disso, o proprietrio pode modificar a propriedade do diretrio (write_owner:allow). A permisso de acesso synchronize no est implementada atualmente. 1:group@ O grupo pode listar e ler o contedo do diretrio e os atributos do diretrio. Alm disso, o grupo tem permisso para executar pesquisas no contedo do diretrio (list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow ). Todos os que no so nem usurio nem grupo tm permisso de leitura e execuo para o contedo e os atributos do diretrio (list_directory/read_data/read_xattr/execute/read_ attributes/read_acl/synchronize:allow ). A permisso de acesso synchronize no est implementada atualmente.
2:everyone@
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
261
Para obter mais informaes sobre o uso do formato compacto da ACL, consulte Definindo e exibindo ACLs em arquivos ZFS no formato compacto na pgina 272.
EXEMPLO 81
Esta seo oferece exemplos de configurao e exibio de ACLs comuns. No exemplo abaixo, existe uma ACL comum no file.1:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 23 15:06 file.1 0:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
262
EXEMPLO 81
(Continuao)
# chmod A1=group@:read_data/write_data:allow file.1 # ls -v file.1 -rw-rw-r-- 1 root root 206663 Jun 23 15:06 file.1 0:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 1:group@:read_data/write_data:allow 2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
Esta seo oferece exemplos de definies e exibies de ACLs no-comuns. No exemplo abaixo, as permisses read_data/execute so adicionadas ao usurio gozer no diretrio test.dir.
# chmod A+user:gozer:read_data/execute:allow test.dir # ls -dv test.dir drwxr-xr-x+ 2 root root 2 Jun 23 15:11 test.dir 0:user:gozer:list_directory/read_data/execute:allow 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 2:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
263
EXEMPLO 82
(Continuao)
EXEMPLO 83
Estes exemplos de ACL ilustram a interao entre definir ACLs e alterar os bits de permisso do arquivo ou diretrio. No exemplo abaixo, existe uma ACL comum em file.2:
# ls -v file.2 -rw-r--r-- 1 root root 49090 Jun 23 15:13 file.2 0:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
Nesta sada, os bits de permisso do arquivo so redefinidos de 644 para 640. As permisses de leitura de everyone@ foram removidas com sucesso dos bits de permisso do arquivo quando as permisses allow da ACL foram removidas de everyone@. No exemplo abaixo, a ACL existente substituda pelas permisses read_data/write_data em everyone@.
# chmod A=everyone@:read_data/write_data:allow file.3 # ls -v file.3 -rw-rw-rw- 1 root root 27482 Jun 23 15:14 file.3 0:everyone@:read_data/write_data:allow
Nessa sada, a sintaxe chmod substitui com sucesso a ACL existente pelas permisses read_data/write_data:allow para permitir leitura/gravao em owner, group e everyone@. Nesse modelo, everyone@ especifica para qualquer usurio ou grupo. Visto que no existe nenhuma entrada ACL de owner@ ou de group@ para substituir as permisses para proprietrio e grupo, os bits de permisso so definidos como 666. No exemplo abaixo, a ACL existente substituda pelas permisses de leitura no usurio gozer.
264
EXEMPLO 83
(Continuao)
# chmod A=user:gozer:read_data:allow file.3 # ls -v file.3 # ls -v file.3 ----------+ 1 root root 27482 Jun 23 15:14 file.3 0:user:gozer:read_data:allow
Nessa sada, as permisses do arquivo so calculadas para que sejam 000 porque no existe nenhuma entrada ACL em owner@, group@ ou everyone@, o que representa os componentes de permisses tradicionais de um arquivo. O proprietrio do arquivo pode solucionar esse problema redefinindo as permisses (e a ACL) da seguinte forma:
# chmod 655 file.3 # ls -v file.3 -rw-r-xr-x 1 root root 27482 Jun 23 15:14 file.3 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 2:group@:read_data/read_xattr/execute/read_attributes/read_acl /synchronize:allow 3:everyone@:read_data/read_xattr/execute/read_attributes/read_acl /synchronize:allow
EXEMPLO 84
Voc pode usar o comando chmod para remover todas as ACLs no-comuns em um arquivo ou diretrio. (exemplo de) No exemplo abaixo, existem duas ACEs no-comuns em test5.dir.
# ls -dv test5.dir drwxr-xr-x 2 root root 2 Jun 23 15:17 test5.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 1:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
No exemplo abaixo, as ACLs no-comuns de usurios gozer e lp so removidas. A ACL restante contm os valores padro para owner@, group@ e everyone@.
# chmod A- test5.dir # ls -dv test5.dir drwxr-xr-x 2 root root 2 Jun 23 15:17 test5.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 1:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
265
EXEMPLO 84
(Continuao)
2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Por padro, as ACLs no se propagam pela estrutura do diretrio. No exemplo abaixo, uma ACE no-comum de read_data/write_data/execute aplicada no usurio gozer em test.dir.
# chmod A+user:gozer:read_data/write_data/execute:allow test.dir # ls -dv test.dir drwxr-xr-x+ 2 root root 2 Jun 23 15:18 test.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute:allow 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 2:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Se for criado um subdiretrio test.dir, a ACE no se propaga para o usurio gozer. O usurio gozer teria acesso somente a sub.dir se as permisses em sub.dir lhe permitissem acessar como proprietrio de arquivo, membro de grupo ou everyone@.
# mkdir test.dir/sub.dir # ls -dv test.dir/sub.dir drwxr-xr-x 2 root root 2 Jun 23 15:19 test.dir/sub.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 1:group@:list_directory/read_data/read_xattr/execute/read_attributes
266
EXEMPLO 85
(Continuao)
Estas sries de exemplos identificam as ACEs do arquivo e do diretrio aplicadas quando o sinalizador file_inherit est definido. No exemplo a seguir, as permisses read_data/write_data so adicionadas para arquivos do diretrio test2.dir do usurio gozer, para que ele tenha acesso de leitura a quaisquer arquivos recm-criados.
# chmod A+user:gozer:read_data/write_data:file_inherit:allow test2.dir # ls -dv test2.dir drwxr-xr-x+ 2 root root 2 Jun 23 15:20 test2.dir 0:user:gozer:read_data/write_data:file_inherit:allow 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 2:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
No exemplo abaixo, as permisses do usurio gozerso aplicadas no arquivo test2.dir/file.2 recm-criado. A herana de ACL permitida, read_data:file_inherit:allow, indica que o usurio gozer pode ler o contedo de todos os arquivos recm-criados.
# touch test2.dir/file.2 # ls -v test2.dir/file.2 -rw-r--r--+ 1 root root 0 Jun 23 15:21 test2.dir/file.2 0:user:gozer:read_data:allow 1:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
Pelo fato de aclinherit estar definida como modo padro (groupmask) nesse sistema de arquivos, o usurio gozer no tem a permisso write_data no file.2 porque a permisso de grupo do arquivo no lhe d acesso. Observe que a permisso inherit_only, aplicada quando os sinalizadores file_inherit ou dir_inherit esto definidos, usada para propagar a ACL pela estrutura do diretrio. Como
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
267
EXEMPLO 86
(Continuao)
tal, o usurio gozer tem permisso concedida ou negada apenas a partir das permisses de everyone@, a no ser que ele seja o proprietrio do arquivo ou um membro do grupo ao qual o arquivo pertence. Por exemplo:
# mkdir test2.dir/subdir.2 # ls -dv test2.dir/subdir.2 drwxr-xr-x+ 2 root root 2 Jun 23 15:21 test2.dir/subdir.2 0:user:gozer:list_directory/read_data/add_file/write_data:file_inherit /inherit_only:allow 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 2:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
As sries de exemplos abaixo identificam as ACLs do arquivo e do diretrio aplicadas quando ambos sinalizadores, file_inherit e dir_inherit , esto definidos. No exemplo abaixo, o usurio gozer tem permisses de leitura, gravao e execuo herdadas por arquivos e diretrios recm-criados.
# chmod A+user:gozer:read_data/write_data/execute:file_inherit/dir_inherit:allow test3.dir # ls -dv test3.dir drwxr-xr-x+ 2 root root 2 Jun 23 15:22 test3.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute :file_inherit/dir_inherit:allow 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 2:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow # touch test3.dir/file.3 # ls -v test3.dir/file.3 -rw-r--r--+ 1 root root 0 Jun 23 15:25 test3.dir/file.3 0:user:gozer:read_data:allow 1:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow # mkdir test3.dir/subdir.1 # ls -dv test3.dir/subdir.1 drwxr-xr-x+ 2 root root
268
EXEMPLO 86
(Continuao)
Nestes exemplos, pelo fato de os bits de permisso do diretrio pai em group@ e everyone@ negarem as permisses de gravao e execuo, o usurio gozer no tem permisses de gravao e execuo. A propriedade aclmode padro restricted, o que indica que as permisses write_data e execute no so herdadas. No exemplo abaixo, o usurio gozer tem permisses de leitura, gravao e execuo herdadas por arquivos recm-criados, mas que no so propagadas para o contedo subseqente do diretrio.
# chmod A+user:gozer:read_data/write_data/execute:file_inherit/no_propagate:allow test4.dir # ls -dv test4.dir drwxr-xr-x+ 2 root root 2 Jun 23 15:27 test4.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute :file_inherit/no_propagate:allow 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 2:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Conforme ilustra o exemplo abaixo, quando um novo subdiretrio criado, a permisso read_data/write_data/execute do usurio gozer no se propaga para o novo diretrio sub4.dir.
# mkdir test4.dir/sub4.dir # ls -dv test4.dir/sub4.dir drwxr-xr-x 2 root root 2 Jun 23 15:28 test4.dir/sub4.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 1:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
269
EXEMPLO 86
(Continuao)
Conforme ilustra o exemplo abaixo, as permisses de gozer de read_data/write_data/execute so reduzidas com base nas permisses do grupo responsvel.
# touch test4.dir/file.4 # ls -v test4.dir/file.4 -rw-r--r--+ 1 root root 0 Jun 23 15:28 test4.dir/file.4 0:user:gozer:read_data:allow 1:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
EXEMPLO 87
Se a propriedade aclinherit estiver definida como passthrough no sistema de arquivos tank/cindy, o usurio gozer pode herdar a ACL aplicada em test4.dir para o file.4 recm-criado da seguinte forma:
# zfs set aclinherit=passthrough tank/cindy # touch test4.dir/file.4 # ls -v test4.dir/file.4 -rw-r--r--+ 1 root root 0 Jun 23 15:35 test4.dir/file.4 0:user:gozer:read_data:allow 1:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
EXEMPLO 88
Se a propriedade aclinherit estiver definida como discard em um sistema de arquivos, as ACLs podem ser potencialmente descartadas quando os bits de permisso de um diretrio se alteram. Por exemplo:
# zfs set aclinherit=discard tank/cindy # chmod A+user:gozer:read_data/write_data/execute:dir_inherit:allow test5.dir # ls -dv test5.dir drwxr-xr-x+ 2 root root 2 Jun 23 15:58 test5.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute :dir_inherit:allow 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 2:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
270
EXEMPLO 88
(Continuao)
3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Se, mais tarde, voc decidir comprimir os bits de permisso em um diretrio, a ACL no-comum descartada. Por exemplo:
# chmod 744 test5.dir # ls -dv test5.dir drwxr--r-- 2 root root 2 Jun 23 15:58 test5.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 1:group@:list_directory/read_data/read_xattr/read_attributes/read_acl /synchronize:allow 2:everyone@:list_directory/read_data/read_xattr/read_attributes/read_acl /synchronize:allow
EXEMPLO 89
No exemplo abaixo, esto definidas duas ACLs no-comuns com herana de arquivo. Uma ACL concede a permisso read_data e outra ACL nega a permisso read_data. Este exemplo ilustra tambm como voc pode especificar duas ACEs no mesmo comando chmod.
# zfs set aclinherit=noallow tank/cindy # chmod A+user:gozer:read_data:file_inherit:deny,user:lp:read_data:file_inherit:allow test6.dir # ls -dv test6.dir drwxr-xr-x+ 2 root root 2 Jun 23 16:00 test6.dir 0:user:gozer:read_data:file_inherit:deny 1:user:lp:read_data:file_inherit:allow 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/read_attributes /write_attributes/read_acl/write_acl/write_owner/synchronize:allow 3:group@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow 4:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow
Conforme mostra o exemplo abaixo, quando um novo arquivo criado, a ACL que concede a permisso read_data descartada.
# touch test6.dir/file.6 # ls -v test6.dir/file.6 -rw-r--r--+ 1 root root 0 Jun 15 12:19 test6.dir/file.6 0:user:gozer:read_data:inherited:deny 1:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
271
A sada de ACL compacta descrita da seguinte forma: owner@ O proprietrio pode ler e modificar o contedo do arquivo ( rw=read_data/write_data), (p= append_data). O proprietrio tambm pode modificar os atributos do arquivo, tais como registros de data/hora, atributos estendidos e ACLs (a=read_attributes , A=write_xattr, R= read_xattr, W=write_attributes, c=read_acl, C=write_acl). Alm disso, o proprietrio pode modificar a propriedade do arquivo (o=write_owner). A permisso de acesso synchronize no est implementada atualmente. group@ O grupo recebe permisses de leitura para o arquivo (r= read_data) e os atributos do arquivo (a=read_attributes , R=read_xattr, c= read_acl). A permisso de acesso synchronize no est implementada atualmente. everyone@ Todos os que no so nem usurios nem grupos tm permisses de leitura para o arquivo e para os atributos do arquivo (r=read_data, a=append_data, R=read_xattr , c=read_acl e s= synchronize). A permisso de acesso synchronize no est implementada atualmente. A ACL de formato compacto oferece as seguintes vantagens em relao ACL de formato verboso:
As permisses podem ser especificadas como argumentos posicionais para o comando chmod. Os hfens (-), que indicam "sem permisses", podem ser removidos e somente as letras requeridas devem ser especificadas. Ambos sinalizadores, de permisses e de herana, esto definidos no mesmo modo.
272
Para obter mais informaes sobre o uso de ACL de formato compacto, consulte Definindo e exibindo ACLs em arquivos ZFS no formato verboso na pgina 261.
EXEMPLO 810
No exemplo abaixo, o usurio gozer tem permisses de leitura, gravao e execuo que so herdadas pelos novos arquivos e diretrios atravs do formato compacto de ACL.
# chmod A+user:gozer:rwx:fd:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jun 23 16:04 dir.2 user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------:allow group@:r-x---a-R-c--s:------:allow everyone@:r-x---a-R-c--s:------:allow
Voc tambm pode recortar e colar os sinalizadores de permisses e de herana da sada ls -V no formato compacto chmod. Por exemplo, para duplicar os sinalizadores de permisses e de herana no dir.2 do usurio gozer para o usurio cindy em dir.2, copie e cole os sinalizadores de permisso e de herana (rwx-----------:fd----:allow )no comando chmod. Por exemplo:
# chmod A+user:cindy:rwx-----------:fd----:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jun 23 16:04 dir.2 user:cindy:rwx-----------:fd----:allow user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------:allow group@:r-x---a-R-c--s:------:allow everyone@:r-x---a-R-c--s:------:allow
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
273
EXEMPLO 811
Um sistema de arquivos que apresenta a propriedade aclinherit definida como passthrough herda todas as entradas da ACL sem as modificaes feitas em tais entradas quando estas so herdadas. Quando o valor da propriedade estiver definido como passthrough, os arquivos so criados com um modo de permisso determinado pelas ACEs herdveis. Se no houver ACEs herdveis que afetem o modo de permisso, ento o modo de permisso ser definido de acordo com o modo solicitado do aplicativo. Os exemplos seguintes usam a sintaxe compacta de ACL para mostrar como herdar bits de permisso definindo o modo aclinherit como passthrough. Neste exemplo, uma ACL est definida no test1.dir para forar a herana. A sintaxe cria uma entrada ACL de owner@, group@ e everyone@ para os arquivos recm-criados. O diretrios recm-criados herdam uma entrada ACL de @owner, group@ e everyone@.
# zfs set aclinherit=passthrough tank/cindy # pwd /tank/cindy # mkdir test1.dir # chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jun 23 16:10 test1.dir owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
Neste exemplo, o arquivo recm-criado herda a ACL que foi especificada para ser herdada nos arquivos recm-criados.
# cd test1.dir # touch file.1 # ls -V file.1 -rwxrwx---+ 1 root root 0 Jun 23 16:11 file.1 owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
Neste exemplo, o diretrio recm-criado herda as ACEs que controlam o acesso a este diretrio, bem como as ACEs para futuras propagaes para os filhos do diretrio recm-criado.
# mkdir subdir.1 # ls -dV subdir.1 drwxrwx---+ 2 root root 2 Jun 23 16:13 subdir.1 owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
274
EXEMPLO 811
(Continuao)
As entradas fd---- servem para propagar herana e no so consideradas durante o controle de acesso. Neste exemplo, criado um arquivo com uma ACL comum em outro diretrio no qual as ACEs herdadas no esto presentes.
# cd /tank/cindy # mkdir test2.dir # cd test2.dir # touch file.2 # ls -V file.2 -rw-r--r-- 1 root root 0 Jun 23 16:15 file.2 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
EXEMPLO 812
Quando aclinherit=passthrough-x estiver habilitado, os arquivos so criados com a permisso de executar (x) para o owner@, group@ ou everyone@, mas somente de a permisso de executar estiver definida no modo de criao de arquivo em uma ACE herdvel que afeta o modo Os exemplos a seguir mostram como herdar a permisso de executar ao definir o modo aclinherit como passthrough-x.
# zfs set aclinherit=passthrough-x tank/cindy
A seguinte ACL definida em /tank/cindy/test1.dir para fornecer uma herana de ACL executvel para arquivos para owner@.
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jun 23 16:17 test1.dir owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
Um arquivo (file1) criado com as permisses solicitadas 0666. As permisses resultantes so 0660. A permisso de execuo no foi herdada j que o modo de criao no a solicitou.
# touch test1.dir/file1 # ls -V test1.dir/file1 -rw-rw----+ 1 root root 0 Jun 23 16:18 test1.dir/file1 owner@:rw-pdDaARWcCos:------:allow group@:rw-p----------:------:allow everyone@:--------------:------:allow
Captulo 8 Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
275
EXEMPLO 812
(Continuao)
# cc -o t t.c # ls -V t -rwxrwx---+ 1 root root 7396 Dec 3 15:19 t owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
As permisses resultantes so 0770 porque o cc solicitou permisses 0777, que causou a herana da permisso de executar das entradas owner@, group@ e everyone@.
276
C A P T U L O
Este captulo descreve como utilizar a administrao delegada para permitir que usurios no-privilegiados efetuem tarefas de administrao no ZFS. Este captulo traz as seguintes sees:
Viso geral da administrao delegada de ZFS na pgina 277 Delegando permisses do ZFS na pgina 278 Exibindo permisses delegadas do ZFS (Exemplos) na pgina 286 Delegando permisses do ZFS (Exemplos) na pgina 282 Removendo permisses delegadas ZFS (exemplos) na pgina 287
Permisses individuais podem ser delegadas explicitamente como create, destroy, mount, snapshot, a assim por diante. Os grupos de permisses denominados conjuntos de permisses podem ser definidos. Um conjunto de permisses pode ser atualizado mais tarde e todos os consumidores deste conjunto adquirem automaticamente a alterao. Os conjuntos de permisses comeam com o caractere @ e esto limitados a 64 caracteres de extenso. Depois do smbolo @, os caracteres restantes no nome do conjunto apresentam as mesmas restries que os nomes de um sistema de arquivos ZFS normal.
A administrao delegada ZFS fornece recursos semelhantes ao modelo de segurana RBAC. O modelo de delegao do ZFS oferece as seguintes vantagens na administrao de conjuntos de armazenamento e sistemas de arquivos ZFS:
As permisses seguem o conjunto de armazenamento ZFS sempre que um conjunto for migrado.
277
Oferece herana dinmica, onde possvel controlar como as permisses se propagam pelos sistemas de arquivos. Pode ser configurado de forma que somente o criador de um sistema de arquivos possa destruir tal sistema de arquivos. possvel delegar permisses para sistemas de arquivos especficos. Os sistemas de arquivos recm-criados podem adquirir automaticamente as permisses. Fornece administrao do NFS simples. Por exemplo, um usurio com permisses explcitas pode criar um instantneo sobre o NFS no diretrio .zfs/snapshot apropriado.
Considere o uso da administrao delegada para distribuir tarefas do ZFS. Para informaes sobre a utilizao do RBAC para gerenciar tarefas de administrao gerais do Oracle Solaris, consulte Parte III, Roles, Rights Profiles, and Privileges, no System Administration Guide: Security Services.
As permisses individuais podem ser delegadas a um usurio, grupo ou a todos. Os grupos de permisses individuais podem ser delegados como um conjunto de permisses a um usurio, grupo ou a todos. Permisses podem ser delegadas tanto localmente apenas ao conjunto de dados atual quanto a todos os descendentes do conjunto de dados atual.
A tabela abaixo descreve as operaes que podem ser delegadas e as permisses dependentes requeridas para realizar as operaes delegadas.
278 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Permisso (Subcomando)
Descrio
Dependncias
allow
A permisso para conceder permisses que possui a outro usurio. A permisso para clonar quaisquer instantneos do conjunto de dados. A permisso para criar conjuntos de dados descendentes. A permisso para destruir um conjunto de dados. A permisso para identificar caminhos em um conjunto de dados. A permisso para manter um instantneo. A permisso para montar e desmontar um conjunto de dados e para criar e destruir os links do dispositivo de volume. A permisso para promover um clone para um conjunto de dados. A permisso para criar sistemas de arquivos descendentes com o comando zfs receive. A permisso para liberar um instantneo mantido, o que pode destruir o instantneo. A permisso para renomear um conjunto de dados. A permisso para reverter um instantneo. A permisso para enviar um fluxo de instantneo. A permisso para compartilhar e descompartilhar um conjunto de dados. A permisso para criar um instantneo de um conjunto de dados.
Tambm deve ter a permisso que est sendo concedida. Tambm deve possuir as permisses create e mount no sistema de arquivos original. Tambm deve possuir a permisso mount. Tambm deve possuir a permisso mount. Usurios no-raiz precisam desta permisso para usar o comando zfs diff.
clone
create
destroy
diff
hold
mount
promote
Tambm deve possuir as permisses mount e promover no sistema de arquivos original. Tambm deve possuir as permisses mount e create.
receive
release
rename
reverso
send
share
instantneo
279
possvel delegar os conjuntos de permisses a seguir, mas a permisso pode estar limitada para a permisso de acesso, leitura ou alterao:
Alm disso, possvel delegar as seguintes administraes das propriedades ZFS aos usurios no raiz:
aclinherit atime canmount casesensitivity soma de verificao compression copies devices exec logbias mountpoint nbmand normalization primarycache quota readonly recordsize refquota refreservation reservation rstchown secondarycache setuid shareiscsi sharenfs sharesmb snapdir sync utf8only version volblocksize volsize vscan xattr
280
zoned
Algumas destas propriedades podem ser definidas somente durante a criao do conjunto de dados. Para obter uma descrio destas propriedades, consulte Introduzindo as propriedades do ZFS na pgina 199.
A sintaxe de zfs allow abaixo (em negrito) identifica a quem as permisses so delegadas:
zfs allow [-uge]|user|group|everyone [,...] filesystem | volume
Podem ser especificadas vrias entidades em uma lista separada por vrgulas. Se no for especificada nenhuma opo -uge , o argumento interpretado preferencialmente como a palavra-chave everyone, a seguir, como um nome de usurio e, por ltimo, como um nome de grupo. Para especificar um usurio ou grupo denominado everyone, use a opo -u ou -g. Para especificar um grupo com o mesmo nome de um usurio, use a opo -g. A opo -c delega permisses do tempo de criao. A sintaxe de zfs allow abaixo (em negrito) identifica como as permisses e os conjuntos de permisses so especificados:
zfs allow [-s] ... perm|@setname [,...] filesystem | volume
Podem ser especificadas vrias permisses em uma lista separada por vrgulas. Os nomes das permisses so os mesmo dos subcomandos e propriedades do ZFS. Para obter mais informaes, consulte a seo anterior. As permisses podem ser reunidas em conjuntos de permisses e so definidas pela opo -s. Os conjuntos de permisses podem ser usados por outros comandos zfs allow no sistema de arquivos especificado e seus descendentes. Os conjuntos de permisses so avaliados dinamicamente, de modo que as alteraes no conjunto so atualizadas imediatamente. Os conjuntos de permisses seguem as mesmas convenes de identificao dos sistemas de arquivos ZFS, mas o nome deve comear com o sinal de arroba (@) e no pode ter mais de 64 caracteres em comprimento. A sintaxe de zfs allow abaixo (em negrito) identifica como as permisses so delegadas:
zfs allow [-ld] ... ... filesystem | volume
A opo -1 indica que a permisso concedida ao conjunto de dados especificado e no a seus descendentes, a menos que a opo -d tambm seja especificada. A opo -d indica que a
Captulo 9 Administrao delegada do ZFS do Oracle Solaris 281
permisso concedida aos conjuntos de dados descendentes e no a este conjunto de dados, a menos que a opo -1 tambm seja especificada. Se nenhuma das opes forem especificadas, ento as permisses so concedidas para o sistema de arquivos ou volume e a todos os seus descendentes.
Ao delegar as permisses create e mount a um usurio individual, necessrio ter certeza de que o usurio tem as permisses no ponto de montagem subjacente. Por exemplo, para delegar ao usurio as permisses mark create e mount no sistema de arquivos tank, defina primeiro as permisses:
# chmod A+user:mark:add_subdirectory:fd:allow /tank/home
A seguir, utilize o comando zfs allow para delegar as permisses create, destroy e mount. Por exemplo:
# zfs allow mark create,destroy,mount tank/home
Agora, o usurio mark pode criar seus prprios sistemas de arquivos no sistema de arquivos tank. Por exemplo:
# su mark mark$ zfs create tank/home/mark mark$ ^D
282 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
EXEMPLO 91
(Continuao)
O exemplo seguinte mostra como configurar um sistema de arquivos para que todos no grupo staff possam criar e montar sistemas de arquivos no sistema de arquivos tank, bem como destruir seus prprios sistemas de arquivos. No entanto, os membros do grupo staff no podem destruir os sistemas de arquivos de outros.
# zfs allow staff create,mount tank/home # zfs allow -c create,destroy tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------Create time permissions: create,destroy Local+Descendent permissions: group staff create,mount # su cindy cindy% zfs create tank/home/cindy cindy% exit # su mark mark% zfs create tank/home/mark/data mark% exit cindy% zfs destroy tank/home/mark/data cannot destroy tank/home/mark/data: permission denied
EXEMPLO 93
Certifique-se de ter delegado permisso aos usurios no nvel correto do sistema de arquivos. Por exemplo, ao usurio mark so delegadas as permisses create, destroy e mount para os sistemas de arquivos locais e descendentes. Ao usurio mark, concedida a permisso local para realizar instantneos do sistema de arquivos tank/home, mas no a permisso para realizar instantneos do seu prprio sistema de arquivos. Assim, ele no tem a permisso snapshot delegada no nvel correto do sistema de arquivos.
# zfs allow -l mark snapshot tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------Create time permissions: create,destroy Local permissions: user mark snapshot Local+Descendent permissions: group staff create,mount # su mark mark$ zfs snapshot tank/home@snap1 mark$ zfs snapshot tank/home/mark@snap1 cannot create snapshot tank/home/mark@snap1: permission denied
Captulo 9 Administrao delegada do ZFS do Oracle Solaris 283
EXEMPLO 93
(Continuao)
Para conceder ao usurio mark a permisso no nvel do descendente, utilize a opo zfs allow - d. Por exemplo:
# zfs unallow -l mark snapshot tank/home # zfs allow -d mark snapshot tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------Create time permissions: create,destroy Descendent permissions: user mark snapshot Local+Descendent permissions: group staff create,mount # su mark $ zfs snapshot tank/home@snap2 cannot create snapshot tank/home@snap2: permission denied $ zfs snapshot tank/home/mark@snappy
Agora, o usurio mark pode apenas criar um instantneo abaixo do nvel do sistema de arquivos tank/home.
EXEMPLO 94
possvel delegar permisses especficas a usurios ou grupos. Por exemplo, o comando zfs allow a seguir delega permisses especficas ao grupo staff. Alm disso, as permisses destroy e snapshot so delegadas aps a criao dos sistemas de arquivos tank/home.
# zfs allow staff create,mount tank/home # zfs allow -c destroy,snapshot tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------Create time permissions: create,destroy,snapshot Local+Descendent permissions: group staff create,mount
Como o usurio mark membro do grupo staff, ele pode criar sistemas de arquivos tank/home. Alm disso, o usurio mark pode criar um instantneo de tank/home/mark2 porque possui as permisses especficas para isso. Por exemplo:
# su mark $ zfs create tank/home/mark2 $ zfs allow tank/home/mark2 ---- Permissions on tank/home/mark2 ---------------------------------Local permissions: user mark create,destroy,snapshot ---- Permissions on tank/home ---------------------------------------Create time permissions: create,destroy,snapshot Local+Descendent permissions: group staff create,mount
284 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
EXEMPLO 94
(Continuao)
Mas o usurio mark no pode criar um instantneo em tank/home/mark porque ele no possui a permisso especfica para faz-lo. Por exemplo:
$ zfs snapshot tank/home/mark2@snap1 $ zfs snapshot tank/home/mark@snap1 cannot create snapshot tank/home/mark@snap1: permission denied
Neste exemplo, usurio mark possui permisso create no diretrio home, o que significa que ele pode criar instantneos. Esta situao til quando o sistema de arquivos est montado em NFS.
EXEMPLO 95
O exemplo a seguir mostra como criar um conjunto de permisses @myset e delegar o conjunto de permisses no grupo staff para o sistema de arquivos tank. O usurio cindy, membro do grupo staff, possui a permisso para criar um sistema de arquivos em tank. Entretanto, o usurio lp no possui permisso para criar um sistema de arquivos em tank.
# zfs allow -s @myset create,destroy,mount,snapshot,promote,clone,readonly tank # zfs allow tank ---- Permissions on tank --------------------------------------------Permission sets: @myset clone,create,destroy,mount,promote,readonly,snapshot # zfs allow staff @myset,rename tank # zfs allow tank ---- Permissions on tank --------------------------------------------Permission sets: @myset clone,create,destroy,mount,promote,readonly,snapshot Local+Descendent permissions: group staff @myset,rename # chmod A+group:staff:add_subdirectory:fd:allow tank # su cindy cindy% zfs create tank/data cindy% zfs allow tank ---- Permissions on tank --------------------------------------------Permission sets: @myset clone,create,destroy,mount,promote,readonly,snapshot Local+Descendent permissions: group staff @myset,rename cindy% ls -l /tank total 15 drwxr-xr-x 2 cindy staff 2 Jun 24 10:55 data cindy% exit # su lp $ zfs create tank/lp cannot create tank/lp: permission denied
285
Este comando exibe permisses que so definidas ou concedidas no conjunto de dados especfico. A sada contm os seguintes componentes:
Conjuntos de permisso Permisses individuais ou permisses do tempo de criao Conjunto de dados local Conjuntos de dados locais e descendentes Conjuntos de dados descendentes somente
Exibindo permisses bsicas de administrao delegada
EXEMPLO 96
A sada a seguir indica que o usurio cindy possui permisses de instantneo create, destroy, mount no sistema de arquivos tank/cindy.
# zfs allow tank/cindy ------------------------------------------------------------Local+Descendent permissions on (tank/cindy) user cindy create,destroy,mount,snapshot
EXEMPLO 97
A sada deste exemplo indica as seguintes permisses nos sistemas de arquivos pool/fred e pool. Para o sistema de arquivos pool/fred:
@eng (create, destroy , snapshot, mount, clone , promote, rename) @simple (create, mount )
As permisses do tempo da criao so definidas para o conjunto de permisses @eng e a propriedade mountpoint. Tempo de criao significa que depois da criao do conjunto de dados, o conjunto de permisses @eng e a permisso para definir a propriedade mountpoint so delegados. Ao usurio tom, delegado o conjunto de permisses @eng, e ao usurio joe so concedidas as permisses create, destroy e mount para sistemas de arquivos locais. Ao usurio fred, delegado o conjunto de permisses @basic, e as permisses share e rename para os sistemas de arquivos locais e descendentes. Ao usurio barney e ao grupo staff, delegado o conjunto de permisses @basic apenas para os sistemas de arquivos descendentes.
EXEMPLO 97
(Continuao)
Est definido o conjunto de permisses @simple (create, destroy, mount). Ao grupo staff concedido o conjunto de permisses @simple no sistema de arquivos local.
A sintaxe seguinte de zfs unallow remove a permisso de criao de instantneo do usurio cindy do sistema de arquivos tank/home/cindy: Como outro exemplo, o usurio mark possui as seguintes permisses no sistema de arquivos tank/home/mark:
# zfs allow tank/home/mark ---- Permissions on tank/home/mark ---------------------------------Local+Descendent permissions: user mark create,destroy,mount ------------------------------------------------------------Captulo 9 Administrao delegada do ZFS do Oracle Solaris 287
A sintaxe zfs unallow a seguir remove todas as permisses para o usurio mark do sistema de arquivos tank/home/mark:
# zfs unallow mark tank/home/mark
A sintaxe seguinte de zfs unallow remove um conjunto de permisses do sistema de arquivos tank.
# zfs allow tank ---- Permissions on tank --------------------------------------------Permission sets: @myset clone,create,destroy,mount,promote,readonly,snapshot Create time permissions: create,destroy,mount Local+Descendent permissions: group staff create,mount # zfs unallow -s @myset tank # zfs allow tank ---- Permissions on tank --------------------------------------------Create time permissions: create,destroy,mount Local+Descendent permissions: group staff create,mount
288
10
C A P T U L O
1 0
Este captulo descreve os volumes ZFS, o uso do ZFS em um sistema Solaris com regies instaladas, pools de raiz alternativa e perfis de direitos do ZFS. Este captulo traz as seguintes sees: Volumes ZFS na pgina 289 Usando ZFS em um sistema Solaris com regies instaladas na pgina 292 Usando pools de raiz alternativa do ZFS na pgina 298 Perfis de direitos do ZFS na pgina 299
Volumes ZFS
Um volume ZFS consiste em um conjunto de dados que representa um dispositivo de bloco. Os volumes do ZFS so identificados como dispositivos no diretrio /dev/zvol/{dsk,rdsk}/pool. No exemplo a seguir, um volume do ZFS de 5 GB, tank/vol criado:
# zfs create -V 5gb tank/vol
Ao criar um volume, uma reserva automaticamente definida ao tamanho inicial do volume para evitar a ocorrncia de comportamento inesperado. Por exemplo, se o tamanho do volume diminuir, os dados podem se corromper. Voc deve ter cuidado ao alterar o tamanho do volume. Alm disso, se criar um instantneo de um volume que altera em tamanho, voc pode introduzir inconsistncias se tentar reverter o instantneo ou criar um clone do instantneo. Para obter informaes sobre as propriedades do sistema de arquivos que podem ser aplicadas a volumes, consulte a Tabela 61.
289
Volumes ZFS
Se estiver usando um sistema Solaris com regies instaladas, voc no pode criar ou clonar um volume ZFS em uma regio no global. Qualquer tentativa para tal ir falhar. Para obter informaes sobre o uso de volumes ZFS em uma regio global, consulte Adicionando volumes ZFS a uma regio no global na pgina 294.
Durante a instalao de um sistema de arquivos raiz do ZFS ou a migrao de um sistema de arquivos raiz do UFS, criado um dispositivo de despejo em um volume do ZFS no conjunto raiz do ZFS. O dispositivo de despejo no requer administrao depois de configurado. Por exemplo:
# dumpadm Dump content: Dump device: Savecore directory: Savecore enabled:
Se precisar alterar a rea de intercmbio ou o dispositivo de dump aps a instalao ou atualizao do sistema, use os comandos swap e dumpadm como nas verses anteriores do Solaris. Se precisar criar um volume de permuta adicional, crie um volume do ZFS de um tamanho especfico e ative a permuta nesse dispositivo. Por exemplo:
# zfs create -V 2G rpool/swap2 # swap -a /dev/zvol/dsk/rpool/swap2 # swap -l swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 256,1 16 2097136 2097136 /dev/zvol/dsk/rpool/swap2 256,5 16 4194288 4194288
No permute para um arquivo em um sistema de arquivos ZFS. A configurao de arquivos de intercmbio ZFS no suportada. Para informaes sobre o ajuste do tamanho dos volumes de permuta e despejo, consulte Ajustando os tamanhos dos dispositivos de permuta e despejo ZFS na pgina 177.
290
Volumes ZFS
Depois da criao do destino iSCSI, configure o iniciador iSCSI. Para mais informaes sobre iniciadores e destinos iSCSI Solaris, consulte o Captulo 14, Configuring Oracle Solaris iSCSI Targets and Initiators (Tasks), no System Administration Guide: Devices and File Systems.
Observao Os destinos iSCSI Solaris tambm podem ser criados e gerenciados com o comando iscsitadm. Se definir a propriedade shareiscsi em um volume ZFS, no use o comando iscsitadm para criar o mesmo dispositivo de destino. Caso contrrio, voc cria informaes de destino duplicadas para o mesmo dispositivo.
Um volume do ZFS, como um destino iSCSI, gerenciado da mesma forma que qualquer outro conjunto de dados do ZFS. No entanto, as operaes rename, export e import funcionam um pouco diferente nos destinos iSCSI.
Quando um volume ZFS renomeado, o nome do destino iSCSI permanece o mesmo. Por exemplo:
# zfs rename tank/volumes/v2 tank/volumes/v1 # iscsitadm list target Target: tank/volumes/v1 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0
A exportao de um pool que contm um volume ZFS compartilhado faz com que o destino seja removido. A importao de um pool que contm um volume ZFS compartilhado faz com que o destino seja compartilhado. Por exemplo:
# zpool export tank # iscsitadm list target # zpool import tank # iscsitadm list target Target: tank/volumes/v1 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0
Todas as informaes de configurao do destino iSCSI so armazenadas com o conjunto de dados. Assim como um sistema de arquivos compartilhado NFS, um destino iSCSI que importado em um sistema diferente compartilhado apropriadamente.
Captulo 10 Tpicos avanados do ZFS do Oracle Solaris 291
Adicionando sistemas de arquivos ZFS a uma regio no global na pgina 293 Delegando conjuntos de dados a uma regio no global na pgina 294 Adicionando volumes ZFS a uma regio no global na pgina 294 Usando pools de armazenamento do ZFS dentro de uma regio na pgina 295 Gerenciando propriedades do ZFS dentro de uma regio na pgina 295 Entendendo a propriedade zoned na pgina 296
Para informaes sobre configurao de regies em um sistema com um sistema de arquivos raiz do ZFS que ser migrado ou ter patches instalados com o Live Upgrade, consulte Uso do Live Upgrade para migrar ou atualizar um sistema com regies (Solaris 10 10/08) na pgina 160 or Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regies (no mnimo Solaris 10 5/09) na pgina 165. Leve em considerao os seguintes pontos ao associar os conjuntos de dados ZFS a regies:
Voc pode adicionar um sistema de arquivos ou clone do ZFS a uma regio no global com ou sem delegar o controle administrativo. possvel adicionar um volume do ZFS como um dispositivo em regies no globais. No momento, no possvel associar instantneos do ZFS a regies.
Nas sees a seguir, um conjunto de dados do ZFS refere-se a um sistema de arquivos ou um clone. A adio de um conjunto de dados permite que a regio no global compartilhe espao em disco com a regio global, embora o administrador de regio no possa controlar as propriedades ou criar novos sistemas de arquivos na hierarquia do sistema de arquivos subjacente. Esta operao idntica adicionar outro tipo de sistema de arquivos a uma regio, e deve ser utilizada quando o objetivo principal for unicamente compartilhar espao em disco comum. O ZFS tambm permite que os conjuntos de dados sejam delegados a uma regio no global, proporcionando controle total do administrador de regies sobre o conjunto de dados e seus filhos. O administrador de regio pode criar e destruir os sistemas de arquivos ou clones dentro deste conjunto de dados, assim como modificar propriedades dos conjuntos de dados. O administrador de regies no pode afetar os conjuntos de dados que no foram adicionados regio, o que inclui exceder as cotas mximas definidas no conjunto de dados delegado. Considere as seguintes interaes ao trabalhar com o ZFS em um sistema Oracle Solaris com regies instaladas:
Um sistema de arquivos ZFS adicionado a uma regio no global deve ter a propriedade mountpoint definida como legado.
292
Devido ao problema 6449301, no adicione um conjunto de dados ZFS em uma regio no global quando a regio no global estiver configurada. Em vez disso, adicione um conjunto de dados ZFS depois que regio for instalada. Quando o zonepath de fonte e o zonepath de destino residirem em um sistema de arquivos do ZFS e estiverem no mesmo conjunto, o comando zoneadm clone utilizar automaticamente o ZFS para clonar uma regio. O comando zoneadm clone criar um instantneo do ZFS do zonepath de fonte e configurar o zonepath de destino. No possvel usar o comando zfs clone para clonar uma regio. Para obter mais informaes, consulte Parte II, Regies, no Guia de administrao do sistema: gerenciamento de recursos Oracle Solaris Containers e Oracle Solaris Zones. Caso voc delegue um sistema de arquivos do ZFS para uma regio no global, preciso remover aquele sistema de arquivos da regio no global antes de utilizar o Oracle Solaris Live Upgrade. Caso contrrio, o Oracle Live Upgrade ir falhar devido a um erro de sistema de arquivos de somente leitura.
O sistema de arquivos ZFS pode ser adicionado a uma regio no global com o subcomando add fs do comando zonecfg . No exemplo seguinte, um sistema de arquivos do ZFS adicionado a uma regio no global por um administrador global na regio global:
# zonecfg -z zion zonecfg:zion> add fs zonecfg:zion:fs> set type=zfs zonecfg:zion:fs> set special=tank/zone/zion zonecfg:zion:fs> set dir=/export/shared zonecfg:zion:fs> end
Esta sintaxe adiciona o sistema de arquivos do ZFS, tank/zone/zion, regio zion j configurada, montada em /export/shared. A propriedade mountpoint do sistema de arquivos deve ser definida como legacy (legado), e o sistema de arquivos j no poder ser montado em outro local. O administrador de regies pode criar e destruir arquivos dentro do sistema de arquivos. O sistema de arquivos no pode ser remontado em uma localizao diferente e o administrador de regies no pode alterar propriedades no sistema de arquivos, como atime,
Captulo 10 Tpicos avanados do ZFS do Oracle Solaris 293
readonly, compression, e etc. O administrador de regies globais responsvel por definir e controlar as propriedades do sistema de arquivos. Para obter mais informaes sobre o comando zonecfg e sobre a configurao dos tipos de recursos com zonecfg, consulte Parte II, Regies, no Guia de administrao do sistema: gerenciamento de recursos Oracle Solaris Containers e Oracle Solaris Zones.
Ao contrrio da adio de um sistema de arquivos, esta sintaxe faz com que o sistema de arquivos ZFS tank/zone/zion esteja visvel dentro da regio zion j configurada. O administrador de regies pode definir as propriedades do sistema de arquivos e criar sistemas de arquivos descendentes. Alm disso, o administrador de regio pode criar instantneos, clones e, por outro lado, controlar toda a hierarquia do sistema de arquivos. Se estiver utilizando o Oracle Solaris Live Upgrade para atualizar o BE do ZFS com regies no globais, remova primeiro todos os conjuntos de dados delegados. Caso contrrio, Oracle Solaris Live Upgrade falhar e apresentar o erro de sistema de arquivos de somente leitura. Por exemplo:
zonecfg:zion> zonecfg:zion> remove dataset name=tank/zone/zion zonecfg:zion1> exit
Para obter mais informaes sobre que aes so permitidas dentro das regies, consulte Gerenciando propriedades do ZFS dentro de uma regio na pgina 295.
No exemplo a seguir, um volume do ZFS adicionado a uma regio no global por um administrador de regio global na regio global:
# zonecfg -z zion zion: No such zone configured Use create to begin configuring a new zone. zonecfg:zion> create zonecfg:zion> add device zonecfg:zion:device> set match=/dev/zvol/dsk/tank/vol zonecfg:zion:device> end
Esta sintaxe adiciona o volume tank/vol para a regio zion . Observe que a adio de um volume bruto a uma regio apresenta riscos de segurana implcitos, mesmo que o volume no corresponda a um dispositivo fsico. Em particular, o administrador de regies poderia criar sistemas de arquivos invlidos que causariam graves danos no sistema quando houvesse uma tentativa de montagem. Para obter mais informaes sobre a adio de dispositivos a regies e os riscos de segurana relacionados, consulte Entendendo a propriedade zoned na pgina 296. Para obter mais informaes sobre a adio de dispositivos a regies, consulte Parte II, Regies, no Guia de administrao do sistema: gerenciamento de recursos Oracle Solaris Containers e Oracle Solaris Zones.
global# zfs list -Ho name tank tank/home tank/data tank/data/matrix tank/data/zion tank/data/zion/home
Se tank/data/zion fosse adicionado a uma regio, cada conjunto de dados teria as seguintes propriedades.
Conjunto de dados Visvel Gravvel Propriedades imutveis
No No Sim Sim
tank/data/zion/home
Observe que todos os pais de tank/zone/zion esto visveis como somente leitura, todos os descendentes so gravveis e os conjuntos de dados que no fazem parte da hierarquia pai no esto visveis de nenhuma forma. O administrador de regio no pode alterar a propriedade sharenfs porque as regies no globais no podem agir como servidores NFS. O administrador de regio no pode alterar a propriedade zoned porque isso apresentaria um risco de segurana, conforme descrito na prxima seo. Os usurios privilegiados na regio podem alterar qualquer outra propriedade que possa ser definida, exceto as propriedades quota e reservation. Este comportamento permite que o administrador de regio global controle o consumo do espao em disco de todos os conjuntos de dados utilizados pela regio no global. Alm disso, as propriedades sharenfs e mountpoint no podem ser alteradas pelo administrador de regio global depois que um conjunto de dados tiver sido delegado a uma regio no global.
em seu contedo. Como em qualquer sistema de arquivos, podem haver binrios setuid, links simblicos ou, seno, contedos duvidosos que poderiam afetar a segurana da regio global. Alm disso, a propriedade mountpoint no pode ser interpretada no contexto da regio global. Caso contrrio, o administrador de regies poderia afetar o espao de nome da regio global. Para abordar este ltimo, o ZFS usa a propriedade zoned para indicar que um conjunto de dados foi delegado a uma regio no global em um dado ponto no tempo. A propriedade zoned um valor booleano ativado automaticamente quando uma regio, contendo um conjunto de dados ZFS, inicializada pela primeira vez. Um administrador de regies no precisa ativar esta propriedade manualmente. Se a propriedade zoned estiver definida, o conjunto de dados no pode ser montado ou compartilhado na regio global. No exemplo a seguir, o tank/zone/zion foi delegado a uma regio, enquanto o tank/zone/global, no:
# zfs list -o name,zoned,mountpoint -r tank/zone NAME ZONED MOUNTPOINT tank/zone/global off /tank/zone/global tank/zone/zion on /tank/zone/zion # zfs mount tank/zone/global /tank/zone/global tank/zone/zion /export/zone/zion/root/tank/zone/zion
Observe a diferena entre a propriedade mountpoint e o diretrio no qual o conjunto de dados tank/zone/zion est montado atualmente. A propriedade mountpoint reflete a propriedade como estando armazenada em disco, no onde o conjunto de dados est montado atualmente no sistema. Quando um conjunto de dados removido de uma regio ou quando uma regio destruda, a propriedade zoned no apagada automaticamente. Este comportamento se deve aos riscos de segurana inerentes relacionados a essas tarefas. Devido ao fato de um usurio no confivel ter tido total acesso ao conjunto de dados e a seus descendentes, a propriedade mountpoint pode ser definida com valores incorretos ou pode haver binrios setuid nos sistemas de arquivos. Para evitar eventuais riscos de segurana, a propriedade zoned deve ser apagada manualmente pelo administrador global se voc desejar reutilizar o conjunto de dados. Antes de definir a propriedade zoned como off, certifique-se de que a propriedade mountpoint do conjunto de dados e de todos os seus descendentes esteja definida com valores aceitveis e que no existam binrios setuid, ou que a propriedade setuid esteja desativada. Depois de ter verificado se no existem vulnerabilidades na segurana, a propriedade zoned pode ser desativada atravs do comando zfs set ou zfs inheri . Se a propriedade zoned for desativada enquanto um conjunto de dados estiver sendo usado dentro de uma regio, o sistema pode se comportar de forma imprevisvel. Altere a propriedade somente se tiver certeza de que o conjunto de dados j no esteja sendo usado por uma regio no global.
297
Observe o sistema de arquivos nico, morpheus, cujo ponto de montagem a raiz alternativa do pool, /mnt. O ponto de montagem armazenado em disco / e o caminho completo para /mnt interpretado somente no contexto inicial da criao do conjunto. Este sistema de arquivos poder, ento, ser importado e exportado atravs de um conjunto raiz alternativo arbitrrio em um sistema diferente utilizando a sintaxe do valor de raiz alternativa -R.
# zpool export morpheus # zpool import morpheus cannot mount /: directory is not empty # zpool export morpheus # zpool import -R /mnt morpheus # zfs list morpheus NAME USED AVAIL REFER MOUNTPOINT morpheus 32.5K 33.5G 8K /mnt
interpretados no contexto da raiz atual, mas sim em algum diretrio temporrio no qual seja possvel realizar correes. Este recurso tambm pode ser utilizado ao montar mdias removveis conforme descrito anteriormente. No exemplo abaixo, um pool denominado morpheus importado com /mnt como o caminho de raiz alternativa. Neste exemplo pressupe-se que morpheus foi previamente exportado.
# zpool import -R /a pool # zpool list morpheus NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 44.8G 78K 44.7G 0% ONLINE /a # zfs list pool NAME USED AVAIL REFER MOUNTPOINT pool 73.5K 44.1G 21K /a/pool
Gerenciamento de armazenamento do ZFS: oferece o privilgio de criar, destruir e manipular dispositivos dentro de um conjunto de armazenamento do ZFS Gerenciamentos de sistema de arquivos do ZFS: oferece o privilgio de criar, destruir e modificar os sistemas de arquivos do ZFS
Para obter mais informaes sobre a criao ou atribuio de funes, consulte o System Administration Guide: Security Services . Alm de usar as funes RBAC para administrar sistemas de arquivos ZFS, tambm se deve levar em considerao o uso da administrao delegada do ZFS nas tarefas de administrao distribudas do ZFS. Para mais informaes, consulte Captulo 9, Administrao delegada do ZFS do Oracle Solaris.
299
300
11
C A P T U L O
1 1
Este captulo descreve como identificar e recuperar a partir de falhas do ZFS. Tambm so fornecidas informaes sobre como evitar tais falhas. Este captulo traz as seguintes sees: Identificando falhas do ZFS na pgina 301 Verificando a integridade do sistema de arquivos ZFS na pgina 303 Resolvendo problemas com o ZFS na pgina 305 Reparando uma configurao do ZFS danificada na pgina 310 Reparando um dispositivo faltando na pgina 311 Substituindo ou reparando um dispositivo modificado na pgina 313 Reparando dados danificados na pgina 322 Reparando um sistema no inicializvel na pgina 327
Ausncia de dispositivos em um pool de armazenamento do ZFS na pgina 302 Dispositivos danificados em um pool de armazenamento do ZFS na pgina 302 Dados corrompidos do ZFS na pgina 302
Observe que um nico pool pode sofrer os trs tipos de erros, de modo que o procedimento completo de reparao implica em encontrar e corrigir o erro, passar para o prximo erro, e assim por diante.
301
Se todos os componentes de um espelho so removidos Se mais de um dispositivo em um dispositivo (raidz1) RAID-Z removido Se o dispositivo de nvel superior removido em uma configurao de disco nico
Erros transitrios de E/S devido a disco ou controlador defeituosos Corrupo de dados em disco devido a raios csmicos Erros de driver resultando em transferncia de dados de ou para locais incorretos Um usurio substitui pores do dispositivo fsico por acidente
Em alguns casos, estes erros so transitrios, como um erro de E/S aleatrio durante problemas com o controlador. Em outros casos, o problema pode ser permanente, como a corrupo em disco. Ainda assim, se o problema for permanente, isso no significa necessariamente que o erro ocorrer novamente. Por exemplo, se um administrador substitui acidentalmente parte de um disco, e nenhum tipo de falha de hardware ocorre, o dispositivo no precisa ser trocado. Identificar exatamente o problema com o dispositivo no uma tarefa fcil, por isso esse tema abordado mais detalhadamente em uma seo posterior.
A corrupo de dados sempre permanente e requer cuidados especiais durante a reparao. Mesmo que os dispositivos subjacentes forem reparados ou substitudos, os dados originais no podero ser recuperados. Frequentemente, esse tipo de situao requer a recuperao dos dados a partir de backups. Os erros dos dados so registrados medida que vo sendo encontrados e podem ser controlados atravs de scrubbing rotineira do conjunto, como explicado na seo seguinte. Quando um bloco corrompido removido, o prximo ciclo de limpeza reconhece que a corrupo j no existe e remove qualquer vestgio de erro do sistema.
efetuar verificaes rotineiras de todos as inconsistncias. Esse recurso, conhecido como scrubbing, utilizado, geralmente, na memria e em outros sistemas como um mtodo de deteco e preveno de erros, antes que estes provoquem falha de hardware ou de software.
O status da operao de scrubbing atual pode ser exibido utilizando o comando zpool status. Por exemplo:
# zpool pool: state: scrub: config: status -v tank tank ONLINE scrub completed after 0h7m with 0 errors on Tue Tue Feb 2 12:54:00 2010 NAME tank mirror-0 c1t0d0 c1t1d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0
Somente uma operao de scrubbing ativa por conjunto pode ocorrer por vez. possvel parar uma operao de scrubbing em andamento com a opo -s. Por exemplo:
# zpool scrub -s tank
Na maioria dos casos, as operaes de scrubbing devem chegar at o final para garantir a integridade dos dados. Interrompa uma operao de scrubbing de acordo com os seus prprios critrios se a performance do sistema impactada pela operao.
304 Guia de administrao do ZFS Oracle Solaris Agosto de 2011
Efetuar scrubbing de rotina garante E/S contnua para todos os discos do sistema. Scrubbing rotineiros apresentam a desvantagem de no permitir que o gerenciamento de energia coloque os discos inativos no modo de energia baixa. Se o sistema estiver geralmente realizando E/S sem parar ou se o consumo de energia no for uma preocupao, ento esta questo pode ser ignorada sem perigo. Para obter mais informaes sobre a interpretao da sada zpool status, consulte Consultando status de pool de armazenamento do ZFS na pgina 108.
Determinando se h problemas em um conjunto de armazenamento do ZFS na pgina 306 Revisando a sada de zpool status na pgina 307 Relatrio de mensagens de erros do ZFS do sistema na pgina 310
Voc pode usar os seguintes recursos para identificar problemas na configurao do seu ZFS:
O conjunto de armazenamento do ZFS detalhado pode ser exibido atravs da utilizao do comando zpool status. As falhas do conjunto e do dispositivo so relatadas atravs de mensagens de diagnstico ZFS/FMA. Os comandos do ZFS anteriores que modificaram as informaes de estado do conjunto podem ser exibidos atravs da utilizao do comando zpool history.
A maioria das solues de problemas do ZFS envolvem o comando zpool status. Esse comando analisa as diferentes falhas no sistema e identifica o problema mais grave, apresentando-lhe aes sugeridas e um link a um artigo com mais informaes. Observe que o comando identifica somente um nico problema com o conjunto, embora existam vrios problemas. Por exemplo, erros de dados corrompidos geralmente implicam que um dos dispositivos falhou, mas substituir os dispositivos falhos no deve resolver todos os problemas de corrupo de dados.
Captulo 11 Soluo de problemas e conjunto de recuperao do Oracle Solaris ZFS 305
Alm disso, um diagnstico do ZFS gera diagnsticos e relata falhas de conjuntos e de dispositivos. Soma de verificao, E/S, dispositivo, e erros de conjuntos associados com essas falhas tambm so reportadas. As falhas do ZFS, conforme relatadas por fmd, so exibidas no console, bem como no arquivo de mensagens do sistema. Na maioria dos casos, a mensagem fmd leva voc ao comando zpool status para obter instrues de recuperao adicionais. O processo bsico de recuperao realiza-se da seguinte forma:
Se for apropriado, utilize o comando zpool history para identificar os comandos do ZFS que precedem cenrio do erro. Por exemplo:
# zpool history tank History for tank: 2010-07-15.12:06:50 zpool create tank mirror c0t1d0 c0t2d0 c0t3d0 2010-07-15.12:06:58 zfs create tank/erick 2010-07-15.12:07:01 zfs set checksum=off tank/erick
Nessa sada, note que as somas de verificao esto desativadas no sistema de arquivos tank/erick . Esta configurao no recomendvel.
Identifique os erros atravs das mensagens fmd exibidas no console do sistema ou nos arquivos /var/adm/messages. Localize as instrues de reparao adicionais atravs da utilizao do comando zpool status -x. Reparar falhas envolve as etapas a seguir:
Substitua o dispositivo defeituoso ou ausente e o coloque on-line. Restaure a configurao defeituosa ou os dados corrompidos a partir de um backup. Verifique a recuperao utilizando o comando zpool status - x. Efetue backup da configurao restaurada, se aplicvel.
Essa seo descreve como interpretar a sada de zpool status a fim de diagnosticar os tipos de falhas que podem ocorrer. Embora a maioria do trabalho seja efetuado automaticamente pelo comando, importante entender exatamente que problemas esto sendo identificados a fim de diagnosticar o tipo da falha. Sees subsequentes descrevem como reparar vrios problemas que voc pode encontrar.
Sem o sinalizador -x, o comando exibe o status completo de todos os pools (ou do pool solicitado, se especificado na linha de comando), mesmo que os pools no apresentem falhas. Para obter mais informaes sobre opes de linha de comando para o comando zpool status, consulte Consultando status de pool de armazenamento do ZFS na pgina 108.
scrub
Identifique o status atual da operao de scrub, que deve incluir a data e a hora de concluso do ltimo scrub realizado, um scrub em andamento ou se nenhum scrub foi solicitado. Identifica erros de dados ou ausncia de erros de dados conhecidos.
errors
READ: erros de E/S ocorridos durante uma solicitao de leitura WRITE: erros de E/S ocorridos durante uma solicitao de gravao CKSUM: erros de soma de verificao, significam que o dispositivo retornou dados corrompidos como resultado de uma requisio de leitura
Estes erros podem ser usados para determinar se o dano permanente. Uma pequena quantidade de erros de E/S pode indicar uma interrupo temporria, enquanto que uma grande quantidade pode indicar um problema permanente com o dispositivo. Estes erros no correspondem necessariamente corrupo de dados conforme interpretado pelos aplicativos. Se o dispositivo estiver em uma configurao redundante, os dispositivos podem exibir erros incorrigveis, enquanto nenhum erro aparece no espelho ou no nvel do dispositivo RAID-Z. Em tais casos, o ZFS recupera com sucesso os dados bons e tenta reabilitar dados danificados a partir das rplicas existentes. Para mais informaes sobre a interpretao desses erros, consulte Determinando o tipo de falha do dispositivo na pgina 313. Finalmente, na ltima coluna da sada de zpool status se encontram informaes adicionais auxiliares. Essas informaes abrangem o campo estado, auxiliando em diagnsticos de falhas. Se um dispositivo apresenta o estado FAULTED, este campo indica se o dispositivo encontra-se inacessvel ou se os dados do dispositivo esto corrompidos. Se o dispositivo estiver sendo submetido a um resilvering, este campo exibe o progresso atual. Para mais informaes sobre a monitorao do progresso de resilvering, consulte Exibindo o status do resilvering na pgina 321.
308
Status do scrubbing
A terceira seo de scrub da sada zpool status descreve o status atual de quaisquer operaes de scrubbing explcitas. Se qualquer tipo de erro for detectado no sistema, estas informaes sero diferentes, embora possam ser usadas para determinar a preciso do relatrio de erro de corrupo de dados. Se o ltimo scrubbing acabou de ser concludo, provavelmente nenhuma corrupo de dados conhecida foi encontrada. Mensagens de finalizao de scrub persistem atravs da reinicializao do sistema. Para mais informaes sobre o scrubbing de dados e como interpretar essas informaes, consulte Verificando a integridade do sistema de arquivos ZFS na pgina 303.
errors: Permanent errors have been detected in the following files: /tank/data/aaa /tank/data/bbb /tank/data/ccc
309
Uma mensagem semelhante tambm exibida pelo fmd no console do sistema e no arquivo /var/adm/messages. Estas mensagens tambm podem ser rastreadas atravs do comando fmdump. Para obter mais informaes sobre a interpretao dos erros de corrupo de dados, consulte Identificando o tipo de corrupo de dados na pgina 323.
Transio de estado do dispositivo Se um dispositivo passa a ser FAULTED, o ZFS registra uma mensagem indicando que a tolerncia a falhas do pool pode estar em risco. Uma mensagem semelhante enviada se o dispositivo passar a ser on-line, restaurando a normalidade do pool. Corrupo de dados Se for detectado qualquer tipo de corrupo de dados, o ZFS registra uma mensagem descrevendo quando e onde a corrupo foi detectada. Esta mensagem registrada somente na primeira vez que a corrupo detectada. Os acessos subseqentes no geram mensagens. Falhas de conjunto e de dispositivos: se ocorrer uma falha de conjunto ou de dispositivo, o daemon do gerenciador de falhas relata esses erros atravs de mensagens syslog bem como o fmdump.
Se o ZFS detectar um erro de dispositivo e se recuperar automaticamente, no ocorre nenhuma notificao. Tais erros no representam uma falha na integridade dos dados ou de redundncia do conjunto. So normalmente o resultado de um problema do driver acompanhado por seu prprio conjunto de mensagens de erro.
310
ausncia de um nmero desconhecido de dispositivos virtuais de nvel superior. Em ambos os casos, a configurao pode ser recuperada exportando o conjunto (se estiver visvel) e importando-o novamente. Para mais informaes sobre a importao e exportao de conjuntos, consulte Migrando pools de armazenamento do ZFS na pgina 118.
Para visualizar mais informaes detalhadas sobre problemas e resolues de dispositivos, utilize o comando zpool status -x. Por exemplo:
# zpool pool: state: status: status -x tank DEGRADED One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using zpool online. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: scrub completed after 0h0m with 0 errors on Tue Feb 2 13:15:20 2010 config: NAME tank mirror-0 c1t0d0 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0
311
0 cannot open
possvel observar nessa sada que o dispositivo c1t1d0 ausente no est funcionando. Se voc determinar que o dispositivo falho, substitua-o. Depois, utilize o comando zpool online para colocar o dispositivo substitudo on-line. Por exemplo:
# zpool online tank c1t1d0
Como uma ltima etapa, confirme que o conjunto com o dispositivo substitudo est ntegro. Por exemplo:
# zpool status -x tank pool tank is healthy
312
Para obter mais informaes sobre como colocar dispositivos on-line, consulte Colocando um dispositivo on-line na pgina 96.
Bit rot: com o tempo, eventos aleatrios, como influncias magnticas e raios csmicos, podem fazer com que os bits armazenados no disco se invertam. Estes eventos so relativamente raros, mas comuns o suficiente para provocar corrupo de dados em sistemas grandes ou que esto em funcionamento durante longos perodos de tempo. Leituras ou gravaes mal endereadas Erros de firmware ou falhas de hardware podem fazer com que leituras e gravaes de blocos inteiros faam referncia a locais incorretos no disco. Esses erros so normalmente transitrios, embora uma grande quantidade pode indicar um drive defeituosa. Erro do administrador: os administradores podem substituir involuntariamente partes do disco por dados ruins (como copiar /dev/zero sobre partes do disco) que provocam a corrupo permanente deste. Estes erros so sempre transitrios. Interrupes temporrias Um disco pode no estar disponvel durante um perodo de tempo, causando falhas de E/S. Esta situao est associada geralmente a dispositivos anexados rede, embora os discos locais tambm possam sofrer interrupes temporrias. Estes erros podem ou no ser transitrios. Hardware defeituoso ou anormal: essa situao um resumo de todos os vrios problemas que hardware defeituoso exibe, incluindo erros de E/S de consistncia, transportes causando corrupo aleatria ou alguns nmeros de falhas. Estes erros so normalmente permanentes. Dispositivo off-line: se um dispositivo estiver off-line, supe-se que o administrador o colocou nesse estado porque estava defeituoso. O administrador que colocou o dispositivo nesse estado pode determinar se esta suposio precisa.
A determinao exata do problema pode ser um processo difcil. A primeira etapa examinar as contagens de erros na sada zpool status. Por exemplo:
313
status -v tpool tpool ONLINE One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A scrub: scrub completed after 0h0m with 2 errors on Tue Jul 13 11:08:37 2010 config: NAME STATE READ WRITE CKSUM tpool ONLINE 2 0 0 c1t1d0 ONLINE 2 0 0 c1t3d0 ONLINE 0 0 0 errors: Permanent errors have been detected in the following files: /tpool/words
Os erros esto divididos em erros de E/S e erros de soma de verificao, e ambos podem indicar o possvel tipo de falha. As operaes normais prevem uma pequena quantidade de erros (apenas alguns erros em longos perodos de tempo). Se voc estiver vendo uma grande quantidade de erros, ento essa situao provavelmente indica uma falha completa do dispositivo ou iminente. No entanto, um erro de administrador pode tambm resultar em uma grande contagem de erros. Outra fonte de informaes o log do sistema syslog. Se o registro mostrar um grande nmero de mensagens de driver de Fibre Channel ou de SCSI, ento essa situao provavelmente indica srios problemas de hardware. Se no for gerada nenhuma mensagem no syslog, ento o dano provavelmente transiente. O objetivo responder seguinte pergunta: provvel que ocorra outro erro neste dispositivo? Os erros que acontecem somente uma vez so considerados transiente e no indicam falhas potenciais. Os erros que so persistentes ou suficientemente graves para indicar possvel falha de hardware so considerados fatais. A ao de determinar o tipo de erro no est dentro do mbito de nenhum software automatizado disponvel atualmente com ZFS e muitas aes devem ser realizadas manualmente por voc, o administrador. Depois de determinar o erro, a ao apropriada pode ser realizada. Apague os erros transitrios ou substitua o dispositivo devido aos erros fatais. Estes procedimentos de reparao esto descritos nas prximas sees. Mesmo que os erros de dispositivo sejam considerados transientes, eles ainda podem ter provocado erros de dados incorrigveis dentro do conjunto. Estes erros requerem procedimentos de reparao especiais, mesmo se o dispositivo estiver em boas condies ou tiver sido reparado. Para mais informaes sobre a reparao de erros dos dados, consulte Reparando dados danificados na pgina 322.
314
Essa sintaxe elimina os erros do dispositivo e elimina quaisquer contagens de erros associadas a este dispositivo. Para eliminar todos os erros associados aos dispositivos virtuais em um conjunto e quaisquer contagens de erros de dados associadas ao conjunto, utilize sintaxe a seguir:
# zpool clear tank
Para mais informaes sobre como eliminar erros do conjunto, consulte Limpando erros de dispositivo de conjunto de armazenamento na pgina 97.
Determinando se um dispositivo pode ser substitudo na pgina 315 Dispositivos que no podem ser substitudos na pgina 316 Substituindo um dispositivo em um pool de armazenamento do ZFS na pgina 316 Exibindo o status do resilvering na pgina 321
315
Na configurao a seguir, o disco c1t1d0 pode ser substitudo e os dados do conjunto so copiados da rplica integral c1t0d0:
mirror c1t0d0 c1t1d0 DEGRADED ONLINE FAULTED
O disco c1t0d0 tambm pode ser substitudo, embora a autocorreo dos dados no seja possvel devido falta de rplicas boas disponveis. Na configurao a seguir, nenhum dos discos defeituosos pode ser substitudo. Os discos ONLINE tambm no podem ser substitudos porque o prprio conjunto est defeituoso.
raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 FAULTED ONLINE FAULTED FAULTED ONLINE
Na configurao abaixo, ambos os discos de nvel superior podem ser substitudos, embora os dados defeituosos presentes no disco sejam copiados no novo disco.
c1t0d0 c1t1d0 ONLINE ONLINE
Se ambos os discos estiverem defeituosos, nenhuma substituio poder ser efetuada porque o prprio conjunto pode estar defeituoso.
316
Este comando migra os dados para o novo dispositivo a partir do dispositivo danificado ou de outros dispositivos do conjunto se este estiver em uma configurao redundante. Quando o comando estiver concludo, ele separa o dispositivo danificado da configurao, momento no qual o dispositivo pode ser removido do sistema. Se voc j tiver removido o dispositivo e o tiver substitudo por um dispositivo novo no mesmo local, use a forma simples de dispositivo do comando. Por exemplo:
# zpool replace tank c1t1d0
Este comando pega um disco no formatado, o formata adequadamente e, em seguida, comea a realizar o resilvering dos dados do restante da configurao. Para obter mais informaes sobre o comando zpool replace, consulte Substituindo dispositivos em um pool de armazenamento na pgina 97.
EXEMPLO 111
O exemplo a seguir mostra como substituir um dispositivo (c1t3d0) no conjunto de armazenamento espelhado tank em um sistema Sun Fire x4500 do Oracle. Para substituir o disco c1t3d0 por um novo disco no mesmo local (c1t3d0), desconfigure o disco antes de substitu-lo. A etapa bsica segue:
Coloque o disco off-line (c1t3d0) para ser substituido. No possvel desconfigurar um disco que esteja sendo usado. Utilize o comando cfgadm para identificar o disco (c1t3d0) para ser desconfigurado e desconfigure-o. O conjunto estar degradado com o disco off-line nessa configurao espelhada, mas continuar disponvel. Substitua fisicamente o disco (c1t3d0). Certifique-se de que o LED Ready to Remove azul esteja iluminado antes de remover fisicamente o drive defeituoso. Reconfigure o disco (c1t3d0). Coloque o novo disco (c1t3d0) novamente on-line. Execute o comando zpool replace para substituir o disco (c1t3d0).
Observao Se voc definiu anteriormente o autoreplace da propriedade do conjunto para
on, qualquer dispositivo novo, encontrado no mesmo local fsico que um dispositivo que antes pertencia ao conjunto, ser automaticamente formatado e substitudo sem o uso do comando zpool replace. Este recurso pode no ser suportado em todos os hardwares.
Se um disco defeituoso for substitudo automaticamente por um sobressalente, pode ser necessrio desanexar o sobressalente depois que o disco defeituoso for substitudo. Por exemplo, se c2t4d0 ainda um sobressalente ativo depois que o disco falho substitudo, desanexe-o.
317
EXEMPLO 111
(Continuao)
O exemplo a seguir percorre atravs das etapas para substituir um disco em um conjunto de armazenamento do ZFS.
# zpool offline tank c1t3d0 # cfgadm | grep c1t3d0 sata1/3::dsk/c1t3d0 disk connected configured ok # cfgadm -c unconfigure sata1/3 Unconfigure the device at: /devices/pci@0,0/pci1022,7458@2/pci11ab,11ab@1:3 This operation will suspend activity on the SATA device Continue (yes/no)? yes # cfgadm | grep sata1/3 sata1/3 disk connected unconfigured ok <Physically replace the failed disk c1t3d0> # cfgadm -c configure sata1/3 # cfgadm | grep sata1/3 sata1/3::dsk/c1t3d0 disk connected configured ok # zpool online tank c1t3d0 # zpool replace tank c1t3d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:17:32 2010 config: NAME tank mirror-0 c0t1d0 c1t1d0 mirror-1 c0t2d0 c1t2d0 mirror-2 c0t3d0 c1t3d0 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Observe que o zpool output anterior pode mostrar o disco novo e o antigo abaixo do cabealho replacing. Por exemplo:
replacing DEGRADED c1t3d0s0/o FAULTED c1t3d0 ONLINE 0 0 0 0 0 0 0 0 0
Esse texto significa que o processo de substituio est em andamento e que disco novo est sendo resilvered. Se voc for substituir um disco (c1t3d0) por outro (c4t3d0), ento ser necessrio apenas executar o comando zpool replace. Por exemplo:
318
EXEMPLO 111
(Continuao)
# zpool replace tank c1t3d0 c4t3d0 # zpool status pool: tank state: DEGRADED scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:35:41 2010 config: NAME tank mirror-0 c0t1d0 c1t1d0 mirror-1 c0t2d0 c1t2d0 mirror-2 c0t3d0 replacing c1t3d0 c4t3d0 STATE READ WRITE CKSUM DEGRADED 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 DEGRADED 0 0 0 OFFLINE 0 0 0 ONLINE 0 0 0
Voc pode precisar executar o comando zpool status vrias vezes at que a substituio do disco seja concluda.
# zpool pool: state: scrub: config: status tank tank ONLINE resilver completed after 0h0m with 0 errors on Tue Feb 2 13:35:41 2010 NAME tank mirror-0 c0t1d0 c1t1d0 mirror-1 c0t2d0 c1t2d0 mirror-2 c0t3d0 c4t3d0
EXEMPLO 112
STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE
O exemplo a seguir mostra como recuperar de um dispositivo de log falho c0t5d0 no conjunto de armazenamento pool). A etapa bsica segue:
319
EXEMPLO 112
(Continuao)
Substitua fisicamente o dispositivo de registro com falha. Coloque o dispositivo de log on-line. Limpe a condio de erro do pool.
status -x pool FAULTED One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run zpool online, or ignore the intent log records by running zpool clear. scrub: none requested config: NAME pool mirror c0t1d0 c0t4d0 logs c0t5d0 <Physically replace # zpool online pool # zpool clear pool # zpool pool: state: status: STATE READ WRITE CKSUM FAULTED 0 0 0 bad intent log ONLINE 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 FAULTED 0 0 0 bad intent log UNAVAIL 0 0 0 cannot open the failed log device> c0t5d0
status -x pool FAULTED One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run zpool online, or ignore the intent log records by running zpool clear. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open <Physically replace the failed log device> # zpool online pool c0t5d0 # zpool clear pool
320
O ZFS realiza resilvering somente da quantidade mnima de dados necessria. No caso de uma curta interrupo (como oposio a uma substituio completa do dispositivo), o disco inteiro pode ser resilvered em questo de minutos ou segundos. Quando todo o disco substitudo, o processo de resilvering leva o tempo proporcional quantidade de dados usados no disco. Substituir um disco de 500 GB pode levar alguns segundos se o conjunto s possuir poucos gigabytes de espao em disco utilizado. O resilvering um processo seguro e que pode ser interrompido. Se o sistema perder energia ou for reinicializado, o processo de resilvering recomea exatamente de onde parou, sem necessidade de nenhuma interveno manual.
Para exibir o processo de resilvering, use o comando zpool status. Por exemplo:
# zpool pool: state: status: status tank tank DEGRADED 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, 22.60% done, 0h1m to go config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 replacing-0 DEGRADED 0 0 0 c1t0d0 UNAVAIL 0 0 0 cannot open c2t0d0 ONLINE 0 0 0 85.0M resilvered c1t1d0 ONLINE 0 0 0 errors: No known data errors
Neste exemplo, o disco c1t0d0 est sendo substitudo pelo c2t0d0. Esse evento observado na sada de status pela presena do dispositivo virtual substituio na configurao. Esse dispositivo no real, no possvel criar um conjunto utilizando-o. O propsito desse dispositivo exclusivamente exibir o progresso do resilvering e identificar qual dispositivo est sendo substitudo. Note que qualquer conjunto atualmente submetido ao resilvering colocado em estado ONLINE ou DEGRADED porque o conjunto no pode fornecer o nvel desejado de redundncia at o
321
processo de resilvering estar completo. Apesar de a E/S estar sempre programada com uma prioridade menor do que a E/S solicitada pelo usurio, o resilvering realizado o mais rpido possvel para minimizar o impacto no sistema. Depois que o resilvering estiver completo, a configurao reverte para a nova e completa configurao. Por exemplo:
# zpool pool: state: scrub: config: status tank tank ONLINE resilver completed after 0h1m with 0 errors on Tue Feb 2 13:54:30 2010 NAME tank mirror-0 c2t0d0 c1t1d0 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 377M resilvered 0 0 0
O conjunto est novamente ONLINE e o disco falho original (c1t0d0) foi removido da configurao.
Identificando o tipo de corrupo de dados na pgina 323 Reparando arquivos ou diretrios corrompidos na pgina 324 Reparando o dano de todo o pool de armazenamento do ZFS na pgina 325
O ZFS utiliza a soma de verificao, redundncia e autocorreo de dados para minimizar o risco de corrupo de dados. Por outro lado, a corrupo de dados pode ocorrer se um conjunto no redundante, se a corrupo ocorreu enquanto um conjunto foi degradado ou uma srie de eventos conspirados para corromper cpias mltiplas de uma parte dos dados. Em relao origem, o resultado o mesmo: Os dados esto corrompidos e, portanto, no podem ser acessados. A ao tomada depende do tipo de dados que esto corrompidos e de seu valor relativo. Podem ser corrompidos dois tipos bsicos de dados:
Metadados do pool O ZFS requer uma determinada quantidade de dados a ser processada para abrir um pool e acessar os conjuntos de dados. Se esses dados esto corrompidos, todo o conjunto ou parte do conjunto de dados se tornar indisponvel. Dados do objeto Neste caso, a corrupo est dentro de um arquivo ou um diretrio especfico. Este problema pode fazer com que uma parte do arquivo ou diretrio no possa ser acessada ou que o objeto fique totalmente danificado.
322
Os dados so verificados durante operaes normais bem como atravs de um scrubbing. Para informaes sobre como verificar a integridade do conjunto de dados, consulte Verificando a integridade do sistema de arquivos ZFS na pgina 303.
Cada erro indica somente que um erro ocorreu em um dado momento. Os erros no esto necessariamente presentes no sistema at este momento. Sob circunstncias normais, esse o caso. Certas interrupes podem resultar em corrupo de dados que so automaticamente reparados depois que a interrupo acaba. realizado um scrubbing completo do pool a fim de examinar todos os blocos ativos no pool, assim o registro do erro redefinido sempre que o scrubbing terminar. Se detectar que os erros j no esto presentes e no quiser esperar a concluso do scrubbing, redefina todos os erros no pool com o comando zpool online. Se a corrupo de dados estiver nos metadados de todo o pool, a sada um pouco diferente. Por exemplo:
# zpool pool: id: state: status: action: see: config: status -v morpheus morpheus 1422736890544688191 FAULTED The pool metadata is corrupted. The pool cannot be imported due to damaged devices or data. http://www.sun.com/msg/ZFS-8000-72 morpheus c1t10d0 FAULTED ONLINE corrupted data
323
No caso de corrupo de conjunto extenso, o conjunto colocado em estado FAULTED porque o conjunto no pode fornecer o nvel requerido de redundncia.
errors: Permanent errors have been detected in the following files: /monkey/a.txt /monkey/bananas/b.txt /monkey/sub/dir/d.txt monkey/ghost/e.txt /monkey/ghost/boo/f.txt
A lista de nomes de arquivos com erros persistentes devem ser descritos como os seguintes:
Se o caminho completo do arquivo for encontrado e o conjunto de dados estiver montado, o caminho completo do arquivo exibido. Por exemplo:
/monkey/a.txt
Se o caminho completo do arquivo for encontrado, mas o conjunto de dados no estiver montado, ento o nome do conjunto de dados exibido sem a barra (/) precedente, seguido do caminho dentro do conjunto de dados do arquivo. Por exemplo:
monkey/ghost/e.txt
324
Se o nmero do objeto no puder ser traduzido com sucesso para o caminho do arquivo, devido a um erro ou a que o objeto no possui um caminho de arquivo verdadeiro associado a ele, como o caso de dnode_t, ento o nome do conjunto de dados seguido do nmero do objeto exibido. Por exemplo:
monkey/dnode:<0x0>
Se um objeto no metaobject set (MOS) est corrompido, ento uma marcao especial de <metadata>, seguida pelo nmero do objeto, exibida.
Se a corrupo estiver dentro dos metadados de um arquivo ou diretrio, a nica opo mover os arquivos para outro local. possvel mover seguramente qualquer arquivo ou diretrio para um local menos conveniente, permitindo que o objeto original seja restaurado em seu lugar.
Voc pode tentar recuperar o pool usando o comando zpool clear -F ou o comando zpool import - F. Esses comandos tentam retornar as poucas ltimas transaes do conjunto para o estado operacional. possvel utilizar o comando zpool status para rever um conjunto danificado e as etapas de recuperao recomendadas. Por exemplo:
# zpool pool: state: status: action: status tpool FAULTED The pool metadata is corrupted and the pool cannot be opened. Recovery is possible, but will result in some data loss. Returning the pool to its state as of Wed Jul 14 11:44:10 2010 should correct the problem. Approximately 5 seconds of data must be discarded, irreversibly. Recovery can be attempted by executing zpool clear -F tpool. A scrub of the pool is strongly recommended after recovery. see: http://www.sun.com/msg/ZFS-8000-72 scrub: none requested config: NAME tpool c1t1d0 c1t3d0 STATE FAULTED ONLINE ONLINE READ WRITE CKSUM 0 0 1 corrupted data 0 0 2 0 0 4
O processo de recuperao, conforme descrito na sada anterior, deve usar o seguinte comando:
# zpool clear -F tpool
325
Se voc tentar importar um conjunto de armazenamento danificado, ir visualizar mensagens similares as seguintes:
# zpool import tpool cannot import tpool: I/O error Recovery is possible, but will result in some data loss. Returning the pool to its state as of Wed Jul 14 11:44:10 2010 should correct the problem. Approximately 5 seconds of data must be discarded, irreversibly. Recovery can be attempted by executing zpool import -F tpool. A scrub of the pool is strongly recommended after recovery.
O processo de recuperao, conforme descrito na sada anterior, deve usar o seguinte comando:
# zpool import -F tpool Pool tpool returned to its state as of Wed Jul 14 11:44:10 2010. Discarded approximately 5 seconds of transactions
Se o conjunto danificado est no arquivo zpool cache, o problema descoberto quando o sistema inicializado e o conjunto danificado reportado no comando zpool status. Se o pool no estiver no arquivo zpool cache, ele no ser importado nem aberto com sucesso, e voc ver mensagens de pools danificados quando tentar importar o pool.
Voc pode importar um pool danificado no modo somente leitura. Este mtodo permite importar o pool de forma que voc possa acessar os dados. Por exemplo:
# zpool import -o readonly=on tpool
Para obter mais informaes sobre a importao de um pool somente leitura, consulte Importao de um pool no modo somente leitura na pgina 125.
Voc pode importar um pool com um dispositivo de log ausente usando o comando zpool import -m. Para obter mais informaes, consulte Importao de um pool com um dispositivo de log ausente na pgina 123. Se o pool no pode ser recuperado pelo mtodo de recuperao do pool, voc dever restaurar o pool e todos os seus dados de uma cpia de backup. O mecanismo utilizado varia amplamente dependendo da configurao do conjunto e da estratgia de backup. Primeiro, salve a configurao como exibida pelo comando zpool status, assim possvel recri-la depois que o pool for destrudo. Ento, utilize o comando zpool destroy -f para destruir o conjunto. Mantenha tambm, em um lugar seguro, um arquivo que descreva o layout dos conjuntos de dados e as diversas propriedades de conjunto, j que estas informaes no podero ser acessadas se o pool no puder ser acessado. Com a configurao do pool e o layout do conjunto de dados, voc pode reconstruir a configurao completa depois de destruir o pool. Os dados podem, ento, ser preenchidos usando o backup ou a estratgia de restaurao de sua preferncia.
326
Renomeie ou mova o arquivo zpool.cache para outro local como discutido no texto anterior. Determine qual conjunto possui problemas utilizando o comando fmdump -eV para exibir os conjuntos com erros fatais relatados. Importe o conjunto um a um, ignorando os conjuntos que esto tendo problemas, como descrito na sada fmdump.
327
328
A P N D I C E
Este apndice descreve as verses disponveis do ZFS, os recursos de cada verso e Solaris OS que oferece o recurso e a verso do ZFS. As sees a seguir so fornecidas neste apndice:
Viso geral das verses do ZFS na pgina 329 Verses do conjunto do ZFS na pgina 329 Verses do sistema de arquivos do ZFS na pgina 331
Verso
Solaris 10
Descrio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Solaris 6 10/06 Solaris 11 10/06 Solaris 11 10/06 Solaris 8 10/07 Solaris 10 10/08 Solaris 10 10/08 Solaris 10 10/08 Solaris 10 10/08 Solaris 10 10/08 Solaris 10 5/09 Solaris 10 10/09 Solaris 10 10/09 Solaris 10 10/09 Solaris 10 10/09 Solaris 10 10/09 Solaris 10 9/10 Solaris 10 9/10 Solaris 10 9/10 Solaris 10 9/10 Solaris 10 9/10 Solaris 10 9/10 Solaris 10 9/10 Solaris 10 8/11 Solaris 10 8/11 Solaris 10 8/11 Solaris 10 8/11 Solaris 10 8/11 Solaris 10 8/11
Initial ZFS version Ditto blocks (replicated metadata) Hot spares and double parity RAID-Z zpool history Algortmo de compresso gzip Propriedade de conjunto bootfs Dispositivos de log intencional separados Administrao delegada Propriedades refquota e refreservation Dispositivos de cache Melhor desempenho de limpeza Propriedades do instantneo Propriedade snapused Propriedade aclinherit passthrough-x contabilidade de espao de grupo e usurio Suporte para propriedades stmf Tripla paridade do RAID-Z Contenes do usurio do instantneo Remoo do dispositivo de log Compression using zle (codificao de extenso zero) Reservado Propriedades recebidas Slim ZIL Atributos do sistema Estatsticas de limpeza aprimoradas Melhor desempenho de excluso de instantneo Melhor desempenho de criao de instantneo Vrias substituies vdev
330
Verso
Solaris 10
Descrio
29
Solaris 10 8/11
1 2 3 4 5
Solaris 6 10/06 Solaris 10 10/08 Solaris 10 10/08 Solaris 10 10/09 Solaris 10 8/11
Verso do sistema de arquivos do ZFS inicial Entradas do diretrio aprimoradas Identificador exclusivo de sistemas de arquivos e diferenciao de maiscula/minscula (FIUD) Propriedades userquota e groupquota Atributos do sistema
331
332
ndice
A
acessando instantneo do ZFS (exemplo de), 239 aclinherit propriedade, 258 ACLs ACL no arquivo ZFS descrio detalhada, 260 ACL no diretrio do ZFS descrio detalhada, 261 aclinherit propriedade, 258 definindo ACLs em arquivo ZFS (modo compacto) (exemplo de), 273 definindo ACLs no arquivo ZFS (modo compacto) descrio, 272 definindo ACLs no arquivo ZFS (modo verboso) descrio, 261 definindo em arquivos ZFS descrio, 259 definindo herana de ACL no arquivo ZFS (modo verboso) (exemplo de), 266 descrio, 253 descrio do formato, 255 diferenas das ACLs baseadas no esquema POSIX, 254 herana da ACL, 258 modificando a ACL comum no arquivo ZFS (modo verboso) (exemplo de), 262 privilgios de acesso, 256 propriedade ACL, 258
ACLs (Continuao) restaurando ACL comum no arquivo ZFS (modo verboso) (exemplo de), 265 sinalizadores de herana da ACL, 258 tipos de entrada, 256 ACLs baseadas no esquema POSIX, descrio, 254 ACLs do NFSv4 descrio do formato, 255 ACLS do NFSv4, diferenas das ACLs baseadas no esquema POSIX, 254 ACLs do NFSv4 herana da ACL, 258 modelo descrio, 253 sinalizadores de herana da ACL, 258 ACLs do Solaris descrio do formato, 255 diferenas das ACLs baseadas no esquema POSIX, 254 herana da ACL, 258 novo modelo descrio, 253 sinalizadores de herana da ACL, 258 ACLs NFSv4, propriedade ACL, 258 ACLs Solaris, propriedade ACL, 258 adicionando discos a uma configurao RAID-Z (exemplo de), 86 dispositivos a um conjunto de armazenamento do ZFS (zpool add) (exemplo de), 84
333
ndice
adicionando (Continuao) dispositivos de cache (exemplo de), 88 sistema de arquivos ZFS a uma zona no global (exemplo de), 293 um dispositivo de log espelhado (exemplo de), 87 volume ZFS a uma regio no global (exemplo de), 294 administrao delegada, viso geral, 277 administrao delegada de ZFS, viso geral, 277 administrao simplificada, descrio, 50 ajustando, tamanhos de dispositivos de permuta e despejo, 177 alocado propriedade, descrio, 106 altroot propriedade, descrio, 106 anexando dispositivos a um pool de armazenamento do ZFS (zpool attach) (exemplo de), 89 apagando erros de dispositivo (zpool clear) (exemplo de), 315 armazenamento em conjuntos, descrio, 47 arquivos, como componentes de pools de armazenamento do ZFS, 70 atime propriedade, descrio, 200 atualizao zfs, 233 atualizando pool de armazenamento do ZFS descrio, 128 sistemas de arquivos ZFS descrio, 233 autocorreo de dados, descrio, 73 autoreplace propriedade, descrio, 106
B
blocos de inicializao, instalando com installboot e installgrub, 180 bootfs propriedade, descrio, 106
C
cachefile propriedade, descrio, 106
334
canmount propriedade, descrio detalhada, 210 clone, definio, 50 clones criando (exemplo de), 243 destruindo (exemplo de), 243 recursos, 242 colocando dispositivos on-line e off-line conjunto de armazenamento do ZFS descrio, 94 colocando um dispositivo off-line (zpool offline) conjunto de armazenamento do ZFS (exemplo de), 95 colocando um dispositivo on-line conjunto de armazenamento do ZFS (zpool online) (exemplo de), 96 compartilhando sistemas de arquivos ZFS descrio, 225 exemplo de, 225 componentes de, pool de armazenamento do ZFS, 67 componentes do ZFS, requisitos para nomeao, 52 comportamento por espao excedido, diferenas entre o ZFS e os sistemas de arquivos tradicionais, 65 compressratio propriedade, descrio, 201 configurao espelhada descrio, 71 recurso de redundncia, 71 viso conceitual, 71 configurao RAID-Z (exemplo de), 76 paridade dupla, descrio, 71 paridade nica, descrio, 71 recurso de redundncia, 71 viso conceitual, 71 configurao RAID-Z, adicionando discos a, (exemplo de), 86 configurando cota do sistema de arquivos ZFS (zfs set quota) exemplo de, 228 pontos de montagem ZFS (zfs set mountpoint) (exemplo de), 222 ZFS atime propriedade (exemplo de), 215 conjunto, definio, 51
ndice
conjunto de armazenamento do ZFS adicionando dispositivos a (zpool add) (exemplo de), 84 dispositivo ausente (defeituoso) descrio, 302 falhas, 301 processo de visualizao de resilvering (exemplo de), 321 verses descrio, 329 conjunto de dados definio, 51 descrio, 196 conjuntos de armazenamento do ZFS colocando dispositivos on-line e off-line descrio, 94 colocando um dispositivo off-line (zpool offline) (exemplo de), 95 configurao espelhada, descrio, 71 configurao RAID-Z, descrio, 71 conjunto definio, 51 criando (zpool create) (exemplo de), 74 dados corrompidos descrio, 302 determinando o tipo de falha do dispositivo descrio, 313 determinando se um dispositivo pode ser substitudo descrio, 315 dispositivo virtual definio, 52 dispositivos danificados descrio, 302 distribuio dinmica, 73 espelho definio, 51 exibindo estado de integridade, 115 exibindo estado de integridade detalhado (exemplo de), 116 exportando (exemplo de), 120 informaes gerais sobre o status do conjunto para soluo de problemas
conjuntos de armazenamento do ZFS, informaes gerais sobre o status do conjunto para soluo de problemas (Continuao) descrio, 307 perfis de direitos, 299 RAID-Z definio, 51 reparao de dados descrio, 303 reparando uma configurao ZFS danificada, 311 resilvering definio, 52 script de sada de conjunto de armazenamento (exemplo de), 110 substituindo um dispositivo (zpool replace) (exemplo de), 316 substituindo um dispositivo ausente (exemplo de), 311 conjuntos de armazenamento do ZFS (zpool online) colocando um dispositivo on-line (exemplo de), 96 conjuntos de armazenamento ZFS dividindo um conjunto de armazenamento espelhado (zpool split) (exemplo de), 91 exibindo estado de integridade (exemplo de), 116 identificando para importar (zpool import -a) (exemplo de), 120 ponto de montagem padro, 83 reparando um sistema no inicializvel descrio, 327 resilvering e scrubbing de dados descrio, 305 validao de dados descrio, 304 conjuntos de permisses, definidos, 277 conjuntos raiz alternativo criando (exemplo de), 298 importando (exemplo de), 299 contabilidade de espao do ZFS, diferenas entre o ZFS e os sistemas de arquivos tradicionais, 64
335
ndice
controlando, validao de dados (scrubbing), 304 cotas e reservas, descrio, 227 criao propriedade, descrio, 201 criando clone do ZFS (exemplo de), 243 conjunto de armazenamento com dispositivos de cache (exemplo de), 78 conjunto de armazenamento de paridade dupla (zpool create) (exemplo de), 76 conjunto de armazenamento do ZFS (zpool create) (exemplo de), 74 conjunto de armazenamento RAID-Z de paridade tripla (zpool create) (exemplo de), 76 conjuntos raiz alternativo (exemplo de), 298 hierarquia do sistema de arquivos ZFS, 58 instantneo do ZFS (exemplo de), 236 pool de armazenamento do ZFS descrio, 74 pool de armazenamento espelhado do ZFS (zpool create) (exemplo de), 75 pool de armazenamento RAID-Z de paridade nica (zpool create) (exemplo de), 76 sistema de arquivos ZFS, 60 (exemplo de), 196 descrio, 196 um conjunto de armazenamento do ZFS (zpool eate) (exemplo de), 56 um conjunto de armazenamento ZFS com dispositivos de log (exemplo de), 77 um novo conjunto ao dividir um conjunto de armazenamento espelhado (zpool split) (exemplo de), 91 um sistema de arquivos do ZFS bsico (zpool create) (exemplo de), 56 volume do ZFS (exemplo de), 289
336
D
dados corrompidos, 302 corrupo identificada (zpool status -v) (exemplo de), 309 reparao, 303 resilvering descrio, 305 scrubbing (exemplo de), 304 validao (scrubbing), 304 dados com soma de verificao, descrio, 49 definindo ACLs em arquivo ZFS (modo compacto) (exemplo de), 273 ACLs em arquivos ZFS descrio, 259 ACLs no arquivo ZFS (modo compacto) descrio, 272 ACLs no arquivo ZFS (modo verboso) descrio, 261 cota do ZFS (exemplo de), 216 herana de ACL no arquivo ZFS (modo verboso) (exemplo de), 266 propriedade compression (exemplo de), 60 propriedade mountpoint, 60 propriedade quota (exemplo de), 60 propriedade sharenfs (exemplo de), 60 reserva do sistema de arquivos ZFS (exemplo de), 231 delegao propriedade, descrio, 106 delegando conjunto de dados a uma regio no global (exemplo de), 294 permisses (exemplo de), 282 delegando permisses, zfs allow, 281 delegando permisses a um grupo, (exemplo de), 283 delegando permisses a um usurio individual, (exemplo de), 282
ndice
desanexando dispositivos de um pool de armazenamento do ZFS (zpool detach) (exemplo de), 91 descompartilhando sistemas de arquivos ZFS exemplo de, 226 desmontando sistemas de arquivos ZFS (exemplo de), 224 desmontar zfs, (exemplo de), 224 despejo de memria, salvando, 178 destruindo clone do ZFS (exemplo de), 243 instantneo do ZFS (exemplo de), 237 pool de armazenamento do ZFS descrio, 74 pool de armazenamento do ZFS (zpool destroy) (exemplo de), 83 sistema de arquivos ZFS (exemplo de), 197 sistema de arquivos ZFS com dependentes (exemplo de), 198 detectando dispositivos em uso (exemplo de), 81 nveis de replicao inconsistentes (exemplo de), 82 determinando se um dispositivo pode ser substitudo descrio, 315 tipo de falha do dispositivo descrio, 313 diferenas entre o ZFS e os sistemas de arquivos tradicionais comportamento por espao excedido, 65 contabilidade de espao do ZFS, 64 gerenciamento de volume tradicional, 65 granularidade do sistema de arquivos, 63 montando sistemas de arquivos ZFS, 65 novo modelo de ACL do Solaris, 65 discos, como componentes de pools de armazenamento do ZFS, 68
discos inteiros, como componentes de pools de armazenamento do ZFS, 68 disponvel propriedade, descrio, 200 dispositivo virtual, definio, 52 dispositivos de cache consideraes para utilizar, 78 criando um conjunto de armazenamento ZFS com (exemplo de), 78 dispositivos de cache, adicionando, (exemplo de), 88 dispositivos de cache, removendo, (exemplo de), 88 dispositivos de intercmbio e de dump, descrio, 176 dispositivos de log espelhados, criando um conjunto de armazenamento ZFS com (exemplo de), 77 dispositivos de log espelhados, adicionando, (exemplo de), 87 dispositivos de log separados, consideraes sobre o uso, 35 dispositivos de permuta e de despejo, problemas, 176 dispositivos de permuta e despejo, ajustando tamanhos de, 177 dispositivos em uso detectando (exemplo de), 81 dispositivos propriedade, descrio, 201 dispositivos virtuais, como componentes de pools de armazenamento do ZFS, 79 distribuio dinmica descrio, 73 recurso do conjunto de armazenamento, 73 dividindo um conjunto de armazenamento espelhado (zpool split) (exemplo de), 91 dumpadm, ativando um dispositivo de despejo, 178
E
enviando e recebendo dados do sistema de arquivos ZFS descrio, 245 espelho, definio, 51 estado zpool -x, (exemplo de), 116 exibindo estado de integridade de conjunto de armazenamento ZFS
337
ndice
exibindo, estado de integridade de conjunto de armazenamento ZFS (Continuao) (exemplo de), 116 estado de integridade detalhado do conjunto de armazenamento do ZFS (exemplo de), 116 estado de integridade dos conjuntos de armazenamento descrio de, 115 estatsticas de E/S de pool de armazenamento do ZFS descrio, 112 estatsticas de E/S de todos os pools de armazenamento do ZFS (exemplo de), 112 estatsticas de E/S de vdev do pool de armazenamento do ZFS (exemplo de), 113 histrico do comando, 41 permisses delegadas (exemplo de), 286 relatrio de registro do sistema das mensagens de erro do ZFS descrio, 310 exportando conjunto de armazenamento do ZFS (exemplo de), 120
herdando propriedades ZFS (zfs inherit) descrio, 216 hierarquia do sistema de arquivos, criando, 58 histrico do comando, zpool history, 41
I
identificando conjunto de armazenamento ZFS para importar (zpool import -a) (exemplo de), 120 requisitos de armazenamento, 57 tipo de corrupo de dados zpool status -v) (exemplo de), 323 importando conjuntos raiz alternativo (exemplo de), 299 pool de armazenamento do ZFS (exemplo de), 123 pool de armazenamento do ZFS a partir de diretrios alternativos (zpool import -d) (exemplo de), 122 inicializando sistema de arquivos raiz, 179 um BE do ZFS com boot -L e boot -Z em sistemas SPARC, 182 instalao inicial do sistema de arquivos raiz ZFS, (exemplo de), 136 instalao JumpStart sistema de arquivos raiz exemplos de perfil, 149 problemas, 150 instalando sistema de arquivo raiz ZFS requisitos, 133 sistema de arquivos raiz ZFS recursos, 132 sistema de arquivos ZFS instalao JumpStart, 147 instalando blocos de inicializao installboot e installgrup (exemplo de), 180
F
failmode propriedade, descrio, 107 falhas, 301
G
gerenciamento de volume tradicional, diferenas entre o ZFS e os sistemas de arquivos tradicionais, 65 granularidade do sistema de arquivos, diferenas entre o ZFS e os sistemas de arquivos tradicionais, 63
H
health , descrio, 107
338
ndice
installing ZFS root file system (initial installation), 136 instantneo acessando (exemplo de), 239 contagem de espao, 240 criando (exemplo de), 236 definio, 52 destruindo (exemplo de), 237 recursos, 235 renomeando (exemplo de), 238 revertendo (exemplo de), 241
L
legenda EFI descrio, 68 interao com o ZFS, 68 limpando um dispositivo em um pool de armazenamento do ZFS (zpool clear) descrio, 97 limpando um dispositivo pool de armazenamento do ZFS) (exemplo de), 97 lista informaes do pool do ZFS, 58 pools de armazenamento do ZFS descrio, 108 sistemas de arquivos do ZFS (zfs list) (exemplo de), 61 listando descendentes dos sistemas de arquivos do ZFS (exemplo de), 213 pools de armazenamento do ZFS (exemplo de), 109 propriedades do ZFS (zfs list) (exemplo de), 217
listando (Continuao) propriedades do ZFS por valor de origem (exemplo de), 219 propriedades ZFS para scripting (exemplo de), 219 sistemas de arquivos ZFS (exemplo de), 213 sistemas de arquivos ZFS sem informaes de cabealho (exemplo de), 215 tipos de sistemas de arquivos ZFS (exemplo de), 214 listsnapshots propriedade, descrio, 107 livre propriedade, descrio, 107 log intencional do ZFS (ZIL), descrio, 35 luactivate sistema de arquivos raiz (exemplo de), 155 lucreate BE do ZFS de um BE do ZFS (exemplo de), 157 migrao de sistema de arquivos raiz (exemplo de), 153
M
migrando sistemas de arquivos raiz UFS para sistemas de arquivos raiz ZFS (Oracle Solaris Live Upgrade), 151 problemas, 152 migrando pools de armazenamento do ZFS, descrio, 119 modelo de ACL, Solaris, diferenas entre o ZFS e os sistemas de arquivos tradicionais, 65 modificando ACL comum no arquivo ZFS (modo verboso) (exemplo de), 262 modo de propriedade da ACL, aclinherit, 200 modos de falha dados corrompidos, 302 dispositivo ausente (defeituoso), 302 dispositivos danificados, 302 montado propriedade, descrio, 202
339
ndice
montando sistemas de arquivos ZFS (exemplo de), 223 montando sistemas de arquivos ZFS, diferenas entre o ZFS e os sistemas de arquivos tradicionais, 65
N
nveis de replicao inconsistentes detectando (exemplo de), 82 notificando ZFS sobre dispositivo reanexado (zpool online) (exemplo de), 312
O
Oracle Solaris Live Upgrade migrao de sistema de arquivos raiz (exemplo de), 153 para migrao de sistemas de arquivos raiz, 151 problemas de migrao de sistemas de arquivos de raiz, 152 origem propriedade, descrio, 202
P
palavras- chave de perfil do JumpStart, sistema de arquivos raiz ZFS, 147 perfis de direitos, para gerenciamento de sistemas de arquivos e conjuntos de armazenamento do ZFS, 299 ponto de montagem padro para conjuntos de armazenamento ZFS, 83 padro para sistema de arquivos ZFS, 196 pontos de montagem automtico, 220 gerenciando ZFS descrio, 221 legado, 221 pool de armazenamento espelhado (zpool create), (exemplo de), 75
340
pools de armazenamento do ZFS anexando dispositivos a (zpool attach) (exemplo de), 89 apagando erros de dispositivo(zpool clear) (exemplo de), 315 atualizando descrio, 128 componentes, 67 corrupo de dados identificada (zpool status -v) (exemplo de), 309 criando configurao espelhada (zpool create) (exemplo de), 75 criando uma configurao RAID-Z (zpool create) (exemplo de), 76 desanexando dispositivos de (zpool detach) (exemplo de), 91 destruindo (zpool destroy) (exemplo de), 83 determinando se h problemas (zpool status -x) descrio, 307 dispositivos virtuais, 79 estatsticas de E/S de vdev (exemplo de), 113 estatsticas de todos os pools (exemplo de), 112 identificando o tipo de corrupo de dados (zpool status -v) (exemplo de), 323 identificando problemas descrio, 306 importando (exemplo de), 123 importando de diretrios alternativos (zpool import -d) (exemplo de), 122 limpando um dispositivo (exemplo de), 97 listando (exemplo de), 109 mensagens de erro do sistema descrio, 310 migrando descrio, 119
ndice
pools de armazenamento do ZFS (Continuao) notificando ZFS sobre dispositivo reanexado (zpool online) (exemplo de), 312 pools de raiz alternativa, 298 realizando uma simulao (zpool create -n) (exemplo de), 82 recuperando um pool destrudo (exemplo de), 127 reparando arquivos ou diretrios corrompidos descrio, 324 reparando o dano de todo o pool descrio, 326 scrubbing de dados (exemplo de), 304 descrio, 304 substituindo um dispositivo (zpool replace) (exemplo de), 97 usando arquivos, 70 usando discos inteiros, 68 pools de raiz alternativa, descrio, 298 primarycache propriedade, descrio, 202 propriedade canmount, descrio, 200 propriedade capacity, descrio, 106 propriedade checksum, descrio, 201 propriedade compression, descrio, 201 propriedade configurveis do ZFS, dispositivos, 201 propriedade copies, descrio, 201 propriedade de conjunto ZFS, cachefile, 106 propriedade delegation, desativando, 278 propriedade do pool ZFS, health, 107 propriedade exec, descrio, 202 propriedade guid, descrio, 107 propriedade mountpoint, descrio, 202 propriedade quota, descrio, 203 propriedade sharenfs descrio, 205, 225 propriedade size, descrio, 107 propriedade type, descrio, 206 propriedade volsize, descrio, 207 propriedade zoned descrio, 207 descrio detalhada, 297
propriedades configurveis do ZFS aclinherit, 200 atime, 200 canmount descrio detalhada, 210 descrio, 209 primarycache, 202 recordsize, 203 descrio detalhada, 211 refquota, 203 refreservation, 204 reserva, 204 secondarycache, 204 setuid, 204 shareiscsi, 205 snapdir, 206 somente leitura, 203 utilizadas descrio detalhada, 208 verso, 207 volblocksize, 207 volsize descrio detalhada, 211 xattr, 207 propriedades de conjunto ZFS failmode, 107 listsnapshots, 107 livre, 107 verso, 108 propriedades de somente leitura do ZFS compression, 201 criao, 201 descrio, 207 disponvel, 200 montado, 202 origem, 202 referenciado, 203 usedbychildren, 206 usedbydataset, 206 usedbyrefreservation, 206 utilizado, 206 propriedades de ZFS, descrio de propriedades herdveis, 199
341
ndice
propriedades definveis de ZFS checksum, 201 volsize, 207 propriedades definveis do ZFS canmount, 200 compression, 201 copies, 201 exec, 202 mountpoint, 202 quota, 203 sharenfs, 205 zoned, 207 propriedades do conjunto do ZFS alroot, 106 bootfs, 106 propriedades do conjunto ZFS alocado, 106 autoreplace, 106 propriedades do grupo ZFS, delegao, 106 propriedades do pool do ZFS capacity, 106 guid, 107 size, 107 propriedades do usurio do ZFS (exemplo de), 212 descrio detalhada, 212 propriedades do ZFS canmount, 200 checksum, 201 compression, 201 configurveis, 209 copies, 201 descrio, 199 exec, 202 gerenciamento dentro de uma regio descrio, 295 herdvel, descrio de, 199 mountpoint, 202 propriedade zoned descrio detalhada, 297 quota, 203 sharenfs, 205 type, 206 volsize, 207
342
propriedades do ZFS (Continuao) zoned, 207 propriedades somente leitura do ZFS, type, 206 propriedades ZFS aclinherit, 200 atime, 200 available, 200 canmount descrio detalhada, 210 compressratio, 201 criao, 201 descrio, 199 dispositivos, 201 montado, 202 origem, 202 propriedades do usurio descrio detalhada, 212 recordsize, 203 Propriedades ZFS recordsize descrio detalhada, 211 propriedades ZFS referenciado, 203 refquota, 203 refreservation, 204 reserva, 204 secondarycache, 202, 204 setuid, 204 shareiscsi, 205 Propriedades ZFS snapdir, 206 propriedades ZFS somente leitura, 203 somente leitura, 207 utilizadas descrio detalhada, 208 utilizado, 206 verso, 207 volblocksize, 207 Propriedades ZFS volsize descrio detalhada, 211 propriedades ZFS xattr, 207
ndice
R
RAID-Z, definio, 51 read-only properties of ZFS, usedbysnapshots, 206 recebendo dados do sistema de arquivos ZFS (zfs receive) (exemplo de), 247 recordsize propriedade descrio, 203 descrio detalhada, 211 recuperando pool de armazenamento destrudo do ZFS (exemplo de), 127 recursos de replicao de ZFS, espelhado ou RAID-Z, 71 referenciado propriedade, descrio, 203 refquota propriedade, descrio, 203 refreservation propriedade, descrio, 204 regies adicionando volume ZFS a uma regio no global (exemplo de), 294 delegando conjunto de dados a uma regio no global (exemplo de), 294 gerenciamento de propriedades do ZFS dentro de uma regio descrio, 295 propriedade zoned descrio detalhada, 297 utilizando com sistemas de arquivos do ZFS descrio, 292 removendo, dispositivos de cache (exemplo de), 88 removendo permisses, zfs unallow, 282 renomeando instantneo do ZFS (exemplo de), 238 sistema de arquivos ZFS (exemplo de), 198 reparando dano de todo o pool descrio, 326 reparando arquivos ou diretrios corrompidos descrio, 324 um sistema no inicializvel descrio, 327
reparando (Continuao) uma configurao ZFS danificada descrio, 311 requisitos, para a instalao e o Live Upgrade, 133 requisitos de armazenamento, identificando, 57 requisitos de hardware e software, 55 requisitos para nomeao, componentes do ZFS, 52 reserva criando (exemplo de), 99 reserva propriedade, descrio, 204 reservas descrio de (exemplo de), 99 resilvering, definio, 52 resilvering e scrubbing de dados, descrio, 305 restaurando ACL comum no arquivo ZFS (modo verboso), 265 revertendo instantneo do ZFS (exemplo de), 241
S
salvando dados do sistema de arquivos do ZFS (zfs send) (exemplo de), 246 desejos de memria savecore, 178 savecore, salvando despejos de memria, 178 script sada de conjunto de armazenamento do ZFS (exemplo de), 110 scrubbing (exemplo de), 304 validao de dados, 304 secondarycache propriedade, descrio, 204 semnticas transacionais, descrio, 48 settable properties of ZFS, sharenfs, 205 setting legacy mount points (exemplo de), 222 setuid propriedade, descrio, 204
343
ndice
shareiscsi propriedades, descrio, 205 sharenfs property, description, 205 simulao criao de pool de armazenamento do ZFS (zpool create -n) (exemplo de), 82 sistema de arquivos, definio, 51 sistema de arquivos do ZFS criando um volume do ZFS (exemplo de), 289 verses descrio, 329 sistema de arquivos ZFS descrio, 195 listando propriedades para scripting (exemplo de), 219 sistemas de arquivo ZFS, requisitos de instalao e Live Upgrade, 133 sistemas de arquivos do ZFS administrao simplificada descrio, 50 armazenamento em conjuntos descrio, 47 clone, 243 clones definio, 50 conjunto de dados definio, 51 contagem de espao do instantneo, 240 dados com soma de verificao descrio, 49 delegando conjunto de dados a uma regio no global (exemplo de), 294 descrio, 47 instantneo definio, 52 descrio, 235 perfis de direitos, 299 requisitos para nomeao de componentes, 52 salvando fluxos de dados (zfs send) (exemplo de), 246 semnticas transacionais descrio, 48
344
sistemas de arquivos do ZFS (Continuao) sistema de arquivos definio, 51 utilizando em um sistema Solaris com regies instaladas descrio, 292 volume definio, 52 sistemas de arquivos raiz ZFS migrao de sistemas de arquivos raiz com o Oracle Solaris Live Upgrade (exemplo de), 153 sistemas de arquivos ZFS ACL no arquivo ZFS descrio detalhada, 260 ACL no diretrio do ZFS descrio detalhada, 261 adicionando sistema de arquivos ZFS a uma zona no global (exemplo de), 293 adicionando volume ZFS a uma regio no global (exemplo de), 294 atualizando descrio, 233 clone substituindo um sistema de arquivos por (exemplo de), 244 clones descrio, 242 compartilhando descrio, 225 exemplo de, 225 configurando atime propriedade (exemplo de), 215 criando (exemplo de), 196 definindo a propriedade quota (exemplo de), 216 definindo ACLs em arquivo ZFS (modo compacto) (exemplo de), 273 definindo ACLs em arquivos ZFS descrio, 259 definindo ACLs no arquivo ZFS (modo compacto) descrio, 272
ndice
sistemas de arquivos ZFS (Continuao) definindo ACLs no arquivo ZFS (modo verboso) descrio, 261 definindo herana de ACL no arquivo ZFS (modo verboso) (exemplo de), 266 definindo uma reserva (exemplo de), 231 definir ponto de montagem (zfs set mountpoint) (exemplo de), 222 descompartilhando exemplo de, 226 desmontando (exemplo de), 224 destruindo (exemplo de), 197 destruindo com dependentes (exemplo de), 198 dispositivos de intercmbio e de dump descrio, 176 dispositivos de permuta e de despejo problemas, 176 dispositivos de permuta e despejo ajustando os tamanhos de, 177 enviando e recebendo descrio, 245 gerenciamento dentro de uma regio descrio, 295 gerenciando pontos de montagem descrio, 221 gerenciando pontos de montagem automticos, 220 gerenciando pontos de montagem de legado descrio, 221 herdando propriedade de (zfs inherit) (exemplo de), 216 inicializando um BE do ZFS com boot -L e boot -Z (exemplo de SPARC), 182 inicializando um sistema de arquivos raiz descrio, 179 instalao JumpStart do sistema de arquivos raiz, 147 instalando um sistema de arquivos raiz, 132 instantneo acessando, 239
sistemas de arquivos ZFS, instantneo (Continuao) criando, 236 renomeando, 238 revertendo, 241 instantneos destruindo, 237 listando (exemplo de), 213 listando descendentes (exemplo de), 213 listando propriedades de (zfs list) (exemplo de), 217 listando propriedades por valor de origem (exemplo de), 219 listando sem informaes de cabealho (exemplo de), 215 listando tipos de (exemplo de), 214 migrao de sistemas de arquivos raiz com o Oracle Solaris Live Upgrade, 151 modificando a ACL comum no arquivo ZFS (modo verboso) (exemplo de), 262 montando (exemplo de), 223 ponto de montagem padro (exemplo de), 196 problemas de migrao de sistemas de arquivos raiz, 152 recebendo fluxos de dados (zfs receive) (exemplo de), 247 renomeando (exemplo de), 198 restaurando ACL comum no arquivo ZFS (modo verboso) (exemplo de), 265 setting legacy mount point (exemplo de), 222 soma de verificao definio, 50 tipos de conjunto de dados descrio, 214
345
ndice
sistemas de arquivos ZFS (zfs set quota) configurando uma cota exemplo de, 228 snapdir propriedade, descrio, 206 soluo de problemas apagar erros de dispositivo(zpool clear) (exemplo de), 315 corrupo de dados identificada (zpool status -v) (exemplo de), 309 determinando o tipo de corrupo de dados (zpool status -v) (exemplo de), 323 determinando o tipo de falha do dispositivo descrio, 313 determinando se h problemas (zpool status -x), 307 determinando se um dispositivo pode ser substitudo descrio, 315 dispositivo ausente (defeituoso), 302 dispositivos danificados, 302 falhas do ZFS, 301 identificando problemas, 306 informaes gerais sobre o status do conjunto descrio, 307 notificando ZFS sobre dispositivo reanexado (zpool online) (exemplo de), 312 relatrio de registro do sistema das mensagens de erro do ZFS, 310 reparando arquivos ou diretrios corrompidos descrio, 324 reparando o dano de todo o pool descrio, 326 reparando um sistema no inicializvel descrio, 327 reparando uma configurao ZFS danificada, 311 substituindo um dispositivo (zpool replace) (exemplo de), 316, 321 substituindo um dispositivo ausente (exemplo de), 311 soma de verificao, definio, 50 somente leitura propriedade, descrio, 203
substituindo um dispositivo (zpool replace) (exemplo de), 97, 316, 321 um dispositivo ausente (exemplo de), 311
T
terminologia clone, 50 conjunto, 51 conjunto de dados, 51 dispositivo virtual, 52 espelho, 51 instantneo, 52 RAID-Z, 51 resilvering, 52 sistema de arquivos, 51 soma de verificao, 50 volume, 52 tipos de conjunto de dados, descrio, 214
U
usedbychildren propriedade, descrio, 206 usedbydataset propriedade, descrio, 206 usedbyrefreservation propriedade, descrio, 206 usedbysnapshots propriedade, descrio, 206 utilizadas propriedades, descrio detalhada, 208 utilizado propriedade, descrio, 206
V
verificar, integridade dos dados ZFS, 303 verso do ZFS recurso do ZFS e Solaris descrio, 329 verso propriedade, descrio, 207 verso propriedade, descrio, 108 volblocksize propriedade, descrio, 207 volsize propriedade, descrio detalhada, 211 volume, definio, 52
346
ndice
X
xattr propriedade, descrio, 207
Z
zfs allow descrio, 281 exibindo permisses delegadas, 286 zfs create (exemplo de), 60, 196 descrio, 196 zfs destroy, (exemplo de), 197 zfs destroy -r, (exemplo de), 198 ZFS file systems, initial installation of ZFS root file system, 136 zfs get, (exemplo de), 217 zfs get -H -o, (exemplo de), 219 zfs get -s, (exemplo de), 219 zfs inherit, (exemplo de), 216 zfs list (exemplo de), 61, 213 zfs list -H, (exemplo de), 215 zfs list -r, (exemplo de), 213 zfs list -t, (exemplo de), 214 zfs mount, (exemplo de), 223 zfs promote, promoo de clone (exemplo de), 244 ZFS properties sharenfs, 205 usedbychildren, 206 usedbydataset, 206 usedbyrefreservation, 206 usedbysnapshots, 206 zfs receive, (exemplo de), 247 zfs rename, (exemplo de), 198 zfs send, (exemplo de), 246 zfs set atime, (exemplo de), 215 zfs set compression, (exemplo de), 60 zfs set mountpoint (exemplo de), 60, 222 zfs set mountpoint=legacy, (exemplo de), 222
zfs set quota (exemplo de), 60 zfs set quota, (exemplo de), 216 zfs set quota exemplo de, 228 zfs set reservation, (exemplo de), 231 zfs set sharenfs, (exemplo de), 60 zfs set sharenfs=on, exemplo de, 225 zfs unallow, descrio, 282 zonas adicionando o sistema de arquivos ZFS a uma zona no global (exemplo de), 293 zpool add, (exemplo de), 84 zpool attach, (exemplo de), 89 zpool clear (exemplo de), 97 descrio, 97 zpool create (exemplo de), 56, 58 conjunto bsico (exemplo de), 74 pool de armazenamento espelhado (exemplo de), 75 pool de armazenamento RAID-Z (exemplo de), 76 zpool create -n, simulao (exemplo de), 82 zpool destroy, (exemplo de), 83 zpool detach, (exemplo de), 91 zpool export, (exemplo de), 120 zpool history, (exemplo de), 41 zpool import -a, (exemplo de), 120 zpool import -D, (exemplo de), 127 zpool import -d, (exemplo de), 122 zpool import nome, (exemplo de), 123 zpool iostat, todos os pools (exemplo de), 112 zpool iostat -v, vdev (exemplo de), 113 zpool list (exemplo de), 58, 109 descrio, 108 zpool list -Ho name, (exemplo de), 110 zpool offline, (exemplo de), 95 zpool online, (exemplo de), 96 zpool replace, (exemplo de), 97
347
ndice
zpool split, (exemplo de), 91 zpool status -v, (exemplo de), 116 zpool upgrade, 128
348