Versión corta primero : estoy buscando un software compatible con Linux que sea capaz de almacenar en caché de forma transparente las escrituras de HDD usando un SSD. Sin embargo, solo quiero girar el HDD una o dos veces al día (para escribir los datos en caché en el HDD). El resto del tiempo, el HDD no debería girar debido a problemas de ruido.
Ahora la versión más larga : he construido una computadora completamente silenciosa que ejecuta Xubuntu. Tiene una APU A10-6700T, un enorme refrigerador sin ventilador, una fuente de alimentación sin ventilador, SSD. El problema es: también tiene (y necesita) un HDD ruidoso y quiero prohibir girarlo durante la noche. Todas las escrituras deben almacenarse en caché en el SSD, las lecturas no son necesarias en la noche.
A lo largo de todos los días, esta computadora descargará automáticamente unos 5 GB de datos que se conservarán durante aproximadamente un año, dando una capacidad total de disco necesaria de poco menos de 2 TB. Estos datos se almacenan actualmente en una unidad de disco duro ruidosa de 3 TB que gira día y noche. A veces, necesito acceder a algunos datos de hace varios meses. Sin embargo, la mayoría de las veces solo necesitaré datos de los últimos 14 días, que se ajustarían en el SSD. Idealmente, me gustaría una solución transparente (todos los datos en un sistema de archivos) que almacena en caché todas las escrituras en el SSD, escribiendo en el HDD solo una vez al día. Las lecturas serían atendidas por el caché si todavía estuvieran en el SSD, de lo contrario, el HDD tendría que girar.
He intentado bcache sin mucho éxito (usando cache_mode = writeback, writeback_running = 0, writeback_delay = 86400, sequential_cutoff = 0, congested_write_threshold_us = 0 - ¿falta algo?) Y leí sobre ZFS ZIL / L2ARC pero no estoy seguro de poder lograrlo Mi objetivo con ZFS. Cualquier puntero?
Si todo lo demás falla, simplemente usaré algunos scripts para copiar automáticamente los archivos en la unidad grande mientras elimino los archivos más antiguos del SSD.
Editar : Caché realmente es el término incorrecto para lo que quería. Parece que la solución original prevista no es posible para mí en este momento. ¡Gracias a todos los que contribuyeron!
Respuestas:
Eso no es realmente cómo o por qué funciona el almacenamiento en caché: el almacenamiento en caché está destinado a aprovechar la velocidad más rápida y un mejor acceso aleatorio del SSD u otra memoria, en lugar de minimizar las escrituras en el disco duro. El almacenamiento en caché está diseñado para maximizar la velocidad, no reducir la escritura, al tener un búfer más pequeño y más rápido que respalda un dispositivo de almacenamiento grande y lento.
De hecho, bcache, que es parte del núcleo principal de Linux, simplemente pasará escrituras secuenciales al disco duro, en lugar de pasarlo a través del SSD ya que no hay una ventaja de rendimiento.
ZIL / L2Arc usa el SSD para almacenar registros (en el caso de ZIL) y grupos de archivos de uso común (con L2Arc). ZIL acelera las escrituras sincrónicas almacenándolas hasta que estén listas para ser escritas. L2Arc almacena archivos de acceso común en un almacenamiento más rápido. Ninguno de estos le permitirá hacer lo que necesita.
La unidad Fusion también usa una SSD y una HDD que coloca de manera transparente los archivos de uso común en la SSD para lecturas más rápidas, y las HDD para el almacenamiento masivo de archivos de uso menos frecuente. Tampoco le permite usar el SSD como espacio de memoria virtual y hacer copias de seguridad de los archivos en la unidad principal de vez en cuando
Lo que estás viendo no es el almacenamiento en caché, sino más bien copias de seguridad periódicas del sistema en el HDD. Supongo que podría ser capaz de falsificar algo junto con Aufs: la primera rama en el HDD con archivos más grandes (por lo que es necesario), y una rama en el SSD, luego ejecute un script que mueva los archivos del SSD al HDD periódicamente, mientras se puede acceder desde la misma ubicación. Todavía no lo he probado, pero a diferencia del almacenamiento en caché, mover archivos periódicamente y usar aufs probablemente sea exactamente lo que desea.
La forma más sencilla de ordenar los archivos por antigüedad es ls -tr - t ordena por tiempo (de más reciente a más antiguo) y r invierte el orden. (Si tiene un rango específico en mente,
find . -mtime n
funciona muy bien n ya que un número específico le da archivos modificados hace n días, -n le da archivos modificados en los últimos n días y + n le da archivos modificados hace n días). Puedes encontrar algunas ideas sobre cómo usarlo aquíDado que la tranquilidad es su objetivo real, puede verificar si su unidad admite el modo silencioso
hdparm -M /dev/sda
; esto debería generar algo asíacoustic = 254 (128=quiet ... 254=fast)
, en cuyo caso puede hacer que su disco duro sea más silencioso con el comandohdparm -M 128 /dev/sda
. Ejecute el comando opuestohdparm -M 1254 /dev/sda
cuando necesite más velocidad.fuente
Como las otras respuestas han tratado el problema desde el punto de vista del software, pensé en incluir información sobre soluciones de hardware.
El artículo Sound Proof your Hard Drive enumera las siguientes opciones:
Puedo testificar por mi propia experiencia que nunca puedo escuchar mi nuevo disco duro de 4 TB, incluso cuando copio archivos muy grandes.
Con un poco de investigación, también se pueden encontrar materiales de amortiguación acústica para el disco duro, como el gabinete SilentDrive HD y los materiales acústicos o el sistema de montaje de disco duro silencioso NoiseMagic NoVibes III . No sé dónde se venden, y las bandas de goma de arriba me parecen casi tan eficientes.
También se puede insonorizar toda la computadora. Algunos sitios web de ejemplo que venden materiales de insonorización son Quiet PC USA , AcousticPC o Dynamat , pero hay muchos de estos.
Algunas cajas de computadoras ya están diseñadas para un funcionamiento silencioso. Consulte, por ejemplo,
Seis casos de bajo ruido orientados al rendimiento, probados .
Como último comentario, un disco duro ruidoso que hace ruido, clics o chirridos puede ser una señal de que su disco duro está empezando a fallar, así que tenga cuidado.
fuente
Varias variaciones de Puppy Linux se basan en Ubuntu pero usan Aufs .
Puppy se ejecuta completamente desde RAM, no hay accesos HDD en funcionamiento normal.
Si le dice a Puppy que su HDD es una unidad flash, volcará el sistema de archivos RAM al disco periódicamente en lugar de hacerlo continuamente. Esto fue diseñado para reducir el desgaste de las escrituras frecuentes en unidades flash, pero también funciona bien en discos duros.
Al igual que con casi todo en Puppy, puede usar una GUI para configurar la frecuencia con la que desea guardar el sistema de archivos RAM. Por lo general, esto será aproximadamente cada 10 minutos, pero no hay nada que impida configurarlo para que se descargue cada 720 minutos (12 horas), por ejemplo.
Este extracto de mi
menu.lst
archivo de cargador de arranque Grub4DOS muestra la configuración de lapmedia
opción del kernel que dice que está usando flashdrive en lugar de un HDD ...Una nota sobre las "variaciones" de Puppy Linux ...
Estoy usando Puppy Linux 5.2.8 "Lupu", que está basado en Ubuntu 10.04 Lucid Lynx. Esta versión también se llama a menudo "Lucid" en lugar de "Lupu" debido a sus orígenes. También hay versiones basadas en Slackware y algunas otras distribuciones. Como ya estás usando Xubuntu, Puppy Linux Lupu sería el más familiar. También sería mucho más rápido. Usé Xubuntu durante aproximadamente un año antes de encontrar Puppy.
También hay una versión mucho más nueva basada en "Ubuntu Precise Pangolin" llamada "Puppy Linux Precise". Hay cambios importantes en el kernel utilizado en la versión más reciente que pueden no funcionar bien con hardware antiguo. Si su máquina tiene menos de 5 años, puede ser más feliz con Precise. Creo que la técnica descrita anteriormente seguirá funcionando en Precise, aunque las opciones exactas, etc. pueden ser diferentes, pero no puedo probarlo.
fuente
La solución corta e implementable rápidamente (pero no responde exactamente a lo que desea) es: transferir el disco de almacenamiento a otro lugar. puede ser un servidor de archivos netowrk chassi (como la edición mundial de WD) o un disco USB3 y puede tenerlo en la misma habitación que la PC silenciosa, o en una habitación diferente para evitar escucharlo por completo.
En mi opinión, esto es mejor, ya que seguramente solo usará la unidad cuando desee transferir datos a través de la red : el sistema operativo puede estar haciendo algún otro arreglo o reequilibrio del árbol del sistema de archivos que no puede evitar y lo molestaría . Tan diferente habitación es una gran ventaja.
El almacenamiento en caché debería ser bastante fácil: solo haga una copia de seguridad de los datos del día en el disco externo, lo que puede lograr utilizando soluciones como
rsync
ounison
.La solución más larga no es ideal (es decir, no hay una sola aplicación), pero obtendrá la unidad en la misma caja con el SSD y alcanzará velocidades más altas (¿pero realmente necesita una velocidad más alta que la red por solo 5 GB / día?):
puede usar
smartctl
para configurar el tiempo de inactividad de su unidad y mantener esta unidad en un estado desmontado, para evitar que el sistema operativo haga cosas en la unidad. Luego, solo escriba un scriptmount
y haga una copia de seguridad (como arriba) de los datos que necesita.fuente
No le gustará mi respuesta, pero en realidad está abusando del término caché, en realidad está describiendo una solución de respaldo. Eche un vistazo a rsync o busque otras soluciones de respaldo si desea algo más completo.
fuente