JavaScript is required to for searching.
Omitir V�nculos de navegaci�n
Salir de la Vista de impresi�n
Administración de Oracle Solaris: sistemas de archivos ZFS     Oracle Solaris 11 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

1.  Sistema de archivos ZFS de Oracle Solaris (introducción)

2.  Procedimientos iniciales con Oracle Solaris ZFS

3.  Oracle Solaris ZFS y sistemas de archivos tradicionales

4.  Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS

5.  Gestión de componentes de la agrupación raíz ZFS

6.  Administración de sistemas de archivos ZFS de Oracle Solaris

7.  Uso de clones e instantáneas de Oracle Solaris ZFS

8.  Uso de listas de control de acceso y atributos para proteger archivos Oracle Solaris ZFS

9.  Administración delegada de ZFS Oracle Solaris

10.  Temas avanzados de Oracle Solaris ZFS

Volúmenes de ZFS

Uso de un volumen de ZFS como dispositivo de volcado o intercambio

Uso de un volumen de ZFS como un LUN iSCSI

Uso de ZFS en un sistema Solaris con zonas instaladas

Adición de sistemas de archivos ZFS a una zona no global

Delegación de conjuntos de datos a una zona no global

Adición de volúmenes de ZFS a una zona no global

Uso de grupos de almacenamiento de ZFS en una zona

Administración de propiedades de ZFS en una zona

Interpretación de la propiedad zoned

Copia de zonas a otros sistemas

Uso de agrupaciones raíz de ZFS alternativas

Creación de agrupaciones raíz de ZFS alternativas

Importación de agrupaciones raíz alternativas

11.  Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS

12.  Archivado de instantáneas y recuperación de agrupaciones raíz

13.  Prácticas de ZFS recomendadas por Oracle Solaris

A.  Descripciones de versiones de Oracle Solaris ZFS

Índice

Uso de ZFS en un sistema Solaris con zonas instaladas

Las secciones siguientes explican cómo utilizar ZFS en un sistema con zonas de Oracle Solaris:

Al asociar conjuntos de datos de ZFS con zonas, hay que tener en cuenta los puntos siguientes:

En las secciones siguientes, un conjunto de datos de ZFS hace referencia a un sistema de archivos o un clon.

La adición de un conjunto de datos permite que la zona no global comparta espacio en el disco con la zona global, si bien el administrador de zona 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 zona dispone de control absoluto sobre el conjunto de datos y todos sus conjuntos de datos secundarios. El administrador de zona puede crear y destruir sistemas de archivos o clones de ese conjunto de datos, así como modificar las propiedades de los conjuntos de datos. El administrador de zona no puede incidir en los conjuntos de datos que no se hayan agregado a la zona ni sobrepasar las cuotas de nivel superior establecidas en el conjunto de datos delegado.

Al utilizar ZFS en un sistema con zonas Oracle Solaris instaladas hay que tener en cuenta los puntos siguientes:

Adición de sistemas de archivos ZFS a una zona no global

Un sistema de archivos ZFS se puede agregar como sistema de archivos genérico si la finalidad es compartir espacio con la zona global. Un sistema de archivos ZFS agregado a una zona no global debe tener la propiedad mountpoint establecida en legacy. Por ejemplo, si el sistema de archivos tank/zone/zion se agregará a una zona no global, establezca la propiedad mountpoint en la zona global como se indica a continuación:

# zfs set mountpoint=legacy tank/zone/zion

Un sistema de archivos ZFS puede agregarse a una zona no global mediante el comando zonecfg y el subcomando add fs.

En el ejemplo siguiente, un administrador de zona global agrega a la zona no global un sistema de archivos ZFS desde la zona global:

# zonecfg -z zion
zonecfg:zion> add fs
zonecfg:zion:fs> set type=zfs
zonecfg:zion:fs> set special=tank/zone/zion
zonecfg:zion:fs> set dir=/export/shared
zonecfg:zion:fs> end

Esta 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 zona tampoco puede modificar propiedades del sistema de archivos, por ejemplo atime, readonly o compression. El administrador de zona global se encarga de configurar y controlar las propiedades del sistema de archivos.

Para obtener más información sobre el comando zonecfg y la configuración de tipos de recursos con zonecfg, consulte Parte II, Zonas de Oracle Solaris de Administración de Oracle Solaris: zonas de Oracle Solaris, zonas de Oracle Solaris 10 y gestión de recursos.

Delegación de conjuntos de datos a una zona no global

Para cumplir el objetivo principal, que es delegar la administración del almacenamiento a una zona, ZFS permite agregar conjuntos de datos a una zona no global mediante el comando zonecfg y el subcomando add dataset.

En el ejemplo siguiente, un administrador de zona global delega a la zona no global un sistema de archivos ZFS desde la zona global:

# zonecfg -z zion
zonecfg:zion> add dataset
zonecfg:zion:dataset> set name=tank/zone/zion
zonecfg:zion:dataset> set alias=tank
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. Dentro de la zona zion, no se puede acceder a este sistema de archivos como tank/zone/zion, sino como una agrupación virtual denominada tank. El alias del sistema de archivos delegado proporciona una vista de la agrupación original para la zona como una agrupación virtual. La propiedad del alias especifica el nombre de la agrupación virtual. Si no se especifica ningún alias, se utiliza un alias predeterminado que coincide con el último componente del nombre del sistema de archivos. Si no se proporciona un alias específico, el alias predeterminado en el ejemplo anterior habría sido zion.

En conjuntos de datos delegados, el administrador de zona puede establecer las propiedades del sistema de archivos, así como crear sistemas de archivos descendientes. Además, puede crear instantáneas y clones, y controlar toda la jerarquía del sistema de archivos. Si los volúmenes de ZFS se crean en sistemas de archivos delegados, es posible que entren en conflicto con los volúmenes de ZFS que se agregan como recursos de dispositivos. Para obtener más información, consulte la siguiente sección y dev(7FS).

Adición de volúmenes de ZFS a una zona no global

Puede agregar o crear un volumen de ZFS en una zona no global o puede agregar un acceso a los datos de un volumen en una zona no global de las siguientes formas:

Uso de grupos de almacenamiento de ZFS en una zona

Las agrupaciones de almacenamiento de ZFS no se pueden crear ni modificar en una zona. El modelo de administración delegada centraliza el control de dispositivos de almacenamiento físicos en la zona global y el control de almacenamiento virtual en zonas no globales. Aunque un conjunto de datos de agrupación se puede agregar a una zona, en una zona no se permite ningún comando que modifique las características físicas de la agrupación, por ejemplo crear, agregar o eliminar dispositivos. Aunque se agreguen dispositivos físicos a una zona mediante el comando zonecfg y el subcomando add device, o aunque se utilicen archivos, el comando zpool no permite la creación de grupos en la zona.

Administración de propiedades de ZFS en una zona

Tras delegar un conjunto de datos a una zona, el administrador de zona puede controlar determinadas propiedades del conjunto. Cuando un conjunto de datos se delega a una zona, todos sus antecesores se ven como conjuntos de datos de sólo lectura, mientras que el conjunto de datos agregado y todos sus descendientes se pueden escribir. Por ejemplo, tenga en cuenta la configuración siguiente:

global# zfs list -Ho name
tank
tank/home
tank/data
tank/data/matrix
tank/data/zion
tank/data/zion/home

Si se agregara tank/data/zion a una zona con el alias zion predeterminado, cada conjunto de datos tendría las siguientes propiedades.

Conjunto de datos
Visible
Escribible
Propiedades invariables
tank
No
-
-
tank/home
No
-
-
tank/data
No
-
-
tank/data/zion
zoned, quota, reservation
tank/data/zion/home
zoned

Tenga en cuenta que cada principal de tank/zone/zion es invisible y que puede escribirse en todos los descendientes. El administrador de zona no puede cambiar la propiedad zoned ya que existiría riesgo en la seguridad, como se explica en la sección siguiente.

Los usuarios con privilegios en la zona pueden cambiar otras propiedades configurables, excepto quota y reservation. Este comportamiento permite que el administrador de zona global controle la ocupación de espacio en el disco de todos los conjuntos de datos utilizados por la zona no global.

Asimismo, el administrador de zona global no puede modificar las propiedades sharenfs y mountpoint después de que un conjunto de datos se haya delegado a una zona no global.

Interpretación de la propiedad zoned

Si un conjunto de datos se delega a una zona no global, se debe marcar de modo especial para que determinadas propiedades no se interpreten en el contexto de la zona global. Tras haber delegado un conjunto de datos a una zona no global bajo el control de un administrador de zona, su contenido deja de ser fiable. Como en cualquier sistema de archivos, puede haber binarios setuid, vínculos simbólicos o contenido dudoso que podría repercutir negativamente en la seguridad de la zona global. Además, la propiedad mountpoint no se puede interpretar en el contexto de la zona global. Por otro lado, el administrador de zona podría afectar al espacio de nombre de la zona global. Para ocuparse de esto último, ZFS utiliza la propiedad zoned para indicar que un conjunto de datos se ha delegado a una zona no global en un determinado momento.

La propiedad zoned consiste en un valor booleano que se activa automáticamente la primera vez que se arranca una zona que contiene un conjunto de datos de ZFS. Un administrador de zona no tiene necesidad de activar manualmente esta propiedad. Si se establece la propiedad zoned, el conjunto de datos no se puede montar ni compartir en la zona global. En el ejemplo siguiente, tank/zone/zion se ha delegado a una zona y tank/zone/global no se ha delegado:

# zfs list -o name,zoned,mountpoint -r tank/zone
NAME                  ZONED  MOUNTPOINT
tank/zone/global        off  /tank/zone/global
tank/zone/zion           on  /tank/zone/zion
# zfs mount
tank/zone/global           /tank/zone/global
tank/zone/zion             /export/zone/zion/root/tank/zone/zion

Observe la diferencia entre la propiedad mountpoint y el directorio en que está montado el conjunto de datos tank/zone/zion. La propiedad mountpoint refleja la propiedad como almacenada en disco, no donde el conjunto de datos está montado en el sistema.

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 descendientes, la propiedad mountpoint podría definirse con valores incorrectos o podría haber binarios setuid en los sistemas de archivos.

Para prevenir riesgos en la seguridad, el administrador de zona global debe suprimir manualmente la propiedad zoned si se desea volver a utilizar el conjunto de datos. Antes de establecer la propiedad zoned en off, compruebe que la propiedad mountpoint del conjunto de datos y todos sus descendientes tengan valores razonables y que no haya binarios setuid, o desactive la propiedad 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.

Copia de zonas a otros sistemas

Cuando deba migrar las necesidades de una o varias zonas a otro sistema, considere el uso de los comandos zfs send y zfs receive. Según el escenario, puede ser mejor utilizar flujos de replicación o flujos recursivos.

Los ejemplos de esta sección describen cómo copiar datos de zona entre los sistemas. Se necesitan pasos adicionales para transferir la configuración de cada zona y conectar cada zona al nuevo sistema. Para obtener más información, consulte la Parte II, Zonas de Oracle Solaris de Administración de Oracle Solaris: zonas de Oracle Solaris, zonas de Oracle Solaris 10 y gestión de recursos.

Si todas las zonas de un sistema deben moverse a otro sistema, considere utilizar un flujo de replicación para que se preserven las instantáneas y los clones. Las instantáneas y los clones son utilizados en gran medida por los comandos pkg update, beadm create y zoneadm clone.

En el siguiente ejemplo, las zonas de sysA se instalan en el sistema de archivos rpool/zones y deben copiarse en el sistema de archivos tank/zones, en sys. Los siguientes comandos crean una instantánea y copian los datos en sysB mediante un flujo de replicación:

sysA# zfs snapshot -r rpool/zones@send-to-sysB
sysA# zfs send -R rpool/zones@send-to-sysB | ssh sysB zfs receive -d tank

En el siguiente ejemplo, una de varias zonas de sysC se copia en sysD. Supongamos que el comando ssh no está disponible, pero se encuentra disponible una instancia del servidor NFS. Es posible utilizar los siguientes comandos para generar un flujo recursivo zfs send sin necesidad de preocuparse por si la zona es un clon de otra zona.

sysC# zfs snapshot -r rpool/zones/zone1@send-to-nfs
sysC# zfs send -rc rpool/zones/zone1@send-to-nfs > /net/nfssrv/export/scratch/zone1.zfs
sysD# zfs create tank/zones
sysD# zfs receive -d tank/zones < /net/nfssrv/export/scratch/zone1.zfs