Guia de administração do ZFS Oracle Solaris

Capítulo 2 Introdução ao ZFS do Oracle Solaris

Este capítulo fornece instruções passo a passo para fazer a configuração básica do ZFS do Oracle Solaris. Até final deste capítulo, você terá uma idéia básica de como funcionam os comandos do ZFS e será capaz de criar conjuntos e sistemas de arquivos simples. Este capítulo não oferece uma visão geral abrangente e faz referência a capítulos para informações mais detalhadas do assunto tratado.

Este capítulo traz as seguintes seções:

Recomendações e requisitos de software e hardware do ZFS

Verifique as recomendações e os requisitos de hardware e software seguintes antes de tentar utilizar o software do ZFS:

Criando um sistema de arquivos ZFS básico

A administração do ZFS foi concebida levando-se em consideração a simplicidade. Um dos objetivos do design é reduzir o número de comandos necessários para criar um sistema de arquivos utilizável. Por exemplo, ao criar um novo conjunto, um novo sistema de arquivos do ZFS é automaticamente criado e montado.

O exemplo a seguir mostra como criar um conjunto de armazenamento espelhado básico chamado tank e um sistema de arquivos do ZFS chamado tank em um comando. Suponha que a totalidade dos discos /dev/dsk/c2t0d0 e /dev/dsk/c0t1d0 possa ser usada.


# zpool create tank mirror c1t0d0 c2t0d0

Para obter mais informações sobre configurações de pool do ZFS, consulte Recursos de replicação de um pool de armazenamento do ZFS.

O novo sistema de arquivos do ZFS, tank, pode utilizar tanto espaço em disco quanto for necessário e é automaticamente montado em /tank.


# mkfile 100m /tank/foo
# df -h /tank
Filesystem             size   used  avail capacity  Mounted on
tank                   80G   100M    80G     1%    /tank

É provável que você queira criar sistemas de arquivos adicionais dentro de um conjunto. Os sistemas de arquivos fornecem pontos de administração que permitem gerenciar diferentes conjuntos de dados dentro de um mesmo conjunto.

O exemplo a seguir mostra como criar um sistema de arquivos chamado fs no conjunto de armazenamento tank.


# zfs create tank/fs

O novo sistema de arquivos do ZFS, tank/fs, pode utilizar tanto espaço em disco quanto for necessário e é automaticamente montando em /tank/fs.


# mkfile 100m /tank/fs/foo
# df -h /tank/fs
Filesystem             size   used  avail capacity  Mounted on
tank/fs                 80G   100M    80G     1%    /tank/fs

Normalmente, é provável que você queira criar e organizar uma hierarquia de sistemas de arquivos que corresponda às suas necessidades organizacionais. Para obter mais informações sobre a criação de uma hierarquia de sistemas de arquivos do ZFS, consulte Criando uma hierarquia de sistemas de arquivos ZFS.

Criando um pool de armazenamento do ZFS

O exemplo anterior ilustra a simplicidade do ZFS. O restante deste capítulo apresenta um exemplo mais completo, semelhante ao que poderia ser encontrado em seu ambiente. A primeira tarefa consiste em identificar os seus requisitos de armazenamento e criar um pool de armazenamento. O pool descreve as características físicas do armazenamento e deve ser criado antes dos sistemas de arquivos.

ProcedureComo identificar os requisitos de armazenamento para o pool de armazenamento do ZFS

  1. Determine os dispositivos disponíveis para o conjunto de armazenamento.

    Antes de criar um pool de armazenamento, você deve determinar que dispositivos armazenarão os dados. Esses dispositivos devem ser discos de no mínimo 128 MB e não devem estar sendo utilizados por outras partes do sistema operacional. Os dispositivos podem ser faixas individuais de um disco pré-formatado ou podem ser discos inteiros que o ZFS formata como uma única e grande faixa.

    No exemplo de armazenamento utilizado em Como criar um pool de armazenamento do ZFS, suponha que os discos /dev/dsk/c1t0d0 e /dev/dsk/c2t0d0 estejam totalmente disponíveis para uso.

    Para obter mais informações sobre os discos e como são usados e rotulados, consulte Usando discos em um pool de armazenamento do ZFS.

  2. Escolha a replicação de dados.

    O ZFS oferece suporte a vários tipos de replicação de dados, o que determina que tipos de falhas de hardware o conjunto pode suportar. O ZFS oferece suporte a configurações não redundantes (distribuídas), bem como a espelhamento e RAID-Z (uma variação de RAID-5).

    No exemplo de armazenamento em Como criar um pool de armazenamento do ZFS, utiliza-se o espelhamento básico de dois discos disponíveis.

    Para obter mais informações sobre os recursos de replicação do ZFS, consulte Recursos de replicação de um pool de armazenamento do ZFS.

ProcedureComo criar um pool de armazenamento do ZFS

  1. Torne-se raiz e adote uma função equivalente com os perfis corretos do ZFS apropriado.

    Para obter mais informações sobre os perfis corretos do ZFS, consulte Perfis de direitos do ZFS.

  2. Escolha um nome para o conjunto de armazenamento.

    O nome do conjunto é utilizado para identificar o conjunto de armazenamento quando os comandos zpool ou zfs estão sendo utilizados. A maioria dos sistemas requer somente um único conjunto, tornando possível selecionar o nome de sua preferência, contanto que esteja de acordo com os requisitos de identificação citados em Requisitos para nomeação de componentes do ZFS.

  3. Crie o pool.

    Por exemplo, o comando a seguir cria um conjunto espelhado chamado tank:


    # zpool create tank mirror c1t0d0 c2t0d0
    

    Se um ou mais dispositivos contiverem outro sistema de arquivos ou estiverem em uso, o comando não poderá criar o pool.

    Para obter mais informações sobre a criação de pools de armazenamento, consulte Criando um pool de armazenamento do ZFS. Para obter mais informações sobre como é determinado o uso do dispositivo, consulte Detectando dispositivos em uso.

  4. Visualize os resultados.

    Você pode determinar se seu pool foi criado com sucesso usando o comando zpool list .


    # zpool list
    NAME                    SIZE    ALLOC   FREE    CAP  HEALTH     ALTROOT
    tank                     80G    137K     80G     0%  ONLINE     -

    Para obter mais informações sobre a visualização do status do pool, consulte Consultando status de pool de armazenamento do ZFS.

Criando uma hierarquia de sistemas de arquivos ZFS

Depois de criar um pool de armazenamento para armazenar dados, você pode criar sua hierarquia de sistemas de arquivos. As hierarquias são mecanismos simples, porém, eficazes de organização de informações. São muito familiares àqueles que já usaram sistemas de arquivos.

O ZFS permite que os sistemas de arquivos sejam organizados em hierarquias, nas quais cada sistema de arquivo tem apenas um único pai. A raiz da hierarquia é sempre o nome do pool. O ZFS favorece esta hierarquia através do suporte à herança de propriedade para que as propriedades comuns possam ser definidas rápida e facilmente em árvores inteiras dos sistemas de arquivos.

ProcedureComo determinar a hierarquia do sistema de arquivos ZFS

  1. Selecione a granularidade do sistema de arquivos.

    Os sistemas de arquivos ZFS são o ponto central da administração. São leves e podem ser criados facilmente. Um bom modelo a ser utilizado é o de estabelecer um sistema de arquivos por usuário ou projeto, já que este modelo permite que as propriedades, instantâneos e backups possam ser controlados em uma base por usuário ou por projeto.

    Os dois sistemas de arquivos ZFS, bonwick e billm, são criados em Como criar sistemas de arquivos ZFS.

    Para obter mais informações sobre o gerenciamento de sistemas de arquivos, consulte Capítulo 6Gerenciando sistemas de arquivos ZFS do Oracle Solaris.

  2. Agrupe os sistemas de arquivos semelhantes.

    O ZFS permite que os sistemas de arquivos sejam organizados em hierarquias para que os sistemas de arquivos semelhantes possam ser agrupados. Esse modelo oferece um ponto central de administração para o controle de propriedades e a administração de sistemas de arquivos. Os sistemas de arquivos semelhantes devem ser criados sob um mesmo nome.

    No exemplo em Como criar sistemas de arquivos ZFS, os dois sistemas de arquivos são inseridos em um sistema de arquivos chamado home.

  3. Escolha as propriedades do sistema de arquivos.

    A maioria das características do sistema de arquivos é controlada por propriedades. Essas propriedades controlam vários comportamentos, incluindo onde os sistemas de arquivos são montados, como são compartilhados, se utilizam compactação e se as cotas estão ativas.

    No exemplo em Como criar sistemas de arquivos ZFS, todos os diretórios home estão montados no usuário /export/zfs/, compartilhados através do NFS e apresentam a compactação ativada. Além disso, no usuário bonwick, é obrigatória uma cota de 10 GB.

    Para obter mais informações sobre propriedades, consulte Introduzindo as propriedades do ZFS.

ProcedureComo criar sistemas de arquivos ZFS

  1. Torne-se raiz e adote uma função equivalente com os perfis corretos do ZFS apropriado.

    Para obter mais informações sobre os perfis corretos do ZFS, consulte Perfis de direitos do ZFS.

  2. Crie a hierarquia desejada.

    Neste exemplo, é criado um sistema de arquivos que age como um contêiner para sistemas de arquivos individuais.


    # zfs create tank/home
    
  3. Defina as propriedades de herança.

    Depois que a hierarquia do sistema de arquivos tiver sido estabelecida, defina as propriedades que devem ser compartilhadas com os usuários:


    # zfs set mountpoint=/export/zfs tank/home
    # zfs set sharenfs=on tank/home
    # zfs set compression=on tank/home
    # zfs get compression tank/home
    NAME             PROPERTY       VALUE                      SOURCE
    tank/home        compression    on                         local

    Você pode definir as propriedades do sistema de arquivos quando o mesmo é criado. Por exemplo:


    # zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home
    

    Para obter mais informações sobre propriedades e herança de propriedades, consulte Introduzindo as propriedades do ZFS.

    Em seguida, os sistemas de arquivos individuais são agrupados no sistema de arquivos home no pool tank.

  4. Crie os sistemas de arquivos individuais.

    Observe que os sistemas de arquivos podem ter sido criados e, então, as propriedades podem ter sido alteradas no nível home. Todas as propriedades podem ser alteradas dinamicamente enquanto os sistemas de arquivos estão sendo usados.


    # zfs create tank/home/bonwick
    # zfs create tank/home/billm
    

    Esses sistemas de arquivos herdam os valores de propriedade dos seus pais, e são montados automaticamente no /export/zfs/ usuário e são compartilhados por NFS. Não é necessário editar o arquivo /etc/vfstab ou o /etc/dfs/dfstab.

    Para obter mais informações sobre a criação de sistemas de arquivos, consulte Criando um sistema de arquivos ZFS.

    Para mais informações sobre a montagem e o compartilhamento de sistemas de arquivos, consulte Montando e compartilhando sistemas de arquivos ZFS.

  5. Defina as propriedades específicas do sistema de arquivos.

    Neste exemplo, uma cota de 10 GB é atribuída ao usuário bonwick. Essa propriedade limita a quantidade de espaço que o usuário pode utilizar, independentemente do espaço em disco disponível no pool.


    # zfs set quota=10G tank/home/bonwick
    
  6. Visualize os resultados.

    Visualize as informações disponíveis do sistema de arquivos usando o zfs list:


    # zfs list
    NAME                   USED  AVAIL  REFER  MOUNTPOINT
    tank                  92.0K  67.0G   9.5K  /tank
    tank/home             24.0K  67.0G     8K  /export/zfs
    tank/home/billm          8K  67.0G     8K  /export/zfs/billm
    tank/home/bonwick        8K  10.0G     8K  /export/zfs/bonwick

    Observe que o usuário bonwick tem somente 10 GB de espaço disponível, enquanto que o usuário billm pode utilizar o conjunto completo (67 GB).

    Para obter mais informações sobre a visualização do status do sistema de arquivos, consulte Consultando informações sobre o sistema de arquivos ZFS.

    Para obter mais informações sobre como o espaço é utilizado e calculado, consulte Contabilidade de espaço em disco do ZFS.