Qual sistema de arquivos é swap no Linux

14

No Linux, você pode escolher coisas como ext3 e reiserfs para partições. Para a partição swap, basta escolher "swap". Que sistema de arquivos é esse, na verdade? Você pode apenas criar uma partição ext3 e torná-la uma partição swap? Como isso seria diferente?

tony_sid
fonte
O sistema de arquivos Swap no Linux parece ser chamado de sistema de arquivos Swap do Linux. Se eu conseguir encontrar alguma informação real sobre isso, postarei uma resposta. Até agora, li em en.wikipedia.org/wiki/Paging que o kernel ignora o sistema de arquivos em arquivos de troca. O mesmo pode ser verdade com partições de troca.
precisa saber é o seguinte
1
As pessoas incríveis nos fóruns do Gentoo me forneceram este link! Tudo parece estar bem explicado. Ah, e obrigado a John R. Graham.
precisa saber é o seguinte

Respostas:

26

Trocar não é um sistema de arquivos real. É apenas uma parte reservada do disco que é memória endereçável não processada, sem estrutura especial.

O mkswap cria um cabeçalho para a área de troca com algumas informações adicionais. No swapheader.h do pacote util-linux-ng:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

A versão 1 do cabeçalho é a usada atualmente. Isso é sobre toda a mágica por trás da estrutura bruta da troca.

matthias krull
fonte
Não precisa haver algum tipo de sistema de arquivos para ler e gravar algo significativo em uma partição?
precisa saber é o seguinte
5
Não. Você apenas precisa endereçar pedaços de memória. Isso é exatamente o que as páginas são. Isso ocorre porque você não armazena os dados com uma estrutura complexa ou informações adicionais, como em sistemas de arquivos reais, em que permissões e datas são armazenadas juntamente com os dados.
Matthias Krull
6
Você ainda pode endereçar blocos se não tiver um sistema de arquivos.
Matthias Krull
8

Eu acho que a partição swap não precisa de um sistema de arquivos porque não há arquivos e diretórios nela. A partição de troca é o local da RAM virtual.

Matteo De Felice
fonte
2
não é exatamente o local virtual da ram. é (como ram) a memória que pode ser mapeada para a memória virtual de um processo.
Matthias krull
4

O Linux possui duas formas de espaço de troca: a partição de troca e o arquivo de troca. A partição de troca é uma seção independente do disco rígido usada apenas para troca; nenhum outro arquivo pode residir lá. O arquivo de troca é um arquivo especial no sistema de arquivos que reside entre o sistema e os arquivos de dados.

A troca é necessária por duas razões importantes. Primeiro, quando o sistema requer mais memória do que a disponível fisicamente, o kernel troca as páginas menos usadas e fornece memória ao aplicativo (processo) atual que precisa da memória imediatamente. Segundo, um número significativo de páginas usadas por um aplicativo durante sua fase de inicialização só pode ser usado para inicialização e nunca mais ser usado. O sistema pode trocar essas páginas e liberar memória para outros aplicativos ou mesmo para o cache do disco.

Am1rr3zA
fonte
2
A resposta é muito boa e explica o núcleo do problema, mas é uma resposta à pergunta "O que é swap no GNU / Linux?" Então, o que está fazendo aqui? Além disso, link relacionado linux.com/news/software/applications/…
AndrejaKo
Eu sei o que é troca.
precisa saber é o seguinte
... não sabia sobre a opção de troca de arquivo
MrCalvin 30/04
-1

Há duas maneiras de criar espaço de troca: troca do sistema de arquivos e troca do dispositivo (ou bruto). Com a troca do sistema de arquivos, você está criando um arquivo em um sistema de arquivos e usando-o como espaço de troca (como você vê nas janelas com pagefile.sys). Com a troca de dispositivos, você está trocando para uma partição criada especificamente para troca.

Qual é melhor:

Esse debate costumava ser muito mais interessante nos "velhos" dias porque:

Por que a troca de dispositivos é "melhor": como você está trocando para uma partição bruta, é mais rápido porque você não precisa lidar com toda a sobrecarga extra de um sistema de arquivos com inodes e outras sobrecargas do sistema de arquivos

Hoje, porém, esse argumento não se sustenta. Com a evolução de quão rápido é o acesso ao disco atualmente, a troca de dispositivos não ganha muito mais tempo que a troca do sistema de arquivos.

Por que a troca do sistema de arquivos é "melhor": Muito mais fácil alterar os tamanhos. Quando você altera os tamanhos das partições, é muito mais difícil do que apenas criar novos arquivos.

Hoje, porém, com muitas pessoas usando LVM em vez de partições brutas, é fácil diminuir e aumentar seu espaço de troca

HOJE, é ainda mais discutível: a maioria dos servidores hoje em dia, por razões de desempenho, vale o custo apenas para conectá-lo à memória. (Esse debate costumava ser muito mais popular quando era mais difícil encontrar RAM e era comum colocar apenas de 4 a 8 GB de RAM em um servidor)

POR QUE UTILIZAR FILTRO DO SISTEMA DE ARQUIVO (e trocar em geral)

Hoje em dia eu instruo nosso pessoal a instalar com o 4gig swap onl e usamos a mesma configuração / imagem para todas as nossas instalações Linux. A instalação do Oracle requer um uso de troca mais alto; portanto, para sistemas que terão o Oracle, criarei o restante com a troca do sistema de arquivos. É possível que seu aplicativo tenha um requisito de troca; nesse caso, você poderá adicioná-lo posteriormente com a troca do sistema de arquivos.

Isso ajuda?

Eu tenho instruções detalhadas de como fazer isso no linux aqui: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/

ben
fonte
1
Hoje, porém, esse argumento não se sustenta. Com a evolução de quão rápido o acesso ao disco é hoje em dia, a troca de dispositivos não lhe poupa muito mais tempo do que a troca do sistema de arquivos. ”- esse não é o motivo. A idéia aqui é que o espaço de troca possa estar em demanda imediata . Passar por um sistema de arquivos envolve diretórios, blocos, inodes, cache de buffer etc., que são caminhos de código que podem precisar de mais memória, levando a um loop. É por isso que a melhor troca é feita em um dispositivo de bloco bruto. Também evita a fragmentação do arquivo de troca.
mirabilos