Como configurar cotas e reservas do ZFS

Como configurar cotas e reservas do ZFS
ZFS Contingente e Reserva são usados ​​para limitar a quantidade de espaço em disco que um sistema de arquivos ZFS específico pode usar no pool ZFS.

Quotas do ZFS: Digamos que você tenha um pool de tamanho ZFS 10 GB. Você criou um sistema de arquivos ZFS naquele pool. Se você definir uma cota de 2 GB Para esse sistema de arquivos ZFS, o sistema de arquivos ZFS pode usar apenas 2 GB de espaço em disco do pool. Não pode usar mais do que isso, mesmo que haja espaço livre disponível na piscina.

Reserva ZFS: Se você definir uma cota de 2 GB Para um sistema de arquivos ZFS, o ZFS não alocará 2 GB de espaço em disco para esse sistema de arquivos imediatamente. O espaço do disco será alocado conforme necessário até que o limite da cota seja atingido. Imagine que você tem muitos sistemas de arquivos no seu pool ZFS, e muitos usuários estão escrevendo para eles. Pode chegar um momento em que o limite de cota de um sistema de arquivos não é atingido, mas outros sistemas de arquivos preencheram o espaço em disco do pool. Portanto, mesmo que o sistema de arquivos tenha usado menos de 2 GB de espaço em disco do pool, ele ainda não será gravado no pool, pois o pool não possui espaço livre em disco.

Para resolver esse problema, você pode usar a reserva do ZFS. Você pode definir 2 GB De reserva para o seu sistema de arquivos ZFS muito especial e, no momento em que você definir a reserva, 2 GB de espaço em disco serão alocados para o sistema de arquivos do pool ZFS. Dessa forma, não importa quantos dados outros sistemas de arquivos sejam armazenados nesse pool, você ainda terá espaços de disco dedicados disponíveis para o seu sistema de arquivos e ainda poderá criar arquivos nesse sistema de arquivos, mesmo que o pool esteja cheio (não possui nenhum Espaço livre em disco).

Neste artigo, mostrarei como configurar cotas e reservas para o ZFS FileSystems. Então vamos começar.

Índice

  1. Criação de pools ZFS e sistemas de arquivos
  2. Configurando a cota do sistema de arquivos ZFS
  3. Configurando a reserva do sistema de arquivos ZFS
  4. Configurando a reserva do sistema de arquivos ZFS juntamente com a cota
  5. Desativando a reserva do sistema de arquivos ZFS
  6. Desativando a cota do sistema de arquivos ZFS
  7. Conclusão
  8. Referências

Criação de pools ZFS e sistemas de arquivos

Para experimentar a cota e reserva do ZFS, criarei um pool de ZFS Pool1 e 4 sistemas de arquivos ZFS fs1, FS2, fs3, e fs4 na piscina do ZFS Pool1. Se você quiser acompanhar, você pode fazer o mesmo.

Este artigo usará o vdb e VDC Dispositivos de armazenamento para criar o pool ZFS Pool1.

$ sudo lsblk -e7 -d

Para criar o pool ZFS Pool1 usando o vdb e VDC Dispositivos de armazenamento, execute o seguinte comando:

$ sudo zpool create -f pool1 vdb vdc

Uma piscina ZFS Pool1 deve ser criado.

Lista de $ sudo zfs

Crie os sistemas de arquivos fs1, FS2, fs3, e fs4 na piscina do ZFS Pool1 Com os seguintes comandos:

$ sudo zfs crie pool1/fs1
$ sudo zfs crie pool1/fs2
$ sudo zfs crie pool1/fs3
$ sudo zfs crie pool1/fs4

Os sistemas de arquivos ZFS fs1, FS2, fs3, e fs4 deve ser criado na piscina do ZFS Pool1.

Lista de $ sudo zfs

Configurando a cota do sistema de arquivos ZFS

Para configurar uma cota para um sistema de arquivos ZFS, você terá que configurar o contingente e Refquota Propriedades desse sistema de arquivos ZFS.

contingente: A cota será definida para os dados, instantâneos do sistema de arquivos e clones do sistema de arquivos. Portanto, o tamanho total dos dados do seu sistema de arquivos, instantâneos do sistema de arquivos e clones do sistema de arquivos não podem exceder o limite da cota.

Resumidamente,

sistema de arquivo dados Tamanho + FileSystem Instantâneos Tamanho + FileSystem clones tamanho < contingente limite

refquota: O limite de cota é definido apenas para os dados do sistema de arquivos, não para os instantâneos do sistema de arquivos e clones do sistema de arquivos.

Resumidamente,

sistema de arquivo dados tamanho < Refquota limite

Por padrão, o contingente e Refquota As propriedades não são definidas em nenhum sistema de arquivos ZFS. Portanto, os dados do sistema de arquivos, os instantâneos do sistema de arquivos e os clones do sistema de arquivos de qualquer sistema de arquivos ZFS podem abranger todo o tamanho do pool ZFS.

Como você pode ver, contingente e Refquota propriedades estão definidas para nenhum No sistema de arquivos ZFS fs1 por padrão. É o mesmo para o FS2, fs3, e fs4 FileSystems também.

$ sudo zfs get refquota, cota pool1/fs1

Para definir uma cota de 2 GB Para o sistema de arquivos ZFS fs1, Execute o seguinte comando:

$ sudo zfs set cota = 2g pool1/fs1

Como você pode ver, uma cota de 2 GB está definido para o sistema de arquivos ZFS fs1.

$ sudo zfs get cota pool1/fs1

Depois 2 GB de contingente está definido para o sistema de arquivos ZFS fs1, o espaço de disco disponível (APROVEITAR) do fs1 O sistema de arquivos deve ser 2 GB Em vez do espaço de disco disponível da piscina Pool1 (8.72 GB neste caso), como você pode ver na captura de tela abaixo.

Lista de $ sudo zfs

Você definiu uma cota de 2 GB Para o sistema de arquivos ZFS fs1. Então, você não pode manter mais de 2 GB de dados no sistema de arquivos fs1. Imagine criar alguns instantâneos e clones do sistema de arquivos que usaram cerca de 1 GB de espaço em disco. Nesse caso, você terá apenas 1 GB de espaço em disco disponível para dados no fs1 sistema de arquivo. Se os instantâneos do sistema de arquivos e clones usarem cerca de 1.5 GB de espaço em disco, você terá apenas 500 MB de espaço em disco disponível para dados no fs1 sistema de arquivo. Isso é um problema.

Às vezes, você pode dedicar algum espaço em disco para armazenar apenas dados no sistema de arquivos ZFS, para que os instantâneos e clones do sistema de arquivos não usem todo o espaço de disco disponível do sistema de arquivos ZFS. Você pode definir o Refquota propriedade para isso.

Digamos que você queira definir uma cota de 2 GB Para o sistema de arquivos ZFS FS2 e dedicar 1 GB de espaço em disco para apenas dados. Dessa forma, você só pode usar 1 GB de espaço em disco para armazenar Instantâneos do sistema de arquivos e clones.

Configurar 2 GB de cota para o sistema de arquivos ZFS FS2 do seguinte modo:

$ sudo zfs set cota = 2g pool1/fs1

Como você pode ver, 2 GB de cota é definida para o sistema de arquivos ZFS FS2.

Lista de $ sudo zfs

Dedicar 1 GB do espaço em disco para armazenar apenas dados para o sistema de arquivos ZFS FS2, colocou o Refquota propriedade do sistema de arquivos FS2 do seguinte modo:

$ sudo zfs set refquota = 1g pool1/fs2

Como você pode ver, o Refquota A propriedade está definida como 1 GB, e a contingente A propriedade está definida como 2 GB No sistema de arquivos ZFS FS2.

$ sudo zfs get refquota, cota pool1/fs2

O espaço de disco disponível do sistema de arquivos ZFS FS2 deveria estar 1 GB (1024 MB) - O tamanho que você viu usando o Refquota propriedade, como você pode ver na captura de tela abaixo.

Lista de $ sudo zfs

Depois que a cota é definida, vamos ver como os espaços de disco são alocados quando você cria arquivos nos sistemas de arquivos ZFS FS1 e FS2.

Criar uma 200 MB arquivo teste.img No sistema de arquivos ZFS fs1 do seguinte modo:

$ sudo dd if =/dev/aleatório de =/pool1/fs1/teste.img bs = contagem de 1m = 200 status = progresso

Criar uma 100 mb arquivo teste.img No sistema de arquivos ZFS FS2 do seguinte modo:

$ sudo dd if =/dev/aleatório de =/pool1/fs2/teste.img bs = contagem de 1m = 100 status = progresso

Como você pode ver, fs1 usos 200 MB de espaço em disco e FS2 usos 100 mb de espaço em disco do pool Pool1. No total, 300 MB de espaço em disco é usado no pool Pool1. Mesmo que você tenha definido cotas para o fs1 e FS2 Sistemas de arquivos, apenas o espaço de disco necessário é alocado para os sistemas de arquivos fs1 e FS2 da piscina Pool1.

Lista de $ sudo zfs

Se você deseja definir uma cota apenas para os dados de um sistema de arquivos ZFS, não para os instantâneos e clones do sistema de arquivos, apenas defina o Refquota Propriedade em seu sistema de arquivos ZFS desejado. Você não tem que definir o contingente propriedade. Dessa forma, os instantâneos e clones do sistema de arquivos podem ocupar tanto espaço em disco quanto exigido no pool do ZFS. Mas o limite de cota será colocado apenas nos dados que você armazena no seu sistema de arquivos ZFS.

Se você não estiver tirando nenhum instantâneo do sistema de arquivos ou fabrica clones do sistema de arquivos, então contingente e Refquota funcionar da mesma maneira. Não importa qual você usa.

Configurando a reserva do sistema de arquivos ZFS

Anteriormente, você viu que, quando você define uma cota em um sistema de arquivos ZFS, nenhum espaço de disco é automaticamente alocado para esse sistema de arquivos do pool ZFS. O espaço em disco é alocado à medida que os arquivos são criados nesse sistema de arquivos. Não há problema com isso. Mas há momentos em que você não quer isso.

Em alguns casos, você pode dedicar algum espaço em disco para um sistema de arquivos ZFS específico do pool. Dessa forma, mesmo que outros sistemas de arquivos preencham o pool, você ainda terá espaços gratuitos no seu sistema de arquivos ZFS. É para isso que a reserva do ZFS é usada para.

Para configurar uma reserva para um sistema de arquivos ZFS, você terá que configurar o reserva e Reperservação Propriedades desse sistema de arquivos ZFS.

Reserva: O espaço em disco será reservado para os dados, instantâneos do sistema de arquivos e clones do sistema de arquivos de um sistema de arquivos ZFS do pool ZFS.

Reperservação: O espaço em disco será reservado apenas para os dados de um sistema de arquivos ZFS do pool ZFS. Nenhum espaço em disco será reservado para instantâneos do sistema de arquivos e clones do sistema de arquivos.

Por padrão, o reserva e Reperservação As propriedades não são definidas em nenhum sistema de arquivos ZFS. Portanto, o ZFS não aloca nenhum espaço em disco para os dados, instantâneos do sistema de arquivos e clones do sistema de arquivos de qualquer sistema de arquivos ZFS do pool ZFS.

Como você pode ver, reserva e Reperservação propriedades estão definidas para nenhum No sistema de arquivos ZFS fs3 por padrão. É o mesmo para o fs1, FS2, e fs4 FileSystems também.

$ sudo zfs obtém uma reserva, pool de refrevações1/fs3

Por padrão, os sistemas de arquivos ZFS fs3 e fs4 tem o mesmo espaço livre em disco (8.43 GB) como a piscina Pool1.

Lista de $ sudo zfs

Reservar 2 GB de espaço em disco para o sistema de arquivos ZFS fs3 (Para dados do sistema de arquivos, instantâneos e clones) do pool, defina o reserva Propriedade do sistema de arquivos ZFS fs3 do seguinte modo:

$ sudo zfs define reserva = 2g pool1/fs3

Como você pode ver, o reserva A propriedade está definida como 2 GB Para o sistema de arquivos ZFS fs3.

$ sudo zfs get reserva pool1/fs3

Observe que, imediatamente após definir o reserva propriedade para 2 GB Para o sistema de arquivos ZFS fs3, 2 GB é usado na piscina do ZFS Pool11. Além disso, o espaço de disco disponível para o sistema de arquivos ZFS fs3 é 2 GB mais do que a piscina do ZFS Pool12.

Lista de $ sudo zfs

Reservar 1 GB do espaço em disco apenas para os dados (não para instantâneos e clones) do sistema de arquivos ZFS fs4 Da piscina, defina o Reperservação Propriedade do sistema de arquivos ZFS fs4 do seguinte modo:

$ sudo zfs Conjunto de refreanha = 1g pool1/fs4

O Reperservação A propriedade deve ser definida como 1 GB Para o sistema de arquivos ZFS fs4, Como você pode ver na captura de tela abaixo.

$ sudo zfs Get Reperservation pool1/fs4

Observe que, imediatamente após definir o Reperservação propriedade para 1 GB Para o sistema de arquivos ZFS fs4, 1 GB é usado no sistema de arquivos ZFS fs41. 1 GB também é usado na piscina do ZFS Pool12, e o espaço de disco disponível do sistema de arquivos ZFS fs4 é 1 GB mais3 do que a piscina do ZFS Pool14.

Lista de $ sudo zfs

Configurando a reserva do sistema de arquivos ZFS juntamente com a cota

Você pode usar a reserva juntamente com a cota nos sistemas de arquivos ZFS também. Vamos ver alguns exemplos.

Digamos que você queira definir uma cota de 2 GB Para o sistema de arquivos ZFS fs3 e reserva 2 GB de espaço em disco para o sistema de arquivos ZFS fs3 (Para armazenar dados do sistema de arquivos, instantâneos e clones) do pool do ZFS.

Para fazer isso, defina o contingente e reserva Propriedades do sistema de arquivos ZFS fs3 do seguinte modo:

$ sudo zfs set cota = 2g reserva = 2g pool1/fs3

O contingente e reserva Propriedades do sistema de arquivos ZFS fs3 deve ser definido como 2 GB, Como você pode ver na captura de tela abaixo.

$ sudo zfs get cota, reserva pool1/fs3

O espaço de disco disponível do sistema de arquivos ZFS fs3 deve ser definido como 2 GB. 2 GB do espaço em disco também deve ser reservado para o sistema de arquivos ZFS fs3 da piscina do ZFS Pool1.

Lista de $ sudo zfs

Digamos que você queira definir uma cota de 2 GB Para o sistema de arquivos ZFS fs4. Mas, você quer permitir apenas 1 GB do espaço em disco para armazenar dados do sistema de arquivos e o outro 1 GB Para armazenar instantâneos e clones do sistema de arquivos. Além disso, você quer reservar 1 GB de espaço em disco para armazenar o sistema de arquivos ZFS fs4 da piscina do ZFS.

Para fazer isso, defina o contingente, Refquota, e Reperservação Propriedades do sistema de arquivos ZFS fs4 do seguinte modo:

$ sudo zfs set cota = 2g refQOTA = 1G Refresterservation = 1g Pool1/FS4

O contingente Propriedade do sistema de arquivos ZFS fs4 deve ser definido como 2 GB, e a Refquota e Reperservação propriedades devem ser definidas como 1 GB, Como você pode ver na captura de tela abaixo.

$ sudo zfs conjunto de cota, refqueta, refreaverting pool1/fs4

O espaço de disco disponível do sistema de arquivos ZFS fs4 deve ser definido como 1 GB. 1 GB do espaço em disco também deve ser reservado para o sistema de arquivos ZFS fs4 da piscina do ZFS Pool1.

Lista de $ sudo zfs

Digamos que você queira definir uma cota de 2 GB Para o sistema de arquivos ZFS fs4. Mas, você quer permitir apenas 1 GB do espaço em disco para armazenar dados do sistema de arquivos e o outro 1 GB Para armazenar instantâneos e clones do sistema de arquivos. Além disso, você quer reservar 2 GB do espaço em disco para armazenar os dados do sistema de arquivos, instantâneos e clones e 1 GB do espaço em disco dessa reserva para armazenar apenas o sistema de arquivos ZFS fs4.

Para fazer isso, defina o contingente, Refquota, reserva, e Reperservação Propriedades do sistema de arquivos ZFS fs4 do seguinte modo:

$ sudo zfs set cota = 2g refQota = 1g Reserva = refreversa 2G = 1g Pool1/fs4

Como você pode ver, o contingente e reserva Propriedades do sistema de arquivos ZFS fs4 estão definidos como 2 GB, e a Refquota e Reperservação propriedades estão definidas para 1 GB.

$ sudo zfs get cota, refquota, reserva, refrevertion pool1/fs4

Anteriormente, o sistema de arquivos ZFS reservado 1 GB de espaço em disco do pool Pool1. Agora, reservou 1 GB mais. No total, 2 GB do espaço em disco é reservado para o sistema de arquivos ZFS fs4 da piscina do ZFS Pool1. Além disso, o limite de cota é definido para o sistema de arquivos ZFS fs4.

Lista de $ sudo zfs

Desativando a reserva do sistema de arquivos ZFS

Você pode definir o reserva e Reperservação propriedade de um sistema de arquivos ZFS para nenhum ou 0 Para desativar a reserva para esse sistema de arquivos ZFS.

Para desativar a reserva para o sistema de arquivos ZFS fs4, colocou o reserva e Reperservação Propriedades do sistema de arquivos ZFS fs4 para nenhum do seguinte modo:

$ sudo zfs SET Reserva = Nenhum REFRAVILIZAÇÃO = Nenhum Pool1/FS4

A reserva deve ser desativada para o sistema de arquivos ZFS fs4.

$ sudo zfs obtém uma reserva, pool de refrevações1/fs4

Como você pode ver, 2 GB de espaço em disco (4.49 GB a 2.29 GB agora) está desalocado da piscina do ZFS Pool1 Como uma reserva é desativada para o sistema de arquivos ZFS fs4.

Lista de $ sudo zfs

Desativando a cota do sistema de arquivos ZFS

Você pode definir o contingente e Refquota propriedade de um sistema de arquivos ZFS para nenhum ou 0 Para desativar a cota para esse sistema de arquivos ZFS.

Para desativar a cota para o sistema de arquivos ZFS fs4, colocou o contingente e Refquota Propriedades do sistema de arquivos ZFS fs4 para nenhum do seguinte modo:

$ sudo zfs set cota = nenhum refqueta = nenhum pool1/fs4

A cota deve ser desativada para o sistema de arquivos ZFS fs4.

$ sudo zfs get cota, refquota pool1/fs4

Como você pode ver, nenhum limite de cota é definido para o sistema de arquivos ZFS fs4 não mais.

Lista de $ sudo zfs

Conclusão

Neste artigo, discuti os recursos de cota e reserva do sistema de arquivos ZFS. Eu mostrei como configurar cotas e reservas para os sistemas de arquivos ZFS. Eu também mostrei como desativar cotas e reservas dos sistemas de arquivos ZFS.

Referências

[1] Configurando cotas e reservas do ZFS (Guia de Administração Solaris ZFS)