Por que tenho tantos discos RAM?

15

Eu tenho o Arch Linux em execução no meu Raspberry Pi 2.

Logo após instalar, eu corri lsblk, fdiske dfcomandos (infelizmente eu não salvar a saída), mas eu tinha um disco, que é o cartão SD e duas partições nele. Depois, atualizei o sistema pacman -Syu, instalei sudoe configurei ssh. Agora, quando executo fdisk, mostra que tenho 16 discos RAM na memória com parâmetros:

Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors 

Units: sectors of 1 * 512 = 512 bytes 

Sector size (logical/physical): 512 bytes / 4096 bytes 

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

e todos os tipos de sistemas de arquivos montados em vários pontos de montagem (enquanto eu criei apenas /dev/roote /dev/boot):

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       1.8G  1.1G  557M  67% /
devtmpfs        458M     0  458M   0% /dev
tmpfs           462M     0  462M   0% /dev/shm
tmpfs           462M  328K  462M   1% /run
tmpfs           462M     0  462M   0% /sys/fs/cgroup
tmpfs           462M     0  462M   0% /tmp
/dev/mmcblk0p1  100M   18M   83M  18% /boot
tmpfs            93M     0   93M   0% /run/user/1000

Então, minha pergunta é: o que são todos esses discos RAM e por que eles estão no meu sistema, já que eu definitivamente não os criei e quais são esses sistemas de arquivos montados?

Editar :

cat /proc/partitions resultado:

major minor  #blocks  name

   1        0       4096 ram0
   1        1       4096 ram1
   1        2       4096 ram2
   1        3       4096 ram3
   1        4       4096 ram4
   1        5       4096 ram5
   1        6       4096 ram6
   1        7       4096 ram7
   1        8       4096 ram8
   1        9       4096 ram9
   1       10       4096 ram10
   1       11       4096 ram11
   1       12       4096 ram12
   1       13       4096 ram13
   1       14       4096 ram14
   1       15       4096 ram15
 179        0   31472640 mmcblk0
 179        1     102400 mmcblk0p1
 179        2    1853439 mmcblk0p2
RusI
fonte
11
Encontrei esta questão relacionada . Essa pergunta também não tem grandes respostas, mas um comentário sugere que isso /proc/partitionspode ser relevante. Você deve incluir a saída de cat /proc/partitionsna sua pergunta.
kasperd
Você não encontrará necessariamente respostas em um site específico do Raspberry Pi para perguntas gerais sobre o Linux. Um rápido Google encontra respostas.
joana
11
@joan Oh, eu pesquisei bastante no Google, mas não consegui encontrar uma resposta clara e concisa, apenas alguns pedaços.
Rusi
1. Esses discos de RAM precisam ser ativados antes de compilar o kernel. 2. Na verdade, eles não devem usar nenhuma RAM antes de montar um FS neles.
flakeshake
O motivo da alocação desses discos RAM permanece um mistério, então ... parece que o motivo deveria ser: 1) salvar gravações no cartão SD e / ou 2) melhorar o desempenho reduzindo a latência de E / S do disco. ninguém (credível) registrou tal declaração.
Seamus

Respostas:

4

Em primeiro lugar, os discos RAM não são a mesma coisa que tmpfs .

Existem muitos diretórios em sua unidade raiz que são usados ​​para armazenar arquivos temporários. Essas pastas tendem a ter muitas leituras e gravações à medida que os aplicativos criam, modificam e excluem os arquivos durante o curso de sua execução.

Em um disco rígido mecânico em que o número de ciclos de leitura / gravação não importa, isso é perfeitamente aceitável. No entanto, no Raspberry Pi, onde o back-end de armazenamento principal é um cartão SD, em que há um número limitado de ciclos de leitura / gravação, ter tantas E / S acontecendo pode desgastar prematuramente o cartão.

Como não precisamos persistir os arquivos nesses diretórios temporários durante uma reinicialização, muitas distribuições tentam reduzir o desgaste do dispositivo de armazenamento armazenando os arquivos temporários de alto tráfego na RAM. O Tmpfs é usado, pois é um sistema de arquivos que usa a RAM como back-end de armazenamento. É por isso que você vê tantos diretórios montados como tmpfs.

Os discos de RAM não têm nenhuma relação com isso. Eles são dispositivos de bloco suportados pela RAM, enquanto o tmpfs é um sistema de arquivos suportado pela RAM. Os discos RAM são dispositivos de bloco bruto semelhantes a /dev/sdaetc ... Você pode criar um sistema de arquivos em cima de um disco RAM executando mkfs /dev/ramda mesma maneira que faria em um dispositivo de bloco de disco rígido normal.

Acredito que o número de discos RAM disponíveis para uso seja controlado por uma opção de configuração do kernel . Tenha certeza de que eles não ocupam espaço até você usá-los / gravá-los.

tangrs
fonte
7

Isso não é nada incomum.

Os discos RAM são comumente usados ​​para sistemas de arquivos temporários.

Meu laptop Debian

Filesystem      Size  Used Avail Use% Mounted on
udev            1.5G     0  1.5G   0% /dev
tmpfs           301M   32M  269M  11% /run
/dev/sda2        47G   31G   14G  71% /
tmpfs           1.5G  1.7M  1.5G   1% /dev/shm
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
tmpfs           1.5G     0  1.5G   0% /sys/fs/cgroup
tmpfs           1.5G   69M  1.5G   5% /tmp
/dev/sda4       386G  344G   23G  94% /home
tmpfs           301M   12K  301M   1% /run/user/114
tmpfs           301M   76K  301M   1% /run/user/1000

My Raspbian Pi Zero

Filesystem                     Size  Used Avail Use% Mounted on
/dev/root                      7.2G  3.8G  3.1G  56% /
devtmpfs                       214M     0  214M   0% /dev
tmpfs                          218M     0  218M   0% /dev/shm
tmpfs                          218M   17M  202M   8% /run
tmpfs                          5.0M  4.0K  5.0M   1% /run/lock
tmpfs                          218M     0  218M   0% /sys/fs/cgroup
/dev/mmcblk0p1                  56M   20M   37M  36% /boot
tmpfs                          100M  4.0K  100M   1% /ram
tmpfs                           44M     0   44M   0% /run/user/109
mercury.lan:/home/common/code  386G  344G   23G  94% /code
tmpfs                           44M     0   44M   0% /run/user/1000
joan
fonte
3
Você não está respondendo a pergunta. A questão é por que /dev/ram15(e provavelmente também entre 0 e 14) aparece na saída do fdisk. Sua resposta é apenas mencionar o tmpfsque não tem relação alguma /dev/ram*.
kasperd
11
Não duvido de suas declarações, mas estou realmente interessado em saber por que essas mudanças ocorreram no meu sistema. Enquanto estou estudando Linux, escolhi especificamente o Arch como sendo "hardcore", por assim dizer, onde é preciso dizer explicitamente ao sistema operacional o que você quer que ele faça, e agora tenho o sistema criando discos e sistemas de arquivos e montando-os por todo o lado por conta própria - então quem está no controle aqui?
Rusi
2

Resposta curta : é apenas uma fdisk peculiaridade nas versões mais recentes. Alternativamente, você também pode usar partede lsblk.

Extraído deste tópico no AskUbuntu:

Nas versões posteriores da fdiskseleção do que o programa considera como dispositivo de bloco mudou substancialmente. No util-linuxpacote do qual o fdisk (entre outros) faz parte, versão 2.21, essa decisão é baseada na geometria do disco relatada, enquanto na versão atual (como em maio de 2017) 2.72.1 (a versão atual 2.72.1) a saída de / proc / partitions é analisada

E:

Os discos ram estão no kernel há muito tempo, é o comportamento do fdisk que mudou.

Mais detalhes e várias soluções alternativas (se esses discos ram na tela o incomodarem) no thread mencionado acima.

Sopalajo de Arrierez
fonte
"Mais detalhes e várias soluções alternativas" ??? Onde ???
ZEE
@ Zee, veja o tópico referido no AskUbuntu. Eles até listam alguns patches para a fonte original do fdisk.
Sopalajo de Arrierez 03/04/19