~Augmenter l'espace disque, question sda sdb~ Log matrix synapse qui débordent

My YunoHost server

Hardware: VPS Hetzner
YunoHost version: 4.3.6.3
I have access to my server : SSH or webadmin

Description of my issue

Hello à toutes et à tous,

J’ai augmenté la taille du disque de mon vps chez Hetzner via leur interface puis j’ai fait sudo resize2fs /dev/sda3 et ça a bien resize le volume.

sauf que

En fait en faisant df j’obtiens ceci :

Filesystem      Size  Used Avail Use% Mounted on
udev            957M     0  957M   0% /dev
tmpfs           195M   21M  175M  11% /run
/dev/sda3        19G   18G  396M  98% /
tmpfs           974M   32K  974M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           974M     0  974M   0% /sys/fs/cgroup
/dev/sdb        345G  101G  229G  31% /mnt/volume-ziad
/dev/sda2       121M   512  121M   1% /boot/efi
tmpfs           195M     0  195M   0% /run/user/1007

dev/sdb est bien passé de 300Go à 350Go ceci dit je vois que /dev/sda3 est plein à craquer. Je ne comprends pas trop pourquoi il y a plusieurs volumes, en tout cas Hetzner me dit que je n’en ai qu’un.

Je ne sais pas trop quelle direction prendre et je ne voudrais pas faire de bêtise. J’ai cherché dans le forum sans trouver de réponse claire.

Est-ce que quelqu’un·e pourrait me guider sur la marche à suivre svp ?

Merci ! :hugs:

Est-ce qu’il n’y avait pas un montage en RAID sur ton VPS ? du coup, tu aurais sans faire exprès enlever le montage RAID (duplication des données sur 2 disques ?)

Je ne sais pas pour être franc.

Je sais que cette instance fonctionnait avant sur un macbook en local puis je l’ai migré sur Hetzner (mais je ne crois pas que ça réponde plus à ta question).

Tu as des idées sur ce que je pourrais faire pour m’en sortir éventuellement stp ?

que donne lsblk et ton fichier /etc/fstab ? Ou plutôt lsblk -So NAME,MODEL,SERIAL ?
https://docs.hetzner.com/cloud/volumes/faq/

Est-ce que il a confondu sda et sdb ? c’est possible, a identifié. Parfois il faut faire un reboot du serveur et parfois, il change l’ordre des sdX…

Merci pour ton aide @rodinux

Je viens de faire lsblk -So NAME,MODEL,SERIAL dans le terminal et j’obtiens ceci :

NAME MODEL         SERIAL
sda  QEMU_HARDDISK drive-scsi0-0-0-0
sdb  Volume        8487366
sr0  QEMU_DVD-ROM  QM00003

Si je fais lsblk :

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 19.1G  0 disk 
├─sda1   8:1    0    1M  0 part 
├─sda2   8:2    0  122M  0 part /boot/efi
└─sda3   8:3    0   19G  0 part /
sdb      8:16   0  350G  0 disk /mnt/volume-ziad
sr0     11:0    1 1024M  0 rom 

Et voici ce que donne mon fichier fstab :

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda3 during installation
UUID=dc5ca97a-d4d9-4ae8-992a-595ba8b6b312 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda2 during installation
UUID=4341-31FA  /boot/efi       vfat    umask=0077      0       1
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/disk/by-id/scsi-0HC_Volume_8487366 /mnt/volume-ziad ext4 discard,nofail,defaults 0 0

Effectivement si je vois les caractéristique de mon VPS sur Hetzner j’ai ça :

Donc je comprends que c’est le volume attaché que j’ai étendu mais je n’ai pas la main sur le volume local de 20Gb. sda3 dont le mountpoint / est rempli.

J’ai fait du coup ls -la à la racine /et j’obtiens ceci :

total 92
drwxr-xr-x  21 root root  4096 May  2 12:11 .
drwxr-xr-x  21 root root  4096 May  2 12:11 ..
drwxr-xr-x   2 root root  4096 Apr 19 06:50 bin
drwxr-xr-x   4 root root  4096 Mar 29 06:52 boot
drwxr-xr-x  18 root root  3220 May  2 12:11 dev
drwxr-xr-x 104 root root  4096 Apr 19 11:08 etc
lrwxrwxrwx   1 root root    17 Dec 12  2020 home -> /mnt/volume-ziad/
lrwxrwxrwx   1 root root    31 Mar 29 06:52 initrd.img -> boot/initrd.img-4.19.0-20-amd64
lrwxrwxrwx   1 root root    31 Mar 29 06:52 initrd.img.old -> boot/initrd.img-4.19.0-19-amd64
drwxr-xr-x  14 root root  4096 Jun 19  2021 lib
drwxr-xr-x   2 root root  4096 Mar 29 06:50 lib64
drwx------   2 root root 16384 Dec  7  2020 lost+found
drwxr-xr-x   3 root root  4096 Dec  7  2020 media
drwxr-xr-x   3 root root  4096 Dec 12  2020 mnt
drwxr-xr-x   3 root root  4096 Oct  1  2021 opt
dr-xr-xr-x 190 root root     0 May  2 12:11 proc
-rw-------   1 root root  1024 Dec 12  2020 .rnd
drwx------   7 root root  4096 Nov 16 23:48 root
drwxr-xr-x  37 root root  1140 May  2 12:14 run
drwxr-xr-x   2 root root 12288 Mar 29 06:52 sbin
drwxr-xr-x   2 root root  4096 Dec  7  2020 srv
dr-xr-xr-x  13 root root     0 May  2 12:15 sys
drwxrwxrwt  12 root root  4096 May  2 12:16 tmp
drwxr-xr-x  10 root root  4096 Dec  7  2020 usr
drwxr-xr-x  13 root root  4096 Dec 13  2020 var
lrwxrwxrwx   1 root root    28 Mar 29 06:52 vmlinuz -> boot/vmlinuz-4.19.0-20-amd64
lrwxrwxrwx   1 root root    28 Mar 29 06:52 vmlinuz.old -> boot/vmlinuz-4.19.0-19-amd64

On voit bien donc que la home est un lien symbolique vers le volume attaché (n’est-ce pas ? ou je dis n’importe quoi ? :D)

J’ai voulu checker les poids des dossiers du coup en lançant à la racine toujours du -h --max-depth=1 | sort -h

Et j’obtiens :

14M	./bin
127M	./boot
178M	./opt
853M	./lib
2.0G	./usr
7.8G	./var
8.0G	./mnt
19G	.

(et pleins d’avertissements d’accès…)

Et là je suis un peu perdu, je ne comprends pas comment /mnt prend de la place puisqu’il me semblait que c’était lié au dd monté à côté.

J’espère déjà que tous ces éléments supplémentaires vont te permettre de mieux comprendre la situation. Là je suis à perdu :slight_smile:

Je pense qu’il faut tenter de redémarrer en rescue mode dans ton interface hetzner et trouver comment redimensionner la partition sda3…

https://docs.hetzner.com/robot/dedicated-server/getting-started/partition-alignment/

Il faudrait déjà avoir plus de place sur le disque sda et ensuite augmenter la partition sda3…

ça fait un peu peur tout ça :blush: mais bon s’il faut passer par là, je vais tenter hein

je vais faire un snapshot avant quand même hehe

Merci encore !

Je n’ai pas encore eu le temps de me pencher sur le sujet, mais déjà j’ai pu voir que le diagnostic côté Yunohost indiquait celà, si ça peut donner des indices supplémentaires :

J’ai suivi le guide pour voir si les partitions étaient bien alignées et ça semble ok.

$ sudo sfdisk -uS -l
Disk /dev/sda: 19.1 GiB, 20480786432 bytes, 40001536 sectors
Disk model: QEMU HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 69E84B40-CFEF-46C1-8823-6473CC2BA987

Device      Start      End  Sectors  Size Type
/dev/sda1    2048     4095     2048    1M BIOS boot
/dev/sda2    4096   253951   249856  122M Linux filesystem
/dev/sda3  253952 40001502 39747551   19G Linux filesystem


Disk /dev/sdb: 350 GiB, 375809638400 bytes, 734003200 sectors
Disk model: Volume          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Ok je viens de refaire sudo du -h --max-depth=1 | sort -h et j’ai un résultat en fait plus cohérent que la fois précédente :

184M	./opt
288M	./root
853M	./lib
2.0G	./usr
15G	./var
101G	./mnt

Je ne sais pas ce qui provoqué ce changement par contre. Un redémarrage entre temps peut-être ? :thinking:

En tout cas, là je comprends bien que le volume indiqué pour ./mnt c’est bien ce qui est dans le volume attaché.

Et donc le principal fautif qui remplit mon disque sda3 c’est le dossier ./var. Or, si je comprends bien cette doc linux j’y apprends que ce dossier sert principalement à :

“Storage for all variable files and temporary files created by users, such as log files, the mail queue, the print spooler area, space for temporary storage of files downloaded from the Internet, or to keep an image of a CD before burning it.”

Je comprends qu’il y a du ménage à faire :slight_smile:

En suivant quelques conseils, par , je commence par :
sudo apt-get autoclean et hop 1Go récupéré :slight_smile:
ensuite sudo apt-get autoremove mais pas de grand miracle.

Je continue mon exploration en rentrant dans le dossier /var puis je fais toujours sudo du -h --max-depth=1 | sort -h pour voir les plus gros dossiers :

4.0K	./local
4.0K	./opt
28K	./xmpp-upload
124K	./tmp
1.5M	./spool
2.8M	./backups
9.3M	./cache
630M	./mail
924M	./www
5.3G	./lib
7.1G	./log
14G	.

Etrange que le dossier de log soit aussi énorme (!). Je rentre dedans et je check à nouveau les plus gros dossiers à l’intérieur :

4.0K	./nextcloud
4.0K	./ntpstats
4.0K	./private
4.0K	./samba
28K	./uwsgi
32K	./mysql
56K	./postgresql
120K	./metronome
124K	./unattended-upgrades
148K	./apt
160K	./redis
6.0M	./rspamd
9.7M	./nginx
19M	./yunohost
6.9G	./matrix-synapse
7.1G	.

Et nous y voilà ! C’est ce dossier matrix-synapse qui prend toute la place ! Ça ne devrait pas être le cas, car de ce que je comprends il y a l’utilitaire logrotate qui devrait se charger de compresser et nettoyer ça régulièrement. Donc il manque peut-être un fichier de configuration pour s’occuper de faire le ménage des log de synapse, un serveur Matrix, installé sur mon instance.

Pourtant, en checkant dans le dossier /etc/logrotate.d je trouve bien un fichier de conf. pour synapse dont le contenu est le suivant :

/var/log/matrix-synapse/*.log {
        # Rotate if the logfile exceeds 100Mo
    size 100M
        # Keep 12 old log maximum
    rotate 12
        # Compress the logs with gzip
    compress
        # Compress the log at the next cycle. So keep always 2 non compressed logs
    delaycompress
        # Copy and truncate the log to allow to continue write on it. Instead of move the log.
    copytruncate
        # Do not do an error if the log is missing
    missingok
        # Not rotate if the log is empty
    notifempty
        # Keep old logs in the same dir
    noolddir
    
}

Donc ça semble pas trop mal (encore que 12 archives je peux m’en passer ceci dit) mais bon.

Donc je suis allé dans le dossier /var/log/matrix-synapse puis ls -lh et là :

-rw-rw-r--+ 1 matrix-synapse root 5.8G May 24 23:17 homeserver.log
-rw-rw-r--+ 1 matrix-synapse root 103M Dec  8  2020 homeserver.log.1
-rw-rw-r--+ 1 matrix-synapse root 100M Oct 24  2019 homeserver.log.10
-rw-rw-r--+ 1 matrix-synapse root  12M Sep 30  2020 homeserver.log.10.gz
-rw-rw-r--+ 1 matrix-synapse root  12M Sep 25  2020 homeserver.log.11.gz
-rw-rw-r--+ 1 matrix-synapse root  11M Sep 20  2020 homeserver.log.12.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Nov 21  2019 homeserver.log.2
-rw-rw-r--+ 1 matrix-synapse root 7.9M Dec  4  2020 homeserver.log.2.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Nov 16  2019 homeserver.log.3
-rw-rw-r--+ 1 matrix-synapse root  11M Nov 27  2020 homeserver.log.3.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Nov 12  2019 homeserver.log.4
-rw-rw-r--+ 1 matrix-synapse root  12M Nov 19  2020 homeserver.log.4.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Nov  7  2019 homeserver.log.5
-rw-rw-r--+ 1 matrix-synapse root  12M Nov 12  2020 homeserver.log.5.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Nov  4  2019 homeserver.log.6
-rw-rw-r--+ 1 matrix-synapse root  12M Nov  3  2020 homeserver.log.6.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Nov  1  2019 homeserver.log.7
-rw-rw-r--+ 1 matrix-synapse root  12M Oct 29  2020 homeserver.log.7.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Oct 30  2019 homeserver.log.8
-rw-rw-r--+ 1 matrix-synapse root  11M Oct 21  2020 homeserver.log.8.gz
-rw-rw-r--+ 1 matrix-synapse root 100M Oct 27  2019 homeserver.log.9
-rw-rw-r--+ 1 matrix-synapse root  12M Oct  9  2020 homeserver.log.9.gz
-rw-rw----+ 1 matrix-synapse root  964 May 22 11:43 turnserver.log

Donc ce que je comprends c’est que concrètement depuis décembre, logrotate n’a pas fait le taff est a laissé s’accumuler une belle boulette de 5.8Go de log…

Je tente donc de lancer manuellement le script de logrotate pour voir ce qu’il se passe : sudo logrotate /etc/logrotate.d/synapse
et j’obtiens sans surprise une erreur :
error: Ignoring /etc/logrotate.d/synapse because it is writable by group or others.

Ce qui doit expliquer pourquoi le log n’a pas été nettoyé depuis. Peut-être qu’une mise à jour du serveur synapse a provoqué cette erreur :thinking:

Je comprends que cette erreur est lié à la permission donnée au fichier de conf dans logrotate et en effet, si je fais ls -la /etc/logrotate.d/ je vois :

drwxr-xr-x   2 root root 4096 Mar 30 15:53 .
drwxr-xr-x 104 root root 4096 May 20 06:25 ..
-rw-r--r--   1 root root  120 Apr 19  2019 alternatives
-rw-r--r--   1 root root  173 May 12  2020 apt
-rw-r--r--   1 root root   79 Apr 19  2017 aptitude
-rw-r--r--   1 root root  130 Aug 29  2018 btmp
-rw-r--r--   1 root root  112 Apr 19  2019 dpkg
-rw-r--r--   1 root root  313 Apr 17  2017 fail2ban
-rw-r--r--   1 root root  231 Jan 16  2019 metronome
-rw-r--r--   1 root root  173 Feb 24  2020 monitorix
-rw-r--r--   1 root root  802 Oct 12  2020 mysql-server
-rw-r--r--   1 root root  580 Dec 10 09:16 nextcloud
-rw-r--r--   1 root root  329 Aug 19  2019 nginx
-rw-r--r--   1 root root  215 Feb 27  2021 php7.3-fpm
-rw-r--r--   1 root root  173 Nov 12  2019 postgresql-common
-rw-r--r--   1 root root  627 May 14  2021 rainloop
-rw-r--r--   1 root root  124 Jul 10  2019 redis-server
-rw-r--r--   1 root root  226 Nov 10  2018 rspamd
-rw-r--r--   1 root root  501 Feb 26  2019 rsyslog
-rw-rw-rw-   1 root root  585 Jan  2  2021 synapse
-rw-r--r--   1 root root  235 Dec 11  2016 unattended-upgrades
-rw-r--r--   1 root root  145 Feb 19  2018 wtmp
-rw-r--r--   1 root root  136 Sep 11  2020 yunohost

Et voilà que la conf de synapse n’a pas les même permissions que tout le reste ! Le fichier date du 2 janvier, tout semble concorder.

Je change la permission du fichier sudo chmod 644 /etc/logrotate.d/synapse et je relance sudo logrotate /etc/logrotate.d/synapse et…

Ça semble tourner mais j’ai une nouvelle erreur :

error: error writing to /var/log/matrix-synapse/homeserver.log.1: No space left on device
error: error copying /var/log/matrix-synapse/homeserver.log to /var/log/matrix-synapse/homeserver.log.1: No space left on device

Donc ça semble fonctionner mais juste comme pas assez de place ben ça fonctionne pas.

Allez j’édite le fichier de conf sudo vi /etc/logrotate.d/synapse pour ne garder que 2 archives :

/var/log/matrix-synapse/*.log {
        # Rotate if the logfile exceeds 100Mo
    size 100M
        # Keep 2 old log maximum
    rotate 2
        # Compress the logs with gzip
    compress
        # Compress the log at the next cycle. So keep always 2 non compressed logs
    delaycompress
        # Copy and truncate the log to allow to continue write on it. Instead of move the log.
    copytruncate
        # Do not do an error if the log is missing
    missingok
        # Not rotate if the log is empty
    notifempty
        # Keep old logs in the same dir
    noolddir

}

et je retente sudo logrotate /etc/logrotate.d/synapse mais ça ne semble pas suffisant. Évidemment je suis toujours bloqué par ce satané manque de place. Je ne peux pas compresser cette énorme archive de 5.8Go… Et même si j’effaçais toutes les autres archives, je ne libererais qu’environ 2Go donc je serai toujours au même point.

La question est donc : est-ce que je peux simplement supprimer ce fichier de log ? Mais de ce que j’ai pu lire par ça ne semble pas être vraiment une bonne idée… et je devrais utiliser logrotate ce que j’ai déjà fait et qui ne suffira pas même si je mettais rotate à 0.

Mais bon vu où j’en suis… ben je vais tenter quand même. Je supprime donc le fichier en question.

Puis je reboot le serveur sudo yunohost tools reboot

Déjà, on est bien mieux côté espace sur sda3 :

Filesystem      Size  Used Avail Use% Mounted on
udev            957M     0  957M   0% /dev
tmpfs           195M  5.6M  190M   3% /run
/dev/sda3        19G   12G  6.4G  65% /
tmpfs           974M   16K  974M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           974M     0  974M   0% /sys/fs/cgroup
/dev/sdb        345G  101G  229G  31% /mnt/volume-ziad
/dev/sda2       121M   512  121M   1% /boot/efi
tmpfs           195M     0  195M   0% /run/user/1007

Je me connecte à Matrix sans souci, donc rien de cassé. Et je check le dossier des logs de synapse et il y a bien un nouveau fichier qui s’est créé. Je tente un petit logrotate et pas d’erreur. Espérons que ça tienne ainsi et que je n’ai pas à revenir faire le ménage :slight_smile:

Allez bonne nuit !

1 Like

Waouw ! tu as du suer ! merci pour ton raisonnement et le déroulement, ça peut aider d’autres. Si tu manques de place, tu peux aussi envisager déplacer des applications vers l’autre disque, surtout si il est plus facile à redimensionner…

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.