[Tuto/HowTo] [GNU/Linux] btrfs

Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

[Tuto/HowTo] [GNU/Linux] btrfs

Message par voxdemonix » ven. août 11, 2017 3:48 pm

musique d'ambiance : Sqeepo - Irish Swag

Introduction
  • Btrfs est un système de fichier permettant d'utiliser un ou plusieurs disques. Il offre des performances intéressantes,est compatible technologie flash (SSD, clés USB, etc). Btrfs est capable de créer des jbod ou des raids avec, ou non, réplication des données.
    Paramètres
    • -d gère les datas
      -m gère les métadonnées


Ajouter un device
  • Code : Tout sélectionner

    btrfs device add /dev/sdc /media/mountPoint
    Si le volume est strip il faut aussi lancer

Retirer un device
  • Code : Tout sélectionner

    mount /dev/sdb /media/mountPoint
    btrfs device delete /dev/sdc /media/mountPoint

Farm Link
Modifié en dernier par voxdemonix le lun. août 21, 2017 2:18 pm, modifié 8 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] btrfs

Message par voxdemonix » ven. août 11, 2017 3:53 pm

Code : Tout sélectionner

root@hostname:/# btrfs --help
usage: btrfs [--help] [--version] <group> [<group>...] <command> [<args>]

    btrfs subvolume create [-i <qgroupid>] [<dest>/]<name>
        Create a subvolume
    btrfs subvolume delete [options] <subvolume> [<subvolume>...]
        Delete subvolume(s)
    btrfs subvolume list [options] [-G [+|-]value] [-C [+|-]value] [--sort=gen,ogen,rootid,path] <path>
        List subvolumes (and snapshots)
    btrfs subvolume snapshot [-r] [-i <qgroupid>] <source> <dest>|[<dest>/]<name>
        Create a snapshot of the subvolume
    btrfs subvolume get-default <path>
        Get the default subvolume of a filesystem
    btrfs subvolume set-default <subvolid> <path>
        Set the default subvolume of a filesystem
    btrfs subvolume find-new <path> <lastgen>
        List the recently modified files in a filesystem
    btrfs subvolume show <subvol-path>
        Show more information of the subvolume
    btrfs subvolume sync <path> [<subvol-id>...]
        Wait until given subvolume(s) are completely removed from the filesystem.

    btrfs filesystem df [options] <path>
        Show space usage information for a mount point
    btrfs filesystem show [options] [<path>|<uuid>|<device>|label]
        Show the structure of a filesystem
    btrfs filesystem sync <path>
        Force a sync on a filesystem
    btrfs filesystem defragment [options] <file>|<dir> [<file>|<dir>...]
        Defragment a file or a directory
    btrfs filesystem resize [devid:][+/-]<newsize>[kKmMgGtTpPeE]|[devid:]max <path>
        Resize a filesystem
    btrfs filesystem label [<device>|<mount_point>] [<newlabel>]
        Get or change the label of a filesystem
    btrfs filesystem usage [options] <path> [<path>..]
        Show detailed information about internal filesystem usage .

    btrfs balance start [options] <path>
        Balance chunks across the devices
    btrfs balance pause <path>
        Pause running balance
    btrfs balance cancel <path>
        Cancel running or paused balance
    btrfs balance resume <path>
        Resume interrupted balance
    btrfs balance status [-v] <path>
        Show status of running or paused balance

    btrfs device add [options] <device> [<device>...] <path>
        Add a device to a filesystem
    btrfs device delete <device> [<device>...] <path>    btrfs device remove <device> [<device>...] <path>
        Remove a device from a filesystem
    btrfs device scan [(-d|--all-devices)|<device> [<device>...]]
        Scan devices for a btrfs filesystem
    btrfs device ready <device>
        Check device to see if it has all of its devices in cache for mounting
    btrfs device stats [-z] <path>|<device>
        Show current device IO stats.
    btrfs device usage [options] <path> [<path>..]
        Show detailed information about internal allocations in devices.

    btrfs scrub start [-BdqrRf] [-c ioprio_class -n ioprio_classdata] <path>|<device>
        Start a new scrub. If a scrub is already running, the new one fails.
    btrfs scrub cancel <path>|<device>
        Cancel a running scrub
    btrfs scrub resume [-BdqrR] [-c ioprio_class -n ioprio_classdata] <path>|<device>
        Resume previously canceled or interrupted scrub
    btrfs scrub status [-dR] <path>|<device>
        Show status of running or finished scrub

    btrfs check [options] <device>
        Check structural inegrity of a filesystem (unmounted).

    btrfs rescue chunk-recover [options] <device>
        Recover the chunk tree by scanning the devices one by one.
    btrfs rescue super-recover [options] <device>
        Recover bad superblocks from good copies
    btrfs rescue zero-log <device>
        Clear the tree log. Usable if it's corrupted and prevents mount.

    btrfs restore [options] <device> <path> | -l <device>
        Try to restore files from a damaged filesystem (unmounted)

    btrfs inspect-internal inode-resolve [-v] <inode> <path>
        Get file system paths for the given inode
    btrfs inspect-internal logical-resolve [-Pv] [-s bufsize] <logical> <path>
        Get file system paths for the given logical address
    btrfs inspect-internal subvolid-resolve <subvolid> <path>
        Get file system paths for the given subvolume ID.
    btrfs inspect-internal rootid <path>
        Get tree ID of the containing subvolume of path.
    btrfs inspect-internal min-dev-size [options] <path>
        Get the minimum size the device can be shrunk to. The

    btrfs property get [-t <type>] <object> [<name>]
        Gets a property from a btrfs object.
    btrfs property set [-t <type>] <object> <name> <value>
        Sets a property on a btrfs object.
    btrfs property list [-t <type>] <object>
        Lists available properties with their descriptions for the given object.

    btrfs send [-ve] [-p <parent>] [-c <clone-src>] [-f <outfile>] <subvol> [<subvol>...]
        Send the subvolume(s) to stdout.
    btrfs receive [-ve] [-f <infile>] [--max-errors <N>] <mount>
        Receive subvolumes from stdin.

    btrfs quota enable <path>
        Enable subvolume quota support for a filesystem.
    btrfs quota disable <path>
        Disable subvolume quota support for a filesystem.
    btrfs quota rescan [-sw] <path>
        Trash all qgroup numbers and scan the metadata again with the current config.

    btrfs qgroup assign [options] <src> <dst> <path>
        Assign SRC as the child qgroup of DST
    btrfs qgroup remove <src> <dst> <path>
        Remove a child qgroup SRC from DST.
    btrfs qgroup create <qgroupid> <path>
        Create a subvolume quota group.
    btrfs qgroup destroy <qgroupid> <path>
        Destroy a quota group.
    btrfs qgroup show -pcreFf [--sort=qgroupid,rfer,excl,max_rfer,max_excl] <path>
        Show subvolume quota groups.
    btrfs qgroup limit [options] <size>|none [<qgroupid>] <path>
        Set the limits a subvolume quota group.

    btrfs replace start [-Bfr] <srcdev>|<devid> <targetdev> <mount_point>
        Replace device of a btrfs filesystem.
    btrfs replace status [-1] <mount_point>
        Print status and progress information of a running device replace
    btrfs replace cancel <mount_point>
        Cancel a running device replace operation.

    btrfs help [--full]
        Display help information
    btrfs version
        Display btrfs-progs version

Use --help as an argument for information on a specific group or command.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] btrfs - JBOD

Message par voxdemonix » ven. août 11, 2017 4:04 pm

JBOD
metadata mirrored, data not mirrored and not striped

Introduction
  • Parmi toutes les méthodes que j'ai testé (entre autre : mdadm, zfs, glusterfs, mhddfs), btrfs offre la méthode la plus simple de mise en place.
    Voyons ensemble comment créer un JBOD avec btrfs.
    Pour rappel un JBOD est un agrégat (une addition) de plusieurs disques. Btrfs accepte de commencer avec un seul disque et d'en ajouter par la suite.
    Les méta-données sont dupliquées sur chaque disque, les données ne sont ni découpées (strip) ni dupliquées (mirror).
    Le côté dommage est qu'au niveau du montage il y a un Point of Failure. En effet dans votre fichier /etc/fstab pour effectuer le montage vous devrez indiquer un seul des disques de la partition JBOD. Si ce disque plante la partition ne sera plus montable sans modifier le fichier /etc/fstab. (ndlr: ce problème doit pouvoir être hacké via script bash)
    En cas de défaillance d'un espace mémoire, les données présentes sur les autres espaces mémoire sont toujours accessible. Par contre les données sur le disque cassé sont bien entendu perdues.


Mise en place
Installez les pré-requis Listez les disques
  • Code : Tout sélectionner

    fdisk -l
    Récupérez les chemins de vos disques (par exemple /dev/sdb).
Créez la "partition" btrfs sur un ou plusieurs disques (vous pourrez en ajouter par la suite)
    • screenshot-2017_08_11-Tuto-BTRFS-Creation_JBOD_01.png
Création du point de montage Montez la "partition" btrfs (vous pouvez choisir n'importe quel disque de la "partition") Récupérez l'UID de n'importe lequel de vos disques participant à "la grappe"
  • Code : Tout sélectionner

    blkid | grep "btrfs" | grep -E " UUID=\"([0-9a-z]{1,}[\-]{0,}){0,}\""
Éditez le fichier /etc/fstab Adaptez puis ajoutez la ligne suivante
  • Code : Tout sélectionner

    UUID=blablabla-uid-de-votre-disque-blablabla /media/mountPoint           btrfs   defaults,rw      0  0
    UUID=blablabla-uid-de-votre-disque-blablabla - l"UUID récupéré précédemment
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par voxdemonix le jeu. sept. 21, 2017 3:58 pm, modifié 6 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] btrfs

Message par voxdemonix » mer. août 16, 2017 3:44 pm

emplacement réservé
Modifié en dernier par voxdemonix le lun. août 21, 2017 2:18 pm, modifié 1 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] btrfs

Message par voxdemonix » lun. août 21, 2017 2:18 pm

Raid 0 strip
metadata mirrored, strip, linear data allocation
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] btrfs

Message par voxdemonix » lun. août 21, 2017 2:18 pm

Foire Aux Questions

La commande df est-elle toujours fiable ?
  • Réponse : Non, le fonctionnement interne de btrfs perturbe df. Ainsi de l'espace libre ne sera pas listé par df. (source)
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Qui est en ligne

Utilisateurs parcourant ce forum : CommonCrawl [Bot] et 0 invité