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)) |
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
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
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
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:
Você pode adicionar um sistema de arquivos ou clone do ZFS a uma zona não global com ou sem delegar o controle administrativo.
É possível adicionar um volume do ZFS como um dispositivo em zonas não globais.
No momento, não é possível associar instantâneos do 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:
Um sistema de arquivos ZFS adicionado a uma zona não global deve ter a propriedade mountpoint definida como legado.
Não adicione um conjunto de dados ZFS em uma zona não global quando a zona não global estiver configurada. Em vez disso, adicione um conjunto de dados ZFS depois que a zona for instalada.
Quando o zonepath de origem e o zonepath de destino residirem em um sistema de arquivos do ZFS e estiverem no mesmo pool, o comando zoneadm clone utilizará automaticamente o ZFS para clonar uma zona. O comando zoneadm clone criará um instantâneo do ZFS do zonepath de fonte e configurará o zonepath de destino. Não é possível usar o comando zfs clone para clonar uma zona. Para obter mais informações, consulte a Parte II, Zonas, no Guia de administração do sistema: gerenciamento de recursos do Oracle Solaris Containers e Oracle Solaris Zones.
Caso você delegue um sistema de arquivos do ZFS para uma zona não global, é preciso remover aquele sistema de arquivos da zona não global antes de utilizar o Oracle Solaris Live Upgrade. Caso contrário, o Oracle Live Upgrade irá falhar devido a um erro de sistema de arquivos de somente leitura.
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.
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.
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.
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.
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.
|
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.
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.