Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| linux:btrfs [11-06-2017 16:19] – edmc73 | linux:btrfs [28-04-2021 14:16] (Version actuelle) – edmc73 | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ===== Description ===== | ===== Description ===== | ||
| - | FIXME | ||
| Tuto => http:// | Tuto => http:// | ||
| + | Installation | ||
| + | apt install btrfs-tools | ||
| ===== Commandes ===== | ===== Commandes ===== | ||
| + | |||
| + | ==== Sous volume et snapshot ==== | ||
| + | |||
| + | Pour créer un sous volume | ||
| + | btrfs subvolume create NOM_DU_SOUS-VOLUME | ||
| + | Pour faire un snapshot du sous volume | ||
| + | btrfs subvolume snapshot NOM_DU_SOUS-VOLUME NOM_SNAPSHOT | ||
| + | |||
| + | Pour afficher la liste des sous volume | ||
| + | btrfs subvolume list / | ||
| + | |||
| + | Pour affiche des infos sur un sous volumes ou un snaphot | ||
| + | btrfs subvolume show / | ||
| + | |||
| + | Un snapshot est aussi un sous volume, on peut très bien supprimer son parent sans poser de problème | ||
| ==== Maintenance ==== | ==== Maintenance ==== | ||
| Ligne 17: | Ligne 33: | ||
| btrfs check --repair /dev/sda1 | btrfs check --repair /dev/sda1 | ||
| - | Vérifier le checksum des blocks. -B pour que ça ne se lance pas en background | + | Vérifier le checksum des blocksd |
| - | btrfs scrub start -B /dev/sda1 | + | btrfs scrub start /dev/sda1 |
| - | Si vous l'avez lancé sans l' | + | Vous pouvez voir l' |
| btrfs scrub status /dev/sda1 | btrfs scrub status /dev/sda1 | ||
| + | Pour arrêter le scrub | ||
| + | btrfs scrub cancel /dev/sda1 | ||
| ===== En cas de gros pépin ===== | ===== En cas de gros pépin ===== | ||
| Ligne 47: | Ligne 64: | ||
| >the checksums, there' | >the checksums, there' | ||
| > Hugo. | > Hugo. | ||
| + | |||
| + | ===== Passer de ext4 à btrfs ===== | ||
| + | |||
| + | Dans le cas d'une conversion d'une partition racine, il faudra booter sur un live système. | ||
| + | |||
| + | 1ère vérification, | ||
| + | |||
| + | Avec mount | ||
| + | mount | ||
| + | /dev/sda2 on / type ext4 (rw, | ||
| + | |||
| + | L'UUID | ||
| + | blkid /dev/sda2 | ||
| + | /dev/sda2: UUID=" | ||
| + | |||
| + | On doit le retrouver dans le /etc/fstab | ||
| + | vi /etc/fstab | ||
| + | # <file system> <mount point> | ||
| + | # / was on /dev/sda2 during installation | ||
| + | UUID=3b3f3e41-c1cf-437f-a90f-80aeda99110d / | ||
| + | |||
| + | Lancer la conversion | ||
| + | btrfs-convert /dev/sda2 | ||
| + | |||
| + | Monter le disque pour vérifier que tout s'est bien passé | ||
| + | mount /dev/sda2 / | ||
| + | |||
| + | Si vous constatez des problèmes | ||
| + | umount / | ||
| + | btrfs-convert -r /dev/sda2 | ||
| + | |||
| + | Si tout vous semble ok, supprimez la possibilité de revenir en ext4 afin de ne pas alourdir le système et gagner en performance | ||
| + | rm -fr / | ||
| + | btrfs subvolume delete /ext2_saved | ||
| + | btrfs balance start / | ||
| + | |||
| + | Maintenant, il va falloir mettre à jour votre fstab sinon votre système ne redémarrera pas. | ||
| + | |||
| + | Options de montage | ||
| + | | OPTION DE MONTAGE PROPRES À BTRFS | RÔLE | | ||
| + | | autodefrag | ||
| + | | compress=zlib | La compression la plus importante. Par défaut | | ||
| + | | compress=lzo | La compression la plus rapide | | ||
| + | | compress=no | Pas de compression | | ||
| + | | degraded | Utilisé dans le cas des RAID. Permet de monter le volume même si certains disques sont manquants | | ||
| + | | discard | Utilise le TRIM pour les disques SSD | | ||
| + | | recovery | Lance la réparation automatique après le montage. A utilise si le volume ne veut plus se monter. un fois monté réaliser un scrub pour réparer les erreurs. (Ne fonctionne qu' | ||
| + | | ssd | Utilise l' | ||
| + | | subvol=/ | ||
| + | | subvolid=id | Permet de monter un subvolume par son id. La racine a un id=0 | | ||
| + | |||
| + | Pour un ssd par exemple | ||
| + | mount /dev/sda2 -o rw, | ||
| + | |||
| + | Pour hdd | ||
| + | mount /dev/sda2 -o rw, | ||
| + | |||
| + | Dans un fichier fstab, refaite la commande blkid et mettez à jour votre fstab | ||
| + | UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | Mettre à jour grub | ||
| + | mount /dev/sda2 /mnt | ||
| + | mount /dev/sda1 / | ||
| + | for fs in proc sys dev dev/pts; do mount --bind /$fs /mnt/$fs; done | ||
| + | chroot /mnt | ||
| + | update-initramfs -u -k all | ||
| + | update-grub | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | La suite peut aider mais pas nécessaire normalement. | ||
| + | |||
| + | |||
| + | With Grub Legacy we need to modify root=UUID value in menu.lst file to btrfs partition’s manually. I used the following lines for Grub’s menu.lst file. | ||
| + | |||
| + | title Linux 2.6.32.67 | ||
| + | uuid 89591593-766e-4565-9d5c-017fb0e33298 | ||
| + | kernel | ||
| + | initrd | ||
| + | |||
| + | In this example, a90c79b1-5883-44cc-9e74-752db9ca764d is the UUID of btrfs partition and 89591593-766e-4565-9d5c-017fb0e33298 is UUID of /boot partition. | ||
| + | |||
| + | Also, I used following lines for my /etc/fstab file. | ||
| + | |||
| + | / | ||
| + | / | ||
| + | As you can see, I just wrote a path (/dev/sda1) instead of UUID as described in the referenced site. | ||
| + | |||
| + | Update initrd images | ||
| + | Because some scripts and hooking are added to initramfs, initrd images in /boot directory should be updated. | ||
| + | |||
| + | I could not update them with command (i.e. update-initramfs -u -k all) described in the referenced site. It was guessed due to the kernel version difference between Live USB and my original installation. I designated the kernel version as a parameter like below and it worked. | ||
| + | |||
| + | update-initramfs -u -k 2.6.32.67 | ||
| + | |||
| + | |||
| + | ----------------------- | ||
| + | |||
| + | Si votre grub est coincé au redémarrage | ||
| + | < | ||
| + | grub>ls #pour lister les partition | ||
| + | set root=(hd0, | ||
| + | linux /vmlinuz root=/ | ||
| + | initrd /initrd.img | ||
| + | boot | ||
| + | </ | ||
| + | |||
| + | ensuite, pour réparer grub | ||
| + | update-grub | ||
| + | |||
| + | |||
| + | ===== Scripts tiers ===== | ||
| + | |||
| + | # btrfs-list: a wrapper to btrfs-progs to show a nice overview of your btrfs subvolumes and snapshots, a la 'zfs list' | ||
| + | # | ||
| + | # Check for the latest version at: | ||
| + | # https:// | ||
| + | # git clone https:// | ||
| + | # or wget https:// | ||
| + | # or curl -L https:// | ||
| + | |||
| + | ===== io disk ===== | ||
| + | |||
| + | -- source: https:// | ||
| + | |||
| + | Disable copy-on-write | ||
| + | |||
| + | Copy-On-write isn’t ideal for workloads that create or modify many small files, such as databases. Without disabling COW, you can heavily fragment the file system as explained above. | ||
| + | |||
| + | The best strategy for successfully running a database in a container is to disable COW on directory/ | ||
| + | |||
| + | The COW setting is stored as a file attribute and is modified with a utility called chattr. To disable COW for a MySQL container’s volume, run: | ||
| + | |||
| + | chattr -R +C / | ||
| + | | ||
| + | The directory / | ||
| + | |||
| + | -R indicates that want to recursively change the file attribute +C means we want to set the NOCOW attribute on the file/ | ||
| + | |||
| + | To verify, we can run: | ||
| + | |||
| + | < | ||
| + | $ lsattr /var/lib/ | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------- / | ||
| + | ---------------C / | ||
| + | </ | ||