El otro día mi Zabbix me avisó de que en un nodo que administro de Peertube se estaba quedando sin espacio. Así que lo primero que hice fue entrar al servidor para revisar donde estaba el problema ya que esa instancia usa un bucket de S3 para el almacenamiento.
Detecté que había muchos ficheros almacenados en el servidor y revisando aún más entendí que es lo que ocurría.
Cuando PeerTube se configura con almacenamiento S3, el flujo de subida funciona de la siguiente manera: la persona usuaria sube un vídeo desde la interfaz de la plataforma y, en ese momento, el archivo se guarda temporalmente en el servidor. A continuación, el propio servidor se encarga de realizar la transcodificación del vídeo (generando las distintas resoluciones necesarias). Una vez finalizado ese proceso, los ficheros resultantes se envían al bucket S3 configurado. Finalmente, PeerTube elimina los archivos temporales generados durante el proceso.
Si este proceso falla por algún motivo, los ficheros temporales gfenerados del proceso, quedan almacenados en el servidor y no se borran. Afortunadamente hay una serie de comandos que permiten limpiar todos esos ficheros, limpiar caché, eliminar ficheros que ya no se utilizan, etc.
Liberar espacio en disco
Revisando la instancia que administro, veo que en algunos directorios hay muchos ficheros que ocupan un espacio considerable:
$ du -sh *
7.2G streaming-playlists
4.5G thumbnails
20G web-videosAsí que revisando algunos ficheros dentro de esos directorios, veo que algún fichero ocupa hasta 15GB de espacio:
-rw-r--r-- 1 debian debian 15117209171 Feb 6 09:58 XXX-4fb0-4c91-8b34-XXXXXXX-1240.02
Y en el disco se estaba empezando a notar bastante:
/dev/sda1 99G 91G 3.5G 97% /Así que tocaba arremangarse y revisar la documentación oficial para ver que opciones había. Por suerte, existen unos comandos en Peertube que permite eliminar estos ficheros huérfanos que quedan en el disco, por ejemplo, si estás utilizando Docker, deberemos de ejecutar el siguiente comando para el contenedor de Peertube:
docker compose exec -u root peertube npm run prune-storageEste comando iniciará y buscará en los directorios configurados los ficheros huérfanos que se encuentran en el sistema de ficheros:
> peertube@7.3.0 prune-storage
> LOGGER_LEVEL=warn node ./dist/scripts/prune-storage.js
webfinger.js v2.8.2 loaded
/!\ PeerTube must be stopped before running this script /!\
Pruning filesystem storage.
Detecting files to remove, it can take a while...
5475 unknown files from filesystem can be deleted:
/data/web-videos/0bdc0199-01dc-4322-b309-XXXX-720.mp4
/data/web-videos/0ff7343f-f955-4f58-b594-XXXX-720.mp4
/data/web-videos/67b93a24-9276-4929-9607-XXXX-720.mp4
/data/web-videos/c8eae880-8f94-42c8-bf87-XXXX-1080.mp4
/data/web-videos/e797e8b4-8051-4199-a976-XXXX-1080.mp4Después de mostrar toda la lista, nos preguntará si queremos eliminarlos:
prompt: These unknown files can be deleted, but please check your backups first (bugs happen). Can we delete these files? (y/n): (n) y
Deleting filesystem files...
5475 filesystem files deleted.También podemos mirar de liberar espacio eliminando ficheros remotos que ya no se necesiten, para hacerlo podemos usar este otro comando:
docker compose exec -u peertube peertube npm run house-keeping -- --delete-remote-filesEste comando analizará los directorios configurados y te preguntará si quieres eliminarlos, en mi caso me encontró 340.734 ficheros de thumbnails y más de 8000 avatares/banners:
Detecting remote files that can be deleted...
prompt: 340,734 thumbnails and 8,639 avatars/banners can be locally deleted. PeerTube will download them again on-demand. Do you want to delete these remote files? (y/n): (n) y
Deleting remote thumbnails...
Deleting remote avatars/banners...
Remote files deleted!Tras la eliminación de todos estos ficheros, podemos ver que el disco ha liberado mucho espacio ocupado:
/dev/sda1 99G 69G 27G 73% /Y si revisamos el tamaño de los directorios que antes ocupaban 7GB o más:
$ du -sh *
7.1G streaming-playlists
436M thumbnails
1.2G web-videosConclusión
En principio con estos comandos eliminaremos gigas y gigas de datos que no sirven de mucho y así podremos liberar espacio. Existen otros comandos interesantes y para ello te recomiendo revisarlo en la Documentación Oficial de Peertube.
Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.
Comentarios