Guía de Administración de Solaris ZFS
Guía de Administración de Solaris ZFS
Solaris ZFS
Referencia: 820–2314–14
Octubre de 2009
Copyright 2009 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Reservados todos los derechos.
Sun Microsystems, Inc. tiene derechos de propiedad intelectual relacionados con la tecnología del producto que se describe en este documento. En concreto, y sin
limitarse a ello, estos derechos de propiedad intelectual pueden incluir una o más patentes de EE. UU. o aplicaciones pendientes de patente en EE. UU. y otros países.
Derechos del Gobierno de los Estados Unidos: software comercial. Los usuarios gubernamentales están sujetos al acuerdo de licencia estándar de Sun Microsystems,
Inc. y a las disposiciones aplicables de la regulación FAR y sus suplementos.
Esta distribución puede incluir materiales desarrollados por terceras partes.
Determinadas partes del producto pueden proceder de sistemas Berkeley BSD, con licencia de la Universidad de California. UNIX es una marca registrada en los EE.
UU. y otros países, bajo licencia exclusiva de X/Open Company, Ltd.
Sun, Sun Microsystems, el logotipo de Sun, el logotipo de Solaris, el logotipo de la taza de café de Java, docs.sun.com, Java y Solaris son marcas comerciales o marcas
comerciales registradas de Sun Microsystems, Inc. o de sus filiales en EE. UU. y otros países. Todas las marcas registradas SPARC se usan bajo licencia y son marcas
comerciales o marcas registradas de SPARC International, Inc. en los EE. UU. y en otros países. Los productos con las marcas registradas de SPARC se basan en una
arquitectura desarrollada por Sun Microsystems, Inc. Legato NetWorker es una marca comercial o marca comercial registrada de Legato Systems, Inc.
La interfaz gráfica de usuario OPEN LOOK y SunTM fue desarrollada por Sun Microsystems, Inc. para sus usuarios y licenciatarios. Sun reconoce los esfuerzos
pioneros de Xerox en la investigación y desarrollo del concepto de interfaces gráficas o visuales de usuario para el sector de la informática. Sun dispone de una
licencia no exclusiva de Xerox para la interfaz gráfica de usuario de Xerox, que también cubre a los licenciatarios de Sun que implementen las GUI de OPEN LOOK y
que, por otra parte, cumplan con los acuerdos de licencia por escrito de Sun.
Los productos comentados y la información contenida en esta publicación están controlados por las leyes de control de exportación de los Estados Unidos y pueden
estar sujetos a leyes de exportación o importación en otros países. Queda terminantemente prohibido el uso final (directo o indirecto) de esta documentación para el
desarrollo de armas nucleares, químicas, biológicas, de uso marítimo nuclear o misiles. Queda terminantemente prohibida la exportación o reexportación a países
sujetos al embargo de los Estados Unidos o a entidades identificadas en las listas de exclusión de exportación de los Estados Unidos, incluidas, aunque sin limitarse a,
las personas con acceso denegado y las listas de ciudadanos designados con carácter especial.
ESTA DOCUMENTACIÓN SE PROPORCIONA “TAL CUAL”. SE RENUNCIA A TODAS LAS CONDICIONES EXPRESAS O IMPLÍCITAS,
REPRESENTACIONES Y GARANTÍAS, INCLUIDAS CUALQUIER GARANTÍA IMPLÍCITA DE COMERCIALIZACIÓN, ADECUACIÓN PARA UNA
FINALIDAD DETERMINADA O DE NO CONTRAVENCIÓN, EXCEPTO EN AQUELLOS CASOS EN QUE DICHA RENUNCIA NO FUERA LEGALMENTE
VÁLIDA.
Copyright 2009 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Tous droits réservés.
Sun Microsystems, Inc. détient les droits de propriété intellectuelle relatifs à la technologie incorporée dans le produit qui est décrit dans ce document. En particulier,
et ce sans limitation, ces droits de propriété intellectuelle peuvent inclure un ou plusieurs brevets américains ou des applications de brevet en attente aux Etats-Unis
et dans d'autres pays.
Cette distribution peut comprendre des composants développés par des tierces personnes.
Certaines composants de ce produit peuvent être dérivées du logiciel Berkeley BSD, licenciés par l'Université de Californie. UNIX est une marque déposée aux
Etats-Unis et dans d'autres pays; elle est licenciée exclusivement par X/Open Company, Ltd.
Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java Coffee Cup, docs.sun.com, Java et Solaris sont des marques de fabrique ou des marques déposées de
Sun Microsystems, Inc., ou ses filiales, aux Etats-Unis et dans d'autres pays. Toutes les marques SPARC sont utilisées sous licence et sont des marques de fabrique ou
des marques déposées de SPARC International, Inc. aux Etats-Unis et dans d'autres pays. Les produits portant les marques SPARC sont basés sur une architecture
développée par Sun Microsystems, Inc. Legato NetWorker is a trademark or registered trademark of Legato Systems, Inc.
L'interface d'utilisation graphique OPEN LOOK et Sun a été développée par Sun Microsystems, Inc. pour ses utilisateurs et licenciés. Sun reconnaît les efforts de
pionniers de Xerox pour la recherche et le développement du concept des interfaces d'utilisation visuelle ou graphique pour l'industrie de l'informatique. Sun détient
une licence non exclusive de Xerox sur l'interface d'utilisation graphique Xerox, cette licence couvrant également les licenciés de Sun qui mettent en place l'interface
d'utilisation graphique OPEN LOOK et qui, en outre, se conforment aux licences écrites de Sun.
Les produits qui font l'objet de cette publication et les informations qu'il contient sont régis par la legislation américaine en matière de contrôle des exportations et
peuvent être soumis au droit d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou utilisateurs finaux, pour des armes nucléaires,
des missiles, des armes chimiques ou biologiques ou pour le nucléaire maritime, directement ou indirectement, sont strictement interdites. Les exportations ou
réexportations vers des pays sous embargo des Etats-Unis, ou vers des entités figurant sur les listes d'exclusion d'exportation américaines, y compris, mais de manière
non exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une façon directe ou indirecte, aux exportations des produits ou des services qui
sont régis par la legislation américaine en matière de contrôle des exportations et la liste de ressortissants spécifiquement designés, sont rigoureusement interdites.
LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS, DECLARATIONS ET GARANTIES EXPRESSES OU TACITES
SONT FORMELLEMENT EXCLUES, DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT TOUTE GARANTIE
IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON.
091006@22749
Contenido
Prefacio ..................................................................................................................................................11
3
Contenido
5
Contenido
Arranque de un sistema de archivos root ZFS en un sistema basado en x86 ...................... 165
Resolución de problemas de montaje de ZFS que impiden arrancar correctamente ........ 166
Recuperación de la agrupación root ZFS o las instantáneas de la agrupación root ................... 168
▼ Cómo sustituir un disco en la agrupación root ZFS .............................................................. 168
▼ Cómo crear instantáneas de la agrupación root .................................................................... 170
▼ Cómo volver a crear una agrupación root ZFS y restaurar instantáneas de agrupaciones
root ............................................................................................................................................... 171
▼ Cómo deshacer instantáneas de agrupaciones root a partir de un arranque a prueba de
errores .......................................................................................................................................... 173
7
Contenido
9
Contenido
Esta guía contiene información para los sistemas basados en SPARC ® y x86.
Nota – Esta versión de Solaris admite sistemas que utilizan las familias de arquitecturas de
procesador SPARC y x86: UltraSPARC®, SPARC64, AMD64, Pentium y Xeon EM64T. Los
sistemas admitidos aparecen en la Lista de compatibilidad de hardware de Solaris 10 en
http://www.sun.com/bigadmin/hcl . Este documento indica las diferencias de implementación
entre los tipos de plataforma.
Para conocer cuáles son los sistemas admitidos, consulte la Lista de compatibilidad de hardware
de Solaris 10.
11
Prefacio
Capítulo Descripción
Capítulo 1, “Sistema de Ofrece una descripción general de ZFS, sus características y ventajas.
archivos ZFS (introducción)” También abarca la terminología y algunos conceptos básicos.
Capítulo 2, “Procedimientos Ofrece instrucciones paso a paso para configuraciones ZFS sencillas con
iniciales con ZFS” sistemas de archivos y agrupaciones simples. Este capítulo también brinda
instrucciones de hardware y software necesarias para crear sistemas de
archivos ZFS.
Capítulo 3, “Diferencias entre Identifica características importantes que hacen que ZFS sea
ZFS y sistemas de archivos significativamente diferente respecto a los sistemas de archivos tradicionales.
tradicionales” La comprensión de estas diferencias clave ayuda a reducir la confusión al
usar herramientas tradicionales para interactuar con ZFS.
Capítulo 8, “Uso de las LCA Describe cómo utilizar las listas de control de acceso (LCA) para proteger los
para proteger archivos ZFS” archivos ZFS ofreciendo más permisos granulares que los UNIX estándar.
Capítulo 9, “Administración Describe la forma de utilizar la administración delegada de ZFS para permitir
delegada de ZFS” que los usuarios sin privilegios puedan efectuar tareas de administración de
ZFS.
Capítulo 10, “Temas avanzados Ofrece información sobre el uso de volúmenes de ZFS, el uso de ZFS en un
de ZFS” sistema Solaris con zonas instaladas y agrupaciones root alternativas.
Capítulo 11, “Resolución de Describe cómo identificar modos de error de ZFS y cómo recuperarse de
problemas y recuperación de ellos. También se proporciona pasos para evitar errores.
datos de ZFS”
Manuales relacionados
Se puede encontrar información relacionada con temas generales de administración del sistema
Solaris en los manuales siguientes:
■ Solaris System Administration: Basic Administration
■ Solaris System Administration: Advanced Administration
■ Solaris System Administration: Devices and File Systems
■ Solaris System Administration: Security Services
■ Solaris Volume Manager Administration Guide
Convenciones tipográficas
La siguiente tabla describe las convenciones tipográficas utilizadas en este manual.
AaBbCc123 Los nombres de los comandos, los archivos, los Edite el archivo .login.
directorios y los resultados que el equipo
Utilice el comando ls -a para
muestra en pantalla.
mostrar todos los archivos.
nombre_sistema% tiene correo.
13
Prefacio
aabbcc123 Marcador de posición: sustituir por un valor o El comando necesario para eliminar
nombre real un archivo es rm nombrearchivo.
AaBbCc123 Títulos de los manuales, términos nuevos y Consulte el capítulo 6 de la Guía del
palabras destacables usuario.
Una copia en caché es aquella que se
almacena localmente.
No guarde el archivo.
Nota: algunos elementos destacados
aparecen en negrita en línea.
Shell Indicador
Shell C nombre_sistema%
Este capítulo ofrece una visión general del sistema de archivos ZFS, así como de sus funciones y
ventajas. También aborda terminología básica utilizada en el resto del manual.
Novedades de ZFS
Esta sección resume las funciones nuevas del sistema de archivos ZFS.
■ “Compatibilidad con la instalación de ZFS y Flash” en la página 16
■ “Cuotas de grupo y usuario de ZFS” en la página 16
■ “Migración de zonas en un entorno ZFS ” en la página 22
■ “Herencia de pass-through de LCA de ZFS para el permiso de ejecución ” en la página 17
■ “Mejoras en las propiedades de ZFS” en la página 18
■ “Recuperación del dispositivo de registros de ZFS” en la página 20
■ “Uso de dispositivos caché en la agrupación de almacenamiento ZFS” en la página 21
■ “Instalación y arranque de ZFS” en la página 22
■ “Inversión (rollback) de un conjunto de datos sin desmontar” en la página 22
■ “Mejoras en el comando zfs send” en la página 22
■ “Cuotas y reservas de ZFS sólo para datos del sistema de archivos” en la página 23
■ “Propiedades de agrupaciones de almacenamiento de ZFS” en la página 24
■ “Mejoras en el historial de comando ZFS (zpool history)” en la página 25
■ “Actualización de sistemas de archivos ZFS (zfs upgrade)” en la página 27
■ “Administración delegada de ZFS” en la página 27
■ “Configuración de dispositivos de registro de ZFS independientes” en la página 28
■ “Creación de conjuntos de datos de ZFS intermedios” en la página 29
15
Novedades de ZFS
En esta versión de Solaris, puede configurar una cuota para la cantidad de espacio consumido
por archivos cuyo propietario sea un grupo o usuario determinado. Deberá considerar el
establecimiento de cuotas de usuarios o grupos en un entorno con un gran número de usuarios
o grupos.
Puede definir cuotas de grupos o usuarios mediante el uso de las propiedades zfs userquota y
zfs groupquota propiedades como se indica a continuación:
Puede visualizar el uso de espacio por parte de cada usuario o grupo si visualiza las propiedades
userused@usuario y groupused@grupo como se indica a continuación:
opcional el bit de ejecución desde el modo de creación de archivos en la LCA heredada, puede
utilizar la herencia pass-through para el permiso de ejecución en esta versión.
Si se ha habilitado aclinherit=passthrough-x en un conjunto de datos ZFS, puede incluir el
permiso de ejecución para un archivo de salida que se genere desde las herramientas Cc o gcc. Si
la LCA heredada no incluye permisos de ejecución, la salida ejecutable del compilador no será
ejecutable hasta que utilice el comando chmod para cambiar los permisos del archivo.
Para obtener más información, consulte el Ejemplo 8–12.
■ Propiedades de cálculo del espacio: las nuevas propiedades del sistema de archivos de sólo
lectura ayudan a identificar el uso de espacio para clónicos, sistemas de archivos y
volúmenes, pero no las instantáneas. Las propiedades son las siguientes:
■ usedbychildren: identifica la cantidad de espacio utilizado por subordinados de este
conjunto de datos, que se liberaría si todos los subordinados del conjunto de datos se
destruyeran. La abreviatura de la propiedad es usedchild.
■ usedbydataset: identifica la cantidad de espacio que utiliza este conjunto de datos en sí,
que se liberaría si se destruyera el conjunto de datos, después de eliminar primero las
instantáneas y los refreservation. La abreviatura de la propiedad es usedds.
■ usedbyrefreservation: identifica la cantidad de espacio que utiliza un
refreservation definido en este conjunto de datos, que se liberaría si se eliminara el
refreservation. La abreviatura de la propiedad es usedrefreserv.
■ usedbysnapshots: identifica la cantidad de espacio consumida por las instantáneas de
este conjunto de datos. En concreto, es la cantidad de espacio que se liberaría si todas las
instantáneas de este conjunto de instantáneas se destruyeran. Tenga en cuenta que esto
no es simplemente la suma de las propiedades used de las instantáneas, ya que varias
instantáneas pueden compartir el espacio. La abreviatura de la propiedad es usedsnap.
Estas nuevas propiedades desglosan el valor de la propiedad used en los diversos elementos
que consumen espacio. En concreto, el valor de la propiedad used se desglosa como sigue:
Puede ver estas propiedades mediante el comando zfs list -o space. Por ejemplo:
Por ejemplo, si el sistema se cierra bruscamente síncrona antes de que las operaciones de
escritura sincrónica se confirmen en una agrupación con un dispositivo de registro
independiente, se muestran mensajes parecidos al siguiente:
# zpool status -x
pool: pool
state: FAULTED
status: 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:
Si desea recuperarse de este error sin reemplazar el dispositivo de registro que presenta errores,
puede borrar el error con el comando zpool clear. En esta situación, la agrupación no
funcionará correctamente y los registros se escribirán en la agrupación principal hasta que se
sustituya el dispositivo de registro independiente.
Considere el uso de dispositivos de registro duplicados para reducir los casos de error en el
dispositivo de registro.
Los dispositivos de caché ofrecen un nivel adicional de grabación de datos en caché entre la
memoria principal y el disco. El uso de dispositivos de caché optimiza el rendimiento en las
cargas de trabajo de lectura aleatorias del contenido principalmente estático.
Se pueden especificar uno o más dispositivos de caché al crear la agrupación. Por ejemplo:
Tras agregar los dispositivos de la caché, gradualmente se llenan con contenido de la memoria
principal. Según el tamaño del dispositivo de la caché, puede llevar más de una hora en llenarse.
La capacidad y las lecturas se pueden supervisar con el comando zpool iostat del modo
siguiente:
Para obtener más información, consulte “Creación de una agrupación de almacenamiento ZFS
con dispositivos caché” en la página 70 y Ejemplo 4–4.
Si desea obtener una lista de problemas conocidos relacionados con esta versión, consulte las
notas sobre la versión de Solaris 10 5/09.
Si desea obtener una lista de problemas conocidos relacionados con esta versión, consulte las
notas sobre la versión de Solaris 10 10/08.
# 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 -
Para obtener más información, consulte “Envío y recepción de flujos de instantáneas ZFS
complejos” en la página 226.
Por ejemplo, puede establecer 10 GB de refquota para studentA que establezca un límite físico
de 10 GB de espacio referenciado. Si desea una flexibilidad adicional, puede establecer una cuota
de 20 GB que permita administrar instantáneas de studentA.
Si desea obtener una descripción de todas las propiedades de agrupaciones ZFS, consulte la
Tabla 4–1.
# zpool history
History for ’rpool’:
2009-08-26.16:49:07 zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=
/tmp/root/etc/zfs/zpool.cache rpool c1t1d0s0
2009-08-26.16:49:08 zfs set canmount=noauto rpool
2009-08-26.16:49:08 zfs set mountpoint=/rpool rpool
2009-08-26.16:49:09 zfs create -o mountpoint=legacy rpool/ROOT
2009-08-26.16:49:10 zfs create -b 8192 -V 2048m rpool/swap
2009-08-26.16:49:11 zfs create -b 131072 -V 1024m rpool/dump
2009-08-26.16:49:14 zfs create -o canmount=noauto rpool/ROOT/zfs1009BE
2009-08-26.16:49:15 zpool set bootfs=rpool/ROOT/zfs1009BE rpool
2009-08-26.16:49:15 zfs set mountpoint=/ rpool/ROOT/zfs1009BE
2009-08-26.16:49:16 zfs set canmount=on rpool
2009-08-26.16:49:17 zfs create -o mountpoint=/export rpool/export
Por ejemplo:
# zfs upgrade
This system is currently running ZFS filesystem version 3.
Nota – Los sistemas de archivos que se actualizan y los flujos de datos que se crean a partir de
dichos sistemas actualizados mediante el comando zfs send no quedan accesibles en sistemas
que ejecuten versiones de software más antiguas.
Los comandos zfs allow y zfs unallow se utilizan para otorgar y suprimir permisos.
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
datab 106K 16.5G 18K /datab
# zfs create -p -o compression=on datab/users/area51
■ Puede sustituir un dispositivo por otro equivalente sin tener que usar el comando zpool
replace.
La propiedad autoreplace controla la sustitución automática de un dispositivo. Si se ha
desactivado, la sustitución del dispositivo debe iniciarla el administrador mediante el
comando zpool replace. Si está activada, automáticamente se da formato y se sustituye
cualquier dispositivo nuevo que se detecte en esta misma ubicación física como dispositivo
que perteneciera anteriormente a la agrupación. El comportamiento predeterminado es
desactivado.
■ El estado REMOVED de la agrupación de almacenamiento se asigna cuando un dispositivo o
repuesto en marcha se ha extraído, en el caso de que el dispositivo se haya extraído
físicamente mientras el sistema se ejecutaba. Un dispositivo de repuesto en marcha se
sustituye por el dispositivo extraído, si lo hay.
■ Si un dispositivo se extrae y después se vuelve a insertar, queda conectado. Si el repuesto en
marcha se activó al volverse a insertar el dispositivo, el repuesto se extrae cuando termina la
operación con conexión.
■ La detección automática cuando los dispositivos se extraen o insertan depende del
hardware, y quizá no sea compatible en todas las plataformas. Por ejemplo, los dispositivos
USB se configuran automáticamente al insertarse. Ahora bien, quizá deba utilizar el
comando cfgadm -c configure para configurar una unidad SATA.
■ Los repuestos en marcha se comprueban periódicamente para asegurarse de que tengan
conexión y estén disponibles.
Las instantáneas son el único conjunto de datos cuyo nombre puede cambiarse de forma
recursiva.
http://blogs.sun.com/mmusante/entry/rolling_snapshots_made_easy
Para obtener más información sobre el establecimiento de las propiedades de ZFS, consulte
“Configuración de propiedades de ZFS” en la página 195.
En esta versión de Solaris, puede especificar que también se almacenen varias copias de los
datos de usuario por sistema de archivos utilizando el comando zfs set copies. Por ejemplo:
Los valores disponibles son 1, 2 o 3. El valor predeterminado es 1. Estas copias son adicionales a
cualquier redundancia de nivel de grupo, por ejemplo en una configuración RAID-Z o
duplicada.
Las ventajas de almacenar varias copias de los datos de usuario ZFS son:
■ Mejora la retención de datos al permitir la recuperación de fallos de lectura de bloques
irrecuperables, como los fallos de medios (bit rot) para todas las configuraciones ZFS.
■ Ofrece protección de los datos incluso cuando sólo hay disponible un disco.
■ Permite seleccionar las directivas de protección de datos por sistema de archivos, más allá de
las posibilidades de la agrupación de almacenamiento.
Los bloques ditto pueden ser útiles cuando de forma involuntaria se crea una agrupación no
redundante y se deben establecer políticas de retención de datos.
Si desea obtener una descripción detallada sobre las repercusiones generales en la protección de
datos al configurar copias en un sistema con una sola agrupación de un solo disco o una de
varios discos, consulte el blog siguiente:
http://blogs.sun.com/relling/entry/zfs_copies_and_data_protection
Para obtener más información sobre el establecimiento de las propiedades de ZFS, consulte
“Configuración de propiedades de ZFS” en la página 195.
Para obtener más información sobre cómo obtener una lista de archivos con errores continuos,
consulte “Reparación de un archivo o directorio dañado” en la página 310.
Tras crear el objetivo iSCSI, configure el iniciador iSCSI. Para obtener información sobre la
configuración de un iniciador de Solaris iSCSI, consulte el Capítulo 14, “Configuring Solaris
iSCSI Targets and Initiators (Tasks)” de System Administration Guide: Devices and File Systems.
Para obtener más información sobre cómo administrar un volumen ZFS como destino iSCSI,
consulte “Uso de un volumen de ZFS como objetivo iSCSI de Solaris” en la página 277.
# zpool history
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
Esta función permite al usuario o al personal de asistencia de Sun identificar el conjunto exacto
de comandos de ZFS que ejecutados para solucionar una situación de error.
Puede identificar un grupo de almacenamiento específico con el comando zpool history. Por
ejemplo:
Para obtener más información sobre la resolución de los problemas de ZFS, consulte
“Identificación de problemas en ZFS” en la página 291.
Para obtener más información, consulte “Propiedades de usuario de ZFS” en la página 191.
Las instantáneas repetidas de ZFS se crean con rapidez como una operación atómica. Las
instantáneas se crean todas juntas (todas a la vez) o no se crea ninguna. La ventaja de las
operaciones atómicas de instantáneas estriba en que los datos se toman siempre en un
momento coherente, incluso en el caso de sistemas de archivos subordinados.
Para obtener más información, consulte “Sustitución de un sistema de archivos ZFS por un
clónico de ZFS” en la página 221 y zfs(1M).
En el caso de error de ZFS, quizá aparezca en pantalla un mensaje similar al siguiente de fmd:
Al revisar la acción recomendada, que será seguir las indicaciones más específicas del comando
zpool status, podrá identificar el error y solucionarlo rápidamente.
$ fsstat zfs
new name name attr attr lookup rddir read read write write
file remov chng get set ops ops ops bytes ops bytes
7.82M 5.92M 2.76M 1.02G 3.32M 5.60G 87.0M 363M 1.86T 20.9M 251G zfs
https://system-name:6789/zfs
# /usr/sbin/smcwebserver start
# /usr/sbin/smcwebserver enable
Nota – No se puede utilizar Solaris Management Console (smc) para administrar sistemas de
archivos o grupos de almacenamiento ZFS.
Definición de ZFS
ZFS es un nuevo y revolucionario sistema de archivos revolucionario que aporta una forma
totalmente distinta de administrar sistemas de archivos, con funciones y ventajas que no hay en
ningún otro sistema de archivos actual. ZFS se ha concebido para que sea robusto, escalable y
fácil de administrar.
ZFS elimina la gestión de volúmenes en conjunto. En vez de tener que crear volúmenes
virtualizados, ZFS agrega dispositivos a un grupo de almacenamiento. El grupo de
almacenamiento describe las características físicas del almacenamiento (organización del
dispositivo, redundancia de datos, etc.) y actúa como almacén de datos arbitrario en el que se
pueden crear sistemas de archivos. Los sistemas de archivos ya se limitan a dispositivos
individuales y les permite compartir espacio con todos los sistemas de archivos del grupo. Ya no
es necesario predeterminar el tamaño de un sistema de archivos, ya que el tamaño de los
sistemas de archivos crece automáticamente en el espacio asignado al grupo de
almacenamiento. Al incorporar un nuevo almacenamiento, todos los sistemas de archivos del
grupo pueden usar de inmediato el espacio adicional sin procesos complementarios. En
muchos sentidos, el grupo de almacenamiento actúa como sistema de memoria virtual. Si se
agrega al sistema un módulo de memoria DIMM, el sistema operativo no obliga a invocar
algunos comandos para configurar la memoria y asignarla a determinados procesos. Todos los
procesos del sistema utilizan automáticamente la memoria adicional.
Semántica transaccional
ZFS es un sistema de archivos transaccional. Ello significa que el estado del sistema de archivos
siempre es coherente en el disco. Los sistemas de archivos tradicionales sobrescriben datos in
situ. Eso significa que si el equipo se queda sin alimentación, por ejemplo, entre el momento en
que un bloque de datos se asigna y cuando se vincula a un directorio, el sistema de archivos se
queda en un estado incoherente. En el pasado, este problema se solucionó mediante el comando
fsck. Este comando verificaba el estado del sistema de archivos e intentaba reparar cualquier
incoherencia del proceso. Era un problema que daba muchos quebraderos de cabeza a los
administradores y nunca garantizaba la solución a todos los problemas que pudiera haber.
Posteriormente, los sistemas de archivos incorporaron el concepto de registro de diario. El
registro por diario guarda las acciones en un diario aparte, el cual se puede volver a reproducir
con seguridad si el sistema se bloquea. Este proceso supone cargas innecesarias, porque los
datos se deben escribir dos veces y a menudo provoca una nueva fuente de problemas, por
ejemplo no poder volver a reproducir correctamente el registro de diario
Con un sistema de archivos transaccional, los datos se administran mediante la semántica copia
por escritura. Los datos nunca se sobrescriben y ninguna secuencia de operaciones se
compromete ni se ignora por completo. Este mecanismo hace que el sistema de archivos nunca
pueda dañarse por una interrupción imprevista de la alimentación o un bloqueo del sistema.
Por lo tanto, no es necesario que haya un equivalente a fsck. Mientras los fragmentos de datos
escritos más recientemente pueden perderse, el propio sistema de archivos siempre será
coherente. Asimismo, siempre se garantiza que los datos sincrónicos (escritos mediante el
indicador O_DSYNC) se escriban antes de la devolución, por lo que nunca se pierden.
Asimismo, ZFS ofrece soluciones para la reparación automática de datos. ZFS permite las
agrupaciones de almacenamiento con distintos niveles de redundancia de datos, incluida la
duplicación y una variación de RAID-5. Si se detecta un bloque de datos incorrectos, ZFS
recupera los datos correctos de otra copia redundante y también repara los datos incorrectos al
sustituirlos por una copia correcta.
Escalabilidad incomparable
ZFS se ha diseñado desde el comienzo para convertirse en el sistema de archivos más escalable
jamás desarrollado. El sistema de archivos es de 128 bits y permite 256 trillones de zettabytes de
almacenamiento. Todos los metadatos se asignan de forma dinámica, con lo que no hace falta
asignar previamente inodos ni limitar la escalabilidad del sistema de archivos cuando se crea.
Todos los algoritmos se han escrito teniendo en cuenta la escalabilidad. Los directorios pueden
tener hasta 248 (256 billones) de entradas; no existe un límite para el número de sistemas de
archivos o de archivos que puede haber en un sistema de archivos.
Instantáneas de ZFS
Una instantánea es una copia de sólo lectura de un sistema de archivos o volumen. Las
instantáneas se crean rápida y fácilmente. Inicialmente, las instantáneas no consumen espacio
adicional en el grupo.
Como los datos de un conjunto de datos activo cambian, la instantánea consume espacio al
seguir haciendo referencia a los datos antiguos. Como resultado, la instantánea impide que los
datos pasen al grupo.
Administración simplificada
Uno de los aspectos más destacados de ZFS es su modelo de administración muy simplificado.
Mediante un sistema de archivos con distribución jerárquica, herencia de propiedades y
administración automática de puntos de montaje y semántica share de NFS, ZFS facilita la
creación y administración de sistemas de archivos sin tener que usar varios comandos ni editar
archivos de configuración. Con un solo comando puede establecer fácilmente cuotas o reservas,
activar o desactivar la compresión o administrar puntos de montaje para diversos sistemas de
archivos. Los dispositivos se pueden examinar o reparar sin tener que utilizar un conjunto
independiente de comandos de Volume Manager. Puede crear un número ilimitado de
instantáneas de los sistemas de archivos. Puede hacer copias de seguridad y restaurar archivos
de sistemas concretos.
ZFS administra los sistemas de archivos a través de una jerarquía que permite la administración
simplificada de propiedades como cuotas, reservas, compresión y puntos de montaje. En este
modelo, los sistemas de archivos se convierten en el punto central de control. Los sistemas de
archivos son muy sencillos (equivalen a un nuevo directorio), de manera que se recomienda
crear un sistema de archivos para cada usuario, proyecto, espacio de trabajo, etc. Este diseño
permite definir los puntos de administración de forma detallada.
Terminología de ZFS
Esta sección describe la terminología básica utilizada en este manual:
entorno de arranque alternativo Entorno de arranque que se ha creado con el comando
lucreate y posiblemente se ha actualizado mediante el
comando luupgrade, pero que no es ni el entorno de
arranque activo ni el principal. El entorno de arranque
alternativo se puede cambiar para que sea el principal
mediante el comando luactivate.
suma de comprobación Cifrado de 256 bits de los datos en un bloque del sistema de
archivos. La suma de comprobación puede ir de la rápida y
sencilla fast fletcher2 (valor predeterminado) a cifrados
criptográficamente complejos como SHA256.
clónico Sistema de archivos cuyo contenido inicial es idéntico al de
una instantánea.
pool/ruta[ @snapshot]
pool Identifica el nombre del grupo de
almacenamiento que contiene el conjunto
de datos
ruta Nombre de ruta delimitado por barras
para el objeto del conjunto de datos
instantánea Componente opcional que identifica una
instantánea de un conjunto de datos
■ Los nombres de los conjuntos de datos deben comenzar por un carácter alfanumérico. Los
nombres de los conjuntos de datos no pueden contener un signo porcentual (%).
Este capítulo ofrece instrucciones detalladas para configuraciones sencillas de ZFS. Al terminar
este capítulo, habrá adquirido nociones básicas sobre los comandos de ZFS, y sabrá crear
sistemas de archivos y grupos sencillos. Este capítulo no profundiza demasiado en el contenido.
Para obtener información más detallada, consulte los capítulo siguientes.
47
Creación de un sistema de archivos ZFS básico
Para obtener más información sobre configuraciones de grupos ZFS redundantes, consulte
“Funciones de replicación de un grupo de almacenamiento de ZFS” en la página 63.
El nuevo sistema de archivos ZFS, tank, puede usar el espacio del disco que necesite y se monta
automáticamente en /tank.
Quizá desee crear sistemas de archivos adicionales en un grupo. Los sistemas de archivos
ofrecen puntos para poder administrar distintos conjuntos de datos en el mismo grupo.
El nuevo sistema de archivos ZFS, tank/fs, puede utilizar la cantidad de espacio en disco que
necesite y se monta automáticamente en /tank/fs.
En la mayoría de los casos, el objetivo es crear y organizar una jerarquía de sistemas de archivos
que se ajuste a los requisitos de su organización. Para obtener más información sobre cómo
crear jerarquías de sistemas de archivos ZFS, consulte “Creación de una jerarquía para el
sistema de archivos ZFS” en la página 50.
3 Cree el grupo.
Por ejemplo, cree una agrupación duplicada que se denomine tank.
# zpool create tank mirror c1t0d0 c2t0d0
Si uno o más dispositivos contienen otro sistema de archivos o se está utilizando, el comando no
puede crear el grupo.
Para obtener más información sobre cómo crear grupos de almacenamiento, consulte
“Creación de un grupo de almacenamiento de ZFS” en la página 67.
Para obtener más información sobre cómo establecer el uso de dispositivos, consulte
“Detección de dispositivos en uso” en la página 73.
Para obtener más información sobre cómo ver el estado de los grupos, consulte “Consulta del
estado de un grupo de almacenamiento de ZFS” en la página 96.
ZFS permite que los sistemas de archivos se organicen en jerarquías arbitrarias, donde cada
sistema de archivos tiene un solo superior. El root de la jerarquía siempre es el nombre del
grupo. ZFS integra esta jerarquía mediante la admisión de herencia de propiedades, de manera
que las propiedades habituales se puedan configurar rápida y fácilmente en todos los árboles de
los sistemas de archivos.
Hay una nueva función disponible que permite establecer las propiedades del sistema de
archivos al crearlo. Por ejemplo:
En este capítulo se exponen algunas diferencias destacadas que hay entre ZFS y los sistemas de
archivos tradicionales. Conocer estas diferencias fundamentales solventará dudas sobre el uso
de herramientas tradicionales y su interacción de ZFS.
Como los sistemas de archivos ZFS no se limitan a determinados dispositivos, se pueden crear
con rapidez y facilidad, de forma parecida a la creación de directorios. Los sistemas de archivos
ZFS aumentan automáticamente en el espacio que se asigna al grupo de almacenamiento.
55
Cálculo del espacio de ZFS
Para obtener un ejemplo sobre cómo crear una jerarquía de sistemas de archivos, consulte
“Creación de una jerarquía para el sistema de archivos ZFS” en la página 50.
Todos los metadatos de ZFS se asignan de forma dinámica. Casi todos los demás sistemas de
archivos preasignan gran parte de sus metadatos. La consecuencia es un coste inmediato de
asignación de espacio para estos metadatos al crear el sistema de archivos. También significa
que está predefinida la cantidad de archivos que admiten los sistemas de archivos. Como ZFS
asigna sus metadatos conforme los necesita, no precisa asignación inicial de espacio y la
cantidad de archivos que puede admitir está sólo en función del espacio disponible. La salida del
comando df -g no significa lo mismo en ZFS que en otros sistemas. El valor de total files
(total de archivos) que aparece consiste sólo en un cálculo basado en la cantidad de
almacenamiento disponible en el grupo.
Para obtener información más detallada sobre el consumo de espacio de ZFS notificado por los
comandos du y df, consulte el siguiente enlace:
http://opensolaris.org/os/community/zfs/faq/#whydusize
Como consecuencia, eliminar un archivo puede suponer más consumo del espacio en disco, ya
que para reflejar el nuevo estado del espacio de nombre se debe crear una versión nueva del
directorio. Este comportamiento significa que al intentar eliminar un archivo se puede generar
un ENOSPC o EDQUOT imprevisto.
Para obtener más información sobre cómo montar y compartir sistemas de archivos ZFS,
consulte “Montaje y compartición de sistemas de archivos ZFS” en la página 201.
A continuación se exponen las diferencias principales del nuevo modelo de LCA de Solaris:
■ Se basa en la especificación de NFSv4 y se parece a las LCA del tipo NT.
■ Conjunto mucho más granular de privilegios de acceso.
■ Se define y visualiza con los comandos chmod y ls, en lugar de los comandos setfacl y
getfacl.
■ Semántica heredada mucho más rica para establecer la forma en que se aplican privilegios
de acceso del directorio a los directorios, y así sucesivamente.
Para obtener más información sobre el uso de las LCA con archivos ZFS, consulte el Capítulo 8,
“Uso de las LCA para proteger archivos ZFS”.
59
Componentes de un grupo de almacenamiento de ZFS
Para utilizar discos completos, se les debe asignar un nombre de acuerdo con la convención de
nombres /dev/dsk/cXtXdX. Algunos controladores de terceros utilizan otra convención de
asignación de nombres o sitúan discos en una ubicación diferente de la del directorio
/dev/dsk. Para utilizar estos discos, debe etiquetarlos manualmente y proporcionar un
segmento a ZFS.
ZFS aplica una etiqueta EFI cuando crea un grupo de almacenamiento con discos completos.
Para obtener más información sobre etiquetas EFI, consulte “EFI Disk Label” de System
Administration Guide: Devices and File Systems.
Se debe crear un disco que esté diseñado para una agrupación root ZFS con una etiqueta SMI,
no EFI. Puede volver a etiquetar un disco con una etiqueta SMI mediante el uso del comando
format -e.
Los discos se pueden especificar mediante una ruta completa, como /dev/dsk/c1t0d0, o un
nombre abreviado que se componga del nombre de dispositivo en el directorio /dev/dsk, por
ejemplo c1t0d0. Por ejemplo, a continuación puede ver algunos nombres de disco válidos:
■ c1t0d0
■ /dev/dsk/c1t0d0
■ c0t0d6s2
■ /dev/foo/disk
La forma más sencilla de crear grupos de almacenamiento de ZFS es usar todo el disco físico.
Las configuraciones de ZFS se vuelven más complejas de forma progresiva respecto a
administración, fiabilidad y rendimiento, cuando se crean grupos de segmentos de discos, LUN
(unidades lógicas) en matrices RAID de hardware o volúmenes presentados por
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Los discos se identifican por la ruta e ID de dispositivo, si lo hay. Este método permite volver a
configurar los dispositivos de un sistema sin tener que actualizar ningún estado de ZFS. Si se
conmuta un disco entre controlador 1 y controlador 2, ZFS utiliza el ID de dispositivo para
detectar que el disco se ha movido y que se debe acceder ahora a él mediante el controlador 2. El
ID de dispositivo es exclusivo del firmware del controlador. Aunque es poco probable, hay casos
de actualizaciones de firmware que cambian los ID de dispositivos. Si se da esta situación, ZFS
puede seguir accediendo al dispositivo mediante la ruta y actualizar automáticamente el ID de
dispositivo almacenado. Si cambia involuntariamente la ruta y el ID del dispositivo, exporte el
grupo y vuelva a importarlo para utilizarlo.
Para una agrupación root ZFS de arranque, los discos de la agrupación deben contener
segmentos y deben etiquetarse con una etiqueta SMI. La configuración más sencilla es
establecer la capacidad de todo el disco en el segmento 0 y utilizar ese segmento para la
agrupación root.
# format
.
.
.
Specify disk (enter its number): 4
selecting c1t1d0
partition> p
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)
# format
.
.
.
selecting c1t0d0
partition> p
Current partition table (original):
Total disk cylinders available: 49779 + 2 (reserved cylinders)
Si se plantea utilizar segmentos para una agrupación de almacenamiento ZFS que no sea una
agrupación root ZFS de arranque, examine las condiciones siguientes cuando el uso de
segmentos pudiera ser necesario:
Sin embargo, los archivos pueden ser bastante útiles al probar ZFS por primera vez o
experimentar con diseños más complejos cuando no hay suficientes dispositivos físicos. Se
deben especificar todos los archivos como rutas completas y deben tener al menos 54 MB de
tamaño. Si se mueve un archivo o se le cambia el nombre, el grupo se debe exportar y volver a
importar para utilizarlo, puesto que no hay ningún ID de dispositivo asociado con los archivos
por el que se pueda encontrar.
Desde un punto de vista conceptual, una configuración duplicada más compleja tendría un
aspecto similar al siguiente:
Para obtener información sobre cómo crear grupos de almacenamiento duplicados, consulte
“Creación de un grupo de almacenamiento duplicado” en la página 67.
Una configuración de RAID-Z conceptual más compleja tendría un aspecto similar al siguiente:
raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 raidz c8t0d0 c9t0d0 c10t0d0 c11t0d0
c12t0d0 c13t0d0 c14t0d0
Si desea crear una configuración de RAID-Z con muchos discos, como en este ejemplo, una
configuración de RAID-Z con 14 discos se divide mejor en dos agrupaciones de 7 discos. En
principio, las configuraciones de RAID-Z con agrupaciones de un solo dígito de discos
funcionan mejor.
Para obtener más información sobre cómo crear grupos de almacenamiento de RAID-Z,
consulte “Creación de grupos de almacenamiento de RAID-Z” en la página 68.
Para obtener más información sobre cómo elegir entre una configuración duplicada o una de
RAID-Z en función del espacio y el rendimiento, consulte el blog siguiente:
http://blogs.sun.com/roller/page/roch?entry=when_to_and_not_to
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Para obtener más información acerca de este producto, consulte la Sun Storage Unified Storage
System Administration Guide.
Si se detecta un bloque de datos incorrectos, ZFS no sólo recupera los datos correctos de otra
copia redundante, sino que también repara los datos incorrectos al sustituirlos por la copia
correcta
Cuando los dispositivos virtuales se agregan a un grupo, ZFS asigna gradualmente datos al
nuevo dispositivo con el fin de mantener el rendimiento y las normas de asignación de espacio.
Cada dispositivo virtual puede ser también una duplicación o un dispositivo de RAID-Z que
contenga otros archivos o dispositivos de discos. Esta configuración brinda flexibilidad a la hora
de controlar las características predeterminadas del grupo. Por ejemplo, puede crear las
configuraciones siguientes a partir de cuatro discos:
■ Cuatro discos que utilicen reparto dinámico de discos en bandas
■ Una configuración de RAID-Z de cuatro vías
■ Dos duplicaciones de dos vías que utilicen reparto dinámico de discos en bandas
Por su diseño, la creación y destrucción de grupos es fácil y rápida. Sin embargo, estas
operaciones se deben efectuar con cuidado. Aunque las comprobaciones se efectúan para
impedir el uso de dispositivos que se sabe que se utilizan en un nuevo grupo, ZFS no puede
saber siempre si un dispositivo ya se está utilizando. La destrucción de un grupo es incluso más
fácil. Utilice zpool destroy con precaución. Es un comando sencillo pero de repercusiones
importantes.
La segunda palabra clave mirror indica que se especifica un nuevo dispositivo virtual de nivel
superior. Los datos se colocan dinámicamente en bandas en las dos duplicaciones, con la
correspondiente redundancia de datos en cada disco.
Para obtener más información sobre configuraciones duplicadas recomendadas, visite la página
web siguiente:
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
■ Reemplazar uno o varios discos de una configuración si los discos de sustitución son
mayores o iguales que el dispositivo que se va a reemplazar. Para obtener más información,
consulre “Sustitución de dispositivos en un grupo de almacenamiento” en la página 86.
■ Desconectar uno o varios discos de una configuración duplicada si los demás dispositivos
proporcionan a la configuración la redundancia que se necesita. Para obtener más
información, consulte “Conexión y desconexión de dispositivos en un grupo de
almacenamiento” en la página 82.
Para más información sobre cómo instalar y arrancar un sistema de archivos root ZFS, consulte
Capítulo 5, “Instalación y arranque de un sistema de archivos root ZFS”.
Este ejemplo demuestra que los discos se pueden especificar con sus rutas completas. El
dispositivo /dev/dsk/c5t0d0 es idéntico a c5t0d0.
Se podría crear una configuración similar con segmentos de discos. Por ejemplo:
Sin embargo, se debe dar formato a los discos previamente para que tengan un segmento cero
con el tamaño adecuado.
Puede crear una configuración de RAID-Z de paridad doble mediante la palabra clave raidz2.
Por ejemplo:
En la actualidad, en una configuración de ZFS RAID-Z son posibles las operaciones siguientes:
■ Agregar otro conjunto de discos de vdev de nivel superior adicional a una configuración de
RAID-Z. Para obtener más información, consulte “Adición de dispositivos a un grupo de
almacenamiento” en la página 77.
■ Reemplazar uno o varios discos de una configuración de RAID-Z si los discos de sustitución
son mayores o iguales que el dispositivo que se va a reemplazar. Para obtener más
información, consulre “Sustitución de dispositivos en un grupo de almacenamiento”
en la página 86.
En la actualidad, en una configuración de ZFS RAID-Z no son posibles las operaciones
siguientes:
■ Conectar discos adicionales a una configuración de RAID-Z.
■ Desconectar un disco de una configuración de RAID-Z.
■ De ningún modo se puede quitar un dispositivo de una configuración de RAID-Z. Para esta
función se presenta un RFE.
Para obtener más información sobre una configuración de RAID-Z, consulte “Configuración
de grupos de almacenamiento RAID-Z” en la página 64.
Por ejemplo, cree una agrupación de almacenamiento duplicada con dispositivos de registro
duplicados.
# zpool create datap mirror c1t1d0 c1t2d0 mirror c1t3d0 c1t4d0 log mirror c1t5d0 c1t8d0
# zpool status
pool: datap
state: ONLINE
scrub: none requested
config:
# zpool create tank mirror c2t0d0 c2t1d0 c2t3d0 cache c2t5d0 c2t8d0
# zpool status tank
pool: tank
state: ONLINE
scrub: none requested
config:
Revise los siguientes puntos al considerar si se debe crear una agrupación de almacenamiento
de ZFS con dispositivos caché:
■ El uso de dispositivos de caché optimiza el rendimiento en las cargas de trabajo de lectura
aleatorias del contenido principalmente estático.
■ La capacidad y las lecturas se pueden supervisar mediante el comando zpool iostat.
■ Es posible agregar dispositivos caché simple o múltiple al crear la agrupación, o bien
agregarlos y eliminarlos después de crear la agrupación. Para obtener más información,
consulte el Ejemplo 4–4.
■ Los dispositivos caché no se pueden duplicar ni pueden ser parte de una configuración de
RAID-Z.
■ Si se encuentra un error de lectura en un dispositivo caché, la E/S de lectura se vuelve a
enviar al dispositivo de agrupación de almacenamiento original, que puede formar parte de
una configuración de RAID-Z o duplicada. El contenido de los dispositivos de la memoria
caché se considera volátil, como ocurre con otras memorias caché del sistema.
Dos dispositivos virtuales root o de nivel superior ofrecen redundancia de datos: duplicación y
dispositivos virtuales RAID-Z. Estos dispositivos virtuales se componen de discos, segmentos
de discos o archivos. Un repuesto es un dispositivo vdev que controla los repuestos en marcha
de una agrupación.
El ejemplo siguiente muestra cómo crear una agrupación formada por dos dispositivos vdev,
cada cual una duplicación de dos discos.
El ejemplo siguiente muestra cómo crear una agrupación formada por un vdev root de 4 discos.
Se puede agregar otro dispositivo vdev root a esta agrupación mediante el comando zpool add.
Por ejemplo:
Los dispositivos virtuales y físicos que se incluyen en una agrupación de almacenamiento ZFS
se muestran con el comando zpool status. Por ejemplo:
Algunos de estos errores pueden omitirse mediante la opción -f, pero no es algo aplicable a la
mayoría. Los usos siguientes no pueden omitirse la opción - f; se deben corregir manualmente:
Sistema de archivos montado El disco o uno de sus segmentos contiene un sistema de
archivos que está montado. Para corregir este error,
utilice el comando umount.
Sistema de archivos en /etc/vfstab El disco contiene un sistema de archivos que se muestra
en el archivo /etc/vfstab, pero el sistema de archivos
no está montado. Para corregir este error, suprima la
línea del archivo /etc/vfstab o conviértala en
comentario.
Dispositivo de volcado dedicado El disco se utiliza como dispositivo de volcado dedicado
para el sistema. Para corregir este error, utilice el
comando dumpadm.
Parte de un grupo de ZFS El disco o archivo es parte de un grupo de
almacenamiento de ZFS activo. Para corregir este error,
utilice el comando zpool destroy para destruir la otra
agrupación, si ya no se necesita. También puede utilizar
el comando zpool detach para desvincular el disco de
la otra agrupación. Sólo se puede desvincular un disco
de una agrupación de almacenamiento duplicada.
Las siguientes comprobaciones en uso son advertencias útiles; se pueden anular mediante la
opción -f para crear el grupo:
Puede anular estos errores con la opción -f, aunque no es aconsejable. El comando también
advierte sobre la creación de un grupo de RAID-Z o duplicado mediante dispositivos de
tank
mirror
c1t0d0
c1t1d0
Algunos errores no se pueden detectar sin crear el grupo. El ejemplo más habitual es especificar
el mismo dispositivo dos veces en la misma configuración. Este error no se detecta con
seguridad sin escribir los datos, por lo que el comando create -n puede informar
correctamente aunque puede fallar al crear el grupo en la ejecución real.
Este comando crea un grupo home y el conjunto de datos home con un punto de montaje de
/export/zfs.
Para obtener más información sobre los puntos de montaje, consulte “Administración de
puntos de montaje de ZFS” en la página 201.
Precaución – Al destruir un grupo debe irse con mucho cuidado. Asegúrese de que destruya el
grupo correcto y guarde siempre copias de los datos. Si destruye involuntariamente el grupo
incorrecto, puede intentar su recuperación. Para obtener más información, consulte
“Recuperación de grupos de almacenamiento de ZFS destruidos” en la página 110.
Para obtener más información sobre la situación de dispositivos y grupos, consulte “Cómo
determinar el estado de los grupos de almacenamiento de ZFS” en la página 102.
Para obtener más información sobre importación de grupos, consulte “Importación de grupos
de almacenamiento de ZFS” en la página 109.
El formato para especificar dispositivos virtuales es el mismo que para el comando zpool
create, y se aplican las mismas reglas. Los dispositivos se comprueban para determinar si se
utilizan y el comando no puede cambiar el nivel de redundancia sin la opción -f. El comando
también es compatible con la opción -n de manera que puede ejecutar un ensayo. Por ejemplo:
Para obtener más información sobre cómo validar dispositivos virtuales, consulte “Detección
de dispositivos en uso” en la página 73.
# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c1t3d0 ONLINE 0 0 0
c1t4d0 ONLINE 0 0 0
EJEMPLO 4–3 Agregar un dispositivo de registro duplicado a una agrupación de almacenamiento ZFS
EJEMPLO 4–3 Agregar un dispositivo de registro duplicado a una agrupación de almacenamiento ZFS
(Continuación)
Puede vincular un dispositivo de registro a uno ya creado para crear un dispositivo de registro
duplicado. Esta operación es idéntica a la de vincular un dispositivo en una agrupación de
almacenamiento sin duplicar.
EJEMPLO 4–4 Cómo agregar y eliminar dispositivos caché en el grupo de almacenamiento de ZFS
Utilice el comando zpool add para agregar dispositivos caché. Por ejemplo:
EJEMPLO 4–4 Cómo agregar y eliminar dispositivos caché en el grupo de almacenamiento de ZFS
(Continuación)
Los dispositivos caché no se pueden duplicar ni pueden formar parte de una configuración de
RAID-Z.
Utilice el comando zpool remove para eliminar dispositivos caché. Por ejemplo:
EJEMPLO 4–4 Cómo agregar y eliminar dispositivos caché en el grupo de almacenamiento de ZFS
(Continuación)
Para obtener más información sobre cómo utilizar dispositivos caché en un grupo de
almacenamiento de ZFS, consulte “Creación de una agrupación de almacenamiento ZFS con
dispositivos caché” en la página 70.
Si desea agregar y desconectar un disco en una agrupación root ZFS para sustituir un disco,
consulte “Cómo sustituir un disco en la agrupación root ZFS ” en la página 168.
EJEMPLO 4–5 Conversión de un grupo de almacenamiento duplicado de dos vías a uno duplicado de tres
vías
En este ejemplo, zeepool es una duplicación de dos vías que se transforma en una de tres vías
mediante la conexión de c2t1d0, el nuevo dispositivo, a c1t1d0, el que ya existía.
# zpool status
pool: zeepool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zeepool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t1d0 ONLINE 0 0 0
c1t1d0 ONLINE 0 0 0
errors: No known data errors
# zpool attach zeepool c1t1d0 c2t1d0
# zpool status
pool: zeepool
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Fri Aug 28 14:11:33 2009
config:
EJEMPLO 4–5 Conversión de un grupo de almacenamiento duplicado de dos vías a uno duplicado de tres
vías (Continuación)
Si el dispositivo que ya existe forma parte de una duplicación de dos vías, al conectar el nuevo
dispositivo se crea una duplicación de tres vías, y así sucesivamente. Sea como fuere, el nuevo
dispositivo comienza inmediatamente a actualizar la duplicación.
EJEMPLO 4–6 Conversión de un grupo de almacenamiento de ZFS no redundante a uno de ZFS duplicado
Sin embargo, esta operación se rechaza si no hay otras réplicas válidas de los datos. Por ejemplo:
Esta situación es posible si se da por sentado que los sistemas en cuestión ven el
almacenamiento después de conectarlo a los nuevos conmutadores, posiblemente más que
antes, y los grupos se configuran como configuraciones duplicadas o de RAID-Z.
Para desconectar temporalmente un dispositivo, utilice la opción zpool offline -t. Por
ejemplo:
device is part of exported or potentially active ZFS pool. Please see zpool(1M)
Los dispositivos sin conexión aparecen con el estado OFFLINE si consulta el estado del grupo.
Para obtener información sobre cómo saber el estado del grupo, consulte “Consulta del estado
de un grupo de almacenamiento de ZFS” en la página 96.
Para obtener más información sobre la situación del dispositivo, consulte “Cómo determinar el
estado de los grupos de almacenamiento de ZFS” en la página 102.
Para obtener más información sobre cómo reemplazar un dispositivo defectuoso, consulte
“Resolución de un dispositivo que no se encuentra” en la página 297.
Si se especifica sin argumentos, este comando borra todos los errores de dispositivos del grupo.
Por ejemplo:
Si se especifican uno o más dispositivos, este comando sólo borra errores asociados con los
dispositivos especificados. Por ejemplo:
Para obtener más información sobre cómo borrar errores de zpool, consulte “Supresión de
errores transitorios” en la página 300.
En algunos sistemas, por ejemplo Sun Fire x4500, antes de desconectar un disco se debe
desconfigurar. Si está reemplazando un disco en la misma posición de ranura del sistema, sólo
debe ejecutar el comando zpool replace como se ha indicado antes.
Para obtener más información sobre cómo reemplazar dispositivos, consulte “Resolución de un
dispositivo que no se encuentra” en la página 297 y “Sustitución o reparación de un dispositivo
dañado” en la página 299.
Los dispositivos se pueden designar como repuestos en marcha de los modos siguientes:
■ Cuando se crea el grupo con el comando zpool create
■ Después de crear el grupo con el comando zpool add
■ Los dispositivos de repuestos en marcha se pueden compartir entre varios grupos
Designe dispositivos como repuestos en marcha cuando se crea el grupo. Por ejemplo:
Agregue repuestos en marcha a un grupo después de crearlo para designarlos. Por ejemplo:
Varios grupos pueden compartir dispositivos designados como repuestos en marcha. Por
ejemplo:
Al utilizar los repuestos en marcha de ZFS, tenga en cuenta los puntos siguientes:
■ Actualmente, el comando zpool remove sólo es apto para eliminar repuestos en marcha y
dispositivos caché.
■ Agregue un disco como repuesto cuyo tamaño sea igual o superior al del disco más grande
del grupo. Se puede agregar un disco de repuesto de tamaño inferior. Ahora bien, al activar
ese disco de repuesto de tamaño inferior, de forma automática o con el comando zpool
replace, la operación falla y genera un mensaje de error parecido al siguiente:
# zpool status -x
pool: zeepool
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-D3
scrub: resilver completed after 0h12m with 0 errors on Fri Aug 28 14:18:16 2009
config:
Tras sustituir el dispositivo con errores, utilice el comando zpool detach para volver a dejar el
repuesto en marcha en el conjunto de repuestos. Por ejemplo:
Nombre de Valor
propiedad Tipo predeterminado Descripción
capacity Número N/D Valor de sólo lectura que identifica el porcentaje del espacio de
agrupación utilizado.
También se puede hacer referencia a esta propiedad mediante
el nombre de su columna abreviado, cap.
guid Cadena N/D Propiedad de sólo lectura que detecta el identificador exclusivo
de la agrupación.
health Cadena N/D Propiedad de sólo lectura que identifica el estado actual de la
agrupación y lo establece en ONLINE, DEGRADED,
FAULTED, OFFLINE, REMOVED o UNAVAIL.
size Número N/D Propiedad de sólo lectura que identifica el tamaño total de la
agrupación de almacenamiento.
used Número N/D Propiedad de sólo lectura que identifica la cantidad de espacio
de almacenamiento utilizado en la agrupación.
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
tank 80.0G 22.3G 47.7G 28% ONLINE -
dozer 1.2T 384G 816G 32% ONLINE -
SIZE El tamaño total del grupo, igual a la suma del tamaño de todos los
dispositivos virtuales de nivel superior.
USED La cantidad de espacio asignada por todos los conjuntos de datos y los
metadatos internos. Esta cantidad es diferente de la cantidad de espacio
según se indica en el nivel del sistema de archivos.
Para obtener más información sobre los grupos root alternativos, consulte
“Uso de grupos root de ZFS alternativos” en la página 284.
También puede reunir estadísticas para un grupo determinado especificando el nombre del
grupo. Por ejemplo:
Por ejemplo, la sintaxis siguiente muestra la salida del comando para la agrupación root.
# zpool history
History for ’rpool’:
2009-05-07.13:51:00 zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=
/tmp/root/etc/zfs/zpool.cache rpool c1t0d0s0
2009-05-07.13:51:01 zfs set canmount=noauto rpool
2009-05-07.13:51:02 zfs set mountpoint=/rpool rpool
2009-05-07.13:51:02 zfs create -o mountpoint=legacy rpool/ROOT
2009-05-07.13:51:03 zfs create -b 8192 -V 2048m rpool/swap
2009-05-07.13:51:04 zfs create -b 131072 -V 1024m rpool/dump
2009-05-07.13:51:09 zfs create -o canmount=noauto rpool/ROOT/snv_114
2009-05-07.13:51:10 zpool set bootfs=rpool/ROOT/snv_114 rpool
2009-05-07.13:51:10 zfs set mountpoint=/ rpool/ROOT/snv_114
2009-05-07.13:51:11 zfs set canmount=on rpool
2009-05-07.13:51:12 zfs create -o mountpoint=/export rpool/export
2009-05-07.13:51:12 zfs create rpool/export/home
Puede utilizar una salida similar en el sistema para identificar el conjunto exacto de comandos
de ZFS que se han ejecutado para resolver una situación de error.
Utilice la opción -l para ver el formato completo incluye el nombre de usuario, el nombre de
host y la zona en que se ha efectuado la operación. Por ejemplo:
Utilice la opción -i para ver información de eventos internos válida para tareas de diagnóstico.
Por ejemplo:
# zpool iostat
capacity operations bandwidth
pool used avail read write read write
---------- ----- ----- ----- ----- ----- -----
tank 100G 20.0G 1.2M 102K 1.2M 3.45K
Como estas estadísticas se acumulan desde el arranque, el ancho de banda puede parecer bajo si
el grupo está relativamente inactivo. Para solicitar una vista más exacta del uso actual del ancho
de banda, especifique un intervalo. Por ejemplo:
En este ejemplo, el comando muestra las estadísticas de uso sólo del grupo tank cada dos
segundos hasta que pulsa Ctrl+C. Otra opción es especificar un parámetro count adicional con
el que el comando se termina tras el número especificado de iteraciones. Por ejemplo, zpool
iostat 2 3 imprimiría un resumen cada dos segundos para tres iteraciones, durante un total de
seis segundos. Si hay un solo grupo, las estadísticas se muestran en líneas consecutivas. Si hay
más de un grupo, la línea de guiones adicional marca cada iteración para ofrecer una separación
visual.
# zpool iostat -v
capacity operations bandwidth
tank used avail read write read write
---------- ----- ----- ----- ----- ----- -----
mirror 20.4G 59.6G 0 22 0 6.00K
c1t0d0 - - 1 295 11.2K 148K
c1t1d0 - - 1 299 11.2K 148K
---------- ----- ----- ----- ----- ----- -----
total 24.5K 149M 0 22 0 6.00K
Al visualizar estadísticas de E/S en un dispositivo virtual debe tener en cuenta dos puntos
importantes:
■ Primero, el uso de espacio sólo está disponible para dispositivos virtuales de nivel superior.
El modo en que el espacio se asigna entre la duplicación y los dispositivos virtuales RAID-Z
es específico de la implementación y es difícil de expresar en un solo número.
■ Segundo, los números quizá no se agreguen exactamente como cabría esperar. En concreto,
las operaciones en dispositivos duplicados y RAID-Z no serán exactamente iguales. Esta
diferencia se aprecia sobre todo inmediatamente después de crear un grupo, puesto que una
cantidad significativa de E/S se efectúa directamente en los discos como parte de la creación
de grupos que no se tiene en cuenta en el nivel de la duplicación. Con el tiempo, estos
números se deben igualar gradualmente, aunque los dispositivos estropeados, sin conexión
o que no responden también pueden afectar a esta simetría.
# zpool status -x
all pools are healthy
Si desea examinar un determinado grupo, indique su nombre al comando. Cualquier grupo que
no esté en estado ONLINE debe comprobarse para descartar problemas potenciales, tal como se
explica en la sección siguiente.
Estado detallado
Puede solicitar un resumen de estado más detallado mediante la opción -v. Por ejemplo:
Esta salida muestra la descripción completa de por qué el grupo se encuentra en un estado
determinado, incluida una descripción legible del problema y un vínculo a un artículo sobre la
materia para obtener más información. Cada artículo técnico ofrece información actualizada
sobre el mejor método de recuperarse del problema actual. El uso de la información de
configuración detallada permite, en principio, determinar el dispositivo dañado y la forma de
reparar la agrupación.
En el ejemplo anterior, el dispositivo defectuoso se debe sustituir. Una vez reemplazado, utilice
el comando zpool online para que el dispositivo se conecte de nuevo. Por ejemplo:
Si un grupo tiene un dispositivo sin conexión, la salida del comando identifica el grupo
problemático. Por ejemplo:
# zpool status -x
pool: tank
state: DEGRADED
status: One or more devices has been taken offline by the adminstrator.
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: none requested
config:
Las columnas READ y WRITE ofrecen un recuento de errores de E/S detectados en el dispositivo;
la columna CKSUM ofrece un recuento de errores de suma de comprobación habidos en el
dispositivo y que no pueden corregirse. Es probable que ambos recuentos de errores indiquen el
error potencial del dispositivo y las pertinentes acciones correctivas. Si se informa de que un
dispositivo virtual de nivel superior tiene de errores distintos de cero, quizá ya no se pueda
acceder a algunas porciones de datos. Estos recuentos de errores identifican cualquier error de
datos conocido.
Para obtener más información sobre diagnósticos y reparaciones de datos y grupos defectuosos,
consulte el Capítulo 11, “Resolución de problemas y recuperación de datos de ZFS”.
Si no exporta el grupo, sino que elimina manualmente los discos, aún es posible importar el
grupo resultante en otro sistema. Sin embargo, podría los últimos segundos de transacciones de
datos, con lo cual el grupo aparece como defectuoso en la máquina original debido a que los
dispositivos ya no están presentes. De forma predeterminada, la máquina de destino rechaza
importar un grupo que no se ha exportado explícitamente. Esta condición es necesaria para
impedir la importación accidental de un grupo activo que tenga almacenamiento conectado a la
red que todavía se utilice en otro sistema.
Tras ejecutar este comando, el grupo tank ya no está visible en el sistema. Antes de continuar, el
comando intenta desmontar cualquier sistema de archivos montado en el grupo. Si alguno de
los sistemas de archivos no consigue desmontarse, puede forzar el desmontaje mediante la
opción -f. Por ejemplo:
Para obtener más información sobre los volúmenes de ZFS, consulte “Volúmenes de ZFS”
en la página 275.
# zpool import
pool: tank
id: 3778921145927357706
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
tank ONLINE
mirror ONLINE
c1t0d0 ONLINE
c1t1d0 ONLINE
En este ejemplo, el grupo tank está disponible para importarlo al sistema de destino. Cada
grupo está identificado mediante un nombre, así como un identificador numérico exclusivo. Si
hay varias agrupaciones para importar con el mismo nombre, puede utilizar el identificador
numérico para diferenciarlas.
De forma parecida al comando zpool status, el comando zpool import remite a un artículo
divulgativo en Internet con la información más actualizada sobre procedimientos de reparación
para un problema que impide la importación de un grupo. En este caso, el usuario puede forzar
la importación de un grupo. Sin embargo, importar un grupo que utiliza otro sistema en una
red de almacenamiento puede dañar datos y generar avisos graves del sistema, puesto que
ambos sistemas intentan escribir en el mismo almacenamiento. Si algunos dispositivos del
grupo no están disponibles pero hay suficiente redundancia disponible para tener un grupo
utilizable, el grupo mostrará el estado DEGRADED. Por ejemplo:
# zpool import
pool: tank
id: 3778921145927357706
state: DEGRADED
status: One or more devices are missing from the system.
action: 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:
tank DEGRADED
mirror DEGRADED
c1t0d0 UNAVAIL cannot open
c1t1d0 ONLINE
En este ejemplo, el primer disco está dañado o no se encuentra, aunque aún puede importar el
grupo porque todavía se puede acceder a los datos duplicados. Si faltan muchos dispositivos o
hay demasiados defectuosos, el grupo no se puede importar. Por ejemplo:
# zpool import
pool: dozer
id: 12090808386336829175
state: FAULTED
action: The pool cannot be imported. Attach the missing
devices and try again.
see: http://www.sun.com/msg/ZFS-8000-6X
config:
raidz FAULTED
c1t0d0 ONLINE
c1t1d0 FAULTED
c1t2d0 ONLINE
c1t3d0 FAULTED
En este ejemplo faltan dos discos de un dispositivo virtual RAID-Z. Eso significa que no hay
suficientes datos redundantes disponibles para reconstruir el grupo. En algunos casos no hay
suficientes dispositivos para determinar la configuración completa. En este caso, ZFS desconoce
los demás dispositivos que formaban parte del grupo, aunque ZFS proporciona todos los datos
posibles relativos a la situación. Por ejemplo:
# zpool import
pool: dozer
id: 12090808386336829175
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:
dozer FAULTED missing device
raidz 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.
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
dozer ONLINE
mirror ONLINE
/file/a ONLINE
/file/b ONLINE
# zpool import -d /file dozer
Si hay varios grupos con el mismo nombre, indique el grupo que desea importar mediante el
identificador numérico. Por ejemplo:
# zpool import
pool: dozer
id: 2704475622193776801
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
dozer ONLINE
c1t9d0 ONLINE
pool: dozer
id: 6223921996155991199
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
dozer ONLINE
c1t8d0 ONLINE
# zpool import dozer
cannot import ’dozer’: more than one matching pool
import by numeric ID instead
# zpool import 6223921996155991199
Si el nombre del grupo entra en conflicto con un nombre de grupo que ya existe, puede
importarlo con otro nombre. Por ejemplo:
Este comando importa el grupo exportado dozer con el nombre nuevo zeepool. Si el grupo no
se ha exportado correctamente, ZFS solicita que el indicador -f impida la importación
accidental de un grupo que otro sistema todavía está usando. Por ejemplo:
Los grupos también se pueden importar en un grupo root alternativo mediante la opción -R. Si
desea más información sobre otras agrupaciones root, consulte “Uso de grupos root de ZFS
alternativos” en la página 284.
tank ONLINE
mirror ONLINE
c1t0d0 ONLINE
c1t1d0 ONLINE
En la salida de zpool import anterior, puede identificar este grupo como el destruido debido a
la siguiente información de estado:
Para recuperar la agrupación destruida, ejecute de nuevo el comando zpool import -D con la
agrupación que se debe recuperar. Por ejemplo:
La agrupación destruida se puede recuperar aunque uno de los dispositivos de esta agrupación
sea defectuoso o no esté disponible, mediante la inclusión de la opción-f. En esta situación,
importe el grupo degradado y después intente solucionar el error de dispositivo. Por ejemplo:
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
scrub: resilver completed after 0h0m with 0 errors on Fri Aug 28 09:33:56 2009
config:
# zpool status
pool: test
state: ONLINE
status: The pool is formatted using an older on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using ’zpool upgrade’. Once this is done, the
pool will no longer be accessible on older software versions.
scrub: none requested
config:
La sintaxis siguiente es válida para identificar información adicional sobre una versión concreta
y compatible.
# zpool upgrade -v
This system is currently running ZFS version 3.
VER DESCRIPTION
--- --------------------------------------------------------
1 Initial ZFS version
2 Ditto blocks (replicated metadata)
3 Hot spares and double parity RAID-Z
http://www.opensolaris.org/os/community/zfs/version/N
A continuación puede ejecutar el comando zpool upgrade para actualizar todas las
agrupaciones. Por ejemplo:
# zpool upgrade -a
En este capítulo se describe cómo instalar y arrancar un sistema de archivos ZFS. También se
describe la migración de un sistema de archivos root UFS a un sistema de archivos ZFS
mediante Modernización automática de Solaris.
Si desea obtener una lista de problemas conocidos de esta versión, consulte las notas sobre la
versión de Solaris 10 10/09.
Para obtener información actualizada sobre resolución de problemas, consulte el sitio siguiente:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
115
Instalación y arranque de un sistema de archivos root ZFS (descripción general)
Después de instalar un sistema basado en SPARC o x86 con un sistema de archivos root ZFS o
de migrar a un sistema de archivos root ZFS, el sistema de archivos arranca automáticamente
desde el sistema de archivos root ZFS. Para obtener más información sobre cambios de
arranque, consulte “Arranque desde un sistema de archivos root ZFS” en la página 162.
Al instalar o actualizar un sistema con un sistema de archivos root ZFS, el tamaño del área de
intercambio y del dispositivo de volcado dependen de la cantidad de memoria física. La
cantidad mínima de espacio de agrupación disponible para un sistema de archivos root ZFS
depende de la cantidad de memoria física, el espacio en disco disponible y la cantidad de
entornos de arranque que se vayan a crear.
Puede ajustar los tamaños de los volúmenes de intercambio y volcado según lo que
necesite, siempre y cuando los nuevos tamaños permitan el funcionamiento del sistema.
Para obtener más información, consulte “Ajuste del tamaño de los dispositivos de
intercambio y volcado de ZFS” en la página 160.
■ Entorno de arranque: aparte de nuevos requisitos de espacio de intercambio o volcado,
o de tamaños de dispositivos de intercambio o volcado, un entorno de arranque ZFS que
se migra de UFS necesita unos 6 GB. Cada entorno de arranque ZFS que se clona de otro
entorno de arranque ZFS no necesita espacio en disco adicional, pero se debe tener en
cuenta que el tamaño del entorno de arranque aumentará al aplicarse parches. Todos los
entornos de arranque ZFS de la misma agrupación root deben utilizar los mismos
dispositivos de intercambio y volcado.
Por ejemplo, un sistema con 12 GB de espacio en disco puede ser demasiado pequeño para
un entorno ZFS que se puede arrancar, ya que se necesitan 2 GB de espacio en disco para
cada dispositivo de intercambio y volcado, así como unos 6 GB de espacio en disco para el
entorno de arranque ZFS que se migra de un entorno de arranque UFS.
Para obtener una descripción detallada de las configuraciones admitidas para la agrupación
ZFS, consulte “Creación de una agrupación root ZFS” en la página 68.
■ En un sistema basado en x86, el disco debe contener una partición fdisk de Solaris. Se crea
una partición fdisk de Solaris automáticamente cuando se instala el sistema basado en x86.
Para obtener más información acerca de las particiones fdisk de Solaris, consulte
“Guidelines for Creating an fdisk Partition” de System Administration Guide: Devices and
File Systems.
■ Los discos destinados a arrancarse en una agrupación root ZFS deben tener como límite de
tamaño 1 TB, tanto en sistemas SPARC como x86.
■ La compresión puede habilitarse en la agrupación root, pero sólo después de que se haya
instalado la agrupación root. No hay forma de habilitar la compresión en una agrupación
root durante la instalación. El algoritmo de compresión gzip no se admite en las
agrupaciones root.
Si va a configurar las zonas después de la instalación inicial de un sistema de archivos root ZFS y
tiene previsto aplicar parches o actualizaciones al sistema, consulte “Uso de Modernización
automática de Solaris para migrar o actualizar un sistema con zonas (Solaris 10 10/08) ”
en la página 142 o “Uso de Modernización automática de Solaris para migrar o actualizar un
sistema con zonas (Solaris 10 5/09 y Solaris 10 10/09)” en la página 147.
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.
Precaución – Las agrupaciones que existan se destruirán si para la nueva agrupación se selecciona
cualquiera de sus discos.
Antes de comenzar la instalación inicial para crear una agrupación de almacenamiento ZFS,
consulte “Requisitos de instalación de Solaris y de Modernización automática de Solaris para
admitir ZFS” en la página 117.
EJEMPLO 5–1 Instalación inicial de un sistema de archivos root ZFS que se puede arrancar
[ ] UFS
[X] ZFS
3. Tras seleccionar el software que debe instalarse, se indica al usuario que seleccione los discos
para crear la agrupación de almacenamiento ZFS. Esta pantalla es similar a la de las
versiones anteriores de Solaris:
Select Disks
On this screen you must select the disks for installing Solaris software.
Start by looking at the Suggested Minimum field; this value is the
approximate space needed to install the software you’ve selected. For ZFS,
multiple disks will be configured as mirrors, so the disk you choose, or the
slice within the disk must exceed the Suggested Minimum value.
NOTE: ** denotes current boot disk
EJEMPLO 5–1 Instalación inicial de un sistema de archivos root ZFS que se puede arrancar
(Continuación)
=============================================================================
[X] ** c1t1d0 69994 MB
[ ] c1t2d0 69994 MB (F4 to edit)
Puede seleccionar el disco o los discos que deben usarse para la agrupación root ZFS. Si
selecciona dos discos, para la agrupación root se establece una configuración de dos discos
duplicados. La configuración óptima es una agrupación de dos o tres discos duplicados. Si
tiene ocho discos y los selecciona todos, se utilizan para la agrupación root como una gran
duplicación. Esta configuración no es óptima. Otra opción es crear una agrupación root
duplicada cuando se haya terminado la instalación inicial. No es posible efectuar una
configuración de agrupaciones RAID-Z para la agrupación root. Si desea más información
sobre la configuración de agrupaciones de almacenamiento ZFS, consulte “Funciones de
replicación de un grupo de almacenamiento de ZFS” en la página 63.
4. Si desea seleccionar dos discos para crear una agrupación root duplicada, utilice las teclas de
control del cursor para seleccionar el segundo disco. Por ejemplo, tanto c1t1d1 como
c0t2d0 están seleccionados para los discos de la agrupación root. Los dos discos deben tener
una etiqueta SMI y un segmento 0. Si los discos no están etiquetados con una SMI o
contienen segmentos, posteriormente debe salir del programa de instalación, usar la
utilidad format para reetiquetar y reparticionar los discos, y posteriormente reiniciar el
programa de instalación.
Select Disks
On this screen you must select the disks for installing Solaris software.
Start by looking at the Suggested Minimum field; this value is the
approximate space needed to install the software you’ve selected. For ZFS,
multiple disks will be configured as mirrors, so the disk you choose, or the
slice within the disk must exceed the Suggested Minimum value.
NOTE: ** denotes current boot disk
Si la columna Espacio disponible identifica 0 MB, en general esto indica que el disco tiene
una etiqueta EFI.
EJEMPLO 5–1 Instalación inicial de un sistema de archivos root ZFS que se puede arrancar
(Continuación)
5. Tras haber seleccionado uno o varios discos para la agrupación de almacenamiento ZFS,
aparece una pantalla de aspecto similar a la siguiente:
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.
En esta pantalla se puede cambiar el nombre de la agrupación ZFS, el nombre del conjunto
de datos, el tamaño de la agrupación, el tamaño de los dispositivos de intercambio y volcado.
Para ello, con las teclas de control del cursor desplácese por las entradas y sustituya los
valores predeterminados por los nuevos. Si lo desea, puede aceptar los valores
predeterminados. Asimismo, puede modificar el modo en que se crea y monta el sistema de
archivos /var.
Profile
The information shown below is your profile for installing Solaris software.
It reflects the choices you’ve made on previous screens.
EJEMPLO 5–1 Instalación inicial de un sistema de archivos root ZFS que se puede arrancar
(Continuación)
============================================================================
# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:
La salida de zfs list de ejemplo identifica los componentes de la agrupación root, por ejemplo
el directorio rpool/ROOT, al que de forma predeterminada no se puede acceder.
EJEMPLO 5–1 Instalación inicial de un sistema de archivos root ZFS que se puede arrancar
(Continuación)
El proceso de transferir los datos al nuevo disco (resilver) tardará un poco en finalizar, pero la
agrupación sigue estando disponible.
Hasta que se solucione CR 6668666, la información de arranque se debe instalar en los discos
vinculados adicionalmente mediante los comandos installboot o installgrub si desea
habilitar el arranque en los otros discos de la duplicación. Si crea una agrupación root ZFS
duplicada con el método de instalación inicial, este paso no es necesario. Si necesita más
información sobre cómo instalar datos de arranque, consulte “Arranque desde un disco
alternativo en una agrupación root ZFS duplicada” en la página 162.
Para obtener más información sobre cómo agregar o vincular discos, consulte “Administración
de dispositivos en grupos de almacenamiento de ZFS” en la página 77.
Si desea crear otro entorno de arranque ZFS en la misma agrupación de almacenamiento, puede
utilizar el comando lucreate. En el ejemplo siguiente, se crea un nuevo entorno de arranque
denominado zfs10092BE. El entorno de arranque actual se denomina zfs509BE, aparece en la
salida de zfs list; no se reconoce en la salida de lustatus hasta que se crea el nuevo entorno
de arranque.
# lustatus
ERROR: No boot environments are configured on this system
ERROR: cannot determine list of all boot environment names
EJEMPLO 5–1 Instalación inicial de un sistema de archivos root ZFS que se puede arrancar
(Continuación)
Si se crea otro entorno de arranque en la misma agrupación de arranque, se debe utilizar una
sintaxis parecida a la siguiente:
# lucreate -n zfs10092BE
Analyzing system configuration.
No name for current boot environment.
INFORMATION: The current boot environment is not named - assigning name <zfs1009BE>.
Current boot environment is named <zfs1009BE>.
Creating initial configuration for primary boot environment <zfs1009BE>.
The device </dev/dsk/c1t1d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <zfs1009BE> PBE Boot Device </dev/dsk/c1t1d0s0>.
Comparing source boot environment <zfs1009BE> file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs10092BE>.
Source boot environment is <zfs1009BE>.
Creating boot environment <zfs10092BE>.
Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
Creating snapshot for <rpool/ROOT/zfs1009BE> on <rpool/ROOT/zfs1009BE@zfs10092BE>.
Creating clone for <rpool/ROOT/zfs1009BE@zfs10092BE> on <rpool/ROOT/zfs10092BE>.
Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs10092BE>.
Population of boot environment <zfs10092BE> successful.
Creation of boot environment <zfs10092BE> successful.
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE yes yes yes no -
zfs10092BE yes no no yes -
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 6.66G 60.3G 97K /rpool
rpool/ROOT 4.66G 60.3G 21K legacy
rpool/ROOT/zfs10092BE 93K 60.3G 4.66G /
EJEMPLO 5–1 Instalación inicial de un sistema de archivos root ZFS que se puede arrancar
(Continuación)
Si desea arrancar desde otro entorno de arranque, emplee el comando luactivate. Después de
activar el entorno de arranque en un sistema basado en SPARC, utilice el comando boot - L
para identificar los entornos de arranque disponibles cuando el dispositivo de arranque
contenga una agrupación de almacenamiento ZFS. En el caso de arrancar desde un sistema
basado en x86, identifique el entorno de arranque se debe arrancar desde el menú GRUB.
Por ejemplo, en un sistema basado en SPARC, utilice el comando boot - L para obtener una
lista con los entornos de arranque disponibles. Para arrancar desde el nuevo entorno de
arranque, zfs5092BE, seleccione la opción 2. A continuación, escriba el comando boot -Z que
aparece.
ok boot -L
Executing last command: boot -L
Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0:a File and args: -L
1 zfs1009BE
2 zfs10092BE
Select environment to boot: [ 1 - 2 ]: 2
Si desea más información sobre cómo arrancar un sistema de archivos ZFS, consulte “Arranque
desde un sistema de archivos root ZFS” en la página 162.
■ Genere un contenedor Flash que pueda utilizarse para instalar y arrancar un sistema con un
sistema de archivos root ZFS
■ Realice una instalación JumpStart de un sistema mediante un contenedor Flash ZFS. La
creación de un contenedor Flash ZFS clona toda una agrupación root, no entornos de
arranque individuales. Se pueden excluir cada uno de los conjuntos de datos de la
agrupación mediante la opción D del comando flar y el comando -flarcreate.
Revise las siguientes limitaciones antes de que considere la instalación de un sistema con un
contenedor Flash ZFS:
■ Sólo es compatible una instalación JumpStart de un contenedor Flash ZFS. No se puede usar
la opción de instalación interactiva opción de un contenedor Flash para instalar un sistema
con un sistema de archivos root ZFS. Tampoco puede utilizar un contenedor Flash para
instalar un entorno de arranque ZFS con Modernización automática de Solaris.
■ Sólo puede instalar un sistema de la misma arquitectura, con un contenedor Flash ZFS. Por
ejemplo, un contenedor que se haya creado en un sistema sun4u no se puede instalar en un
sistema sun4v.
■ Sólo se admite una instalación inicial completa de un contenedor Flash ZFS. No es posible
instalar un contenedor Flash diferencial de un sistema de archivos root ZFS ni un
contenedor UFS/ZFS híbrido.
■ Los contenedores Flash UFS existentes sólo se pueden seguir utilizando para instalar un
sistema de archivos root UFS. El contenedor Flash ZFS sólo puede utilizarse para instalar un
sistema de archivos root ZFS.
■ Aunque toda la agrupación root, menos los conjuntos de datos explícitamente excluidos,
esté archivada e instalada, sólo se puede utilizar el entorno de arranque ZFS que se inicie
durante la creación del contenedor, después de que se instale el contenedor Flash. Sin
embargo, las agrupaciones que se han archivado con la opción -R rootdir del comando flar
o flarcreate se pueden usar para archivar una agrupación root diferente de la que se ha
iniciado.
■ El nombre de la agrupación root ZFS que se crea con un contenedor Flash debe coincidir
con el nombre de la agrupación root principal. El nombre de la agrupación root que se usa
para crear el contenedor Flash es el nombre que se asigna a la nueva agrupación creada. El
cambio de nombre de la agrupación no se admite.
■ Las opciones de los comandos flarcreate y flar para incluir y excluir archivos
individuales no se admiten en un contenedor Flash ZFS. Sólo se pueden excluir conjuntos
de datos completos desde un contenedor Flash ZFS.
■ El comando flar info no se admite para un contenedor Flash ZFS. Por ejemplo:
Después de que se haya instalado Solaris 10 10/09 en un sistema principal, o que éste se haya
actualizado a dicha versión, puede crear un contenedor Flash ZFS a fin de utilizarlo para instalar
un sistema de destino. A continuación se expone el proceso básico:
■ Instale o actualice a la versión Solaris 10 10/09 en el sistema principal. Agregue las
personalizaciones que desee.
■ Cree el contenedor Flash ZFS con el comando flarcreate en el sistema principal. Todos los
conjuntos de datos de la agrupación root, excepto para los volúmenes de intercambio y
volcado, se incluyen en el contenedor Flash ZFS.
■ Cree un perfil de JumpStart para que incluya la información del contenedor Flash en el
servidor de instalación.
■ Instale el contenedor Flash ZFS en el sistema de destino.
Las siguientes opciones de contenedor son compatibles para instalar una agrupación root ZFS
con un contenedor Flash:
■ Utilice el flarcreate o flar para crear un contenedor Flash desde la agrupación root ZFS
especificada. Si no se especifica, se crea un contenedor Flash de la agrupación root
predeterminada.
■ Utilice flarcreate -D conjunto_datos para excluir los conjuntos de datos especificados del
contenedor Flash. Esta opción se puede usar varias veces para excluir varios conjuntos de
datos.
Después de que se haya instalado Solaris 10 10/09 en el sistema principal o se haya actualizado a
dicha versión, cree un contenedor Flash de la agrupación ZFS. Por ejemplo:
En el sistema que se utilizará como servidor de instalación, cree un perfil JumpStart como lo
haría para instalar cualquier sistema. Por ejemplo, el siguiente perfil se usa para instalar el
contenedor zfs10u8flar.
install_type flash_install
archive_location nfs system:/export/jump/zfs10u8flar
partitioning explicit
pool rpool auto auto auto mirror c0t1d0s0 c0t0d0s0
install_type initial_install
pool newpool auto auto auto mirror c0t0d0s0 c0t1d0s0
bootenv installbe bename s10up-xx
El perfil siguiente efectúa una instalación inicial con la palabra clave install_type
instalación_inicial del metaclúster SUNWCall en una agrupación nueva denominada newpool
que tiene un tamaño de 80 GB. Esta agrupación se crea con un volumen de intercambio de 2 GB
y un volumen de volcado de 2 GB, en una configuración duplicada de dos dispositivos
suficientemente grandes como para crear una agrupación de 80 GB. La instalación no puede
realizarse correctamente si esos dos dispositivos no están disponibles. Las características del
entorno de arranque se establecen con la palabra clave bootenv para instalar un nuevo entorno
de arranque con la palabra clave installbe y se crea un bename denominado s10up–xx.
install_type initial_install
cluster SUNWCall
pool newpool 80g 2g 2g mirror any any
bootenv installbe bename s10up-xx
La palabra clave auto funciona de forma parecida a all si se utiliza con una
agrupación root ZFS porque las agrupaciones carecen del concepto de espacio no
utilizado.
bootenv Palabra clave que identifica las características del entorno de arranque.
Se necesita toda la línea de la palabra clave pool porque no se puede utilizar una agrupación
que ya exista. Por ejemplo:
install_type initial_install
cluster SUNWCall
pool rpool 20G 4g 4g any
bootenv installbe bename newBE
■ Debe crear una agrupación con segmentos de disco en lugar de discos enteros, como se
explica en “Requisitos de instalación de Solaris y de Modernización automática de Solaris
para admitir ZFS” en la página 117. Por ejemplo, no se acepta la siguiente sintaxis en negrita.
install_type initial_install
cluster SUNWCall
pool rpool all auto auto mirror c0t0d0 c0t1d0
bootenv installbe bename newBE
install_type initial_install
cluster SUNWCall
pool rpool all auto auto mirror c0t0d0s0 c0t1d0s0
bootenv installbe bename newBE
A continuación se expone el procedimiento básico para migrar un sistema de archivos root UFS
a uno ZFS:
■ Instale la versión Solaris 10 10/08, Solaris 10 5/09 o Solaris 10 10/09, o bien emplee un
programa de actualización estándar para actualizar de una versión anterior de Solaris 10 en
cualquier sistema admitido que se base en SPARC o x86.
■ Si se ejecuta la versión Solaris 10 10/08, Solaris 10 5/09 o Solaris 10 10/09, cree una
agrupación de almacenamiento ZFS para el sistema de archivos root ZFS, si fuera necesario.
■ Utilice Modernización automática de Solaris para migrar de un sistema de archivos root
UFS a uno ZFS.
■ Active el entorno de arranque ZFS con el comando luactivate.
Antes de crear la agrupación, compruebe que los discos que se usarán en ella tengan una
etiqueta SMI (VTOC) en lugar de una etiqueta EFI. Si se vuelve a etiquetar el disco con una
etiqueta SMI, compruebe que el proceso de etiquetado no haya modificado el esquema de
partición. En la mayoría de los casos, casi toda la capacidad del disco debe estar en los
segmentos que se destinan a la agrupación root.
■ Modernización automática de Solaris no es apta para crear un entorno de arranque UFS a
partir de un entorno de arranque ZFS. Si se migra el entorno de arranque UFS a uno ZFS y se
mantiene el entorno de arranque UFS, se puede arrancar desde cualquiera de los dos
entornos.
■ No cambie el nombre de los entornos de arranque ZFS con el comando zfs rename, ya que
Modernización automática de Solaris no detecta el cambio de nombre. Los comandos que se
puedan usar posteriormente, por ejemplo ludelete, no funcionarán. De hecho, no cambie
el nombre de agrupaciones ni de sistemas de archivos ZFS si tiene entornos de arranque que
quiere seguir utilizando.
■ Modernización automática de Solaris crea los conjuntos de datos de los volúmenes de
entorno de arranque y ZFS para el área de intercambio y el dispositivo de volcado. Sin
embargo, no tiene en cuanta ninguna modificación de propiedades de conjuntos de datos
que pudiera haber. Así pues, si desea habilitar una propiedad de conjunto de datos en el
nuevo entorno de arranque, debe configurar la propiedad antes de la operación de
lucreate. Por ejemplo:
Si desea migrar o actualizar un sistema con zonas, consulte las siguientes secciones:
■ “Uso de Modernización automática de Solaris para migrar o actualizar un sistema con zonas
(Solaris 10 10/08) ” en la página 142
■ “Uso de Modernización automática de Solaris para migrar o actualizar un sistema con zonas
(Solaris 10 5/09 y Solaris 10 10/09)” en la página 147
EJEMPLO 5–3 Uso de Modernización automática de Solaris para migrar un sistema de archivos root UFS a
uno ZFS.
Para que se pueda arrancar y actualizar, la agrupación de almacenamiento ZFS se debe crear
con segmentos en lugar de discos enteros. Antes de crear la agrupación, compruebe que los
discos que se usarán en ella tengan una etiqueta SMI (VTOC) en lugar de una etiqueta EFI. Si se
vuelve a etiquetar el disco con una etiqueta SMI, compruebe que el proceso de etiquetado no
haya modificado el esquema de partición. En la mayoría de los casos, casi toda la capacidad del
disco debe estar en los segmentos que se destinan a la agrupación root.
EJEMPLO 5–3 Uso de Modernización automática de Solaris para migrar un sistema de archivos root UFS a
uno ZFS. (Continuación)
Tras finalizar la operación de lucreate, utilice el comando lustatus para ver el estado del
entorno de arranque. Por ejemplo:
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
ufs1009BE yes yes yes no -
zfs1009BE yes no no yes -
EJEMPLO 5–3 Uso de Modernización automática de Solaris para migrar un sistema de archivos root UFS a
uno ZFS. (Continuación)
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
mpool 7.17G 59.8G 95.5K /mpool
mpool/ROOT 4.66G 59.8G 21K /mpool/ROOT
mpool/ROOT/zfs1009BE 4.66G 59.8G 4.66G /
mpool/dump 2G 61.8G 16K -
mpool/swap 517M 60.3G 16K -
Después, utilice el comando luactivate para activar el nuevo entorno de arranque ZFS. Por
ejemplo:
# luactivate zfs1009BE
A Live Upgrade Sync operation will be performed on startup of boot environment <zfs1009BE>.
**********************************************************************
The target boot environment has been activated. It will be used when you
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.
**********************************************************************
.
.
.
Modifying boot archive service
Activation of boot environment <zfs1009BE> successful.
# init 6
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
ufs1009BE yes no no yes -
zfs1009BE yes yes yes no -
EJEMPLO 5–3 Uso de Modernización automática de Solaris para migrar un sistema de archivos root UFS a
uno ZFS. (Continuación)
Si vuelve al entorno de arranque UFS, tendrá que volver a importar todas las agrupaciones de
almacenamiento ZFS creadas en el entorno de arranque ZFS porque no están disponibles
automáticamente en el entorno de arranque UFS.
EJEMPLO 5–4 Uso de Modernización automática de Solaris para crear un entorno de arranque ZFS a partir
de un entorno de arranque ZFS
Si tiene varios entornos de arranque ZFS en un sistema basado en SPARC, puede utilizar el
comando boot -L para identificar los entornos de arranque disponibles y seleccionar un
entorno de arranque desde el cual arrancar mediante el comando boot -Z. En el caso de un
sistema basado en x86, el entorno de arranque se puede seleccionar en el menú GRUB. Si desea
más información, consulte el Ejemplo 5–9.
# lucreate -n zfs10092BE
Analyzing system configuration.
Comparing source boot environment <zfs1009BE> file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs10092BE>.
Source boot environment is <zfs1009BE>.
Creating boot environment <zfs10092BE>.
Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
Creating snapshot for <mpool/ROOT/zfs1009BE> on <mpool/ROOT/zfs1009BE@zfs10092BE>.
Creating clone for <mpool/ROOT/zfs1009BE@zfs10092BE> on <mpool/ROOT/zfs10092BE>.
Setting canmount=noauto for </> in zone <global> on <mpool/ROOT/zfs10092BE>.
Population of boot environment <zfs10092BE> successful.
Creation of boot environment <zfs10092BE> successful.
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE yes no no yes -
zfs10092BE yes yes yes no -
# luupgrade -p -n zfs1009BE -s /net/system/export/s10u8/Solaris_10/Product SUNWchxge
## Installing part 1 of 1.
En esta sección se explica el procedimiento para configurar e instalar un sistema con zonas para
poder actualizarlo y aplicarle parches mediante Modernización automática de Solaris. Si va a
migrar un sistema de archivos root ZFS sin zonas, consulte “Uso de Modernización automática
de Solaris para migrar a un sistema de archivos root ZFS (sin zonas)” en la página 137.
Si va a migrar un sistema con zonas, o bien si tiene previsto configurar un sistema con zonas en
la versión Solaris 10 10/08, consulte los procedimientos siguientes:
■ “Cómo migrar un sistema de archivos root UFS con roots de zonas en UFS a un sistema de
archivos root ZFS (Solaris 10 10/08)” en la página 143
■ “Cómo configurar un sistema de archivos root ZFS con roots de zonas en ZFS (Solaris 10
10/08)” en la página 144
■ “Cómo actualizar o aplicar un parche a un sistema de archivos root ZFS con roots de zona en
ZFS (Solaris 10 10/08)” en la página 146
■ “Resolución de problemas de montaje de ZFS que impiden arrancar correctamente”
en la página 166
Siga los procedimientos recomendados para configurar zonas de un sistema con un sistema de
archivos root ZFS para asegurarse de poder utilizar en él Modernización automática de Solaris.
1 Actualice el sistema a la versión Solaris 10 10/08 si se ejecuta una versión de Solaris 10 anterior.
Para obtener más información sobre cómo actualizar un sistema que ejecuta la versión Solaris
10, consulte Guía de instalación de Solaris 10: Modernización automática de Solaris y
planificación de la modernización.
3 Confirme que se hayan arrancado las zonas desde el entorno de arranque UFS.
6 Reinicie el sistema.
# init 6
d. Reinicie el sistema.
# init 6
En este paso se verifica que se arranque el entorno de arranque ZFS y las zonas.
NAME MOUNTPOINT
rpool/ROOT/s10u6 /.alt.tmp.b-VP.mnt/
rpool/ROOT/s10u6/zones /.alt.tmp.b-VP.mnt//zones
rpool/ROOT/s10u6/zones/zonerootA /.alt.tmp.b-VP.mnt/zones/zonerootA
El punto de montaje del entorno de arranque ZFS root (rpool/ROOT/s10u6) debe ser /.
b. Restablezca los puntos de montaje del entorno de arranque ZFS y sus conjuntos de datos.
Por ejemplo:
# zfs inherit -r mountpoint rpool/ROOT/s10u6
# zfs set mountpoint=/ rpool/ROOT/s10u6
c. Reinicie el sistema.
Si la opción se presenta para arrancar un determinado entorno de arranque, en el menú
GRUB o el símbolo del sistema OpenBoot Prom, seleccione el entorno de arranque cuyos
puntos de montaje se han acabado de corregir.
1 Instale el sistema con una root ZFS, ya sea con el método de instalación inicial interactiva o la
instalación Solaris JumpStart.
Para obtener más información sobre cómo instalar un sistema de archivos root ZFS con el
método de instalación inicial interactiva o con Solaris JumpStart, consulte “Instalación de un
sistema de archivos root ZFS (instalación inicial)” en la página 120 o “Instalación de un sistema
de archivos root ZFS (instalación JumpStart)” en la página 130.
8 Instale la zona.
# zoneadm -z zoneA install
9 Arranque la zona.
# zoneadm -z zoneA boot
En los pasos siguientes, newBE es el nombre de ejemplo del entorno de arranque que se actualiza
o al que se aplican parches.
2 Seleccione una de las opciones siguientes para actualizar el sistema o aplicar parches al nuevo
entorno de arranque.
■ Actualice el sistema.
3 Active el nuevo entorno de arranque una vez se hayan completado las actualizaciones.
# luactivate newBE
5 En esta versión de Solaris 10/08, resuelva cualquier problema potencial de puntos de montaje.
Debido a un error en Modernización automática, el entorno de arranque no activo podría fallar
porque un conjunto de datos ZFS o ZFS de una zona del entorno de arranque tiene un punto de
montaje no válido.
NAME MOUNTPOINT
rpool/ROOT/newBE /.alt.tmp.b-VP.mnt/
rpool/ROOT/newBE/zones /.alt.tmp.b-VP.mnt//zones
rpool/ROOT/newBE/zones/zonerootA /.alt.tmp.b-VP.mnt/zones/zonerootA
El punto de montaje del entorno de arranque ZFS root (rpool/ROOT/newBE) debe ser /.
b. Restablezca los puntos de montaje del entorno de arranque ZFS y sus conjuntos de datos.
Por ejemplo:
# zfs inherit -r mountpoint rpool/ROOT/newBE
# zfs set mountpoint=/ rpool/ROOT/newBE
c. Reinicie el sistema.
Si la opción se presenta para arrancar un determinado entorno de arranque, en el menú
GRUB o el símbolo del sistema OpenBoot Prom, seleccione el entorno de arranque cuyos
puntos de montaje se han acabado de corregir.
En esta sección se describe cómo configurar e instalar un sistema con zonas para que se pueda
aplicar un parche o una actualización con Modernización automática de Solaris a partir de la
versión Solaris 10 5/09. Si va a migrar a un sistema de archivos root ZFS sin zonas, consulte
“Uso de Modernización automática de Solaris para migrar a un sistema de archivos root ZFS
(sin zonas)” en la página 137.
Tenga en cuenta los puntos siguientes cuando se utilice Modernización automática con ZFS y
las zonas a partir de la versión Solaris 10 5/09.
■ Si desea utilizar Modernización automática con configuraciones de zonas que se admiten a
partir de la versión Solaris 10 5/09, deberá realizar previamente la actualización del sistema a
la versión Solaris 10 5/09 o Solaris 10 10/09 mediante el programa de actualización estándar.
■ A continuación, mediante Modernización automática, puede migrar el sistema de archivos
root UFS con roots de zona a un sistema de archivos root ZFS, o bien puede aplicar un
parche o una actualización al sistema de archivos root ZFS y las roots de zonas.
■ No es posible tomar configuraciones de zonas no admitidas de una versión anterior a Solaris
10 y migrarlas directamente a la versión Solaris 10 5/09 o Solaris 10 10/09.
zonepool
zonepool/zones
zonepool/zones/myzone
rpool
rpool/ROOT
rpool/ROOT/myBE
# lucreate -n newBE
En los pasos que aparecen a continuación, el sistema Solaris 10 10/09 de ejemplo tiene un
sistema de archivos root ZFS y un conjunto de datos root de zonas en /rpool/zones. Se crea un
entorno de arranque ZFS denominado zfs10092BE al que se puede aplicar una actualización o
un parche.
5 Confirme que las zonas y los sistemas de archivos ZFS se crean en el nuevo entorno de arranque.
Por ejemplo:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 7.38G 59.6G 98K /rpool
rpool/ROOT 4.72G 59.6G 21K legacy
rpool/ROOT/zfs10092BE 4.72G 59.6G 4.64G /
rpool/ROOT/zfs10092BE@zfs10092BE 74.0M - 4.64G -
rpool/ROOT/zfs1009BE 5.45M 59.6G 4.64G /.alt.zfs1009BE
rpool/dump 1.00G 59.6G 1.00G -
rpool/export 44K 59.6G 23K /export
rpool/export/home 21K 59.6G 21K /export/home
rpool/swap 1G 60.6G 16K -
rpool/zones 17.2M 59.6G 633M /rpool/zones
rpool/zones-zfs1009BE 653M 59.6G 633M /rpool/zones-zfs1009BE
rpool/zones-zfs1009BE@zfs10092BE 19.9M - 633M -
# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
- zfszone installed /rpool/zones native shared
En los pasos siguientes, zfs10093BE es el nombre de ejemplo del entorno de arranque al que se
ha aplicado una actualización o parche.
3 Cree el entorno de arranque ZFS al que aplicar actualizaciones o parches. Por ejemplo:
# lucreate -n zfs10093BE
Analyzing system configuration.
Comparing source boot environment <zfs10092BE> file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs10093BE>.
Source boot environment is <zfs10092BE>.
Creating boot environment <zfs10093BE>.
Cloning file systems from boot environment <zfs10092BE> to create boot environment <zfs10093BE>.
Creating snapshot for <rpool/ROOT/zfs10092BE> on <rpool/ROOT/zfs10092BE@zfs10093BE>.
Creating clone for <rpool/ROOT/zfs10092BE@zfs10093BE> on <rpool/ROOT/zfs10093BE>.
4 Seleccione una de las opciones siguientes para actualizar el sistema o aplicar parches al nuevo
entorno de arranque.
■ Actualice el sistema. Por ejemplo:
Para obtener un ejemplo completo del proceso luupgrade, consulte el Ejemplo 5–6.
■ Aplique parches al nuevo entorno de arranque. Por ejemplo:
5 Active el nuevo entorno de arranque una vez se hayan completado las actualizaciones.
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE yes no no yes -
zfs10092BE yes yes yes no -
zfs10093BE yes no no yes -
# luactivate zfs10093BE
A Live Upgrade Sync operation will be performed on startup of boot environment <zfs10093BE>.
.
.
.
Ejemplo 5–6 Actualización de un sistema de archivos root ZFS con root de zonas a un sistema de
archivos root ZFS de Solaris 10 10/09
En este ejemplo, un entorno de arranque ZFS (zfs509BE), creado en un sistema Solaris 10 5/09
con un sistema de archivos root ZFS y root de zonas en una agrupación no root, se actualiza a la
versión Solaris 10 10/09. Este proceso puede durar mucho tiempo. A continuación, el entorno
de arranque actualizado (zfs10092BE) se activa. Asegúrese de que las zonas se hayan instalado y
arrancado antes de intentar la migración.
# lucreate -n zfs1009BE
.
.
.
# luactivate zfs1009BE
.
.
.
# init 6
# luupgrade -u -n zfs1009BE -s /net/install/export/s10u8/combined.s10s_u8wos/latest
40410 blocks
miniroot filesystem is <lofs>
Mounting miniroot at </net/system/export/s10u8/latest/Solaris_10/Tools/Boot>
Validating the contents of the media </net/system/export/s10u8//latest>.
The media is a standard Solaris media.
En los pasos que aparecen a continuación, el nombre del entorno de arranque UFS de ejemplo
es c0t1d0s0, la root de zonas UFS es zonepool/zfszone y el entorno de arranque root ZFS es
zfs1009.
1 Actualice el sistema a la versión Solaris 10 5/09 o Solaris 10 10/09 si se ejecuta una versión de
Solaris 10 anterior.
Para obtener más información sobre cómo actualizar un sistema que ejecuta la versión Solaris
10, consulte Guía de instalación de Solaris 10: Modernización automática de Solaris y
planificación de la modernización.
3 Confirme que se hayan arrancado las zonas desde el entorno de arranque UFS. Por ejemplo:
# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
2 zfszone running /zonepool/zones native shared
6 Reinicie el sistema.
# init 6
7 Confirme que las zonas y los sistemas de archivos ZFS estén creados en el nuevo entorno de
arranque. Por ejemplo:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 6.17G 60.8G 98K /rpool
rpool/ROOT 4.67G 60.8G 21K /rpool/ROOT
rpool/ROOT/zfs1009BE 4.67G 60.8G 4.67G /
rpool/dump 1.00G 60.8G 1.00G -
rpool/swap 517M 61.3G 16K -
zonepool 634M 7.62G 24K /zonepool
zonepool/zones 270K 7.62G 633M /zonepool/zones
zonepool/zones-c1t1d0s0 634M 7.62G 633M /zonepool/zones-c1t1d0s0
zonepool/zones-c1t1d0s0@zfs1009BE 262K - 633M -
# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
- zfszone installed /zonepool/zones native shared
Ejemplo 5–7 Migración de un sistema de archivos root UFS con root de zonas a un sistema de
archivos root ZFS
En este ejemplo, un sistema Solaris 10 10/09 con una root UFS y una root de zonas
(/uzone/ufszone), así como una agrupación que no es root ZFS (pool) y una root de zonas
(/pool/zfszone) se migra a un sistema de archivos root ZFS. Asegúrese de que la agrupación
root ZFS se haya creado y de que las zonas se hayan instalado y arrancado antes de intentar la
migración.
# swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/mpool/swap 253,3 16 8257520 8257520
# dumpadm
Dump content: kernel pages
Dump device: /dev/zvol/dsk/mpool/dump (dedicated)
Savecore directory: /var/crash/t2000
Savecore enabled: yes
Para obtener información sobre el tamaño de los volúmenes de intercambio y volcado creados
por los programas de instalación, consulte “Requisitos de instalación de Solaris y de
Modernización automática de Solaris para admitir ZFS” en la página 117.
Tanto el tamaño del volumen de intercambio como el tamaño del volumen de volcado se
pueden ajustar durante y después de la instalación. Para obtener más información, consulte
“Ajuste del tamaño de los dispositivos de intercambio y volcado de ZFS” en la página 160.
Al trabajar con dispositivos de intercambio y volcado de ZFS, debe tener en cuenta los
problemas siguientes:
■ Para el área de intercambio y los dispositivos de volcado deben utilizarse volúmenes ZFS
distintos.
# swap -d /dev/zvol/dsk/rpool/swap
# zfs volsize=2G rpool/swap
# swap -a /dev/zvol/dsk/rpool/swap
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
■ Puede ajustar el tamaño de los volúmenes de intercambio y volcado de un perfil de
JumpStart mediante una sintaxis de perfil similar a la siguiente:
install_type initial_install
cluster SUNWCXall
pool rpool 16g 2g 2g c0t0d0s0
# swap -a /dev/zvol/dsk/rpool/swap2
# swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 256,1 16 1058800 1058800
/dev/zvol/dsk/rpool/swap2 256,3 16 4194288 4194288
Si el sistema se arranca para instalar, se utiliza un disco RAM para el sistema de archivos root
durante todo el proceso de instalación. De este modo, no hace falta arrancar desde el medio
extraíble.
Si efectúa una instalación inicial de Solaris 10 10/08 o Solaris 10 5/09, o bien si emplea
Modernización automática de Solaris para migrar a un sistema de archivos root ZFS en esta
versión, puede arrancar desde un sistema de archivos root ZFS tanto en sistemas basados en
SPARC como en x86.
# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:
ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@1
entorno de arranque, puede utilizar el comando -L de arranque para obtener una lista de
entornos de arranque cuando el dispositivo de arranque contenga una agrupación de
almacenamiento ZFS.
En una agrupación puede haber varios conjuntos de datos que se pueden arrancar. De forma
predeterminada, la entrada del conjunto de datos que se pueden arrancar del archivo
/nombre_agrupación/boot/menu.lst se identifica mediante la propiedad bootfs de la
agrupación. Ahora bien, una entrada de menu.lstpuede contener un comando bootfs, que
especifica un conjunto de datos alternativo de la agrupación. De esta manera, el archivo
menu.lst puede contener entradas de varios sistemas de archivos root dentro de la agrupación.
Si un sistema se instala con un sistema de archivos root ZFS o se migra a un sistema de archivos
root ZFS, al archivo menu.lst se agrega una entrada similar a la siguiente:
title zfs1009BE
bootfs rpool/ROOT/zfs1009BE
title zfs509BE
bootfs rpool/ROOT/zfs509BE
Por ejemplo, los siguientes entornos de arranque ZFS están disponibles como se describe en la
salida de lustatus:
# lustatus
Boot Environment Is Active Active Can Copy
Si dispone de varios entornos de arranque ZFS en el sistema basado en SPARC, puede utilizar el
comando boot -L. Por ejemplo:
ok boot -L
Rebooting with command: boot -L
Boot device: /pci@8,600000/SUNW,qlc@2/fp@0,0/disk@w500000e01082bbd1,0:a File and args: -L
1 zfs1009BE
2 zfs509BE
Select environment to boot: [ 1 - 2 ]: 2
ok boot -Z rpool/ROOT/zfs509BE
EJEMPLO 5–9 SPARC: Arranque de un sistema de archivos ZFS en modo a prueba de anomalías
ok boot -F failsafe
Si el dispositivo que GRUB identifica como dispositivo de arranque contiene una agrupación de
almacenamiento ZFS, el archivo menu.lst se utiliza para crear el menú GRUB.
En el caso de un sistema basado en x86 con varios entornos de arranque ZFS, el entorno de
arranque se puede seleccionar en el menú GRUB. Si el sistema de archivos root correspondiente
a esta entrada de menú es un conjunto de datos ZFS, se agrega la opción siguiente.
-B $ZFS-BOOTFS
EJEMPLO 5–11 x86: Arranque de un sistema de archivos ZFS en modo a prueba de anomalías
Si el conjunto de datos de una zona tiene un punto de montaje no válido, éste se puede corregir
si se realizan los siguientes pasos.
2 Importe la agrupación.
Por ejemplo:
# zpool import rpool
NAME MOUNTPOINT
rpool/ROOT/s10u6 /.alt.tmp.b-VP.mnt/
rpool/ROOT/s10u6/zones /.alt.tmp.b-VP.mnt//zones
rpool/ROOT/s10u6/zones/zonerootA /.alt.tmp.b-VP.mnt/zones/zonerootA
El punto de montaje del entorno de arranque root (rpool/ROOT/s10u6) debe ser /.
Si falla el arranque debido a problemas de montaje de /var, busque un punto de montaje
similar incorrecto para el conjunto de datos /var.
4 Restablezca los puntos de montaje del entorno de arranque ZFS y sus conjuntos de datos.
Por ejemplo:
# zfs inherit -r mountpoint rpool/ROOT/s10u6
# zfs set mountpoint=/ rpool/ROOT/s10u6
5 Reinicie el sistema.
Si la opción se presenta para arrancar un determinado entorno de arranque, en el menú GRUB
o el símbolo del sistema OpenBoot Prom, seleccione el entorno de arranque cuyos puntos de
montaje se han acabado de corregir.
Identifique los nombres de ruta del dispositivo de arranque de los discos nuevo y actual para
que pueda probar el arranque desde el disco de sustitución y también arrancar manualmente
desde el disco existente, si fuera necesario, si el disco de sustitución falla. En el ejemplo
siguiente, el disco de la agrupación root actual (c1t10d0s0) es:
/pci@8,700000/pci@3/scsi@5/sd@a,0
/pci@8,700000/pci@3/scsi@5/sd@9,0
2 Confirme que la sustitución (nuevo) disco tiene una etiqueta SMI y un segmento 0.
Para obtener información sobre el reetiquetado de un disco que está diseñado para la
agrupación root, consulte el siguiente sitio:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
8 Configure el sistema para arrancar automáticamente desde el nuevo disco, ya sea mediante el
comando eeprom, el comando setenv desde la PROM de arranque de SPARC, o bien vuelva a
configurar la BIOS del equipo.
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Todos los pasos que se muestran a continuación se llevan a cabo en el sistema local.
3 Si se reemplaza el disco de la agrupación root y no contiene una etiqueta de disco que sea
utilizable por ZFS, deberá etiquetar de nuevo el disco.
Para obtener más información sobre cómo volver a etiquetar el disco, consulte el sitio siguiente:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
9 Reinicie el sistema.
# init 6
Starting shell.
Este capítulo ofrece información detallada sobre la administración de sistemas de archivos ZFS.
Conceptos como la disposición jerárquica del sistema de archivos, la herencia de propiedades,
así como la administración automática de puntos de montaje y cómo compartir interacciones,
se incluyen en este capítulo.
Los sistemas de archivos ZFS se administran mediante el comando zfs. El comando zfs ofrece
un conjunto de subcomandos que ejecutan operaciones específicas en los sistemas de archivos.
Este capítulo describe estos subcomandos detalladamente. Las instantáneas, los volúmenes y los
clónicos también se administran mediante este comando, pero estas funciones sólo se explican
brevemente en este capítulo. Para obtener información detallada sobre instantáneas y clónicos,
consulte el Capítulo 7, “Utilización de clónicos e instantáneas de ZFS”. Para obtener
información detallada sobre volúmenes ZFS, consulte “Volúmenes de ZFS” en la página 275.
Nota – El término conjunto de datos se utiliza en este capítulo como término genérico para
referirse a un sistema de archivos, instantánea, clónico o volumen
175
Creación y destrucción de sistemas de archivos ZFS
nombre_grupo/[nombre_sistema_archivos/]nombre_sistema_archivos
El nombre de grupo y los nombres del sistema de archivos inicial de la ruta identifican la
ubicación en la jerarquía donde se creará el nuevo sistema de archivos. Los nombres de todos
los sistemas de archivos intermedios ya deben existir en el grupo. El último nombre de la ruta
identifica el nombre del sistema de archivos que se creará. El nombre del sistema de archivos
debe seguir las convenciones de denominación establecidas en “Requisitos de asignación de
nombres de componentes de ZFS” en la página 45.
ZFS monta de forma automática el sistema de archivos recién creado si se crea correctamente.
De forma predeterminada, los sistemas de archivos se montan como /conjunto de datos,
mediante la ruta proporcionada para el nombre del sistema de archivos en el subcomando
create. En este ejemplo, el sistema de archivos recién creado bonwick se encuentra en
/tank/home/bonwick. Para obtener más información sobre puntos de montaje que se
administran automáticamente, consulte “Administración de puntos de montaje de ZFS”
en la página 201.
Para obtener más información sobre el comando zfs create, consulte zfs(1M).
Las propiedades del sistema de archivos pueden establecerse al crear dicho sistema de archivos.
Para obtener más información sobre las propiedades del sistema de archivos, consulte
“Introducción a las propiedades de ZFS” en la página 179.
El comando zfs destroy también falla si un sistema de archivos tiene subordinados. Para
destruir recursivamente un sistema de archivos y todos sus subordinados, utilice la opción
-r. Una destrucción repetitiva también destruye las instantáneas, por lo que debe utilizar esta
opción con precaución.
Si el sistema de archivos que se debe destruir tiene elementos dependientes indirectos, falla
incluso el comando de destrucción recursiva descrito anteriormente. Para forzar la destrucción
de todos los dependientes, incluidos los sistemas de archivos clonados fuera de la jerarquía de
destino, se debe utilizar la opción -R. Esta opción se debe utilizar con sumo cuidado.
Precaución – No aparece ningún mensaje de confirmación con las opciones -f, - r o -R, por lo
que debe utilizarlas con cuidado.
Este ejemplo cambia el nombre del sistema de archivos kustarz por el de kustarz_old.
El ejemplo siguiente muestra cómo utilizar zfs rename para reubicar un sistema de archivos.
Para obtener más información sobre el cambio de nombre de las instantáneas, consulte
“Cambio de nombre de instantáneas de ZFS” en la página 217.
Las propiedades se dividen en dos tipos: nativas y definidas por el usuario. Las propiedades
nativas exportan estadísticas internas o controlan el comportamiento del sistema de archivos
ZFS. Asimismo, las propiedades nativas son configurables o de sólo lectura. Las propiedades del
usuario no repercuten en el comportamiento del sistema de archivos ZFS, pero puede usarlas
para anotar conjuntos de datos de forma que tengan sentido en su entorno. Para obtener más
información sobre las propiedades del usuario, consulte “Propiedades de usuario de ZFS”
en la página 191.
La mayoría de las propiedades configurables también se pueden heredar. Una propiedad que se
puede heredar es aquella que, cuando se establece en un principal, se propaga a todos sus
subordinados.
Todas las propiedades heredables tienen un origen asociado. El origen indica la forma en que se
ha obtenido una propiedad. El origen de una propiedad puede tener los valores siguientes:
local Un origen local indica que la propiedad se ha
establecido explícitamente en el conjunto de
datos mediante el comando zfs set, tal como se
describe en “Configuración de propiedades de
ZFS” en la página 195.
inherited from nombre_conjunto_datos Un valor de inherited from
nombre_conjunto_datos significa que la
propiedad se ha heredado del superior
nombrado.
default Un valor de default significa que la
configuración de la propiedad no se ha heredado
ni se ha establecido localmente. Este origen es el
resultado de que ningún superior tiene la
propiedad como local de origen.
La tabla siguiente identifica las propiedades del sistema de archivos ZFS nativo configurable y
de sólo lectura. Las propiedades nativas de sólo lectura se identifican como tal. Todas las demás
propiedades nativas que se enumeran en esta tabla son configurables. Para obtener información
sobre las propiedades del usuario, consulte “Propiedades de usuario de ZFS” en la página 191.
Valor
Nombre de propiedad Tipo predeterminadoDescripción
aclinherit Cadena secure Controla cómo se heredan las entradas de LCA cuando se
crean los archivos y los directorios. Los valores son
discard, noallow, secure y passthrough. Para obtener
una descripción de estos valores, consulte “Modos de
propiedades de LCA” en la página 237.
aclmode Cadena groupmask Controla cómo se modifica una entrada de LCA durante
una operación de chmod. Los valores son discard,
groupmask y passthrough. Para obtener una descripción
de estos valores, consulte “Modos de propiedades de
LCA” en la página 237.
creation Cadena N/D Propiedad de sólo lectura que identifica la fecha y la hora
de creación de este conjunto de datos.
mounted booleano N/D Propiedad de sólo lectura que indica si este sistema de
archivos, clónico o instantánea está montado. Esta
propiedad no se aplica a los volúmenes. El valor puede ser
sí o no.
mountpoint Cadena N/D Controla el punto de montaje utilizado para este sistema
de archivos. Si la propiedad mountpoint se cambia para
un sistema de archivos, se desmontan éste y cualquier
subordinado que hereden el punto de montaje. Si el valor
nuevo es legacy, permanecen desmontados. En cambio,
se vuelven a montar automáticamente en la nueva
ubicación si la propiedad era legacy o none, o bien si
estaban montados antes de que cambiara la propiedad.
Además, cualquier nuevo sistema de archivos
compartidos se comparte o no en la ubicación nueva.
Para obtener más información sobre el uso de esta
propiedad, consulte “Administración de puntos de
montaje de ZFS” en la página 201.
type Cadena N/D Propiedad de sólo lectura que identifica el tipo de datos
como filesystem (sistema de archivos o clónico),
volume o snapshot.
zoned Booleano N/D Indica si este conjunto de datos se ha agregado a una zona
no global. Si se establece esta propiedad, el punto de
montaje no recibe permisos para una tarea específica en
la zona global y ZFS no puede montar dicho sistema de
archivos cuando se solicite. Al instalarse una zona por
primera vez, esta propiedad se establece para cualquier
sistema de archivos que se agregue.
Para obtener más información sobre el uso de ZFS con
zonas instaladas, consulte “Uso de ZFS en un sistema
Solaris con zonas instaladas” en la página 278.
Las propiedades nativas de sólo lectura aparecen aquí y se describen en la Tabla 6–1.
■ available
■ creation
■ mounted
■ origin
■ compressratio
■ referenced
■ type
■ used
Para obtener más información, consulte “Propiedad used” en la página 188.
■ usedbychildren
■ usedbydataset
■ usedbyrefreservation
■ usedbysnapshots
Para obtener más información sobre el cálculo de espacio, incluidas las propiedades used,
referenced y available, consulte “Cálculo del espacio de ZFS” en la página 56.
Propiedad used
Cantidad de espacio consumido por este conjunto de datos y todos sus subordinados. Este valor
se comprueba con la cuota del conjunto de datos y la reserva. El espacio utilizado no incluye la
reserva del conjunto de datos, pero considera la reserva de cualquier conjunto de datos
subordinado. La cantidad de espacio que un conjunto de datos consume en su elemento
principal, y la cantidad de espacio que se libera si el conjunto de datos se destruye
repetidamente, es mayor que el espacio que se utiliza y su reserva.
■ volsize
Para obtener información detallada, consulte “Propiedad volsize” en la página 191.
■ volblocksize
■ zoned
Propiedad canmount
Si esta propiedad se establece en off, el sistema de archivos no se puede montar mediante los
comandos zfs mount ni zfs mount -a. Esta propiedad se parece a establecer la propiedad
mountpoint en none, excepto que el conjunto de datos todavía tiene una propiedad mountpoint
normal que se puede heredar. Por ejemplo, puede establecer esta propiedad en off, así como
establecer propiedades heredables para los sistemas de archivos descendientes. Sin embargo, el
sistema de archivos no se puede montar nunca ni los usuarios pueden acceder a él. En este caso,
el sistema de archivos principal con esta propiedad establecida en off sirve como contenedor
para poder establecer atributos en el contenedor, pero nunca se puede acceder al contenedor en
sí.
Propiedad recordsize
Especifica un tamaño de bloque sugerido para los archivos del sistema de archivos.
Esta propiedad se designa exclusivamente para utilizarse con cargas de trabajo de la base de
datos que acceden a los archivos en registros de tamaño fijo. ZFS ajusta automáticamente el
tamaño de los bloques de acuerdo con algoritmos internos optimizados para los patrones de
acceso habituales. En cuanto a las bases de datos que crean archivos muy grandes pero que
acceden a los archivos en pequeños bloques aleatorios, estos algoritmos quizá funcionen por
debajo de su nivel habitual. Si se especifica una propiedad recordsize mayor o igual que el
tamaño de grabación de la base de datos, el rendimiento puede mejorar considerablemente. El
uso de esta propiedad se desaconseja de manera especial en los sistemas de archivos de finalidad
general; puede afectar negativamente al rendimiento. El tamaño especificado debe ser una
potencia de 2 mayor o igual que 512 y menor o igual que 128 Kbytes. El cambio de recordsize
en los sistemas de archivos sólo afecta a los archivos creados posteriormente. No afecta a los
archivos ya creados.
Propiedad volsize
El tamaño lógico del volumen. De forma predeterminada, la creación de un volumen establece
una reserva para la misma cantidad. Cualquier cambio en volsize se refleja en un cambio
equivalente a la reserva. Estas comprobaciones se utilizan para evitar un comportamiento
inesperado para los usuarios. Un volumen que contenga menos espacio del que indica como
disponible puede provocar un comportamiento indefinido o corrupción en los datos, según
cómo se utilice el volumen. Estos efectos también pueden darse si el tamaño del volumen se
cambia durante su uso, especialmente si reduce el tamaño. Al ajustar el tamaño del volumen se
debe ir con sumo cuidado.
Para obtener más información sobre el uso de volúmenes, consulte “Volúmenes de ZFS”
en la página 275.
Los nombres de propiedad del usuario deben ajustarse a las características siguientes:
■ Deben contener un signo de dos puntos (': ') para distinguirlos de las propiedades nativas.
■ Deben contener letras minúsculas, números y los signos de puntuación siguientes: ':', '+','.',
'_'.
module:property
Cuando se hace un uso programático de las propiedades del usuario, utilice un nombre de
dominio DNS inverso para el componente módulo de nombres de propiedades para reducir la
posibilidad de que dos paquetes desarrollados independientemente utilicen el mismo nombre
de propiedad para fines diferentes. Los nombres de propiedad que comiencen por "com.sun." se
reservan para el uso de Sun Microsystems.
Por ejemplo:
Todos los comandos que se utilizan en propiedades, por ejemplo zfs list, zfs get o zfs set,
se pueden utilizar para manipular las propiedades nativas y las del usuario.
Por ejemplo:
Para borrar una propiedad de usuario, utilice el comando zfs inherit. Por ejemplo:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
pool 476K 16.5G 21K /pool
pool/clone 18K 16.5G 18K /pool/clone
pool/home 296K 16.5G 19K /pool/home
pool/home/marks 277K 16.5G 277K /pool/home/marks
pool/home/marks@snap 0 - 277K -
pool/test 18K 16.5G 18K /test
También puede utilizar este comando para visualizar conjuntos de datos específicos si
proporciona el nombre del conjunto de datos en la línea de comandos. Asimismo, utilice la
opción -r para mostrar repetidamente todos los subordinados del conjunto de datos. Por
ejemplo:
Utilice el comando zfs list con nombres de ruta completos para conjuntos de datos,
instantáneas y volúmenes. Por ejemplo:
El ejemplo siguiente muestra cómo visualizar tank/home/chua y todos sus conjuntos de datos
descendientes.
Para obtener más información sobre el comando zfs list, consulte zfs(1M).
Puede personalizar la salida del valor de propiedades mediante la opción -o y una lista separada
por comas de las propiedades en cuestión. Proporcione una propiedad del conjunto de datos
como valor válido. Para obtener una lista de todas las propiedades de conjuntos de datos
compatibles, consulte “Introducción a las propiedades de ZFS” en la página 179. Además de las
propiedades que se definen, la lista de la opción -o también puede contener name para indicar
que la salida debe incluir el nombre del conjunto de datos.
El ejemplo siguiente utiliza zfs list para mostrar el nombre del conjunto de datos, junto con
las propiedades sharenfs y mountpoint .
Puede utilizar la opción -t para especificar los tipos de conjuntos de datos que se deben
mostrar. Los tipos válidos se describen en la tabla siguiente.
Tipo Descripción
volumen Volúmenes
instantánea Instantáneas
Las opciones -t toman una lista separada por comas de los tipos de conjuntos de datos que
mostrar. El ejemplo siguiente utiliza las opciones -t y - o simultáneamente para mostrar el
nombre y la propiedad used para todos los sistemas:
Puede utilizar la opción -H para omitir la cabecera zfs list de la salida que se ha generado.
Con la opción -H, todos los espacios en blanco aparecen en la salida como tabuladores. Esta
opción se puede utilizar si necesita una salida analizable, por ejemplo, con las secuencias de
comandos. El ejemplo siguiente muestra la salida generada a partir del uso del comando zfs
list con la opción -H:
El ejemplo siguiente establece la propiedad atime en off para tank/home. Sólo se puede
establecer o modificar una propiedad durante cada invocación de zfs set.
Además, cualquier propiedad del sistema de archivos se puede establecer al crear el sistema. Por
ejemplo:
Puede especificar las propiedades numéricas mediante los sufijos siguientes, fáciles de
comprender (en orden de importancia): BKMGTPEZ. Cualquiera de estos sufijos puede ir seguido
de una b opcional que indica los bytes, con la excepción del sufijo B, que ya indica los bytes. Las
cuatro invocaciones siguientes de zfs set son expresiones numéricas equivalentes que indican
que la propiedad quota se puede establecer en el valor de 50 GB en el sistema de archivos
tank/home/marks:
Para obtener más información sobre el comando zfs set, consulte zfs(1M).
El ejemplo siguiente utiliza el comando zfs set para activar la compresión para el sistema de
archivos tank/home/bonwick. A continuación, zfs inherit se utiliza para desconfigurar la
propiedad compression; de este modo, la propiedad hereda el valor predeterminado de off.
Como ni home ni tank tienen la propiedad compression configurada localmente, se utiliza el
valor predeterminado. Si ambos tienen activada la compresión, se utiliza el valor configurado
en el superior más inmediato (home en este ejemplo).
Nota – Si se utiliza la opción -r, se borra la configuración actual de la propiedad en todos los
conjuntos de datos subordinados.
Puede utilizar el comando zfs get para recuperar cualquier propiedad del conjunto de datos.
El ejemplo siguiente muestra la manera de recuperar una sola propiedad en un conjunto de
datos:
La cuarta columna, SOURCE, indica dónde se ha establecido el valor de esta propiedad. La tabla
siguiente define el significado de los posibles valores de origen.
inherited from El valor de esta propiedad se hereda del superior, tal como especifica
nombre_conjunto_datos nombre_conjunto_datos.
Puede utilizar la palabra clave especial all para recuperar todas las propiedades del conjunto de
datos. Los ejemplos siguientes utilizan la palabra clave all para recuperar todas las propiedades
del conjunto de datos:
La opción -s de zfs get permite especificar, por tipo de origen, las propiedades que mostrar.
Esta opción toma una lista separada por comas que indica los tipos de origen deseados. Sólo
aparecen las propiedades con el tipo de origen especificado. Los tipos de origen válidos son
local, default, inherited, temporary y none. El ejemplo siguiente muestra todas las
propiedades que se han establecido localmente en pool.
Cualquiera de las opciones anteriores se puede combinar con la opción -r para mostrar de
forma recursiva las propiedades especificadas en todos los subordinados del conjunto de datos
indicado. En el ejemplo siguiente, todas las propiedades temporales de todos los conjuntos de
datos en tank aparecen de forma recursiva:
Una función reciente permite efectuar consultas con el comando zfs get sin especificar un
sistema de archivos de destino, lo cual significa que funciona en todos los grupos o sistemas de
archivos. Por ejemplo:
Para obtener más información sobre el comando zfs get, consulte zfs(1M).
El ejemplo siguiente muestra la forma de recuperar un valor simple mediante las opciones -H y
-o de zfs get.
La opción -p informa de valores numéricos como sus valores exactos. Por ejemplo, 1 MB se
especifica como 1000000. Esta opción puede usarse de la forma siguiente:
Puede utilizar la opción -r junto con una de las opciones anteriores para recuperar de forma
recursiva los valores solicitados para todos los subordinados. El ejemplo siguiente utiliza las
opciones -r, -o y - H para recuperar el nombre del conjunto de datos y el valor de la propiedad
used para export/home y sus subordinados, mientras se omite la salida de cualquier
encabezado:
La propiedad mountpoint se puede establecer en none para impedir que se monte el sistema de
archivos. Además, la propiedad canmount está disponible para determinar si se puede montar
un sistema de archivos. Para obtener información sobre la propiedad canmount, consulte
“Propiedad canmount” en la página 190.
También puede establecer el punto de montaje predeterminado para el conjunto de datos root
al crearlo mediante la opción -m del comando zpool create. Para obtener más información
sobre la creación de agrupaciones, consulte “Creación de un grupo de almacenamiento de ZFS”
en la página 67.
ZFS administra cualquier conjunto de datos cuya propiedad mountpoint no sea legacy. En el
ejemplo siguiente se crea un conjunto de datos cuyo punto de montaje lo administra ZFS
automáticamente.
Las entradas device to fsck y fsck pass se han establecido como -. Esta sintaxis se debe a que
el comando fsck no es aplicable a los sistemas de archivos ZFS. Para obtener más información
sobre la integridad de los datos y la falta de necesidad de fsck en ZFS, consulte “Semántica
transaccional” en la página 41.
# zfs mount
tank /tank
tank/home /tank/home
tank/home/bonwick /tank/home/bonwick
tank/ws /tank/ws
Puede utilizar la opción -a para montar todos los sistemas de archivos ZFS administrados. Los
sistemas de archivos administrados de herencia no están montados. Por ejemplo:
# zfs mount -a
Los puntos de montaje heredados se deben administrar mediante las herramientas de herencia.
Intentar usar herramientas de ZFS genera un error. Por ejemplo:
En este ejemplo, se supone que el sistema de archivos está desmontado. Para cambiar
temporalmente una propiedad de un sistema de archivos que está montado, debe usar la opción
especial remount. En el ejemplo siguiente, la propiedad atime se cambia temporalmente a off
para un sistema de archivos que esté montado:
Para obtener más información sobre el comando zfs mount, consulte zfs(1M).
El comando unmount falla si el sistema de archivos está activo u ocupado. Para forzar el
desmontaje de un sistema de archivos, use la opción -f. Tenga cuidado al forzar el desmontaje
de un sistema de archivos si su contenido se utiliza de forma activa. La aplicación se puede
comportar de manera imprevista.
Para ofrecer compatibilidad con versiones anteriores, el comando umount de herencia se puede
utilizar para desmontar sistemas de archivos ZFS. Por ejemplo:
# umount /export/home/bob
Para obtener más información sobre el comando zfs umount, consulte zfs(1M).
Este comando anula la compartición del sistema de archivos tank/home/tabriz. Para que los
sistemas de archivos ZFS dejen de compartirse en el sistema, debe usar la opción - a.
# zfs unshare -a
También puede compartir todos los sistemas de archivos ZFS en el sistema mediante la opción
- a.
# zfs share -a
A diferencia del comando mount tradicional, los comandos share y unshare tradicionales
todavía son válidos en sistemas de archivos ZFS. De este modo, puede compartir manualmente
un sistema de archivos con opciones distintas de la propiedad sharenfs. Se desaconseja este
modelo de administración. Administre las comparticiones de NFS íntegramente con ZFS o el
archivo /etc/dfs/dfstab. El modelo de administración de ZFS se ha ideado para ser más
sencillo y requerir menos recursos que el modelo tradicional. Sin embargo, en algunos casos
quizá desee seguir controlando el comportamiento de compartición del sistema de archivos
mediante el modelo familiar.
En esta versión de Solaris, puede establecer una cuota user o group sobre la cantidad de espacio
consumida por archivos que sean propiedad de un determinado grupo o usuario. Las
propiedades de cuota de usuarios y grupos no se pueden establecer en un volumen, en un
sistema de archivos que sea anterior a la versión 4 o en una agrupación que sea anterior a la
versión 15.
A la hora de determinar las funciones de cuota y reserva que mejor administran los sistemas de
archivos se deben tener en cuenta los puntos siguientes:
■ Las propiedades quota y reservation son apropiadas para administrar espacio consumido
por conjuntos de datos.
■ Las propiedades refquota y refreservation son apropiadas para administrar espacio
consumido por conjuntos de datos e instantáneas.
■ Establecer refquota o refreservation con un valor más alto que el de quota o reservation
no tiene repercusión alguna. Si establece las propiedades de quota o refquota, fallarán las
operaciones que intenten exceder cualquier valor. Es posible exceder un valor de quota
superior al de refquota. Si se ensucian algunos bloques de instantáneas, quizá se exceda
realmente el valor de quota antes de exceder el valor de refquota.
■ Las cuotas de usuarios y grupos proporcionan un medio de administrar más fácilmente el
espacio en disco con múltiples cuentas de usuario, como por ejemplo en un entorno
universitario.
Las cuotas de ZFS también influyen en la salida de los comandos zfs list y df. Por ejemplo:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank/home 16.5K 33.5G 8.50K /export/home
tank/home/bonwick 15.0K 10.0G 8.50K /export/home/bonwick
tank/home/bonwick/ws 6.50K 10.0G 8.50K /export/home/bonwick/ws
# df -h /export/home/bonwick
Filesystem size used avail capacity Mounted on
tank/home/bonwick 10G 8K 10G 1% /export/home/bonwick
No puede configurar una cuota con una cantidad inferior a la que esté usando un conjunto de
datos. Por ejemplo:
Para mayor comodidad, puede establecer otra cuota en un conjunto de datos para administrar
mejor el espacio que consumen las instantáneas. Por ejemplo:
En esta situación hipotética, studentA puede entrar en conflicto con el límite por hard de
refquota (10 GB), pero puede eliminar archivos que recuperar aunque haya instantáneas.
En el ejemplo anterior, la cuota más pequeña (10 GB frente a 20 GB) se muestra en la salida de
zfs list. Para ver en pantalla el valor de las dos cuotas, use el comando zfs get. Por ejemplo:
Visualice la cuota del grupo o la del usuario actual como se indica a continuación:
Puede mostrar el uso general del espacio del grupo y del usuario mediante la consulta de las
propiedades siguientes:
Si desea identificar el uso individual del espacio de un grupo o usuario, consulte las propiedades
siguientes:
Las propiedades de cuotas de grupos y usuarios no se muestran si utiliza el comando zfs get
all dataset que muestra una lista de todas las propiedades del sistema de archivos.
La aplicación de cuotas de usuario o grupo puede retrasarse en varios segundos. Este retraso
significa que los usuarios pueden exceder su cuota antes de que el sistema perciba que se ha
sobrepasado la cuota y que rechace la acción de escritura con posterioridad al mensaje de error
EDQUOT.
Puede utilizar el comando quota heredado para revisar las cuotas del usuario en un entorno
NFS, por ejemplo, donde se haya montado un sistema de archivos ZFS. Sin ninguna opción, el
comando quota sólo muestra la salida si se ha superado la cuota del usuario. Por ejemplo:
Si reinicia la cuota y el límite de cuota ya no se supera, deberá utilizar el comando quota -v para
revisar la cuota del usuario. Por ejemplo:
Las reservas de ZFS pueden afectar a la salida del comando zfs list. Por ejemplo:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank/home 5.00G 33.5G 8.50K /export/home
tank/home/moore 15.0K 10.0G 8.50K /export/home/moore
tank/home utiliza 5 GB de espacio, aunque la cantidad total de espacio a la que hacen referencia
tank/home y sus subordinados es mucho menor que 5 GB. El espacio utilizado refleja el espacio
reservado para tank/home/moore. Las reservas se tienen en cuenta en el espacio utilizado del
conjunto de datos superior y se contabilizan en relación con su cuota, reserva o ambas.
Un conjunto de datos puede usar más espacio que su reserva, siempre que haya espacio
disponible en el grupo que no esté reservado y que el uso actual del conjunto de datos esté por
debajo de su cuota. Un conjunto de datos no puede consumir espacio reservado a otro conjunto
de datos.
Las reservas no son acumulativas. Es decir, una segunda invocación de zfs set para configurar
una reserva no agrega su reserva a la que ya existe, sino que la segunda reserva sustituye a la
primera.
También se puede establecer un valor de reserva en el mismo conjunto de datos para garantizar
espacio de conjunto de datos e instantáneas. Por ejemplo:
En el ejemplo anterior la cuota más pequeña (10 GB frente a 20 GB) se muesra en la salida de
zfs list. Para ver en pantalla el valor de las dos cuotas, use el comando zfs get. Por ejemplo:
Si se establece refreservation, sólo se permite una instantánea en caso de que fuera de esta
reserva exista espacio libre en la agrupación para alojar la cantidad actual de bytes a los que se
hace referencia en el conjunto de datos.
215
Información general de instantáneas de ZFS
■ Las instantáneas recursivas se crean rápidamente como una operación atómica Las
instantáneas se crean todas juntas (todas a la vez) o no se crea ninguna. La ventaja de las
operaciones atómicas de instantáneas estriba en que los datos se toman siempre en un
momento coherente, incluso en el caso de sistemas de archivos subordinados.
No se puede acceder directamente a las instantáneas de volúmenes, pero se pueden clonar,
hacer copias de seguridad, invertir, etc. Para obtener información sobre cómo hacer copias de
seguridad de una instantánea ZFS, consulte “Envío y recepción de datos ZFS” en la página 223.
filesystem@snapname
volume@snapname
Puede crear instantáneas de todos los sistemas de archivos descendientes con la opción -r. Por
ejemplo:
Los conjuntos de datos no se pueden destruir si tienen una instantánea. Por ejemplo:
Además, si se han creado clónicos a partir de una instantánea, deben destruirse antes de poder
destruir la instantánea.
Además, la sintaxis de acceso directo siguiente proporciona una sintaxis de cambio de nombre
equivalente al del ejemplo anterior.
El comando zfs rename - r permite renombrar instantáneas de forma recursiva. Por ejemplo:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
users 270K 16.5G 22K /users
users/home 76K 16.5G 22K /users/home
users/home@yesterday 0 - 22K -
users/home/markm 18K 16.5G 18K /users/home/markm
users/home/markm@yesterday 0 - 18K -
users/home/marks 18K 16.5G 18K /users/home/marks
users/home/marks@yesterday 0 - 18K -
users/home/neil 18K 16.5G 18K /users/home/neil
users/home/neil@yesterday 0 - 18K -
Si deshabilita esta propiedad, puede utilizar el comando zfs list -t snapshot para mostrar
información de las instantáneas. O bien, habilite la propiedad de agrupación listsnapshots.
Por ejemplo:
# ls /tank/home/ahrens/.zfs/snapshot
tuesday wednesday thursday
tank/home/ahrens@thursday 0 - 1.77M -
tank/home/cindys@today 8.50K - 524K -
Se puede obtener una lista de las instantáneas creadas para un determinado sistema de archivos
de la forma siguiente:
Si una instantánea intermedia tiene clónicos, para destruir los clónicos debe especificarse la
opción -R.
Nota – El sistema de archivos que se desea restaurar se debe desmontar y volver a montar, si
actualmente está montado. Si el sistema de archivos no se puede desmontar, la restauración
falla. La opción -f hace que se desmonte el sistema de archivos, si es necesario.
Debido a que al principio un clónico comparte todo su espacio en disco con la instantánea
original, su propiedad used se establece inicialmente en cero. A medida que se efectúan cambios
en el clónico, consume más espacio. La propiedad used de la instantánea original no tiene en
cuenta el espacio en disco que consume el clónico.
Para poder destruir la instantánea principal, antes hay que destruir los clónicos.
archivos especificado. Asimismo, posibilita la destrucción del sistema de archivos a partir del
cual se creó el clónico. Sin la promoción de clónicos no es posible destruir un sistema de
archivos de origen de clónicos activos. Para obtener más información sobre la destrucción de
clónicos, consulte “Destrucción de un clónico de ZFS” en la página 221.
En la salida de zfs list, observe que el espacio perteneciente al sistema de archivos productA
original se ha sustituido por el sistema de archivos productAbeta.
Si envía el flujo de instantáneas a otro sistema, utilice el comando ssh para enviar la salida zfs
send. Por ejemplo:
Los datos incrementales se pueden guardar con la opción zfs send - i. Por ejemplo:
host1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh host2 zfs recv newtank/dana
host1# zfs send -i snap1 tank/dana@snap2 > ssh host2 zfs recv newtank/dana
Si se intenta generar un flujo de datos incremental a partir de una instantánea1 de otro sistema
de archivos, aparece en pantalla el mensaje siguiente:
Si es necesario guardar bastantes copias, quizá deba plantearse comprimir una representación
de flujos de datos de instantáneas de ZFS con el comando gzip. Por ejemplo:
Por ejemplo:
Puede utilizar zfs recv como alias para el comando zfs receive.
host2# rm newtank/dana/file.1
host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana
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
Para que la opción -F funcione debidamente, primero hay que efectuar estas comprobaciones:
■ Si la instantánea más reciente no coincide con el origen incremental, no se completan la
restauración ni la recepción, y se genera un mensaje de error.
Al enviar y recibir flujos de instantáneas ZFS, tenga en cuenta los puntos siguientes:
■ Utilice la opción zfs send -I para enviar todos los flujos incrementales de una instantánea a
una instantánea acumulativa. Utilice también esta opción para enviar un flujo incremental
de la instantánea de origen para crear un clon. Para que se acepte el flujo incremental, la
instantánea original ya debe estar en la parte receptora.
■ Utilice la opción zfs send -R para enviar un flujo de replicación de todos los sistemas de
archivos descendentes. Cuando se reciben, se conservan todas las propiedades, las
instantáneas, los sistemas de archivos descendentes y los clones.
■ También puede utilizar ambas opciones para enviar un flujo de replicación incremental.
■ Se mantienen los cambios realizados en las propiedades y las destrucciones y cambios de
nombres de los sistemas de archivos y las instantáneas.
■ Si no se especifica zfs recv -F al recibir el flujo de replicación, se omiten las
destrucciones de conjuntos de datos. La sintaxis zfs recv -F en este caso también
mantiene su propiedad de aplicar rollback (inversión) si es preciso.
■ Al igual que en otros casos (que no sean zfs send -R) - i o -I, si se utiliza -I, se envían
todas las instantáneas entre instantáneaA e instantáneaD. Si se utiliza -i, sólo se envía
instantáneaD (para todos los descendentes).
■ Para recibir cualquiera de estos nuevos tipos de flujos zfs send, el sistema receptor debe
ejecutar una versión del software capaz de enviarlos. La versión del flujo se incrementa.
Sin embargo, puede acceder a los flujos desde versiones de agrupaciones más antiguas
utilizando una versión del software más reciente. Por ejemplo, puede enviar y recibir flujos
creados con las opciones más recientes a o desde una agrupación de la versión 3. Sin
embargo, debe ejecutar software reciente para recibir un flujo enviado con las opciones más
recientes.
También puede utilizar el comando zfs send -I para combinar una instantánea y una
instantánea clónica para crear un conjunto de datos combinado. Por ejemplo:
Utilice el comando zfs send -R para replicar un sistema de archivos ZFS y todos los sistemas de
archivos descendentes, hasta la instantánea en cuestión. Cuando se reciben, se conservan todas
las propiedades, las instantáneas, los sistemas de archivos descendentes y los clones.
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 -
Puede utilizar el comando zfs send -R para replicar el conjunto de datos users y sus
descendentes y enviar el flujo replicado a otra agrupación, users2.
Este comando envía los datos de instantánea tank/cindy@today y los recibe en el sistema de
archivos sandbox/restfs; además, crea una instantánea restfs@today en el sistema newsys .
En este ejemplo, se ha configurado al usuario para que utilice el comando ssh en el sistema
remoto.
Para obtener información actualizada sobre problemas con ZFS y productos de copia de
seguridad de otros proveedores, consulte las notas de la versión de Solaris 10 o las preguntas
frecuentes sobre ZFS en:
http://opensolaris.org/os/community/zfs/faq/#backupsoftware
En este capítulo se proporciona información sobre el uso de las LCA de (listas de control de
acceso) para proteger los archivos ZFS otorgando más permisos granulares que los permisos
UNIX estándar.
231
Nuevo modelo de LCA de Solaris
■ Aporta una semántica heredada mucho más rica para establecer la forma en que se aplican
privilegios de acceso del directorio a los directorios, y así sucesivamente. Para obtener más
información, consulte “Herencia de LCA” en la página 236.
Los modelos de LCA proporcionan un control de acceso mucho más granular que los permisos
de archivos estándar. De forma muy parecida a las LCA de borrador POSIX, las nuevas LCA
disponen de varias entradas de control de acceso.
Las LCA de borrador POSIX emplean una sola entrada para definir los permisos que se
conceden y los que se deniegan. El nuevo modelo de LCA presenta dos clases de entradas de
control de acceso que afectan a la comprobación de acceso: ALLOW y DENY. Así, a partir de una
entrada de control de acceso que defina un conjunto de permisos no puede deducirse si se
conceden o deniegan los permisos que hay definidos en dicha entrada.
La traducción entre las LCA del tipo NFSv4 y las de borrador POSIX se efectúa de la manera
siguiente:
■ Si emplea una utilidad que tiene en cuenta las LCA, por ejemplo los comandos cp, mv, tar,
cpio o rcp, para transferir archivos UFS con LCA a un sistema de archivos ZFS, las LCA de
borrador POSIX se traducen a sus equivalentes del tipo NFSv4.
■ Algunas LCA de tipo NFSv4 se traducen a LCA de borrador POSIX. Si una LCA de tipo
NFSv4 no se traduce a una LCA de borrador POSIX, en pantalla aparece un mensaje
parecido al siguiente:
# cp -p filea /var/tmp
cp: failed to set acl entries on /var/tmp/filea
■ Si crea un contenedor UFS tar o cpio con la opción de mantener las LCA ACL (tar -p o
cpio -P) en un sistema que ejecuta una versión actual de Solaris, las LCA se pierden si el
contenedor se extrae a un sistema que ejecuta una versión inferior de Solaris.
Se extraen todos los archivos con los modelos de archivos correctos, pero se omiten las
entradas de LCA.
■ El comando ufsrestore es apto para restaurar datos en un sistema de archivos ZFS. Si los
datos originales incluyen LCA de tipo POSIX, se convierten a LCA de tipo NFSv4.
■ Si intenta definir una LCA del tipo NFSv4 en un archivo UFS, en pantalla aparece un
mensaje similar al siguiente:
# getfacl filea
File system doesn’t support aclent_t style ACL’s.
See acl(5) for more information on Solaris ACL support.
Para obtener información sobre otras limitaciones con las LCA y demás productos para copias
de seguridad, consulte “Cómo guardar datos de ZFS con otros productos de copia de seguridad”
en la página 229.
group@:write_data/append_data/execute:deny
0:user:gozer:list_directory/read_data/execute:allow
2:group@:write_data/append_data/execute:deny
El 2 o el ID de índice de este ejemplo identifica la entrada de LCA de la LCA más grande, que
podría tener varias entreadas para owner (propietario), UID específicos, group (grupo) y
everyone (cualquiera). Se puede especificar el ID de índice con el comando chmod para
identificar la parte de la LCA que desea modificar. Por ejemplo, el ID de índice 3 puede
identificarse como A3 en el comando chmod de una forma similar a la siguiente:
Los tipos de entrada LCA, que son las representaciones de LCA de los propietarios, grupos, etc.,
se describen en la tabla siguiente.
everyone@ Especifica el acceso que se concede a cualquier usuario o grupo que no coincida con
ninguna otra entrada de LCA.
group Con un nombre de grupo, especifica el acceso que se concede a un grupo adicional
del objeto. Debe incluir el ID de entrada LCA, que contiene un nombre_grupo o
ID_grupo. Si el valor no es un ID de grupo numérico o nombre_grupo válido, el tipo
de entrada de LCA tampoco es válido.
Privilegio de acceso
Privilegio de acceso compacto Descripción
read_attributes a Permiso para leer los atributos básicos (no LCA) de un archivo. Los
atributos de tipo stat pueden considerarse atributos básicos.
Permitir este bit de la máscara de acceso significa que la entidad
puede ejecutar ls(1) y stat(2).
Herencia de LCA
La finalidad de utilizar la herencia de LCA es que los archivos o directorios que se creen puedan
heredar las LCA que en principio deben heredar, pero sin prescindir de los bits de permiso en el
directorio superior.
Indicador de herencia
Indicador de herencia compacto Descripción
file_inherit f La LCA sólo se hereda del directorio superior a los archivos del
directorio.
Además, se puede establecer una directriz de herencia de LCA predeterminada del sistema de
archivos más o menos estricta mediante la propiedad del sistema de archivos aclinherit.
Para obtener más información, consulte la siguiente sección.
Los archivos ZFS siguen teniendo bits de permisos y un modo; sin embargo, estos valores son
más de una caché de lo que representa la LCA. Así, si cambia los permisos del archivo, su LCA
se actualiza en consonancia. Además, si elimina una LCA no trivial que concedía a un usuario
acceso a un archivo o directorio, ese usuario quizá siga disponiendo de acceso gracias a los bits
de permisos del archivo o directorio que conceden acceso al grupo o a todos los usuarios. Todas
las decisiones de control de acceso se supeditan a los permisos representados en una LCA de
archivo o directorio.
Al crear un archivo, y en función del valor umask, se aplica una LCA similar a la siguiente:
$ ls -v file.1
-r--r--r-- 1 root root 206663 Aug 31 11:53 file.1
0:owner@:write_data/append_data/execute:deny
1:owner@:read_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
Cada categoría de usuario de este ejemplo (owner@, group@, everyone@) tiene dos entradas de
LCA. Una entrada es para los permisos deny y otra para los permisos allow.
$ ls -dv dir.1
drwxr-xr-x 2 root root 2 Aug 31 11:54 dir.1
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
% chmod A- filename
Para ver en pantalla información de LCA en modo detallado, se utiliza el comando ls - v. Por
ejemplo:
# ls -v file.1
-rw-r--r-- 1 root root 206663 Aug 31 11:53 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
Para obtener información sobre el uso del formato de LCA compacto, consulte
“Establecimiento y configuración de las LCA en archivos ZFS en formato compacto”
en la página 254.
# ls -v file.1
-rw-r--r-- 1 root root 206663 Aug 31 11:53 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
Estos ejemplos de LCA ilustran la interacción entre el establecimiento de las LCA y el cambio de
los bits de permisos del archivo o el directorio.
# ls -v file.2
-rw-r--r-- 1 root root 2836 Aug 31 12:06 file.2
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
En esta salida, los bits de permisos del archivo se restablecen de 655 a 650. Los permisos de
lectura de everyone@ se han suprimido de los bits de permisos del archivo cuando se retiran los
permisos de LCA de everyone@.
En el ejemplo siguiente, la LCA se reemplaza por permisos de lectura para el usuario gozer.
En esta salida, los permisos de archivo se calcula que sean 000 porque no hay entradas de LCA
para owner@, group@ ni everyone@, que representan los componentes de permisos habituales de
un archivo. El propietario del archivo puede solventar esta situación restableciendo los
permisos (y la LCA) de la forma siguiente:
Puede utilizar el comando chmod para eliminar todas las LCA no triviales de un archivo o
directorio.
# ls -dv test5.dir
drwxr-xr-x+ 2 root root 2 Aug 31 12:11 test5.dir
0:user:lp:read_data:file_inherit:deny
1:user:gozer:read_data:file_inherit:deny
2:owner@::deny
3:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
4:group@:add_file/write_data/add_subdirectory/append_data:deny
5:group@:list_directory/read_data/execute:allow
6:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
7:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
En el ejemplo siguiente, se han eliminado las LCA no triviales de los usuarios gozer and lp. La
LCA restante contiene los seis valores predeterminados de owner@, group@ y everyone@.
# chmod A- test5.dir
# ls -dv test5.dir
drwxr-xr-x 2 root root 2 Aug 31 12:11 test5.dir
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
Además, se proporcionan dos propiedades de LCA que se pueden establecer de forma global en
sistemas de archivos: aclinherit y aclmode. De modo predeterminado, aclinherit se
establece en restricted y aclmode se establece en groupmask.
# mkdir test.dir/sub.dir
# ls -dv test.dir/sub.dir
drwxr-xr-x 2 root root 2 Aug 31 13:26 test.dir/sub.dir
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
# touch test2.dir/file.2
# ls -v test2.dir/file.2
-rw-r--r--+ 1 root root 0 Aug 31 13:27 test2.dir/file.2
0:user:gozer:write_data:deny
1:user:gozer:read_data/write_data:allow
2:owner@:execute:deny
3:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
4:group@:write_data/append_data/execute:deny
5:group@:read_data:allow
6:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
Como aclmode se establece en el modo predeterminado groupmask para este archivo, el usuario
gozer no dispone del permiso write_data en file.2 porque no lo concede el permiso del
grupo del archivo.
# mkdir test2.dir/subdir.2
# ls -dv test2.dir/subdir.2
drwxr-xr-x+ 2 root root 2 Aug 31 13:28 test2.dir/subdir.2
0:user:gozer:list_directory/read_data/add_file/write_data:file_inherit
/inherit_only:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
En los ejemplos siguientes se identifican las LCA de archivo y directorio que se aplican si se
establecen los indicadores file_inherit y dir_inherit.
# 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 Aug 31 13:29 test3.dir
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:file_inherit/dir_inherit:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6: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 20 14:42 test3.dir/file.3
0:user:gozer:write_data/execute:deny
1:user:gozer:read_data/write_data/execute:allow
2:owner@:execute:deny
3:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
4:group@:write_data/append_data/execute:deny
5:group@:read_data:allow
6:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
7: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 2 Aug 31 13:32 test3.dir/subdir.1
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:file_inherit/dir_inherit/inherit_only:allow
1:user:gozer:add_file/write_data:deny
2:user:gozer:list_directory/read_data/add_file/write_data/execute:allow
3:owner@::deny
4:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
5:group@:add_file/write_data/add_subdirectory/append_data:deny
6:group@:list_directory/read_data/execute:allow
7:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
8:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
En estos ejemplos, debido a que los bits de permisos del directorio principal para group@ y
everyone@ deniegan permisos de lectura y ejecución, al usuario gozer se le deniegan permisos
de escritura y ejecución. La propiedad predeterminada aclmode es restricted, lo cual significa
que no se heredan los permisos write_data y execute.
# 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 Aug 31 13:34 test4.dir
0:user:gozer:list_directory/read_data/add_file/write_data/execute
:file_inherit/no_propagate:allow
1:owner@::deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
mkdir test4.dir/sub4.dir
# ls -dv test4.dir/sub4.dir
drwxr-xr-x 2 root root 2 Aug 31 13:35 test4.dir/sub4.dir
0:owner@::deny
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
2:group@:add_file/write_data/add_subdirectory/append_data:deny
3:group@:list_directory/read_data/execute:allow
4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
/write_attributes/write_acl/write_owner:deny
5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
# touch test4.dir/file.4
# ls -v test4.dir/file.4
-rw-r--r--+ 1 root root 0 Aug 31 13:35 test4.dir/file.4
0:user:gozer:write_data/execute:deny
1:user:gozer:read_data/write_data/execute:allow
2:owner@:execute:deny
3:owner@:read_data/write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:allow
4:group@:write_data/append_data/execute:deny
5:group@:read_data:allow
6:everyone@:write_data/append_data/write_xattr/execute/write_attributes
/write_acl/write_owner:deny
7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
EJEMPLO 8–7 Herencia de LCA con el modo LCA establecido en passthrough (Continuación)
EJEMPLO 8–8 Herencia de LCA con el modo LCA establecido en discard (Continuación)
EJEMPLO 8–9 Herencia de LCA con el modo de herencia de LCA establecido en nonallow
En este ejemplo se establecen dos LCA no triviales con herencia de archivos. Una LCA concede
el permiso read_data y una LCA deniega el permiso read_data. Asimismo, el ejemplo muestra
la manera de especificar dos entradas de control de acceso en el mismo comando chmod.
Como se indica en el ejemplo siguiente, al crear un archivo, se prescinde de la LCA que concede
el permiso read_data.
# touch test6.dir/file.6
# ls -v test6.dir/file.6
-rw-r--r-- 1 root root 0 Aug 31 13:44 test6.dir/file.6
EJEMPLO 8–9 Herencia de LCA con el modo de herencia de LCA establecido en nonallow
(Continuación)
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
Puede visualizar listas de LCA en formato compacto para archivos y directorios mediante el
comando ls -V. Por ejemplo:
# ls -V file.1
-rw-r--r-- 1 root root 206663 Aug 31 13:54 file.1
owner@:--x-----------:------:deny
owner@:rw-p---A-W-Co-:------:allow
group@:-wxp----------:------:deny
group@:r-------------:------:allow
everyone@:-wxp---A-W-Co-:------:deny
everyone@:r-----a-R-c--s:------:allow
El formato compacto de las LCA presenta las ventajas siguientes respecto al formato detallado:
■ Los permisos se pueden especificar como argumentos posicionales en el comando chmod.
■ Los caracteres de guión (-), que no identifican permisos, se pueden eliminar. Sólo hace falta
especificar los caracteres necesarios.
■ Los indicadores de permisos y de herencia se establecen de la misma manera.
Para obtener información sobre el uso del formato de LCA detallado, consulte “Establecimiento
y configuración de las LCA en archivos ZFS en formato detallado” en la página 240.
# ls -V file.1
-rw-r--r-- 1 root root 206663 Aug 31 13:54 file.1
owner@:--x-----------:------:deny
owner@:rw-p---A-W-Co-:------:allow
group@:-wxp----------:------:deny
group@:r-------------:------:allow
everyone@:-wxp---A-W-Co-:------:deny
everyone@:r-----a-R-c--s:------:allow
En este ejemplo, los permisos de lectura y ejecución de datos se agregan para el usuario gozer en
file.1.
Una forma alternativa de agregar los mismos permisos para el usuario gozer consiste en
insertar una LCA nueva en una posición determinada, por ejemplo 4. Así, las posiciones 4–6
que ya existían se desplazan hacia abajo. Por ejemplo:
group@:r-x-----------:------:allow
everyone@:-w-p---A-W-Co-:------:deny
everyone@:r-x---a-R-c--s:------:allow
EJEMPLO 8–11 Herencia de LCA con el modo LCA heredado establecido en passthrough
Los ejemplos siguientes utilizan sintaxis de LCA compacta para mostrar cómo heredar bits de
permisos estableciendo el modo aclinherit en passthrough.
En este ejemplo, se establece una LCA en test1.dir para forzar la herencia. La sintaxis crea una
entrada LCA owner@, group@ y everyone@ para cada archivo que cree. Los directorios que cree
heredan una entrada LCA @owner, group@ y everyone@. Asimismo, los directorios heredan
otras 6 entradas de control de acceso que propagan las entradas de control de acceso a los
directorios y archivos que se creen.
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow
test1.dir
# ls -Vd test1.dir
drwxrwx---+ 2 root root 2 Aug 31 14:11 test1.dir
owner@:rwxpdDaARWcCos:fd----:allow
group@:rwxp----------:fd----:allow
everyone@:--------------:fd----:allow
En este ejemplo, un archivo recién creado hereda la LCA especificada para heredarse en los
archivos recién creados.
# cd test1.dir
# touch file.1
# ls -V file.1
-rwxrwx---+ 1 root root 0 Aug 31 14:14 file.1
owner@:rwxpdDaARWcCos:------:allow
group@:rwxp----------:------:allow
EJEMPLO 8–11 Herencia de LCA con el modo LCA heredado establecido en passthrough
(Continuación)
everyone@:--------------:------:allow
En este ejemplo, un directorio que se cree hereda tanto las entradas que controlan el acceso a
este directorio como las entradas de control de acceso para la futura propagación a los
elementos secundarios del directorio que se cree.
# mkdir subdir.1
# ls -dV subdir.1
drwxrwx---+ 2 root root 2 Aug 31 14:15 subdir.1
owner@:rwxpdDaARWcCos:fdi---:allow
owner@:rwxpdDaARWcCos:------:allow
group@:rwxp----------:fdi---:allow
group@:rwxp----------:------:allow
everyone@:--------------:fdi---:allow
everyone@:--------------:------:allow
Las entradas -di-- y f-i--- propagan la herencia y no se tienen en cuenta durante el control de
acceso. En este ejemplo, se crea un archivo con una LCA trivial en otro directorio en el que no
haya entradas de control de acceso heredadas.
# cd /tank/cindys
# mkdir test2.dir
# cd test2.dir
# touch file.2
# ls -V file.2
-rw-r--r-- 1 root root 0 Aug 31 14:16 file.2
owner@:--x-----------:------:deny
owner@:rw-p---A-W-Co-:------:allow
group@:-wxp----------:------:deny
group@:r-------------:------:allow
everyone@:-wxp---A-W-Co-:------:deny
everyone@:r-----a-R-c--s:------:allow
EJEMPLO 8–12 Herencia de LCA con el modo LCA heredado establecido en passthrough-X
El siguiente ejemplo muestra cómo se heredan los permisos de ejecución al establecer el modo
aclinherit en passthrough-x.
EJEMPLO 8–12 Herencia de LCA con el modo LCA heredado establecido en passthrough-X
(Continuación)
Un archivo (file1) se crea con permisos solicitados 0666. Los permisos resultantes son 0660. El
permiso de ejecución no se ha heredado porque el modo de creación no lo solicitó.
# touch test1.dir/file1
# ls -V test1.dir/file1
-rw-rw----+ 1 root root 0 Aug 31 15:06 test1.dir/file1
owner@:rw-pdDaARWcCos:------:allow
group@:rw-p----------:------:allow
everyone@:--------------:------:allow
# 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
Los permisos resultantes son 0770 porque cc solicitó permisos 0777, que provocaron que el
permiso de ejecución se heredara de las entradas owner@, group@ y everyone@.
Este capítulo describe la forma de utilizar la administración delegada para permitir que los
usuarios sin privilegios puedan efectuar tareas de administración de ZFS.
■ “Descripción general de la administración delegada de ZFS” en la página 261
■ “Delegación de permisos de ZFS” en la página 262
■ “Visualización de permisos delegados de ZFS” en la página 266
■ “Delegación de permisos ZFS (ejemplos)” en la página 268
■ “Eliminación de permisos ZFS (ejemplos)” en la página 272
261
Delegación de permisos de ZFS
■ Se puede configurar para que sólo el creador de un sistema de archivos pueda destruir ese
sistema de archivos.
■ Se pueden distribuir permisos en determinados sistemas de archivos. Los sistemas de
archivos creados pueden designar permisos automáticamente.
■ Este modelo proporciona administración NFS simple. Por ejemplo, un usuario que cuenta
con permisos explícitos puede crear una instantánea por NFS en el correspondiente
directorio .zfs/snapshot.
En la tabla siguiente figuran las operaciones que se pueden delegar y los permisos dependientes
que se necesitan para efectuar las operaciones delegadas.
allow Capacidad para conceder a otro usuario También debe tener el permiso que se está
los permisos que tiene uno mismo. concediendo.
rollback Capacidad para invertir una instantánea. También se debe disponer de la capacidad
mount.
Puede delegar el siguiente conjunto de permisos, pero el permiso puede estar limitado a acceso,
lectura o cambio:
■ groupquota
■ groupused
■ userprop
■ userquota
■ userused
Además, puede delegar las siguientes propiedades de ZFS a usuarios que no sean root:
■ aclinherit
■ aclmode
■ atime
■ canmount
■ casesensitivity
■ checksum
■ compression
■ copies
■ devices
■ exec
■ mountpoint
■ nbmand
■ normalization
■ primarycache
■ quota
■ readonly
■ recordsize
■ refreservation
■ reservation
■ secondarycache
■ setuid
■ shareiscsi
■ sharenfs
■ sharesmb
■ snapdir
■ utf8only
■ version
■ volblocksize
■ volsize
■ vscan
■ xattr
■ zoned
Algunas de estas propiedades sólo se pueden establecer al crear el conjunto de datos. Para
obtener una descripción de estas propiedades, consulte “Introducción a las propiedades de
ZFS” en la página 179.
La siguiente sintaxis de zfs allow (en negrita) identifica a quién se delegan los permisos:
Se pueden especificar varias entidades en una lista separada por comas. Si no se especifican
opciones de -uge, el argumento se interpreta de forma preferente como la palabra clave
everyone, después como nombre de usuario y, en último lugar, como grupo de nombre. Para
especificar un usuario o grupo denominado “everyone”, utilice la opción -u o -g. Para
especificar un grupo con el mismo nombre que un usuario, utilice la opción -g. La opción -c
concede permisos de create-time.
La siguiente sintaxis de zfs allow (en negrita) identifica cómo se especifican los permisos y
conjuntos de permisos:
Se pueden especificar varios permisos en una lista separada por comas. Los nombres de
permisos son los mismos que las propiedades y los subcomandos de ZFS. Para obtener más
información, consulte la sección anterior.
Los permisos se pueden agregar a conjuntos de permisos y los identifica la opción -s. Otros
comandos de zfs allow pueden utilizar conjuntos de permisos para el sistema de archivos
especificado y sus elementos descendientes. Los conjuntos de permisos se evalúan
dinámicamente, por lo tanto los cambios que haya en un conjunto se actualizan de manera
inmediata. Los conjuntos de permisos siguen las mismas convenciones de denominación que
los sistemas de archivos ZFS; sin embargo, el nombre debe comenzar con el signo de arroba (@)
y tener un máximo de 64 caracteres.
La siguiente sintaxis de zfs allow (en negrita) identifica cómo se delegan los permisos:
La opción -l indica que el permiso se concede para el conjunto de datos especificado pero no a
los elementos descendientes, a menos que también se especifique la opción -d. La opción -d
indica que el permiso se concede a los conjuntos de datos descendientes y no a este conjunto de
datos, a menos que también se especifique la opción -l. Si no se especifica ninguna de las
opciones de -ld, los permisos se conceden para el volumen o sistema de archivos y todos sus
elementos descendientes.
Por ejemplo, suponga que ha delegado los permisos create, destroy, mount y snapshot de la
forma siguiente:
Para eliminar estos permisos, debe utilizar una sintaxis similar a la siguiente:
Este comando muestra los permisos que se establecen o permiten en este conjunto de datos. La
salida contiene los componentes siguientes:
■ Conjuntos de permisos
■ Permisos específicos o permisos create-time
■ Conjunto de datos local
■ Conjuntos de datos locales y descendientes
■ Sólo conjuntos de datos descendientes
La salida de este ejemplo indica que el usuario cindys tiene permisos para crear, destruir,
montar y crear instantáneas en el sistema de archivos tank/cindys.
La salida de este ejemplo indica los permisos siguientes en los sistemas de archivos pool/fred y
pool.
Por ejemplo, para proporcionar al usuario los permisos marks create y mount entank, primero
establezca los permisos:
A continuación, utilice el comando zfs allow para conceder los permisos create , destroy y
mount. Por ejemplo:
El usuario marks ya puede crear sus propios sistemas de archivos en el sistema de archivos tank.
Por ejemplo:
# su marks
marks$ zfs create tank/marks
marks$ ^D
# su lp
$ zfs create tank/lp
cannot create ’tank/lp’: permission denied
El ejemplo siguiente muestra cómo configurar un sistema de archivos de forma que cualquier
integrante del grupo staff pueda crear y montar sistemas de archivos en el sistema de archivos
tank, así como destruir sus propios sistemas de archivos. Ahora bien, los miembros del grupo
staff no pueden destruir los sistemas de archivos de nadie más.
Compruebe que conceda permisos a los usuarios en el nivel correcto del sistema de archivos.
Por ejemplo, al usuario marks se le concede los permisos create, destroy y mount para los
sistemas de archivos local y descendiente. Al usuario marks se le concede permiso local para
crear una instantánea del sistema de archivos tank, pero no puede crear una instantánea de su
propio sistema de archivos. Así pues, no se le ha concedido el permiso snapshot en el nivel
correcto del sistema de archivos.
Para conceder permiso al usuario marks en el nivel descendiente, utilice la opción zfs allow
- d. Por ejemplo:
EJEMPLO 9–5 Delegación de permisos en el nivel correcto del sistema de archivos (Continuación)
El usuario marks ahora sólo puede crear una instantánea por debajo del nivel de tank.
Puede conceder permisos a usuarios o grupos. Por ejemplo, el siguiente comando zfs allow
concede determinados permisos al grupo staff. Asimismo, se conceden los permisos destroy
y snapshot una vez creados los sistemas de archivos de tank.
Debido a que el usuario marks pertenece al grupo staff, puede crear sistemas de archivos en
tank. Además, el usuario marks puede crear una instantánea de tank/marks2 porque dispone
de los correspondientes permisos para hacerlo. Por ejemplo:
# su marks
$ zfs create tank/marks2
$ zfs allow tank/marks2
-------------------------------------------------------------
Local permissions on (tank/marks2)
user marks destroy,snapshot
-------------------------------------------------------------
Create time permissions on (tank)
destroy,snapshot
Sin embargo, no puede crear una instantánea de tank/marks porque carece de los
correspondientes permisos. Por ejemplo:
$ cd /tank/marks2
$ ls
$ cd .zfs
$ ls
snapshot
$ cd snapshot
$ ls -l
total 3
drwxr-xr-x 2 marks staff 2 Dec 15 13:53 snap1
$ pwd
/tank/marks2/.zfs/snapshot
$ mkdir snap2
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 264K 33.2G 33.5K /tank
tank/marks 24.5K 33.2G 24.5K /tank/marks
tank/marks2 46K 33.2G 24.5K /tank/marks2
tank/marks2@snap1 21.5K - 24.5K -
tank/marks2@snap2 0 - 24.5K -
$ ls
snap1 snap2
$ rmdir snap2
$ ls
snap1
archivos tank. cindys, usuario del grupo staff, tiene permiso para crear un sistema de
archivos en tank. Sin embargo, el usuario lp no tiene permiso para crear un sistema de archivos
en tank.
La siguiente sintaxis de zfs unallow elimina el permiso para crear instantáneas del usuario
cindys en el sistema de archivos tank/cindys:
Otro ejemplo: el usuario marks tiene los permisos siguientes en el sistema de archivos
tank/marks:
En este ejemplo, la siguiente sintaxis de zfs unallow elimina todos los permisos del usuario
marks de tank/marks:
La siguiente sintaxis de zfs unallow elimina un conjunto de permisos del sistema de archivos
tank.
En este capítulo se describen los volúmenes de ZFS, el uso de ZFS en un sistema Solaris con
zonas instaladas, grupos root alternativos de ZFS y perfiles de derechos de ZFS.
Volúmenes de ZFS
Un volumen ZFS es un conjunto de datos que representa un dispositivo de bloques. Los
volúmenes ZFS se identifican como dispositivos en el directorio /dev/zvol/{dsk,rdsk}/path.
Al crear un volumen, automáticamente se reserva espacio para el tamaño inicial del volumen. El
tamaño de reserva sigue aumentando hasta igualar el tamaño del volumen para que no haya
ningún comportamiento inesperado. Por ejemplo, si disminuye el tamaño del volumen, los
datos podrían dañarse. El cambio del volumen se debe realizar con mucho cuidado.
Además, si crea una instantánea de un volumen que cambia de tamaño, podría provocar
incoherencias en el sistema de archivos si intenta invertir la instantánea o crear un clónico a
partir de la instantánea.
Para obtener información sobre las propiedades de sistemas de archivos que se pueden aplicar a
volúmenes, consulte la Tabla 6–1.
275
Volúmenes de ZFS
Si utiliza un sistema Solaris con zonas instaladas, los volúmenes de ZFS no se pueden crear ni
clonar en una zona no global. Cualquier intento de crear o clonar un volumen desde una zona
no global resultará fallido. Para obtener información sobre el uso de volúmenes de ZFS en una
zona global, consulte “Adición de volúmenes de ZFS a una zona no global” en la página 281.
# swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 253,3 16 8257520 8257520
Durante la instalación de un sistema de archivos root ZFS o una migración desde un sistema de
archivos root UFS, se crea un dispositivo de volcado en un volumen ZFS de la agrupación root
ZFS. Después de configurarse, no hace falta administrar el dispositivo de volcado. Por ejemplo:
# dumpadm
Dump content: kernel pages
Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash/t2000
Savecore enabled: yes
Debido a CR 6724860, debe ejecutar savecore manualmente para guardar un volcado dañado
cuando utilice un volumen de volcado ZFS.
Para obtener información sobre cómo ajustar el tamaño de los volúmenes de intercambio y
volcado, consulte “Ajuste del tamaño de los dispositivos de intercambio y volcado de ZFS”
en la página 160.
Además, puede crear fácilmente un volumen de ZFS como objetivo iSCSI estableciendo la
propiedad shareiscsi en el volumen. Por ejemplo:
Tras crear el objetivo iSCSI, configure el iniciador iSCSI. Para obtener más información sobre
objetivos e iniciadores iSCSI de Solaris, consulte el Capítulo 14, “Configuring Solaris iSCSI
Targets and Initiators (Tasks)” de System Administration Guide: Devices and File Systems.
Nota – Los objetivos iSCSI de Solaris también se pueden crear y administrar con el comando
iscsitadm. Si se establece la propiedad shareiscsi en un volumen de ZFS, no utilice el
comando iscsitadm para crear el mismo dispositivo de destino. De lo contrario, terminará
teniendo información de destino duplicada en el mismo dispositivo.
Un volumen de ZFS como objetivo iSCSI se administra de la misma manera que otro conjunto
de datos de ZFS. Sin embargo, las funciones de cambiar nombre, exportar e importar son algo
distintas en los objetivos iSCSI.
■ Si se cambia el nombre de un volumen de ZFS, el objetivo iSCSI se sigue llamando de la
misma forma. Por ejemplo:
Para obtener información sobre cómo configurar zonas en un sistema con un sistema de
archivos root ZFS que se va a migrar o al que se aplicarán parches con Modernización
automática de Solaris, consulte “Uso de Modernización automática de Solaris para migrar o
actualizar un sistema con zonas (Solaris 10 10/08) ” en la página 142 o “Uso de Modernización
automática de Solaris para migrar o actualizar un sistema con zonas (Solaris 10 5/09 y Solaris 10
10/09)” en la página 147.
Al asociar conjuntos de datos de ZFS con zonas, hay que tener en cuenta los puntos siguientes:
■ Puede agregar un sistema de archivos ZFS o un clónico de ZFS a una zona no global con o
sin delegación de control administrativo.
■ Puede agregar un volumen de ZFS como dispositivo a zonas no globales.
■ Por ahora no es posible asociar instantáneas de ZFS con zonas.
La adición de un conjunto de datos permite que la zona no global comparta espacio con la zona
global, si bien el administrador de zonas no puede controlar las propiedades ni crear sistemas de
archivos en la jerarquía de sistemas de archivos subyacente. Es lo mismo que agregar cualquier
otro sistema de archivos a una zona; es aconsejable utilizarlo si la finalidad principal es
compartir espacio.
ZFS permite también la delegación de conjuntos de datos a una zona no global, con lo cual el
administrador de zonas dispone de control absoluto sobre el conjunto de datos y todos sus
subordinados. El administrador de zonas puede crear y destruir sistemas de archivos o clónicos
de ese conjunto de datos, así como modificar las propiedades de los conjuntos de datos. El
administrador de zonas no puede incidir en los conjuntos de datos que no se hayan agregado a
la zona ni sobrepasar las cuotas de alto nivel establecidas en el conjunto de datos exportado.
Al utilizar ZFS en un sistema Solaris con zonas instaladas hay que tener en cuenta los puntos
siguientes:
■ Un sistema de archivos ZFS agregado a una zona no global debe tener la propiedad
mountpoint definida en legacy.
■ Debido al CR 6449301, no agregue ningún conjunto de datos ZFS a una zona no global
cuando configure la zona no global. En lugar de ello, agregue un conjunto de datos ZFS tras
la instalación de la zona.
■ Cuando tanto el origen zonepath como el destino zonepath residen en ZFS y se encuentran
en la misma agrupación, zoneadm clone utiliza automáticamente el clónico de ZFS para
clonar una zona. El comando zoneadm clone toma una instantánea de ZFS de la zonepath
de origen y configura la zonepath de destino. No puede utilizar el comando zfs clone para
clonar una zona. Si desea más información, consulte la Parte II, “Zonas” de Guía de
administración de sistemas: Zonas de Solaris y administración de recursos y contenedores de
Solaris.
■ Si delega un sistema de archivos ZFS a una zona no global, debe eliminar ese sistema de
archivos de la zona no global antes de utilizar Modernización automática de Solaris. De lo
contrario, la operación Modernización automática fallará debido a un error del sistema de
archivos de sólo lectura.
Un sistema de archivos ZFS puede agregarse a una zona no global mediante el comando
zonecfg y el subcomando add fs. Por ejemplo:
# zonecfg -z zion
zonecfg:zion> add fs
zonecfg:zion:fs> set type=zfs
Esta sintaxis agrega el sistema de archivos ZFS tank/zone/zion a la zona ya configurada zion,
montada en /export/shared. La propiedad mountpoint del sistema de archivos se debe
establecer en legacy y el sistema de archivos ya no se puede montar en otra ubicación. El
administrador de zonas puede crear y destruir archivos en el sistema de archivos. El sistema de
archivos no se puede volver a montar en una ubicación distinta; el administrador de zonas
tampoco puede modificar propiedades del sistema de archivos, por ejemplo atime, readonly,
compression, etcétera. El administrador de zonas global se encarga de configurar y controlar las
propiedades del sistema de archivos.
Para más información sobre el comando zonecfg y la configuración de tipos de recursos con
zonecfg, consulte la Parte II, “Zonas” de Guía de administración de sistemas: Zonas de Solaris y
administración de recursos y contenedores de Solaris.
# zonecfg -z zion
zonecfg:zion> add dataset
zonecfg:zion:dataset> set name=tank/zone/zion
zonecfg:zion:dataset> end
A diferencia de agregar un sistema de archivos, esta sintaxis hace que el sistema de archivos ZFS
tank/zone/zion quede visible en la zona ya configurada zion. El administrador de zonas
puede establecer las propiedades del sistema de archivos, así como crear subordinados.
Además, puede tomar instantáneas, crear clónicos y controlar toda la jerarquía del sistema de
archivos.
Si está utilizando Modernización automática de Solaris para actualizar el entorno de arranque
de ZFS con zonas no globales, elimine los conjuntos de datos delegados antes de la operación de
Modernización automática, o ésta fallará con un error del sistema de archivos de sólo lectura.
Por ejemplo:
zonecfg:zion>
zonecfg:zone1> remove dataset name=tank/zone/zion
zonecfg:zone1> exit
Para obtener más información sobre las acciones factibles en las zonas, consulte
“Administración de propiedades de ZFS en una zona” en la página 282.
# 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 sintaxis exporta el volumen tank/vol a la zona. Agregar un volumen sin formato a una
zona conlleva riesgos en la seguridad, incluso si el volumen no se corresponde con un
dispositivo físico. En particular, el administrador de zonas podría crear sistemas de archivos
incorrectamente formados que causen confusión en el sistema al intentar un montaje. Para
obtener más información sobre cómo agregar dispositivos a zonas y sus riesgos en la seguridad,
consulte “Interpretación de la propiedad zoned” en la página 283.
Para obtener más información sobre cómo añadir dispositivos a zonas, consulte la Parte II,
“Zonas” de Guía de administración de sistemas: Zonas de Solaris y administración de recursos y
contenedores de Solaris.
Si tank/data/zion se agrega a una zona, cada conjunto de datos tendrá las propiedades
siguientes.
tank Sí No -
tank/home No - -
tank/data Sí No -
tank/data/matrix No - -
Cada conjunto superior de tank/zone/zion es visible como de sólo lectura, todos los conjuntos
subordinados se pueden escribir y los conjuntos que no forman parte de la jerarquía superior no
se ven. El administrador de zonas no puede cambiar la propiedad sharenfs porque las zonas no
globales no son válidas como servidores NFS. El administrador de zonas tampoco puede
cambiar la propiedad zoned; de lo contrario, habría un riesgo en la seguridad como se explica en
la sección siguiente.
Se puede modificar cualquier otra propiedad modificable, menos la propiedad quota y el
conjunto de datos. Este comportamiento permite que el administrador de zonas globales
controle la ocupación de espacio de todos los conjuntos de datos utilizados por la zona no
global.
Asimismo, el administrador de zonas globales no puede modificar las propiedades sharenfs y
mountpoint después de que un conjunto de datos se haya agregado a una zona no global.
Si se elimina un conjunto de datos de una zona o se destruye una zona, la propiedad zoned no se
elimina de forma automática. Este comportamiento se debe a los riegos de seguridad inherentes
a estas tareas. Debido a que un usuario que no es de confianza dispone de acceso completo al
conjunto de datos y sus subordinados, la propiedad mountpoint podría definirse en valores
incorrectos o en los sistemas de archivos podría haber binarios setuid.
Tras haber comprobado que no queden puntos débiles en la seguridad, la propiedad zoned se
puede desactivar mediante los comandos zfs set o zfs inherit. Si la propiedad zoned se
desactiva mientras un conjunto de datos se utiliza en una zona, el sistema podría manifestar un
comportamiento impredecible. La propiedad se debe modificar únicamente si se tiene la certeza
de que ninguna zona no global no está utilizando el conjunto de datos.
En el ejemplo siguiente, un grupo denominado morpheus se crea con /mnt como ruta de acceso
root alternativa:
Observe el sistema de archivos único morpheus, cuyo punto de montaje es el root alternativo del
grupo, /mnt. El punto de montaje que se guarda en disco es / y la ruta completa de /mnt sólo se
interpreta en el contexto del grupo root alternativo. Así, este sistema de archivos se puede
importar y exportar en un grupo root alternativo arbitrario de otro sistema.
En el ejemplo siguiente, un grupo denominado morpheus se importa con /mnt como ruta de
acceso root alternativa: En este ejemplo se da por sentado que morpheus se ha exportado
previamente.
Para obtener más información sobre la creación o asignación de funciones, consulte System
Administration Guide: Security Services.
Además de utilizar funciones RBAC para administrar sistemas de archivos ZFS, también puede
considerar la posibilidad de utilizar la administración delegada de ZFS para tareas de
administración ZFS distribuidas. Para más información, consulte el Capítulo 9,
“Administración delegada de ZFS”.
En este capítulo se explica la forma de identificar y solucionar los modos de error de ZFS.
También se proporciona información para la prevención de errores.
En un mismo grupo se pueden dar los tres errores, con lo cual un procedimiento completo de
reparación implica detectar y corregir un error, luego ocuparse del siguiente error y así
sucesivamente.
287
Modos de error de ZFS
En determinados casos, estos errores son transitorios, por ejemplo errores aleatorios de E/S
mientras el controlador tiene problemas. En otros, las consecuencias son permanentes, por
ejemplo la corrupción del disco. Aun así, el hecho de que los daños sean permanentes no
implica necesariamente que el error se repita más adelante. Por ejemplo, si un administrador
sobrescribe involuntariamente parte de un disco, no ha habido ningún error de hardware y no
hace falta reemplazar el dispositivo. No resulta nada fácil identificar con exactitud lo que ha
sucedido en un dispositivo. Ello se aborda en mayor profundidad más adelante en otra sección.
Los datos quedan permanentemente dañados y deben tratarse de forma especial durante la
reparación. Aunque se reparen o reemplacen los dispositivos subyacentes, los datos originales
se pierden irremisiblemente. En estas circunstancias, casi siempre se requiere la restauración de
datos a partir de copias de seguridad. Los errores de datos se registran conforme se detectan.
Como se explica en la sección siguiente, pueden controlarse mediante limpiezas rutinarias de
disco. Si se quita un bloque dañado, el siguiente pase de limpieza reconoce que la corrupción ya
no está presente y suprime del sistema cualquier indicio de error.
Reparación de datos
En los sistemas de archivos tradicionales, el método de escritura de datos es intrínsecamente
vulnerable a errores imprevistos que generan incoherencias en los datos. Debido a que un
sistema de archivos tradicional no es transaccional, puede haber bloques sin referenciar,
recuentos de vínculos erróneos u otras estructuras de datos no coherentes. La adición de diarios
soluciona algunos de estos problemas, pero puede comportar otros si el registro no se puede
invertir. En ZFS no se da ninguno de estos problemas. El único modo de que puedan existir
datos incoherentes en el disco es por un fallo del hardware (en cuyo caso, la agrupación debería
haber sido redundante) o porque hay un error en el software de ZFS.
Como la utilidad fsck se ha concebido para reparar errores conocidos propios de los sistemas
de archivos, resulta imposible ejecutar dicha utilidad en un sistema de archivos con problemas
no conocidos. Con el tiempo, la experiencia podría corroborar que determinados problemas de
errores de datos son suficientemente habituales y sencillos como para poder desarrollar un
utilidad de reparación; ahora bien, estos problemas siempre se pueden evitar utilizando grupos
redundantes.
Si el grupo no es redundante, siempre existe la posibilidad de que los errores en los datos lleguen
a hacer que parte o todos los datos queden inaccesibles.
Validación de datos
Aparte de reparar datos, la utilidad fsck valida que los datos en disco no tengan problemas.
Desde siempre, esta tarea se ha efectuado desmontando el sistema de archivos y ejecutando la
utilidad fsck, seguramente con el sistema en modo monousuario durante el proceso. Esta
situación comporta un tiempo de inactividad proporcional al tamaño del sistema de archivos
que se comprueba. En lugar de hacer que una determinada utilidad realice la pertinente
comprobación, ZFS brinda un mecanismo para ejecutar una comprobación rutinaria de todos
los datos. Esta función, denominada limpieza, se suele utilizar en la memoria y en otros sistemas
como método para detectar y evitar errores antes de que deriven en errores de hardware o
software.
El estado de la limpieza actual puede verse en la salida de zpool status. Por ejemplo:
En la mayoría de los casos, una operación de limpieza para asegurar la integridad de los datos
continúa hasta finalizar. Si considera que el proceso va a afectar negativamente al rendimiento
del sistema, puede detenerla.
La ejecución rutinaria de limpiezas también garantiza la E/S continua en todos los discos del
sistema. La ejecución rutinaria de limpiezas tiene el inconveniente de impedir que los discos
Para obtener más información sobre la interpretación de la salida de zpool status, consulte
“Consulta del estado de un grupo de almacenamiento de ZFS” en la página 96.
Las funciones siguientes son válidas para identificar problemas en la configuración de ZFS:
■ Información detallada de grupos de almacenamiento de ZFS con el comando zpool status
■ Informes de errores en grupos y dispositivos a través de mensajes de diagnóstico de
ZFS/FMA
■ Los comandos anteriores de ZFS que modificaban la información sobre el estado de los
grupos se ven ahora mediante el comando zpool history
Casi todas las resoluciones de problemas de ZFS se centran en el comando zpool status. Este
comando analiza los errores del sistema e identifica el problema más grave, sugiere una acción y
proporciona un vínculo a documentación técnica para obtener más información. Aunque
pueda haber varios problemas, el comando sólo identifica un problema del grupo. Por ejemplo,
los errores de datos dañados siempre denotan que ha fallado alguno de los dispositivos. La
sustitución del dispositivo defectuoso no soluciona los problemas de corrupción de datos.
dispositivos y grupos asociados con errores de dispositivos o grupos. Los errores de ZFS
indicados por fmd se muestran en la consola y el archivo de mensajes del sistema. En la mayoría
de los casos, el mensaje de fmd remite al comando zpool status para obtener más
instrucciones sobre recuperación.
A continuación se expone el proceso básico de recuperación:
■ Si procede, utilice el comando zpool history para identificar los comandos de ZFS
anteriores que han desembocado en la situación de error. Por ejemplo:
Las sumas de comprobación de esta salida están inhabilitadas para el sistema de archivos
tank/erick. No se recomienda esta configuración.
■ Identifique los errores mediante los mensajes de fmd que aparecen en la consola del sistema
o en los archivos de /var/adm/messages.
■ En el comando zpool status -x, busque más instrucciones de reparación.
■ Repare errores, por ejemplo:
■ Reemplace el dispositivo defectuoso o que falta y establezca las conexiones con él.
■ Restaure la configuración defectuosa o los datos dañados a partir de una copia de
seguridad.
■ Verifique la recuperación mediante el comando zpool status - x.
■ Si procede, efectúe una copia de seguridad de la configuración que se ha restaurado.
En este capítulo se explica la forma de interpretar la salida del comando zpool status con el fin
de diagnosticar el tipo de error y remitir al usuario a alguna de las secciones siguientes para
solucionar el problema. Si bien el comando ejecuta automáticamente casi todo el proceso, es
importante comprender con exactitud los problemas que se identifican para poder diagnosticar
el tipo de error.
# zpool status -x
all pools are healthy
Sin el indicador -x, el comando muestra el estado completo de todas las agrupaciones (o de la
agrupación solicitada, si se indica en la línea de comandos), incluso si las agrupaciones están en
buen estado.
Para obtener más información sobre las opciones de línea de comandos en la salida de zpool
status, consulte “Consulta del estado de un grupo de almacenamiento de ZFS” en la página 96.
Estos errores son aptos para determinar si los daños son permanentes. Una cantidad pequeña
de errores de E/S puede denotar un corte temporal del suministro; una cantidad grande puede
denotar un problema permanente en el dispositivo. Estos errores no necesariamente
corresponden a datos dañados según la interpretación de las aplicaciones. Si el dispositivo se
encuentra en una configuración redundante, los dispositivos de disco podrían mostrar errores
irreparables, aunque no aparezcan errores en la duplicación o el nivel de dispositivos RAID-Z.
Si tal fuera el caso, ZFS recuperaría correctamente los datos en buen estado e intentaría reparar
los datos dañados a partir de los datos duplicados.
Para obtener más información sobre la interpretación de estos errores para determinar errores
en dispositivos, consulte “Cómo determinar el tipo de error en dispositivos” en la página 299.
dispositivo no está accesible o si dicho dispositivo tiene los datos dañados. Si se ejecuta la
actualización de la duplicación de datos, el dispositivo muestra el progreso del proceso.
Para obtener más información sobre el control del progreso de la actualización de duplicación
de datos, consulte “Visualización del estado de la actualización de duplicación de datos”
en la página 306.
Para obtener más información sobre la limpieza de datos y la forma de interpretar esa
información, consulte “Comprobación de la integridad de los datos de ZFS” en la página 289.
Los errores de datos dañados siempre son fatales. El hecho de que existan denota que al menos
una aplicación ha tenido un error de E/S debido a los datos dañados del grupo. Los errores de
dispositivos en un grupo redundante no generan datos dañados ni forman parte de este
registro. De forma predeterminada, sólo se muestra el número de errores detectados. La opción
zpool status -v proporciona una lista completa de errores con los detalles. Por ejemplo:
# zpool status -v
pool: tank
state: UNAVAIL
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run ’zpool clear’.
see: http://www.sun.com/msg/ZFS-8000-HC
scrub: scrub completed after 0h0m with 0 errors on Tue Sep 1 09:51:01 2009
config:
/tank/data/aaa
/tank/data/bbb
/tank/data/ccc
Para obtener más información sobre la interpretación de errores sobre corrupción de datos,
consulte “Identificación del tipo de corrupción de datos” en la página 309.
Por ejemplo, en pantalla puede aparecer parecido al siguiente procedente de fmd tras un error
de dispositivo:
El paso siguiente es utilizar el comando zpool status -x para ver información más
pormenorizada del problema y la resolución. Por ejemplo:
En esta salida puede observarse que el dispositivo que no se encuentra c1t1d0 no funciona. Si
determina que la unidad está defectuosa, reemplace el dispositivo.
Para obtener más información sobre la conexión de dispositivos, consulte “Cómo conectar un
dispositivo” en la página 85.
Diagnosticar con exactitud la naturaleza del problema puede resultar un proceso complicado.
El primer paso es examinar la cantidad de errores en la salida de zpool status tal como se
muestra:
Los errores pueden ser de E/S o de suma de comprobación, y pueden denotar el posible tipo de
defecto. El funcionamiento normal prevé muy pocos errores (sólo unos pocos en periodos de
tiempo prolongados). Si detecta una gran cantidad de errores, probablemente denote la
inminencia de un error o la inutilización completa de un dispositivo. Sin embargo, la patología
de errores de administrador puede derivar en grandes cantidades de errores. El registro del
sistema es la otra fuente de información. Si el registro tiene una gran cantidad de mensajes de
controlador de canal de fibra o SCSI, es probable que la situación sea sintomática de graves
problemas de hardware. Si no se generan mensajes de syslog, es probable que los daños sean
transitorios.
Los errores que suceden sólo una vez se consideran transitorios y no denotan problemas
potenciales. Los errores continuos o suficientemente graves como para indicar problemas
potenciales en el hardware se consideran errores "fatales". El hecho de determinar el tipo de
error trasciende el ámbito de cualquier software automatizado que haya actualmente en ZFS,
por lo cual eso es una tarea propia de los administradores. Una vez determinado el error, se
puede llevar a cabo la acción pertinente. Suprima los errores transitorios o reemplace los
dispositivos con errores fatales. Estos procedimientos de reparación se explican en las secciones
siguientes.
Aun en caso de que los errores de dispositivos se consideren transitorios, se pueden haber
generado errores incorregibles en los datos del grupo. Estos errores precisan procedimientos
especiales de reparación, incluso si el dispositivo subyacente se considera que está en buen
estado o se ha reparado. Para obtener más información sobre cómo reparar errores de datos,
consulte “Reparación de datos dañados” en la página 308.
Esta sintaxis suprime todos los errores de dispositivo y recuentos de errores de datos asociados
con el dispositivo.
Utilice la sintaxis siguiente para suprimir todos los errores asociados con los dispositivos
virtuales del grupo y para suprimir los recuentos de errores asociados con el grupo:
En la configuración siguiente, el disco c1t1d0 se puede reemplazar y los datos del grupo se
copian a partir de la réplica en buen estado, c1t0d0.
mirror DEGRADED
c1t0d0 ONLINE
c1t1d0 FAULTED
raidz FAULTED
c1t0d0 ONLINE
c2t0d0 FAULTED
c3t0d0 FAULTED
c3t0d0 ONLINE
c1t0d0 ONLINE
c1t1d0 ONLINE
Si cualquiera de los discos está defectuoso, no se puede reemplazar porque el grupo quedaría
dañado.
Para obtener más información sobre cómo restaurar todo un grupo, consulte “Reparación de
daños en los grupos de almacenamiento de ZFS” en la página 311.
Este comando comienza migrando datos al dispositivo nuevo desde el dispositivo dañado, o de
otros dispositivos si el grupo forma parte de una configuración redundante. Cuando finaliza el
comando, desconecta el dispositivo dañado de la configuración. Es entonces cuando el
dispositivo se puede eliminar del sistema. Si ya ha eliminado el dispositivo y lo ha reemplazado
por uno nuevo en la misma ubicación, utilice la forma de un solo dispositivo del comando. Por
ejemplo:
Este comando selecciona un disco sin formato, le aplica el formato correspondiente y comienza
a actualizar la duplicación de datos a partir del resto de la configuración.
Para obtener más información acerca del comando zpool replace, consulte “Sustitución de
dispositivos en un grupo de almacenamiento” en la página 86.
■ Si un disco fallido se sustituye automáticamente por un repuesto en marcha, puede que deba
desconectarlo después de dicha sustitución. Por ejemplo, si c2t4d0 es aún un repuesto
activo después de sustituir el disco fallido, desconéctelo.
Tenga en cuenta que el comando zpool output anterior podría mostrar tanto los discos nuevos
como los antiguos en un encabezado replacing. Por ejemplo:
replacing DEGRADED 0 0 0
c1t3d0s0/o FAULTED 0 0 0
c1t3d0 ONLINE 0 0 0
Este texto indica que el proceso de sustitución está en curso y se está actualizando la duplicación
de datos.
Si va a reemplazar un disco (c1t3d0) con otro disco (c4t3d0), sólo tiene que ejecutar el
comando zpool replace después de haber sustituido físicamente el disco. Por ejemplo:
Es posible que deba ejecutar el comando zpool status varias veces hasta finalizar la sustitución
del disco.
http://www.sun.com/msg/ZFS-8000-K4
■ Reemplace físicamente el dispositivo de registro que presenta errores.
■ Conecte el dispositivo de registro.
■ Borre la condición de error de la agrupación.
# zpool status -x
pool: pool
state: FAULTED
status: 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:
Los sistemas de archivos tradicionales actualizan duplicaciones de datos en los bloques. Debido
a que ZFS suprime la disposición artificial de capas de Volume Manager, puede ejecutar la
actualización de duplicación de datos de manera más potente y controlada. Esta función
presenta dos ventajas principales:
■ ZFS sólo actualiza la duplicación de los datos necesarios. En caso de una breve interrupción
del suministro (en contraposición a un reemplazo completo del dispositivo), la
actualización de duplicación de datos del disco puede hacerse en cuestión de segundos, en
lugar de actualizar la duplicación de todo el disco, o de temas complicados con la DRL
(Dirty Region Loggin, inicio de sesión en zonas deterioradas) que permiten determinados
En este ejemplo, el disco c1t0d0 se sustituye por c2t0d0. Este evento se refleja en la salida del
estado mediante la presencia del dispositivo virtual que reemplaza en la configuración. Este
dispositivo no es real ni es factible crear un grupo con esta clase de dispositivos virtuales. La
única finalidad de este dispositivo es visualizar el proceso de actualización de duplicación de
datos e identificar con exactitud el dispositivo que se reemplaza.
scrub: resilver completed after 0h0m with 0 errors on Tue Sep 1 10:55:54 2009
config:
El grupo pasa de nuevo al estado ONLINE y el disco dañado original (c1t0d0) desaparece de la
configuración.
Para reducir al mínimo las posibilidades de que los datos sufran daños, ZFS utiliza sumas de
comprobación, redundancia y datos que se reparan a sí mismos. Ahora bien, los datos se
pueden dañar si el grupo no es redundante, si tiene lugar cuando el grupo está en estado
"degraded" o se combina una improbable serie de eventos para dañar varias copias de
determinados datos. Sea cual sea el origen, el resultado es el mismo: Los datos quedan dañados y
no se puede acceder a ellos. Las medidas que se toman dependen del tipo de datos dañados y su
valor relativo. Se pueden dañar dos tipos básicos de datos:
■ Metadatos de grupo – Para abrir un grupo y acceder a conjuntos de datos, ZFS debe analizar
cierta cantidad de datos. Si se dañan estos datos, no se puede acceder a todo el grupo o a
partes enteras de la jerarquía de conjuntos de datos.
■ Datos de objeto – En este caso, se daña un determinado archivo o directorio. Ello puede
hacer que no se pueda acceder a una parte del archivo o directorio, o causar la interrupción
del objeto.
Los datos se verifican durante el funcionamiento normal y durante el proceso de limpieza. Para
obtener más información sobre cómo verificar la integridad de datos de grupos, consulte
“Comprobación de la integridad de los datos de ZFS” en la página 289.
# zpool status
pool: monkey
state: ONLINE
status: 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: none requested
config:
Cada error indica solamente que ha habido un error en un determinado momento. Eso no
significa que cada error siga estando en el sistema. En circunstancias normales, es la situación
habitual. Determinadas interrupciones temporales del suministro pueden comportar daños en
los datos que se reparan automáticamente cuando finaliza dicha interrupción. Se garantiza la
ejecución completa de un proceso de limpieza del grupo para examinar cada bloque activo del
grupo, con lo cual el registro de errores se reinicia cuando concluye la limpieza. Si considera que
ya no hay errores y no quiere esperar a que finalice la limpieza, reinicie todos los errores del
grupo mediante el comando zpool online.
Si los datos dañados afectan a metadatos de todo el grupo, la salida difiere ligeramente. Por
ejemplo:
Si los daños afectan a todo el grupo, éste pasa al estado FAULTED , ya que posiblemente no podrá
proporcionar el nivel de redundancia necesario.
Si se ha dañado un bloque datos de archivo, el archivo se puede eliminar sin problemas; de este
modo, el error desaparece del sistema. Utilice el comando zpool status -v para ver en pantalla
una lista con nombres de archivos que tienen errores constantes. Por ejemplo:
# zpool status -v
pool: monkey
state: ONLINE
status: 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: none requested
config:
/monkey/a.txt
/monkey/bananas/b.txt
/monkey/sub/dir/d.txt
/monkey/ghost/e.txt
/monkey/ghost/boo/f.txt
/monkey/a.txt
■ Si se busca la ruta de acceso del archivo pero el conjunto de datos no se monta, en pantalla se
muestra el nombre del conjunto de datos sin una barra inclinada (/), seguido de la ruta de
acceso del conjunto de datos al archivo. Por ejemplo:
monkey/ghost/e.txt
■ Si no se puede trasladar correctamente el número de objeto a una ruta de archivo, ya sea por
un error o porque el objeto no tiene asociada ninguna ruta de archivo auténtica, como en el
caso de dnode_t, en pantalla se muestra nombre del conjunto de datos seguido del número
de objeto. Por ejemplo:
monkey/dnode:<0x0>
■ Si se daña un objeto del conjunto de metaobjetos, en pantalla se muestra un etiqueta especial
de <metadata>, seguida del número de objeto.
clase de errores harán que el sistema entre en un bucle de arranques de emergencia. Para
solucionar esta situación, debe indicar a ZFS que no busque agrupaciones al inicio.
ZFS mantiene una caché interna de grupos disponibles junto con sus configuraciones en
/etc/zfs/zpool.cache. La ubicación y el contenido de este archivo son personales y
susceptibles de cambiarse. Si el sistema no se puede arrancar, arranque en none mediante la
opción de arranque -m milestone=none. Cuando el sistema se haya iniciado, vuelva a montar
el sistema de archivos root como grabable y cambie el nombre o cambie la ubicación del archivo
/etc/zfs/zpool.cache. Estas acciones hacen que ZFS no tenga en cuenta que en el sistema hay
grupos, lo cual impide que intente acceder al grupo dañado que causa el problema. A
continuación, puede pasar a un estado normal del sistema mediante el comando svcadm
milestone all. Se puede aplicar un proceso similar al arrancar desde un sistema de archivos
root alternativo para efectuar reparaciones.
Cuando el sistema se haya iniciado, puede intentar importar el grupo mediante el comando
zpool import. Sin embargo, es probable que se cause el mismo error del arranque, puesto que
el comando emplea el mismo mecanismo de acceso a grupos. Si en el sistema hay varias
agrupaciones, haga lo siguiente:
■ Elimine o mueva el archivo zpool.cache a otra ubicación como se ha indicado antes.
■ Determine qué agrupación podría tener problemas utilizando el comando fmdump -eV para
ver las agrupaciones que han informado de errores fatales.
■ Importe una a una las agrupaciones que tienen problemas, como se describe en la salida de
fmdump.
313
Índice
315
Índice
317
Índice
319
Índice
321
Índice
323
Índice
sistemas de archivos ZFS, clónicos (Continuación) sistemas de archivos ZFS, establecer LCA en archivo
descripción, 220 ZFS (modo compacto) (Continuación)
compartir descripción, 254
descripción, 206 establecer punto de montaje (zfs set mountpoint)
ejemplo, 206 (ejemplo), 202
configurar LCA en archivo ZFS (modo detallado) guardar flujos de datos (zfs send)
descripción, 240 (ejemplo), 224
configurar LCA en archivos ZFS heredar propiedad de (zfs inherit)
descripción, 238 (ejemplo), 196
configurar punto de montaje heredado instalación inicial de sistema de archivos root
(ejemplo), 203 ZFS, 120
configurar una reserva instalación JumpStart de sistema de archivos
(ejemplo), 212 root, 130
conjunto de datos instalar un sistema de archivos root, 116
definición, 43 instantánea
contabilización de espacio de instantánea, 219
acceder, 218
crear
cambiar nombre, 217
(ejemplo), 176
crear, 216
crear un volumen ZFS
definición, 45
(ejemplo), 275
destruir, 217
datos con suma de comprobación
restaurar, 220
descripción, 41
LCA en archivo ZFS
dejar de compartir
descripción detallada, 239
(ejemplo), 206
delegar conjunto de datos a una zona no global LCA en directorio ZFS
(ejemplo), 280 descripción detallada, 240
descripción, 40 lista
desmontar (ejemplo), 193
(ejemplo), 205 lista de descendientes
destruir (ejemplo), 193
(ejemplo), 177 lista de propiedades de (zfs list)
destruir con dependientes (ejemplo), 197
(ejemplo), 177 lista de propiedades para secuencias de comandos
dispositivos de intercambio y volcado (ejemplo), 200
ajustar tamaños, 160 lista de propiedades por valor de origen
descripción, 159 (ejemplo), 199
problemas, 159 migración de sistema de archivos root con
enviar y recibir Modernización automática de Solaris, 134
descripción, 223 migración de sistemas de archivos root con
establecer herencia LCA en archivo ZFS (modo Modernización automática de Solaris
detallado) (ejemplo), 137
(ejemplo), 246 modificar LCA triviales en archivo ZFS (modo
establecer LCA en archivo ZFS (modo compacto) detallado)
(ejemplo), 255 (ejemplo), 242
325
Índice
327
328