Cómo liberar espacio en una instancia de Peertube con estos simples comandos.


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-videos

Así 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-storage

Este 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.mp4

Despué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-files

Este 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-videos

Conclusió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

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación