Aula #13 - Sistemas de Arquivos: Swap, Quotas e Uso



O Linux usa uma área de swap que é robusta e que permite ao sistema de memória virtual usar mais memória do que a quantidade fisicamente disponível no sistema. Quotas para Sistemas de Arquivos podem ser utilizadas para administrar o uso de espaço em disco. Utilitários como o df e du permitem fácil monitoramento de uso e tamanho dos sistema de arquivos.



SWAP


Linux usa um sistema de memória virtual que permite ao sistema operacional agir como se ele tivesse mais memória do que ele tem de fato. Este tipo de recurso é chamado de overcommit de memória e funciona de duas formas:

Muitos programas na verdade não usam toda a memória que eles solicitam. Em alguns casos isso acontece quando um processo filho herda uma cópia da memória do processo pai para usar o método COW (Copy On Write, ou cópia na escrita) em que o processo filho só recebe uma cópia real quando tenta escrever na memória, e não quando solicita uma área de memória.
Quando o sistema opera em modo com pouca memória, áreas menos ativas da memória podem ser movidas para o swap em disco, e movidas de volta quando mais memória estiver disponível.

Estas ações de swap são feitas em partições dedicadas ou em arquivos; O Linux permite configurar várias áreas de swap, para que a quantidade de swap possa ser ajustado dinamicamente. Cada área tem uma prioridade associada e as áreas com prioridade mais baixa não são usadas até que as áreas com prioridade mais altas tenham sido completamente utilizadas.
Na maioria das situações a quantidade de swap recomendada é a quantidade de memória do sistema. Você pode verificar quanto swap você tem disponível no sistema com:


$ cat /proc/swaps
Filename             Type                  Size             Used         Priority
/dev/sda9            partition             4193776          0            -1
/dev/sdb6            partition             4642052          0            -2


e a quantidade em uso com:

$ free -o

                  total      used     free   shared   buffers   cached
Mem:      4047236   3195080    852156        0    818480  1430940
Swap:     8835828         0   8835828


Os comandos exclusivos para swap são:

    mkswap: formata uma partição ou arquivo
    swapon: ativa uma partição ou arquivo
    swapoff: desativa uma partição ou arquivo


Normalmente a maioria da memória em uso é usada para cache de arquivo que tem o objetivo de melhorar o desempenho de acesso a disco. As páginas de memória usadas como cache nunca vão para o swap, em caso de necessidade elas são salvas no disco para atualizar o conteúdo dos arquivos que elas representam.

Também é importante mencionar que a memória usada pelo kernel do Linux, que não é a mesma usada por aplicativos, nunca vai ser movida para o swap o que não é universal para todos os sistemas operacionais.


  • Para ajudar, veja estes dois artigos sobre manipulação da RAM e SWAP no linux

Como usar um arquivo como memória SWAP ao invés de uma partição

http://www.esli-nux.com/2014/08/usar-arquivo-como-memoria-swap.html
Evitando assim, criar partições estendidas/lógicas, ponto de montagem e também permitindo melhor flexibilidade ao aumentar/diminuir a memória SWAP.

Melhorar o desempenho da memória RAM e SWAP no linux através do sysctl

http://www.esli-nux.com/2014/08/melhor-desempenho-da-memoria-ram-e-swap.html




COTAS

O Linux pode usar e aplicar cotas em sistemas de arquivos. As cotas de disco permitem aos administradores controlar o espaço máximo que usuários ou grupos podem consumir. O processo é flexível e é permitido ter cotas diferentes para sistemas de arquivos diferentes. Estas ferramentas fornecem proteção contra um abusos de usuários que poderiam esgotar recursos coletivos.

Estes utilitários ajudam a gerenciar cotas:

  •     quotacheck: gera e gerencia os arquivos de cotas
  •     quotaon: liga as cotas
  •     quotaoff: desliga as cotas
  •     edquota: edita as configurações de cotas para usuário e grupo
  •     quota: emite relatórios sobre o uso e os limites

Para que as cotas funcionem os arquivos quota.user e quota.group devem existir no diretório raiz do sistema de arquivos.
Cotas podem ser ativadas ou desativadas por sistema de arquivos. Além disso o Linux suporta o uso de cotas com base em IDs de usuário e de grupo.
Diferentes tipos de sistemas de arquivos podem ter ferramentas especializados como xfs_quota.

Para criar cotas para um sistema de arquivos você deve primeiro certificar-se de que tenha montado o sistema de arquivos com a opção de cota para usuário e/ou com a opção de cota para grupo. Sem isso nada mais funcionará. Os passos básicos são:

    Montar o sistema de arquivos com uma ou com as duas opções de cotas:
  •     Adicionar as opções usrquota e/ou grpquota aos sistemas de arquivo no /etc/fstab
  •     Remontar o sistema de arquivos (ou montar se for novo)
  •     Rodar o quotacheck no sistema de arquivos para configurar as cotas. 
  • Habilitar cotas no sistema de arquivos.
  •  Configurar as cotas com a ferramenta edquota.

Reforçando, para criar um sistema de arquivos com cotas você deve primeiro certificar-se de que você tenha montado o sistema de arquivos com as opções de cotas para usuários e/ou grupos. Sem isso nada mais funcionará.

Primeiro você precisa colocar a opção correta no /etc/fstab como em:

/dev/sda5 /home ext4 defaults,usrquota 1 1

no exemplo o /home é em uma partição separada.
Então teste com os comandos:

$ sudo mount -o remount /home

$ sudo quotacheck -vu /home

$ sudo quotaon -vu /home

$ sudo edquota someusername

Você também pode configurar quarentenas (grace period) com o edquota. As opções de montagem que devem ser usadas no /etc/fstab são usrquota para cotas de usuários e grpquota para cotas de grupos.


quotacheck

 A ferramenta quotacheck cria/atualiza os arquivos usados pelo quota (aquota.user e aquota.group).
Para atualizar estes arquivos em todos os sistemas que estão definidos no /etc/fstab com as opções de cotas para usuários:

$ sudo quotacheck -ua


Para atualizar estes arquivos em todos os sistemas que estão definidos no /etc/fstab com as opções de cotas para grupos:

$ sudo quotacheck -ga

Para atualizar o arquivo de usuário para um sistema de arquivos específico:

$ sudo quotacheck -u [somefilesystem]


Para atualizar o arquivo de grupo para um sistema de arquivos específico:

$ sudo quotacheck -g [somefilesystem]

Use a opção -v para ver mais detalhes.

O quotacheck geralmente só é executado quando as cotas são ligadas pela primeira vez (ou precisam ser atualizadas). O programa também pode ser executado quando o fsck detecta erros durante a inicialização do sistema.


quotaon

 O quotaon é usado para ligar o sistema de cotas; O quotaoff é usado para desligar. Exemplo de usos:

$ sudo quotaon  [opções] [sistema de arquivos]

$ sudo quotaoff [opções] [sistema de arquivos]


em que as opções podem ser:


-a, --all                               turn quotas off for all filesystems
-f, --off                               turn quotas off
-u, --user                              operate on user quotas
-g, --group                             operate on group quotas
-p, --print-state                       print whether quotas are on or off
-x, --xfs-command=cmd                   perform XFS quota command
-F, --format=formatname                 operate on specific quota format
-v, --verbose                           print more messages
-h, --help                              display this help text and exit
-V, --version                           display version information and exit



Mais exemplos:

$ sudo quotaon -av
/dev/sda6 [/]: group quotas turned on
/dev/sda5 [/home]: user quotas turned on


$ sudo quotaoff -av
/dev/sda6 [/]: group quotas turned off
/dev/sda5 [/home]: user quotas turned off



$ sudo quotaon -avu
/dev/sda5 [/home]: user quotas turned on


$ sudo quotaoff -avu
/dev/sda5 [/home]: user quotas turned off


$ sudo quotaon -avg
/dev/sda6 [/]: group quotas turned on


$ sudo quotaoff -avg
/dev/sda6 [/]: group quotas turned off


Dica: As operações de cota vão falhar se os arquivos aquota.user ou aquota.group não existirem.
A ferramenta quota é usada para criar cotas e para mostrar o estado atual das cotas:

    quota (ou quota -u) mostra o estado atual para seu usuário.

    quota -g mostra o estado atual para seus grupos.


    O root pode ver cotas de qualquer grupo ou usuário especificando o nome.

Por exemplo:

$ sudo quota
Disk quotas for user user1 (uid 500):
   Filesystem   blocks quota limit grace files quota limit grace
      /dev/sda5 837572   500  1000        5804     0     0


$ sudo quota bob
Disk quotas for user bob (uid 500):
  Filesystem     blocks quota limit grace files quota limit grace
    /dev/sda5     83757  5000 10000        5804     0     0


edquota

 Digitar edquota abre o editor de cota. Um arquivo texto temporário é criado contendo uma cópia das cotas de disco atuais para o usuário ou grupo especificado.
Em seguida, o editor é invocado para esse arquivo temporário e as cotas podem ser modificadas. Ao sair do editor de texto, o arquivo temporário é usado para atualizar a configuração de cota que é salva arquivos binários que são usados pelo sistema.

Os únicos campos que podem ser alterados são os limites soft e hard. Os demais campos são apenas informativos.


Exemplos de como usar o edquota:

  •     edquota  -u  [nome_usuario] edita os limites para nome_usuario
  •     edquota  -g  [nome_grupo] edita os limites para nome_grupo
  •     edquota  -u  -p  [nome_usuario_modelo]  [nome_usuario] copia os valores do nome_usuario_modelo para nome_usuario
  •     edquota  -g  -p  [nome_grupo_modelo]  [nome_usuario] copia os valores do nome_grupo_modelo para nome_grupo
  •     edquota  -t   para configurar grace periods(ou quarentenas)


O terceiro comando e o quarto comando são úteis para a inclusão em scripts utilizados para criar novas contas já com cotas estabelecidas.

Cotas para usuários e grupos podem ser configuradas para blocos de disco e/ou inodes. Adicionalmente, limites soft e hard podem ser configurados junto com um período de quarentena: 
  • Os limites soft podem ser ultrapassados pela duração da quarentena. 
  • Os limites hard nunca podem ser excedidos.


A duração da quarentena é definida por sistema de arquivos.

$ sudo edquota bob

$ sudo edquota -t




df

A ferramenta df (disk free ou disco livre) examina a capacidade e uso dos sistemas de arquivo. Por exemplo:


$ df -hT



Filesystem           Type      Size  Used Avail Use% Mounted on
/dev/sda5            ext4      9.8G  8.1G  1.3G  87% /
tmpfs                tmpfs     3.9G  2.3M  3.9G   1% /dev/shm
/dev/sda6            ext4      9.8G  5.0G  4.3G  54% /RHEL6-32
/dev/sda2            ext4      380M  3.2M  353M   1% /boot_master
/dev/mapper/VG-local ext4       24G   16G  7.2G  68% /usr/local
/dev/mapper/VG-src   ext4       16G  6.4G  8.6G  43% /usr/src
/dev/mapper/VG-pictures
                     ext4       12G  8.9G  2.3G  80% /PICTURES
/dev/mapper/VG-dead  ext4       59G   35G   22G  62% /DEAD
/dev/mapper/VG-virtual
                     ext4      222G  162G   49G  77% /VIRTUAL
/dev/mapper/VG-iso_images
                     ext4       59G   35G   21G  63% /ISO_IMAGES
/usr/src/KERNELS.sqfs
                     squashfs  3.8G  3.8G     0 100% /usr/src/KERNELS



em que a opção -h significa "legível, ou amigável para humanos" (i.e., in KB, MB, GB, não bytes) e -T mostra o tipo do sistema de arquivos. Usar a opção -i mostra informações sobre inodes ao invés de bytes.


du

du (disk usage, ou uso do disco) é usado para avaliar quanto espaço um diretório e subdiretórios estão consumindo.

Para exibir o uso do disco no diretório atual: 
$ du


Para listar todos os arquivos, e não apenas diretórios: 
$ du -a

Para exibir em unidades de tamanho amigáveis: 
$ du -h

Para mostrar o uso de um diretório: 
$ du -h somedir

Para mostrar apenas o total, sem os detalhes de subdiretórios individuais: 
$ du -s



Por exemplo:

$ du -ch /teaching/CRASH

16K      /teaching/CRASH/crash-7.0.3/memory_driver
136K     /teaching/CRASH/crash-7.0.3/extensions
35M      /teaching/CRASH/crash-7.0.3
101M     /teaching/CRASH
101M     total





Mais vistos no mês:

As melhores distribuições Linux para 2017

TuxMath - Tux, do Comando da Matemática. Ensino e diversão a crianças.

Teste de Performance de Rede com Iperf

DHCP - Guia Completo

OPNsense - Firewall Open Source

Aula #14 - Os sistemas de arquivos ext2/ext3/ext4

Ophcrack: Descubra todas as senhas do Windows

SSD no linux

Oracle Linux 7.0 Server com Xfce - Instalação e configurações iniciais