Estoy ejecutando un servidor Ubuntu en EC2 ebs, y mi aplicación necesita mucho espacio de disco temporal, asignado en / tmp. Sin embargo, en ec2 la unidad raíz que también contiene / tmp es bastante pequeña, alrededor de 10 GB. Todo el espacio restante en disco se monta bajo / mnt. Como resultado, mi aplicación devuelve errores 'sin espacio en disco', porque / tmp parece estar lleno.
¿Cuál es la mejor manera de resolver este problema? Una cosa que puedo pensar es crear / mnt / tmp y hacer un enlace simbólico
/tmp --> /mnt/tmp
Sin embargo, soy un poco reacio a perder el tiempo con algo que utilizan tantos programas y herramientas de Linux. No estoy seguro de si cada programa resolverá correctamente el enlace simbólico, y no estoy seguro de lo que sería para el rendimiento.
fuente
Respuestas:
Con imágenes respaldadas por EBS, el almacenamiento efímero todavía está disponible, simplemente no está asignado como un dispositivo de bloque de forma predeterminada (como lo está en las imágenes de la tienda de instancias)
El documento de Amazon está aquí , y hay una publicación de blog útil, aquí
En resumen: puede especificar esta asignación en la línea de comando cuando inicia la imagen y luego montarla como un volumen normal
/dev/sd[x]
. O bien, si enrolla su propia AMI, puede hornear la asignación en esa AMI para que todas las imágenes lanzadas desde ella tengan acceso a ella desde el principio.Symlinking
/tmp
funcionará, pero no lo recomendaría en este caso, donde tiene una gran cantidad de almacenamiento temporal en uso. Una vez que tenga disponible la asignación de dispositivos, puede montar el dispositivo como/tmp
en/etc/fstab
.Con una pequeña instancia, debe tener 150 GB de tienda de instancias disponibles de forma gratuita. Huelga decir que este almacenamiento muere cuando la instancia se reinicia. Si su uso no es tan temporal, entonces necesita crear su propio volumen EBS nuevo y montarlo de esa manera.
fuente
Puede vincular el punto de montaje / tmp a / mnt / tmp:
fuente
La vinculación simbólica como se sugiere en la pregunta no es una solución tan mala. Pero hay que tener especial cuidado al hacerlo. Solo para consolidar los pasos precisos involucrados en el montaje del volumen son:
1) Crear nuevo volumen en la consola de AWS. Adjuntarlo a la instancia.
2) Formatearlo y montarlo debajo de decir
/mnt/vol1
3) Limpiar
/tmp
en la medida de lo posible.4)
mkdir /mnt/vol1/tmp && mv /tmp/* /mnt/ && rmdir /tmp && ln -s /mnt/vol1/tmp /tmp
fuente
/tmp
sobrevivan a un reinicio.