Ignorar Links de Navegao | |
Sair do Modo de Exibio de Impresso | |
![]() |
Guia de administração do ZFS Oracle Solaris |
1. Sistema de arquivos Oracle Solaris ZFS (introdução)
2. Introdução ao ZFS do Oracle Solaris
3. Diferenças entre o sistema de arquivos tradicional e o ZFS do Oracle Solaris
4. Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris
5. Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris
6. Gerenciando sistemas de arquivos ZFS do Oracle Solaris
Gerenciando de sistemas de arquivos ZFS (visão geral)
Criando, destruindo e renomeando sistemas de arquivos ZFS
Criando um sistema de arquivos ZFS
Destruindo um sistema de arquivos ZFS
Renomeando um sistema de arquivos ZFS
Introduzindo as propriedades do ZFS
Propriedades nativas somente leitura do ZFS
Propriedades nativas definíveis do ZFS
Propriedades de usuário do ZFS
Consultando informações sobre o sistema de arquivos ZFS
Listando informações básicas do ZFS
Criando consultas complexas de ZFS
Gerenciando propriedades do ZFS
Consultando propriedades do ZFS
Consultando propriedades do ZFS em busca de script
Montando e compartilhando sistemas de arquivos ZFS
Gerenciando pontos de montagem do ZFS
Pontos de montagem automáticos
Montando sistemas de arquivos ZFS
Usando propriedades de montagem temporárias
Desmontando sistemas de arquivos
Compartilhando e descompartilhando sistemas de arquivos ZFS
Controlando a semântica de compartilhamento
Descompartilhando sistemas de arquivos ZFS
Compartilhando sistemas de arquivos ZFS
Comportamento de compartilhamento de legado
Definindo cotas e reservas do ZFS
Definindo cotas em sistemas de arquivos ZFS
Definindo usuário e grupo de cotas em um sistema de arquivos ZFS
Atualização de sistemas de arquivos ZFS
7. Trabalhando com instantâneos e clones do ZFS do Oracle Solaris
8. Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
9. Administração delegada do ZFS do Oracle Solaris
10. Tópicos avançados do ZFS do Oracle Solaris
11. Solução de problemas e conjunto de recuperação do Oracle Solaris ZFS
É possível utilizar a propriedade cota para definir um limite na quantidade de espaço em disco que um sistema de arquivos necessite utilizar. Além disso, é possível utilizar a propriedade reserva para garantir que uma quantidade especificada de espaço em disco esteja disponível para um sistema de arquivos. Ambas as propriedades se aplicam ao conjunto de dados em que são configuradas e a todos os descendentes desse conjunto de dados.
Isto é, se uma cota é definida no conjunto de dados tank/home, a quantidade total do espaço em disco utilizado pelo tank/home e todos os seus descendentes não podem exceder a cota. Do mesmo modo, se ao tank/home é dado uma reserva, tank/home e todos os seus descendentes utilizarão tal reserva. A quantidade de espaço em disco utilizado por um conjunto de dados e todos os seus descendentes são relatados pela propriedade utilizada.
As propriedades refquota e refreservation são utilizadas para gerenciar o espaço do sistema de arquivos sem contabilizar o espaço em disco utilizado pelos descendentes, tal como instantâneos e clones.
Nessa versão do Solaris, é possível definir uma cota de usuário ou de grupo na quantidade de espaço em disco utilizado por arquivos que pertencem a um usuário particular ou a um grupo. As propriedades de cota do usuário ou grupo não podem ser definidas em um volume, em um sistema de arquivos antes da versão 4 do sistema de arquivos, ou em um pool antes da versão 15 do pool.
Considere os pontos a seguir para determinar quais recursos de cotas e reservas melhor ajudam no gerenciamento dos sistemas de arquivos:
As propriedades cota e reserva são convenientes para gerenciar o espaço em disco utilizado pelo conjunto de dados e seus descendentes.
As propriedades refquota e refreservation são apropriadas para gerenciar o espaço em disco consumido pelo conjunto de dados.
Configurando as propriedades refquota ou refreservation superiores às propriedades cota ou reserva não possuem efeito. Se configurar as propriedades quota ou refquota, as operações que tentam exceder o valor falham. É possível exceder uma quota que é maior que refquota. Por exemplo, se alguns blocos de instantâneos são modificados, é possível exceder a quota antes de exceder refquota.
As cotas do usuário ou grupo fornecem um meio mais fácil de gerenciar o espaço em disco com muitas contas de usuário, como em um ambiente universitário.
Para obter informações sobre a definição de cotas e reservas, consulte Definindo cotas em sistemas de arquivos ZFSand Definindo reservas nos sistemas de arquivos ZFS.
As cotas nos sistemas de arquivos ZFS podem ser configuradas e exibidas utilizando os comandos zfs set e zfs get. No exemplo a seguir, uma cota de 10 GB é configurada no tank/home/jeff:
# zfs set quota=10G tank/home/jeff # zfs get quota tank/home/jeff NAME PROPERTY VALUE SOURCE tank/home/jeff quota 10G local
As cotas também afetam a saída dos comandos zfs list e df. Por exemplo:
# zfs list -r tank/home NAME USED AVAIL REFER MOUNTPOINT tank/home 1.45M 66.9G 36K /tank/home tank/home/eric 547K 66.9G 547K /tank/home/eric tank/home/jeff 322K 10.0G 291K /tank/home/jeff tank/home/jeff/ws 31K 10.0G 31K /tank/home/jeff/ws tank/home/lori 547K 66.9G 547K /tank/home/lori tank/home/mark 31K 66.9G 31K /tank/home/mark # df -h /tank/home/jeff Filesystem Size Used Avail Use% Mounted on tank/home/jeff 10G 306K 10G 1% /tank/home/jeff
Observe que, embora tank/home possua 66,9 GB de espaço em disco disponível, tank/home/jeff e tank/home/jeff/ws possuem, cada um, somente 10 GB de espaço em disco disponível, devido à cota em tank/home/jeff.
Não é possível definir uma cota para uma quantidade menor do que a atualmente em uso por um conjunto de dados. Por exemplo:
# zfs set quota=10K tank/home/jeff cannot set property for 'tank/home/jeff': size is less than current used or reserved space
É possível definir uma refquota em um conjunto de dados que limita quantidade montante de espaço em disco que o conjunto de dados pode consumir. Esse limite de disco rígido não inclui o espaço em disco que é utilizado pelos descendentes. Por exemplo, a cota de 10 GB do aluno A não é afetada pelo espaço consumido por instantâneos.
# zfs set refquota=10g students/studentA # zfs list -t all -r students NAME USED AVAIL REFER MOUNTPOINT students 150M 66.8G 32K /students students/studentA 150M 9.85G 150M /students/studentA students/studentA@yesterday 0 - 150M - # zfs snapshot students/studentA@today # zfs list -t all -r students students 150M 66.8G 32K /students students/studentA 150M 9.90G 100M /students/studentA students/studentA@yesterday 50.0M - 150M - students/studentA@today 0 - 100M -
Para maior comodidade, é possível configurar outra cota no conjunto de dados para ajudar a gerenciar o espaço em disco que é utilizado pelos instantâneos. Por exemplo:
# zfs set quota=20g students/studentA # zfs list -t all -r students NAME USED AVAIL REFER MOUNTPOINT students 150M 66.8G 32K /students students/studentA 150M 9.90G 100M /students/studentA students/studentA@yesterday 50.0M - 150M - students/studentA@today 0 - 100M -
Nesse cenário, studentA deve alcançar refquota (10 GB) de limite de disco rígido, mas studentA pode remover arquivos para recuperar, mesmo se existirem instantâneos.
No exemplo anterior, a menor das duas cotas (10 GB comparado a 20 GB) é exibida na saída zfs list. Para visualizar o valor de ambas as cotas, utilize o comando zfs get. Por exemplo:
# zfs get refquota,quota students/studentA NAME PROPERTY VALUE SOURCE students/studentA refquota 10G local students/studentA quota 20G local
É possível definir uma cota de usuário ou de grupo utilizando os comandos zfs userquota ou zfs groupquota, respectivamente. Por exemplo:
# zfs create students/compsci # zfs set userquota@student1=10G students/compsci # zfs create students/labstaff # zfs set groupquota@labstaff=20GB students/labstaff
Exiba a cota atual do usuário ou grupo como segue:
# zfs get userquota@student1 students/compsci NAME PROPERTY VALUE SOURCE students/compsci userquota@student1 10G local # zfs get groupquota@labstaff students/labstaff NAME PROPERTY VALUE SOURCE students/labstaff groupquota@labstaff 20G local
É possível exibir o usuário geral ou o grupo de espaço em disco consultando as propriedades a seguir:
# zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 350M none POSIX User student1 426M 10G # zfs groupspace students/labstaff TYPE NAME USED QUOTA POSIX Group labstaff 250M 20G POSIX Group root 350M none
Para identificar usuários individuais ou de grupo de uso do espaço em disco, consulte as propriedades a seguir:
# zfs get userused@student1 students/compsci NAME PROPERTY VALUE SOURCE students/compsci userused@student1 550M local # zfs get groupused@labstaff students/labstaff NAME PROPERTY VALUE SOURCE students/labstaff groupused@labstaff 250 local
As propriedades de cotas de usuário e de grupo não são exibidas utilizando o comando zfs get all conjunto de dados, que exibem uma lista de todas as outras propriedades do sistema de arquivos.
É possível remover uma cota de usuário de grupo da seguinte forma:
# zfs set userquota@student1=none students/compsci # zfs set groupquota@labstaff=none students/labstaff
As cotas de usuário e de grupo no sistema de arquivos ZFS fornecem os recursos a seguir:
Uma cota de usuário ou de grupo definida no sistema de arquivos pai que não é automaticamente herdada por um sistema de arquivos descendente.
No entanto, a cota do usuário ou grupo é aplicada quando um clone ou um instantâneo é criado a partir de um sistema de arquivos que tenha uma cota do usuário ou grupo. Do mesmo modo, uma cota de usuário ou de grupo que está incluída com o sistema de arquivos quando um fluxo é criado utilizando o comando zfs send, mesmo sem a opção -R.
Usuários sem privilégio só podem acessar seu próprio espaço em disco. O usuário raiz ou um usuário a quem foi concedido o privilégio de userused ou groupused, pode acessar a informação de contabilidade do espaço em disco de um grupo ou usuário de todos.
As propriedades userquota e groupquota não podem ser definidas nos volumes ZFS, em um sistema de arquivos anterior a versão 4, ou em um pool anterior a versão 15 do pool.
Aplicação de usuário e cotas de grupos podem ser adiadas por vários segundos. Esta atraso significa que os usuários podem exceder suas cotas antes que o sistema observe que estão acima da cota e recusa gravações adicionais EDQUOT .
Você pode usar o comando quota herdado, para rever as cotas do usuário em um ambiente NFS, por exemplo, onde uma sistema de arquivos ZFS não esteja montado. Sem quaisquer opções, o comando quota somente exibe a saída se a cota do usuário estiver excedida. Por exemplo:
# zfs set userquota@student1=10m students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 350M none POSIX User student1 550M 10M # quota student1 Block limit reached on /students/compsci
Se você predefinir a cota de usuário e o limite de cotas não estiver excedido, é possível utilizar o comando quota -v para visualizar a cota do usuário. Por exemplo:
# zfs set userquota@student1=10GB students/compsci # zfs userspace students/compsci TYPE NAME USED QUOTA POSIX User root 350M none POSIX User student1 550M 10G # quota student1 # quota -v student1 Disk quotas for student1 (uid 102): Filesystem usage quota limit timeleft files quota limit timeleft /students/compsci 563287 10485760 10485760 - - - - -
Uma reserva ZFS é uma alocação do espaço em disco do conjunto que garante estar disponível ao conjunto de dados. Assim, não é possível reservar o espaço em disco para um conjunto de dados se o espaço não está atualmente disponível no conjunto. A quantidade total de reservas livres e não consumidas não pode exceder a quantidade de espaço em disco não utilizado no conjunto. A reservas do ZFS podem ser definidas e exibidas com os comandos zfs set e zfs get. Por exemplo:
# zfs set reservation=5G tank/home/bill # zfs get reservation tank/home/bill NAME PROPERTY VALUE SOURCE tank/home/bill reservation 5G local
As reservas podem afetar a saída do comando zfs list. Por exemplo:
# zfs list -r tank/home NAME USED AVAIL REFER MOUNTPOINT tank/home 5.00G 61.9G 37K /tank/home tank/home/bill 31K 66.9G 31K /tank/home/bill tank/home/jeff 337K 10.0G 306K /tank/home/jeff tank/home/lori 547K 61.9G 547K /tank/home/lori tank/home/mark 31K 61.9G 31K /tank/home/mark
Note que tank/home está utilizando 5 GB de espaço em disco, embora a quantidade total do espaço seja referente a tank/home e seus descendentes são menores que 5 GB. O espaço usado reflete o espaço reservado para tank/home/bill. As reservas são consideradas no cálculo de espaço em disco utilizado do conjunto de dados pai e contam contra sua cota, reserva ou ambos.
# zfs set quota=5G pool/filesystem # zfs set reservation=10G pool/filesystem/user1 cannot set reservation for 'pool/filesystem/user1': size is greater than available space
Um conjunto de dados utiliza mais espaço em disco do que sua reserva, enquanto o espaço não reservado está disponível no conjunto e o conjunto de dados atualmente utilizado está abaixo de sua cota. Um conjunto de dados não pode utilizar o espaço em disco que foi reservado para outro conjunto de dados.
As reservas não são cumulativas. Ou seja, uma segunda chamada de zfs set para definir uma reserva não adiciona sua reserva à reserva existente. Em vez disso, a segunda reserva substitui a primeira reserva. Por exemplo:
# zfs set reservation=10G tank/home/bill # zfs set reservation=5G tank/home/bill # zfs get reservation tank/home/bill NAME PROPERTY VALUE SOURCE tank/home/bill reservation 5G local
É possível definir uma reserva refreservation para garantir espaço em disco para um conjunto de dados que não inclua espaço em disco utilizado pelos instantâneos e clones. Essa reserva é contabilizada para o cálculo do espaço utilizado do conjunto de dados pai e conta contra as cotas e reservas do conjunto de dados pai. Por exemplo:
# zfs set refreservation=10g profs/prof1 # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 10.0G 23.2G 19K /profs profs/prof1 10G 33.2G 18K /profs/prof1
Também é possível definir um reserva no mesmo conjunto de dados para garantir o espaço do conjunto de dados e o espaço do instantâneo. Por exemplo:
# zfs set reservation=20g profs/prof1 # zfs list NAME USED AVAIL REFER MOUNTPOINT profs 20.0G 13.2G 19K /profs profs/prof1 10G 33.2G 18K /profs/prof1
As reservas regulares são contabilizados para o cálculo de espaço utilizado do pai.
No exemplo anterior, a menor das duas cotas (10 GB comparado a 20 GB) é exibida na saída zfs list. Para visualizar o valor de ambas as cotas, utilize o comando zfs get. Por exemplo:
# zfs get reservation,refreserv profs/prof1 NAME PROPERTY VALUE SOURCE profs/prof1 reservation 20G local profs/prof1 refreservation 10G local
Se refreservation está configurada, um instantâneo só é permitido se o espaço do conjunto não reservado suficiente existe fora da reserva para acomodar o número atual de bytes referenciados no conjunto de dados.