[enh] Merge 2 similar steps

This commit is contained in:
ljf 2021-06-06 01:31:00 +02:00
parent 306e7fa883
commit 69329dcc85

View file

@ -13,9 +13,11 @@ En dehors du système de monitoring qui s'assure que les partitions de votre sys
Si vous vous hébergez sur une carte ARM avec une carte SD ou sur un serveur avec un petit disque SSD, vous pourriez, pour des raisons de fiabilité ou de manque de place, vouloir ajouter un ou des disques à votre serveur.
Ci-dessous, vous trouverez des explications pour y parvenir de façon correcte avec un minimum d'impact vis à vis du fonctionnement de YunoHost. Cette opération peut se faire lors de l'installation ou, a posteriori, lorsque vos besoins de stockage ont augmenté ou lorsque vous n'avez plus confiance dans votre carte SD.
! Si vous n'avez plus du tout de place sur votre serveur, vous pouvez dés à présent taper `apt clean` pour essayer d'en gagner un peu le temps de faire le ménage ou suivre les opérations qui vont suivre.
! La méthode présentée ici va d'abord monter l'unique partition du disque dur, puis utiliser un ou des sous-dossiers de ce disque pour créer différents points de montage sur l'arborescence de votre système. Cette méthode est préférable à l'usage de liens symboliques, car ces derniers peuvent perturber certaines applications dont le système de sauvegarde de YunoHost. On pourrait aussi monter de spartitions plutôt que des sous-dossiers, mais il est parfois difficile d'estimer à l'avance l'évolution du poids d'un dossier à l'avance.
Ci-dessous, vous trouverez des explications pour parvenir à déplacer vos données sur un disque dur de façon correcte avec un minimum d'impact vis à vis du fonctionnement de YunoHost. Cette opération peut se faire lors de l'installation ou, a posteriori, lorsque vos besoins de stockage ont augmenté ou lorsque vous n'avez plus confiance dans votre carte SD.
!!! La méthode présentée ici va d'abord monter l'unique partition du disque dur, puis utiliser un ou des sous-dossiers de ce disque pour créer différents points de montage sur l'arborescence de votre système. Cette méthode est préférable à l'usage de liens symboliques, car ces derniers peuvent perturber certaines applications dont le système de sauvegarde de YunoHost. On pourrait aussi choisir de monter des partitions plutôt que des sous-dossiers, mais il est parfois difficile d'estimer à l'avance l'évolution du poids d'un dossier à l'avance.
## [fa=list-alt /] Pré-requis
@ -23,9 +25,9 @@ Ci-dessous, vous trouverez des explications pour y parvenir de façon correcte a
* Savoir se connecter en root sur votre système, par exemple via [SSH](/ssh). (Note : en étant connecté en tant qu'utilisateur `admin`, vous pouvez passer root avec `sudo su`)
* Connaitre les commandes basiques `cd`, `ls`, `mkdir`
* Connaitre les commandes basiques `cd`, `ls`, `mkdir`, `rm`
* Avoir une sauvegarde au cas où ça ne se pass epas comme prévu
* Avoir une sauvegarde au cas où ça ne se passe pas comme prévu
* Disposer d'un stockage supplémentaire (disque SSD, disque dur, clé USB) branché à votre serveur en USB ou en SATA
@ -40,6 +42,7 @@ Ci-dessous, une explication de certains chemins qui peuvent prendre du poids ave
| /home | Dossiers utilisateurs accessible via SFTP | Déplaçable sur un disque dur |
| /home/yunohost.backup | Sauvegardes YunoHost | Selon votre stratégie de sauvegarde, il peut être préférable de placer ce dossier sur un disque distinct de celui où se trouve vos données ou vos base de données |
| /home/yunohost.app | Données lourdes des applications yunohost (nextcloud, matrix...) | Déplaçable sur un disque dur |
| /home/yunohost.multimedia | Données lourdes partagées entre plusieurs applications | Déplaçable sur un disque dur |
| /var/lib/mysql | Base de données utilisées par les applications | A laisser idéalement sur le SSD pour des raisons de performances |
| /var/lib/postgresql | Base de données utilisées par les applications | A laisser idéalement sur le SSD pour des raisons de performances |
| /var/mail | Mails des usagers | Déplaçable sur un disque dur |
@ -121,41 +124,12 @@ mount /dev/VOTRE_DISQUE1 /mnt/hdd
(Ici, `/dev/VOTRE_DISQUE1` correspond à la première partition sur le disque)
## 5. Monter le disque automatiquement au démarrage
Jusqu'ici, nous avons monté manuellement le disque. Cependant, il peut être utile de configurer le système pour qu'il monte automatiquement le disque après un démarrage.
Pour commencer, trouvons l'UUID (identifiant universel) de notre disque avec :
```bash
blkid | grep "/dev/VOTRE_DISQUE1:"
# Retourne quelque chose comme :
# /dev/sda1:UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" TYPE="ext4" PARTUUID="34e4b02c-02"
```
Ajoutons alors une ligne au fichier `/etc/fstab` qui gère le montage des disques au démarrage. On ouvre donc le fichier avec `nano` :
```bash
nano /etc/fstab
```
Puis on ajoute cette ligne :
```bash
UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" /mnt/hdd ext4 defaults,nofail 0 0
```
(il faut adapter cette ligne en fonction des informations et choix précédents)
Utiliser Ctrl+X puis `o` pour sauvegarder.
Vous pouvez ensuite tester de redémarrer le système pour voir si le disque est monté automatiquement.
## 6. Monter un dossier de /mnt/hdd sur un des dossiers dont on veut déplacer les données
## 5. Monter un dossier de /mnt/hdd sur un des dossiers dont on veut déplacer les données
Ici on va considérer que vous souhaitez déplacer les grosses données des applications qui se trouvent dans /home/yunohost.app ainsi que les mails sur votre disque dur.
### 6.1 Création des sous-dossiers sur le disque
### 5.1 Création des sous-dossiers sur le disque
Pour commencer, on créé un dossier dans le disque dur
```bash
@ -163,8 +137,8 @@ mkdir -p /mnt/hdd/home/yunohost.app
mkdir -p /mnt/hdd/var/mail
```
### 6.2 Passage en mode maintenance
Puis, idéalement on passe en maintenance les applications qui pourraient être en train d'écrire des données (très important pour les bases de données).
### 5.2 Passage en mode maintenance
Puis, idéalement on passe en maintenance les applications qui pourraient être en train d'écrire des données.
Exemple, pour nextcloud:
@ -179,9 +153,9 @@ systemctl stop postfix
systemctl stop dovecot
```
! Si vous souhaitez déplacer les base de données comme mariadb (mysql), il est impératif de stopper les services de ces bases de données sans quoi le déplacement des données sera un échec.
! Si vous souhaitez déplacer les base de données comme mariadb (mysql), il est impératif de stopper les services de ces bases de données sans quoi il est presque sûr que vos données seront corrompues.
### 6.3 Création des points de montages
### 5.3 Création des points de montages
Ensuite, on va renommer le dossier d'origine et créer un dossier vide éponyme.
@ -199,7 +173,7 @@ mount --bind /mnt/hdd/home/yunohost.app /home/yunohost.app
mount --bind /mnt/hdd/var/mail /var/mail
```
### 6.4 Copie des données
### 5.4 Copie des données
Puis, on copie les données en conservant toutes les propriétés des dossiers et des fichiers. Cette opération peut prendre un peu de temps, avec un autre terminal, vous pourrez controler l'évolution en observant le poids associés au point de montage avec `df -h`
@ -215,7 +189,7 @@ ls -la /home/yunohost.app/
ls -la /var/mail/
```
### 6.5 Sortie du mode maintenance
### 5.5 Sortir du mode maintenance
A partir de là vous pouvez arréter le mode maintenance, la commande ci-dessous est à adapter selon les services que vous avez arrétés.
@ -227,19 +201,42 @@ systemctl start dovecot
A partir de cette étape, vos services tournent avec leurs données sur le disque, il est donc temps de tester pour voir dans quelle mesure il y a un impact sur les performances (notamment si vus utilisez de l'USB 2.0).
## 7. Rendre les montages `mount --bind` permanents
## 6. Monter automatiquement au démarrage
Si le test est concluant, il faut pérreniser les points de montages, sinon dépéchez-vous de faire machine arrière en commençant par remettre en maintenance.
Pour pérréniser les points de montage, on réédite /etc/fstab avec à la fin du fichier:
Jusqu'ici, nous avons monté manuellement le disque et les sous-dossies. Cependant, il est nécessaire de configurer le système pour qu'il monte automatiquement le disque après un démarrage.
Si vos tests sont concluant, il faut pérreniser les points de montages, sinon dépéchez-vous de faire machine arrière en commençant par remettre en maintenance.
Pour commencer, trouvons l'UUID (identifiant universel) de notre disque avec :
```bash
/mnt/hdd/home/yunohost.app /home/yunohost.app none defaults,bind 0 0
blkid | grep "/dev/VOTRE_DISQUE1:"
# Retourne quelque chose comme :
# /dev/sda1:UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" TYPE="ext4" PARTUUID="34e4b02c-02"
```
A ce stade, si vous êtes consciencieux et que vous pouvez vous le permettre, il peut être pertinent de redémarrer pour tester que le point de montage se monte comme il faut au démarrage.
Ajoutons alors une ligne au fichier `/etc/fstab` qui gère le montage des disques au démarrage. On ouvre donc le fichier avec `nano` :
## 8. Nettoyer les anciennes données
```bash
nano /etc/fstab
```
Puis on ajoute ces lignes à la fin du fichier :
```bash
UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" /mnt/hdd ext4 defaults,nofail 0 0
/mnt/hdd/home/yunohost.app /home/yunohost.app none defaults,bind 0 0
/mnt/hdd/var/mail /var/mail none defaults,bind 0 0
```
(il faut adapter cette ligne en fonction des informations et choix précédents)
Utiliser Ctrl+X puis `o` pour sauvegarder.
Vous pouvez ensuite tester de redémarrer le système pour vérifier si le disque et les sous-dossiers sont montés automatiquement.
## 7. Nettoyer les anciennes données
Dés que votre nouveau setup est validé, vous pouvez procéder à la suppresion des anciennes données issues de l'étape 6.3:
```bash