Sistemas de arquivos - Conceitos básicos

Este artigo explica os seguintes conceitos básicos: sistemas de arquivos, área de troca (SWAP), diretório temporário (/tmp), sistemas de arquivos virtuais (/proc, /sys, /dev) e os sistemas de arquivos temporários em RAM (/run). Baseado na estrutura do Debian Jessie (Sid).

[ Hits: 37.871 ]

Por: Perfil removido em 19/05/2014


Sistemas de arquivos temporários em memória RAM



Os sistemas que utilizam a funcionalidade de initrd, montam uma "raiz falsa" antes de montar a raiz verdadeira. Essa raiz falsa (ou temporária), é utilizada para montar os sistemas de arquivos virtuais (/pro, /sys e /dev) que permitem configurar todo o hardware durante o processo de boot.

Quando a etapa de boot chamada de initrd termina, começa a fase de inicialização de processos "levantados" a partir do processo init. O processo init é o pai de todos os processos no espaço usuário e, por isso, SEMPRE terá o PID número 1. Processos criados antes de init, não tem PID e são considerados espontâneos.

Todos os processos precisam de um local para armazenar seus números de PID e seus sockets de comunicação. Esses arquivos precisam ficar em um sistema em RAM, pois caso o sistema congele, eles irão automaticamente desaparecer.

Isso elimina a possibilidade de que, quando o sistema retorne os PIDS e sockets abertos, impeçam os serviços de serem reiniciados e necessitem de uma intervenção manual. Essa é a função do sistema de arquivos temporário em RAM.

Observe que em sistemas Debian Jessie (versão 7), os sistemas de arquivos temporários não estão listados no /etc/fstab. A razão para isso, é que TODOS são montados durante a fase initrd do processo de boot, antes da leitura de /etc/fstab que monta a raiz verdadeira.

Esses sistemas são remontados sobre a raiz verdadeira para simular que fazem parte da raiz. Se você criar entradas para esses sistemas em /etc/fstab, elas irão sobrepor os sistemas iniciais /run, /run/lock e /run/shm.

Outra função desse sistema, segundo [2], é manter o diretório em /run/shm. Essa é uma funcionalidade associada com os sistemas do tipo POSIX, que utilizam objetos compartilhados em memória (Shared Memory Object). Assim, um processo pode utilizar essa área para armazenar dados que são compartilhados com outros processos (permissões de segurança são concedidas para ajustar esse compartilhamento) e isso é feito na RAM, para obter um expressivo ganho de desempenho.

Os diretórios /run, /run/lock e /run/shm são sistemas de arquivos temporários em RAM e nenhum deles precisará de ajustes, a menos que seu servidor seja para uso em produção e com grande movimento em serviços, como Samba e Apache.

Se você gosta de controlar parâmetros e ajustes manualmente, pode fazer isso no Debian editando o arquivo em /etc/default/tmpfs e fazer os seguintes ajustes:

# /etc/default/tmpfs ajustado manualmente para um sistema Debian Jessie/Sid
#
# Ativa a montagem de /run/lock como um sistema tmpfs, separado de /run. O padrão é yes. Se desativado /run/lock será parte
# de /run como um tmpfs se esse existir.

RAMLOCK=yes
# Ativa a montagem de /run/shm como um sistema tmpfs, separado de /run. O padrão é yes. Se desativado /run/shm será parte
# de /run como um tmpfs se esse existir.

RAMSHM=yes
# Garanta que /tmp é uma partição e será montada em disco.
RAMTMP=no
# Lembre que 1 MiB (1 mebibyte) é formado por 1024 bytes vezes 1024 que dá = 1048576 bytes ou 2 ^ 20 bytes.
# Defina os tamanhos de cada filesystem em MiB de acordo com seu gosto suas necessidades e o tamanho de sua RAM.
# Utilize somente se não definir os valores manualmente.
#TMPFS_SIZE=20%VM
# Definição manual de cada tmpfs

RUN_SIZE=5242880    # 5Mib
LOCK_SIZE=5242880    # 5MiB
SHM_SIZE=52428800    # 50MiB
#TMP_SIZE=
#TMP_OVERFLOW_LIMIT=1024

Garanta que os seguintes ajustes estejam feitos em /etc/default/rcS:

# /etc/default/rcS
# Default settings for the scripts in /etc/rcS.d/
# For information about these variables see the rcS(5) manual page.
# This file belongs to the "initscripts" package.
# delete files in /tmp during boot older than x days.
# '0' means always, -1 or 'infinite' disables the feature

TMPTIME=0
# spawn sulogin during boot, continue normal boot if not used in 30 seconds
SULOGIN=no
# do not allow users to log in until the boot has completed
DELAYLOGIN=yes
# be more verbose during the boot process
VERBOSE=yes
# automatically repair filesystems with inconsistencies during boot
FSCKFIX=no

Referências


Manuais man dos seguintes assuntos:
  • tmpfs
  • rcs
  • filesystem
  • fstab
  • mount
  • proc
  • sysfs
  • mkswap

Página anterior    

Páginas do artigo
   1. Sistema de arquivos
   2. Área de troca ou SWAP
   3. O diretório temporário ou /tmp
   4. Sistemas de arquivos virtuais
   5. Sistemas de arquivos temporários em memória RAM
Outros artigos deste autor

Lucaschess: software para base de dados, jogar e treinar xadrez

Usando tabelas no editor de textos do OpenOffice

Como garantir compatibilidade entre Kylix e Delphi

Jogos via Internet em 2 minutos com Hamachi

Algumas Distribuições GNU/Linux Excêntricas!

Leitura recomendada

File Globbing ou Englobamento - Introdução

SSHFS no CentOS, Slackware e Windows - Simples e rápido

Tunando sistemas de arquivos para GNU/Linux

Configuração de Servidor NFSv4 no CentOS 6

Sistema de arquivos distribuídos usando Gmail

  
Comentários
[1] Comentário enviado por JFurio em 19/05/2014 - 09:05h

Parabéns pelo artigo, ficou muito bom, esclareceu muito com relação ao SWAP!

[2] Comentário enviado por jwolff em 19/05/2014 - 17:17h

Favoritado!

[3] Comentário enviado por removido em 19/05/2014 - 17:26h

Sempre aprendo muito com esse cara!

Houve um tempo que tinha desistido da SWAP.

Nessa nova instalação fiz tudo certo, agora tenho tenho área de troca do tamanho de minha RAM, para todo e qualquer sistema que precisar.


Ótimo e muito útil esse artigo!

[4] Comentário enviado por mcnd2 em 20/05/2014 - 19:42h

10!...

Sempre é bom aprender de como o sistema realmente funciona com seus arquivos de configurações.

Favoritado.

[5] Comentário enviado por albfneto em 21/05/2014 - 07:18h

Muito bom esse Artigo.
Artigos de Teoria Linux, são sempre interessantes e benvindos.
Favoritado e 10.

[6] Comentário enviado por removido em 28/08/2014 - 11:32h

Cara, desculpa o nível da pergunta hahaha mas quando você diz "sistema de produção" a qual tipo de sistema, exatamente, você está se referindo?

No mais parabéns pelo artigo! MUITO esclarecedor (:

[7] Comentário enviado por alysonpires em 31/08/2014 - 19:35h

Cara, o material é tão bom que não dá pra considerar como "conceitos BÁSICOS". Isso é mais que básico! Material muito bom! Parabéns :D

[8] Comentário enviado por darkoverde em 21/11/2014 - 12:00h

Excelente artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts