JavaScript is required to for searching.
Ignorar Links de Navegao
Sair do Modo de Exibio de Impresso
Guia de administração do Oracle Solaris ZFS     Oracle Solaris 10 1/13 Information Library (Português (Brasil))
search filter icon
search icon

Informação sobre o documento

Prefácio

1.  Sistema de arquivos do Oracle Solaris ZFS (introdução)

2.  Introdução ao ZFS do Oracle Solaris

3.  Gerenciando pools de armazenamento do Oracle Solaris ZFS

4.  Instalando e inicializando um sistema de arquivos raiz do Oracle Solaris ZFS

5.  Gerenciando sistemas de arquivos ZFS do Oracle Solaris

6.  Trabalhando com instantâneos e clones do Oracle Solaris ZFS

7.  Uso de ACLs e atributos para proteger arquivos do Oracle Solaris ZFS

8.  Administração delegada do ZFS do Oracle Solaris

9.  Tópicos avançados do Oracle Solaris ZFS

Volumes ZFS

Usando um volume ZFS como um dispositivo de permuta ou despejo

Usando um volume ZFS como um destino iSCSI Solaris

Usando ZFS em um sistema Solaris com zonas instaladas

Adicionando sistemas de arquivos ZFS a uma zona não global

Delegando conjuntos de dados a uma zona não global

Adicionando volumes ZFS a uma zona não global

Usando pools de armazenamento do ZFS dentro de uma zona

Gerenciando propriedades do ZFS dentro de uma zona

Entendendo a propriedade zoned

Usando pools de raiz alternativa do ZFS

Criando pools de raiz alternativa do ZFS

Importando pools de raiz alternativa

10.  Solução de problemas e recuperação de pools do Oracle Solaris ZFS

11.  Práticas Recomendadas do Oracle Solaris ZFS

A.  Descrição das versões do Oracle Solaris ZFS

Índice

Usando ZFS em um sistema Solaris com zonas instaladas

As seguintes seções descrevem como utilizar o ZFS em um sistema Oracle Solaris com zonas:

Para obter informações sobre a configuração de zonas em um sistema com um sistema de arquivos raiz do ZFS que será migrado ou terá patches instalados com o Live Upgrade, consulte Usando o Live Upgrade para migrar ou atualizar um sistema com zonas (Solaris 10 10/08) ou Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com zonas (no mínimo Solaris 10 5/09).

Leve em consideração os seguintes pontos ao associar os conjuntos de dados ZFS a zonas:

Nas seções a seguir, um conjunto de dados do ZFS refere-se a um sistema de arquivos ou um clone.

A adição de um conjunto de dados permite que a zona não global compartilhe espaço em disco com a zona global, embora o administrador de zonas não possa controlar as propriedades ou criar novos sistemas de arquivos na hierarquia do sistema de arquivos subjacente. Esta operação é idêntica a adicionar outro tipo de sistema de arquivos a uma zona, e deve ser utilizada quando o objetivo principal for unicamente compartilhar espaço em disco comum.

O ZFS também permite que os conjuntos de dados sejam delegados a uma zona não global, proporcionando controle total do administrador de zonas sobre o conjunto de dados e seus filhos. O administrador de zonas pode criar e destruir os sistemas de arquivos ou clones dentro deste conjunto de dados, assim como modificar propriedades dos conjuntos de dados. O administrador de zonas não pode afetar os conjuntos de dados que não foram adicionados à zona, o que inclui exceder as cotas máximas definidas no conjunto de dados delegado.

Considere as seguintes interações ao trabalhar com o ZFS em um sistema Oracle Solaris com zonas instaladas:

Adicionando sistemas de arquivos ZFS a uma zona não global

Você pode adicionar um sistema de arquivos ZFS como um sistema de arquivos genérico quando o objetivo for unicamente compartilhar espaço com a zona global. Um sistema de arquivos ZFS adicionado a uma zona não global deve ter a propriedade mountpoint definida como legado. Por exemplo, se o sistema de arquivos tank/zone/zion for adicionado a uma área não-global, defina a propriedade mountpoint na área global como a seguir:

# zfs set mountpoint=legacy tank/zone/zion

O sistema de arquivos ZFS pode ser adicionado a uma zona não global com o subcomando add fs do comando zonecfg .

No exemplo seguinte, um sistema de arquivos do ZFS é adicionado a uma zona não global por um administrador global na 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=/opt/data
zonecfg:zion:fs> end

Esta sintaxe adiciona o sistema de arquivos do ZFS, tank/zone/zion, à zona zion já configurada, montada em /opt/data. A propriedade mountpoint do sistema de arquivos deve ser definida como legacy (legado), e o sistema de arquivos já não poderá ser montado em outro local. O administrador de zonas pode criar e destruir arquivos dentro do sistema de arquivos. O sistema de arquivos não pode ser remontado em uma localização diferente e o administrador de zonas não pode alterar propriedades no sistema de arquivos, como atime, readonly, compression, etc. O administrador de zonas globais é responsável por definir e controlar as propriedades do sistema de arquivos.

Para obter mais informações sobre o comando zonecfg e sobre a configuração dos tipos de recursos com zonecfg, consulte Parte II, Zonas, no Guia de administração do sistema: gerenciamento de recursos do Oracle Solaris Containers e Oracle Solaris Zones.

Delegando conjuntos de dados a uma zona não global

Se a prioridade for delegar a administração do armazenamento a uma zona, o ZFS oferece suporte à adição de conjuntos de dados a uma zona não global através do subcomando add dataset do comando zonecfg.

No exemplo a seguir, um sistema de arquivos ZFS é delegado a uma zona não global por um administrador de zonas globais na zona global.

# zonecfg -z zion
zonecfg:zion> add dataset
zonecfg:zion:dataset> set name=tank/zone/zion
zonecfg:zion:dataset> end

Ao contrário da adição de um sistema de arquivos, esta sintaxe faz com que o sistema de arquivos ZFS tank/zone/zion esteja visível dentro da zona zion já configurada. O administrador de zonas pode definir as propriedades do sistema de arquivos e criar sistemas de arquivos descendentes. Além disso, o administrador de zonas pode criar instantâneos, clones e, por outro lado, controlar toda a hierarquia do sistema de arquivos.

Ao contrário da adição de um sistema de arquivos, esta sintaxe faz com que o sistema de arquivos ZFS tank/zone/zion esteja visível dentro da zona zion já configurada. Na zona zion, este sistema de arquivos não é acessível como tank/zone/zion, mas como um pool virtual com o nome tank. O alias do sistema de arquivos delegado fornece uma visão do pool original para a zona como um pool virtual. A propriedade do alias especifica o nome do pool virtual. Se nenhum alias for especificado, um alias padrão correspondente ao último componente do nome sistema de arquivos será usado. Se um alias específico não for fornecido, o alias padrão do exemplo acima não será zion.

Nos conjuntos de dados excluídos, o administrador de zonas pode definir as propriedades do sistema de arquivos e criar sistemas de arquivos descendentes. Além disso, o administrador de zonas pode criar instantâneos, clones e, por outro lado, controlar toda a hierarquia do sistema de arquivos. Se os volumes ZFS forem criados nos sistemas de arquivos delegados, poderão ter conflito com volumes ZFS adicionados como recursos de dispositivos. Para obter mais informações, consulte a próxima seção.

Se estiver utilizando o Oracle Solaris Live Upgrade para atualizar o BE do ZFS com zonas não globais, remova primeiro todos os conjuntos de dados delegados. Caso contrário, Oracle Solaris Live Upgrade falhará e apresentará o erro de sistema de arquivos de somente leitura. Por exemplo:

zonecfg:zion>
zonecfg:zion> remove dataset name=tank/zone/zion
zonecfg:zion1> exit

Para obter mais informações sobre que ações são permitidas dentro das zonas, consulte Gerenciando propriedades do ZFS dentro de uma zona.

Adicionando volumes ZFS a uma zona não global

Os volumes ZFS não podem ser adicionados a uma zona não global com o subcomando add dataset do comando zonecfg. No entanto, os volumes podem ser adicionados a uma zona com o subcomando add device do comando zonecfg.

No exemplo a seguir, um volume do ZFS é adicionado a uma zona não global por um administrador de zonas globais na zona global:

# zonecfg -z zion
zion: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zion> create
zonecfg:zion> add device
zonecfg:zion:device> set match=/dev/zvol/dsk/tank/vol
zonecfg:zion:device> end

Esta sintaxe adiciona o volume tank/vol à zona zion.

Observe que a adição de um volume bruto a uma zona apresenta riscos de segurança implícitos, mesmo que o volume não corresponda a um dispositivo físico. Em particular, o administrador de zonas poderia criar sistemas de arquivos inválidos que causariam graves danos ao sistema quando houvesse uma tentativa de montagem. Para obter mais informações sobre a adição de dispositivos a zonas e os riscos de segurança relacionados, consulte Entendendo a propriedade zoned.

Para obter mais informações sobre a adição de dispositivos a zonas, consulte a Parte II, Zonas, no Guia de administração do sistema: gerenciamento de recursos do Oracle Solaris Containers e Oracle Solaris Zones.

Usando pools de armazenamento do ZFS dentro de uma zona

Os pools de armazenamento do ZFS não podem ser criados ou modificados dentro de uma zona. O modelo de administração delegado centraliza o controle dos dispositivos de armazenamento físico dentro da zona global e o controle do armazenamento virtual em zonas não globais. Enquanto um conjunto de dados no nível do pool puder ser adicionado a uma zona, nenhum comando que modifique as características físicas do pool, como criar, adicionar ou remover dispositivos, poderá ser realizado de dentro de uma zona. Mesmo se os dispositivos físicos forem adicionados a uma zona com o subcomando add device do comando zonecfg, ou se os arquivos forem usados, o comando zpool não permite a criação de novos pools dentro da zona.

Gerenciando propriedades do ZFS dentro de uma zona

Depois que o conjunto de dados for delegado a uma zona, o administrador de zonas poderá controlar propriedades específicas do conjunto de dados. Depois que um conjunto de dados é delegado a uma zona, todos os seus antepassados estão visíveis como conjuntos de dados de somente leitura, enquanto que o próprio conjunto de dados é gravável, assim como seus descendentes. Considere, por exemplo, a seguinte configuração:

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

Se tank/data/zion fosse adicionado a uma zona, cada conjunto de dados teria as seguintes propriedades.

Conjunto de dados
Visível
Gravável
Propriedades imutáveis
tank
Sim
Não
-
tank/home
Não
-
-
tank/data
Sim
Não
-
tank/data/matrix
Não
-
-
tank/data/zion
Sim
Sim
sharenfs, zoned, quota, reservation
tank/data/zion/home
Sim
Sim
sharenfs, zoned

Observe que todos os pais de tank/zone/zion estão visíveis como somente leitura, todos os descendentes são graváveis e os conjuntos de dados que não fazem parte da hierarquia pai não estão visíveis de nenhuma forma. O administrador de zonas não pode alterar a propriedade sharenfs porque as zonas não globais não podem agir como servidores NFS. O administrador de zonas não pode alterar a propriedade zoned porque isso apresentaria um risco de segurança, conforme descrito na próxima seção.

Os usuários privilegiados na zona podem alterar qualquer outra propriedade que possa ser definida, exceto as propriedades quota e reservation. Este comportamento permite que o administrador de zona global controle o consumo do espaço em disco de todos os conjuntos de dados utilizados pela zona não global.

Além disso, as propriedades sharenfs e mountpoint não podem ser alteradas pelo administrador de zonas globais depois que um conjunto de dados tiver sido delegado a uma zona não global.

Entendendo a propriedade zoned

Quando um conjunto de dados é delegado a uma zona não global, ele deve ser identificado com uma marca especial para que determinadas propriedades não sejam interpretadas dentro do contexto da zona global. Depois que o conjunto de dados tiver sido delegado a uma zona não global e estiver sob o controle de um administrador de zonas, já não será possível confiar em seu conteúdo. Como em qualquer sistema de arquivos, podem haver binários setuid, links simbólicos ou, senão, conteúdos duvidosos que poderiam afetar a segurança da zona global. Além disso, a propriedade mountpoint não pode ser interpretada no contexto da zona global. Caso contrário, o administrador de zonas poderia afetar o espaço de nome da zona global. Para abordar este último, o ZFS usa a propriedade zoned para indicar que um conjunto de dados foi delegado a uma zona não global em um dado ponto no tempo.

A propriedade zoned é um valor booleano ativado automaticamente quando uma zona, contendo um conjunto de dados ZFS, é inicializada pela primeira vez. Um administrador de zonas não precisa ativar esta propriedade manualmente. Se a propriedade zoned estiver definida, o conjunto de dados não pode ser montado ou compartilhado na zona global. No exemplo a seguir, o tank/zone/zion foi delegado a uma zona, enquanto o tank/zone/global, não:

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

Observe a diferença entre a propriedade mountpoint e o diretório no qual o conjunto de dados tank/zone/zion está montado atualmente. A propriedade mountpoint reflete a propriedade como estando armazenada em disco, não onde o conjunto de dados está montado atualmente no sistema.

Quando um conjunto de dados é removido de uma zona ou quando uma zona é destruída, a propriedade zoned não é apagada automaticamente. Este comportamento se deve aos riscos de segurança inerentes relacionados a essas tarefas. Devido ao fato de um usuário não confiável ter tido total acesso ao conjunto de dados e a seus descendentes, a propriedade mountpoint pode ser definida com valores incorretos ou pode haver binários setuid nos sistemas de arquivos.

Para evitar eventuais riscos de segurança, a propriedade zoned deve ser apagada manualmente pelo administrador global se você desejar reutilizar o conjunto de dados. Antes de definir a propriedade zoned como off, certifique-se de que a propriedade mountpoint do conjunto de dados e de todos os seus descendentes esteja definida com valores aceitáveis e que não existam binários setuid, ou que a propriedade setuid esteja desativada.

Depois de ter verificado se não existem vulnerabilidades na segurança, a propriedade zoned pode ser desativada através do comando zfs set ou zfs inheri . Se a propriedade zoned for desativada enquanto um conjunto de dados estiver sendo usado dentro de uma zona, o sistema pode se comportar de forma imprevisível. Altere a propriedade somente se tiver certeza de que o conjunto de dados já não esteja sendo usado por uma zona não global.