¿Por qué tengo tantos discos RAM?

15

Tengo Arch Linux ejecutándose en mi Raspberry Pi 2.

Justo después de instalar, me encontré lsblk, fdisky dflos comandos (por desgracia yo no guardar la salida) pero tenía un disco, que es la tarjeta SD y dos particiones en ella. Luego, actualicé el sistema con pacman -Syu, instalado sudoy configurado ssh. Ahora, cuando lo ejecuto fdisk, muestra que tengo 16 discos RAM en la memoria con 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

y todo tipo de sistemas de archivos montados en varios puntos de montaje (mientras que yo personalmente solo creé /dev/rooty /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

Entonces mi pregunta es: ¿Qué son todos estos discos RAM y por qué están en mi sistema, ya que definitivamente no los creé y qué están montados esos sistemas de archivos?

Editar :

cat /proc/partitions salida:

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
fuente
1
Encontré esta pregunta relacionada . Esa pregunta tampoco tiene grandes respuestas, pero un comentario sugiere que /proc/partitionspuede ser relevante. Debe incluir el resultado de cat /proc/partitionsen su pregunta.
Kasperd
No necesariamente encontrará respuestas en un sitio específico de Raspberry Pi a preguntas generales de Linux. Un rápido Google encuentra respuestas.
joan
1
@joan Oh, busqué en Google extensamente, pero no pude encontrar una respuesta clara y concisa, solo fragmentos.
RusI
1. Esos discos RAM deben estar habilitados antes de compilar el núcleo. 2. No deberían usar RAM en realidad antes de montar un FS en ellos.
Flakeshake
La razón para asignar estos discos RAM sigue siendo un misterio entonces ... parecería que la razón tendría que ser: 1) guardar escrituras en la tarjeta SD, y / o 2) mejorar el rendimiento al reducir la latencia de E / S del disco. nadie (creíble) se ha registrado con tal declaración.
Seamus

Respuestas:

4

En primer lugar, los discos RAM no son lo mismo que tmpfs .

Hay muchos directorios en su unidad raíz que se utilizan para almacenar archivos temporales. Estas carpetas tienden a tener mucha lectura y escritura mientras las aplicaciones crean, modifican y luego eliminan los archivos durante el curso de su ejecución.

En un disco duro mecánico donde el número de ciclos de lectura / escritura no importa, esto está perfectamente bien. Sin embargo, en Raspberry Pi, donde el back-end de almacenamiento principal es una tarjeta SD donde hay un número limitado de ciclos de lectura / escritura, tener tantas E / S en marcha puede desgastar prematuramente la tarjeta.

Dado que no necesitamos conservar los archivos en esos directorios temporales durante un reinicio, muchas distribuciones intentan reducir el desgaste del dispositivo de almacenamiento almacenando los archivos temporales de alto tráfico en la RAM. Tmpfs se usa ya que es un sistema de archivos que usa RAM como back-end de almacenamiento. Es por eso que ve tantos directorios montados como tmpfs.

Los discos RAM no tienen ninguna relación con esto. Son dispositivos de bloque respaldados por RAM, mientras que tmpfs es un sistema de archivos respaldado por RAM. Los discos RAM son dispositivos de bloques sin formato similares a /dev/sdaetc ... Puede hacer un sistema de archivos encima de un disco RAM ejecutándose mkfs /dev/ramtal como lo haría en un dispositivo de bloque de disco duro normal.

Creo que el número de discos RAM que están disponibles para usar está controlado por una opción de configuración del kernel . Tenga la seguridad de que en realidad no ocupan espacio hasta que los use / escriba.

tangas
fuente
7

Eso no es nada inusual.

Los discos RAM se usan comúnmente para sistemas de archivos temporales.

Mi portátil 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

Mi raspbian pi cero

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
fuente
3
No estás respondiendo la pregunta. La pregunta es por qué /dev/ram15(y presumiblemente también 0-14) aparecen en la salida de fdisk. Su respuesta solo menciona a lo tmpfsque no tiene ninguna relación /dev/ram*.
kasperd
1
No dudo de sus declaraciones, pero estoy realmente interesado en por qué estos cambios tuvieron lugar en mi sistema. Mientras estoy estudiando Linux y elegí específicamente Arch como "duro", por así decirlo, tienes que decirle explícitamente al sistema operativo qué quieres que haga, y ahora tengo un sistema creando discos y sistemas de archivos y montándolos en todo el lugar por sí solo, entonces, ¿quién tiene el control aquí?
RusI
2

Respuesta corta : es solo una fdisk peculiaridad en las últimas versiones. Alternativamente, también puede usar partedy lsblk.

Extraído de este hilo en AskUbuntu:

En versiones posteriores de fdiskla selección de lo que el programa considera como dispositivo de bloque cambió sustancialmente. En el util-linuxpaquete, que fdisk (entre otros) es parte de, versión 2.21 esta decisión se basa en los informes sobre la geometría del disco , mientras que en el (como en mayo de 2017) versión actual 2.72.1 la salida de / proc / particiones se analiza

Y:

Los discos ram han estado en el kernel durante mucho tiempo, lo que cambió fue el comportamiento de fdisk.

Más detalles y varias soluciones (si esos discos RAM en la pantalla le molestan) en el hilo mencionado anteriormente.

Sopalajo de Arrierez
fuente
"¿Más detalles y varias soluciones"? dónde ???
ZEE
@Zee, mira el hilo referido en AskUbuntu. Incluso enumeran algunos parches para la fuente original de fdisk.
Sopalajo de Arrierez