¿Cómo configuro un dispositivo de almacenamiento que solo está "encendido" cuando se usa?

10

Uso mi Pi como servidor doméstico (sin cabeza a través de ssh, siempre encendido, reiniciado una vez por semana). Se está ejecutando raspbian, y estoy ejecutando Ubuntu en mi escritorio. Ahora, quiero agregar discos duros para copias de seguridad y NAS a la Pi. Por el momento utilizo un disco duro externo USB, pero más tarde podría querer utilizar un sistema RAID (en caso de que falle una unidad). También uso autofs con --ghost para desmontar el disco cuando no se usa por algún tiempo.

La idea / esperanza detrás de esto era que el disco duro entraría en algún tipo de modo de espera / spindown cuando se desmontara mediante autofs, pero este no es el caso. Parece girar tan rápido como siempre, y también se calienta tanto como cuando está montado.

Entonces, lo que quiero es almacenamiento masivo que vaya al modo de reposo / espera más profundo disponible, para que no se caliente demasiado, ahorre energía y solo se despierte cuando sea necesario (es decir, cuando esté montado). ¿Alguien sabe cómo puedo lograr esto? Gracias.

EDITAR: intenté lo siguiente:

$ sudo hdparm -Y /dev/sda

/dev/sda:
 issuing sleep command
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

y

$ sudo hdparm -y /dev/sda

/dev/sda:
 issuing standby command
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

y

sudo sdparm --flexible --command=stop /dev/sda

esto parece ser casi la solución, la unidad gira hacia abajo, pero se vuelve a acelerar después de un segundo más o menos.

EDIT2: Esto parece prometedor:

Alguien me dijo que debería usar expulsar, y funcionó. Sin embargo, no está instalado por defecto. Entonces hice lo siguiente:

sudo apt-get install eject
sudo eject /dev/sda

Y el disco giró por completo. Autofs todavía pudo despertarlo. Como uso autofs para decidir cuándo se desmonta la unidad (y para montarla automáticamente cuando sea necesario), tengo que ejecutar este comando cuando autofs desmonta la unidad. Sin embargo, no encontré una solución para hacer esto. ¿Tienes alguna sugerencia?

verpfeilt
fuente
En mi caso, el HDD gira después de 10 minutos inactivo, cuando el servidor se está ejecutando (odroid), pero cuando está desconectado o el servidor no se ejecuta, entonces gira indefinidamente. ¿Qué sucede con su HDD externo cuando apaga el rpi?
inf3rno
el mío no se detiene ni siquiera con "expulsar". El único que funciona si hd-idle pero se detiene solo durante 1 minuto, luego vuelve a encenderse.
Danny182

Respuestas:

4
sudo hdparm -y /dev/sda

(suponiendo que solo tenga un disco USB conectado) puede poner su dispositivo en suspensión. Si hace esto después de desmontar el dispositivo, debería permanecer en este modo de ahorro de energía hasta que intente montarlo nuevamente.

También puede probar la -Yopción para el modo de suspensión en lugar de esperar.

También puedes probar:

hdparm -k1 -K1 -S2 /dev/sda

que debería girar su unidad después de 10 segundos de inactividad (puede cambiar -SXXa otros valores (1-240 se pueden usar para especificar múltiplos de 5 segundos, 0 vueltas apagado el tiempo de inactividad, 241-255 se pueden usar para especificar períodos más largos).

Otra opción que puedes probar es usar:

sdparm --flexible --command=stop /dev/sda

Nota: Parece que los comandos admitidos dependen tanto del HDD como del HDD-> convertidor USB utilizado.

Krzysztof Adamski
fuente
Tengo la impresión de que hdparm no necesariamente funciona en discos conectados por USB. Esto puede depender del controlador USB a SATA (o IDE) en uso. Pero en discos IDE o SATA conectados directamente, estoy seguro de que hdparm es la forma correcta.
Frepa
@Frepa: Sé que al menos algunas personas informaron que funciona para ellos, por lo que puede depender del controlador en particular.
Krzysztof Adamski
Bien, es bueno saberlo. No pude hacerlo funcionar, no sé exactamente por qué.
Frepa
Perdón por responder tan tarde, no pude encontrar el tiempo para intentar esto. Lo probé ahora, pero no me funciona. Editaré los mensajes de error del terminal en mi pregunta.
verpfeilt
@chocobai: he actualizado mi respuesta. Puede ayudar a su caso.
Krzysztof Adamski
1

La administración avanzada de energía (APM) de un disco duro que está conectado a través de un puente USB a SATA se puede configurar mediante comando

sudo smartctl -s apm,127 /dev/sdx

El valor 127 significa "nivel intermedio (APM) con espera ". Usando este nivel, el disco duro gira después de varios segundos de inactividad y comienza de nuevo bajo demanda.

Probado en BeagleBone, Ubuntu 13.10.

Leo
fuente
Para instalarlo smartctlnecesitas ejecutarsudo apt-get install smartmontools
Hengjie
0

Los puertos USB son soluciones generales solamente ... para todo, pero no especializados en discos duros, estos puertos USB-2 lentos tienen acceso compartido con el adaptador Ethernet. Esto significa que serás lento como el infierno con muchos discos conectados a ellos.

Puede usar una placa controladora adicional para su solución de proyecto. Busque "pidrive de frambuesa" y obtenga una placa controladora X8XX para conectar.

También puede consultar https://www.smartmontools.org/wiki/USB que describe lo que es posible con una interfaz USB "humpty-dumpty" y qué control tiene con SATA ...

Y el tuyo
fuente