issue94:labo_linux_1
Différences
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 | ||
issue94:labo_linux_1 [2015/03/27 19:03] – [16] fredphil91 | issue94:labo_linux_1 [2015/04/01 10:40] (Version actuelle) – [18] auntiee | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
This filesystem rose above the radar of many systems administrators even before it was claimed to be stable, since the brief was impressive. It has a features list that contains not only RAID 0 and 1 capacities - within the filesystem itself, not having to mess around with mdadm any more - but also subvolumes, snapshots and copy-on-write. In practice, this means that previously, GNU/Linux systems administrators who needed to administer large, complex file-systems while ensuring no data could ever be lost, either cobbled together various techniques to achieve what they needed, or looked towards more exotic offerings from large server vendors. Sun Microsystems’ ZFS is one such, and probably stands as one of the sources of inspiration for BTRFS. However, licensing concerns mean that ZFS may never get into the Linux kernel code base. Its use on Linux systems has been achieved only through the FUSE userland-based mechanism, which effectively curtails its use for a system’s root disk.** | This filesystem rose above the radar of many systems administrators even before it was claimed to be stable, since the brief was impressive. It has a features list that contains not only RAID 0 and 1 capacities - within the filesystem itself, not having to mess around with mdadm any more - but also subvolumes, snapshots and copy-on-write. In practice, this means that previously, GNU/Linux systems administrators who needed to administer large, complex file-systems while ensuring no data could ever be lost, either cobbled together various techniques to achieve what they needed, or looked towards more exotic offerings from large server vendors. Sun Microsystems’ ZFS is one such, and probably stands as one of the sources of inspiration for BTRFS. However, licensing concerns mean that ZFS may never get into the Linux kernel code base. Its use on Linux systems has been achieved only through the FUSE userland-based mechanism, which effectively curtails its use for a system’s root disk.** | ||
- | BTRFS est un tout nouveau | + | BTRFS est un système de fichiers |
- | Ce système de fichiers est apparu sur le radar de nombreux administrateurs système avant même d' | + | Ce système de fichiers est apparu sur le radar de nombreux administrateurs système avant même d' |
====== 2 ====== | ====== 2 ====== | ||
Ligne 17: | Ligne 17: | ||
Installing a system with a recent version of Ubuntu is a breeze, since they already have the appropriate drivers built into the kernel, and helper libraries and tools are available in the btrfs-tools package. I will be using Ubuntu 14.10 version compiled for i386, but any version of 14.10, 14.04 or Linux Mint 17 will work just as well. If using a distribution that lacks them, you may need to boot into the Live CD environment, | Installing a system with a recent version of Ubuntu is a breeze, since they already have the appropriate drivers built into the kernel, and helper libraries and tools are available in the btrfs-tools package. I will be using Ubuntu 14.10 version compiled for i386, but any version of 14.10, 14.04 or Linux Mint 17 will work just as well. If using a distribution that lacks them, you may need to boot into the Live CD environment, | ||
- | Cependant, BTRFS n'a pas encore été beaucoup vu par l' | + | Cependant, BTRFS n'a pas encore été beaucoup vu par l' |
INSTALLATION | INSTALLATION | ||
- | L' | + | L' |
====== 3 ====== | ====== 3 ====== | ||
Ligne 33: | Ligne 33: | ||
A simple partition scheme would be as follows. Please note (regarding the image below) /dev/sda was the USB pendrive I was booting from, while /dev/sdb was the (external) hard drive I was installing the system on.** | A simple partition scheme would be as follows. Please note (regarding the image below) /dev/sda was the USB pendrive I was booting from, while /dev/sdb was the (external) hard drive I was installing the system on.** | ||
- | Démarrez le Live CD, et dans l' | + | Démarrez le Live CD, et dans l' |
• Une première partition /boot. Elle doit être de la famille ext*, alors pourquoi pas ext4. Cette partition doit être d'au moins 200 ou 300 Mo, mais 512 Mo est probablement plus sage pour laisser un peu d' | • Une première partition /boot. Elle doit être de la famille ext*, alors pourquoi pas ext4. Cette partition doit être d'au moins 200 ou 300 Mo, mais 512 Mo est probablement plus sage pour laisser un peu d' | ||
• Une seconde partition pour la racine (/) et le reste de votre système. Pour une installation simple, il n'est pas nécessaire de créer une partition /home séparée, mais nous y reviendrons. | • Une seconde partition pour la racine (/) et le reste de votre système. Pour une installation simple, il n'est pas nécessaire de créer une partition /home séparée, mais nous y reviendrons. | ||
Ligne 39: | Ligne 39: | ||
Lorsque vous créez une nouvelle partition, il suffit de choisir « btrfs » au lieu de « ext4 ». Les autres options fonctionnent de la manière habituelle. Dans ce cas, je vais créer une partition de 15 Go - qui sera redimensionnée à la hausse plus loin. | Lorsque vous créez une nouvelle partition, il suffit de choisir « btrfs » au lieu de « ext4 ». Les autres options fonctionnent de la manière habituelle. Dans ce cas, je vais créer une partition de 15 Go - qui sera redimensionnée à la hausse plus loin. | ||
- | Un schéma de partition simple serait le suivant. S'il-vous-plaît remarquez (concernant l' | + | Un schéma de partition simple serait le suivant. S'il vous plaît remarquez (concernant l' |
====== 4 ====== | ====== 4 ====== | ||
Ligne 55: | Ligne 55: | ||
That’s right, beside the /dev/sda1 boot partition that seems to be correctly mounted, we see the root /dev/sda2 partition mounted not once, but twice! But, it we take a closer look at the output from “mount”, | That’s right, beside the /dev/sda1 boot partition that seems to be correctly mounted, we see the root /dev/sda2 partition mounted not once, but twice! But, it we take a closer look at the output from “mount”, | ||
- | La nécessité que la partition /boot soit séparée | + | La partition /boot doit séparée parce que, jusqu' |
Dans les versions plus récentes d' | Dans les versions plus récentes d' | ||
Ligne 65: | Ligne 65: | ||
Maintenant, redémarrez votre système et ouvrez un terminal. Si vous saisissez les commandes « mount » ou « df », vous devriez voir quelque chose d'un peu bizarre (voir en haut à droite). | Maintenant, redémarrez votre système et ouvrez un terminal. Si vous saisissez les commandes « mount » ou « df », vous devriez voir quelque chose d'un peu bizarre (voir en haut à droite). | ||
- | C'est vrai, à côté de la partition de démarrage /dev/sda1 qui semble être montée correctement, | + | C'est vrai, à côté de la partition de démarrage /dev/sda1 qui semble être montée correctement, |
====== 5 ====== | ====== 5 ====== | ||
Ligne 81: | Ligne 81: | ||
# umount /dev/sda2** | # umount /dev/sda2** | ||
- | Les sous-volumes sont une des nouvelles fonctionnalités de BTRFS, par rapport aux systèmes de fichiers plus traditionnels. Avec ce système, les différents espaces peuvent partager l' | + | Les sous-volumes sont une des nouvelles fonctionnalités de BTRFS, par rapport aux systèmes de fichiers plus traditionnels. Avec ce système, les différents espaces peuvent partager l' |
OpenSUSE va même plus loin dans ce principe, en créant des sous-volumes pour beaucoup d' | OpenSUSE va même plus loin dans ce principe, en créant des sous-volumes pour beaucoup d' | ||
Ligne 159: | Ligne 159: | ||
# echo "/ | # echo "/ | ||
- | (S'il-vous-plaît, assurez-vous que vous utilisez *deux* symboles >> - sinon vous allez écraser le fichier complet) | + | (S'il vous plaît, assurez-vous que vous utilisez *deux* symboles >> - sinon vous allez écraser le fichier complet.) |
- | Bien sûr, c'est encore mieux d' | + | Bien sûr, c'est encore mieux d' |
====== 8 ====== | ====== 8 ====== | ||
Ligne 173: | Ligne 173: | ||
When we installed the system, we chose to create a rather small partition for use as our BTRFS root filesystem. A rather large amount of space is still unused, and available should we wish to increase our disk space.** | When we installed the system, we chose to create a rather small partition for use as our BTRFS root filesystem. A rather large amount of space is still unused, and available should we wish to increase our disk space.** | ||
- | A noter que le même UUID est utilisé pour les trois sous-volumes de la partition BTRFS. Ils ont aussi des UUID individuels de sous-volume, | + | Remarquez |
- | Il est important de noter que le contenu des sous-volumes | + | Il est important de noter que le contenu des sous-volumes |
- | AJOUT DE PARTITIONS POUR AUGMENTER L'ESPACE DISPONIBLE | + | Ajout de partitions pour augmenter l'espace disponible |
- | Lorsque nous avons installé le système, nous avons choisi de créer une assez petite partition pour notre système de fichiers racine BTRFS. Une assez grande quantité d' | + | Lorsque nous avons installé le système, nous avons choisi de créer une assez petite partition pour notre système de fichiers racine BTRFS. Une assez grande quantité d' |
====== 9 ====== | ====== 9 ====== | ||
Ligne 196: | Ligne 196: | ||
As a side note, it can be observed that the BTRFS subsystem has correctly recognized the physical disk as an SSD unit, and has accordingly activated TRIM.** | As a side note, it can be observed that the BTRFS subsystem has correctly recognized the physical disk as an SSD unit, and has accordingly activated TRIM.** | ||
- | Notre système de fichiers racine est monté, et le système d' | + | Notre système de fichiers racine est monté, et le système d' |
Cependant, nous pouvons utiliser l' | Cependant, nous pouvons utiliser l' | ||
- | Maintenant, nous pouvons ajouter cette nouvelle partition à /dev/sda2, pour étendre l' | + | Maintenant, nous pouvons ajouter cette nouvelle partition à /dev/sda2, pour étendre l' |
# btrfs dev add /dev/sda3 / | # btrfs dev add /dev/sda3 / | ||
Ligne 207: | Ligne 207: | ||
Done, had to relocate 10 out of 10 chunks | Done, had to relocate 10 out of 10 chunks | ||
- | On peut observer de façon annexe | + | Notons en passant |
====== 10 ====== | ====== 10 ====== | ||
Ligne 237: | Ligne 237: | ||
Btrfs v3.14.1 | Btrfs v3.14.1 | ||
- | CONFIGURATION | + | Configuration |
Une autre caractéristique utile de BTRFS est que RAID 0 et RAID 1 sont tous les deux inclus dans le système de fichiers lui-même. RAID 0, ou « entrelacement », signifie que les données sont écrites sur plus d'un disque dur ou une partition. C'est ce qui a été appliqué dans la section ci-dessus. | Une autre caractéristique utile de BTRFS est que RAID 0 et RAID 1 sont tous les deux inclus dans le système de fichiers lui-même. RAID 0, ou « entrelacement », signifie que les données sont écrites sur plus d'un disque dur ou une partition. C'est ce qui a été appliqué dans la section ci-dessus. | ||
- | D' | + | En revanche, RAID 1, ou « miroir », permet au système de fichiers de contenir plusieurs copies à la fois de nos fichiers et des métadonnées du système de fichiers. |
====== 11 ====== | ====== 11 ====== | ||
Ligne 265: | Ligne 265: | ||
Metadata, RAID1: total=1.00GiB, | Metadata, RAID1: total=1.00GiB, | ||
- | Ici, nous voyons que les éléments Système et Métadonnées sont dupliqués - avec, par défaut, une copie sur chaque périphérique. Les données de l' | + | Ici, nous voyons que les éléments Système et Métadonnées sont dupliqués - avec, par défaut, une copie sur chaque périphérique. Les données de l' |
# btrfs bal start / -dconvert=raid1 | # btrfs bal start / -dconvert=raid1 | ||
Ligne 293: | Ligne 293: | ||
Metadata, RAID1: total=1.00GiB, | Metadata, RAID1: total=1.00GiB, | ||
- | SUPPRIMER DES PARTITIONS | + | Supprimer des partitions |
- | C'est bien d' | + | C'est bien d' |
- | Dans ce test, nous allons supprimer /dev/sda2 de notre système de fichiers BTRFS, ne laissant que /dev/sda1 utilisé pour /boot, formaté en ext4, et les 45 GiByte | + | Dans ce test, nous allons supprimer /dev/sda2 de notre système de fichiers BTRFS, ne laissant que /dev/sda1 utilisé pour /boot, formaté en ext4, et les 45 GiO de /dev/sda3 pour nos données système et utilisateur. |
====== 13 ====== | ====== 13 ====== | ||
Ligne 320: | Ligne 320: | ||
ERROR: error removing the device '/ | ERROR: error removing the device '/ | ||
- | C' | + | C' |
Alors, re-équilibrez le système, puis retirez /dev/sda2 : | Alors, re-équilibrez le système, puis retirez /dev/sda2 : | ||
Ligne 363: | Ligne 363: | ||
10485760 bytes (10 MB) copied, 0,720581 s, 14,6 MB/s | 10485760 bytes (10 MB) copied, 0,720581 s, 14,6 MB/s | ||
- | La prochaine fois que nous redémarrererons | + | La prochaine fois que nous redémarrerons |
Ensuite, gparted ou un outil similaire peut être utilisé pour enlever l' | Ensuite, gparted ou un outil similaire peut être utilisé pour enlever l' | ||
Ligne 377: | Ligne 377: | ||
This is just one of the capabilities of the BTRFS snapshot mechanism. In essence, a snapshot is a means of taking an image of a volume. This snapshot will, in essence, remain unaltered, while we do our meddling with the live volume. BTRFS’s implementation of this feature is actually quite efficient, since only differential information is recorded about changes to files that have taken place since the snapshot was taken. Reverting to the snapshot simply consists of rolling back these changes, leaving the file system in its original state.** | This is just one of the capabilities of the BTRFS snapshot mechanism. In essence, a snapshot is a means of taking an image of a volume. This snapshot will, in essence, remain unaltered, while we do our meddling with the live volume. BTRFS’s implementation of this feature is actually quite efficient, since only differential information is recorded about changes to files that have taken place since the snapshot was taken. Reverting to the snapshot simply consists of rolling back these changes, leaving the file system in its original state.** | ||
- | UTILISER LES SNAPSHOTS | + | Utiliser les snapshots |
- | Si vous êtes comme moi, vous avez, à un moment donné, fait de Mauvaises Choses | + | Si vous êtes comme moi, vous avez, à un moment donné, fait de mauvaises choses |
- | Ne serait-ce pas super si nous avions un filet de sécurité, qui nous permettrait de revenir sur des modifications faite au disque système ? Retourner à un état qui fonctionnait serait tout simplement une question de redémarrage de la machine, et voilà ! | + | Ne serait-ce pas super si nous avions un filet de sécurité qui nous permettrait de revenir sur des modifications faite au disque système ? Retourner à un état qui fonctionnait serait tout simplement une question de redémarrage de la machine, et voilà ! |
- | C'est justement l'une des capacités du mécanisme d' | + | C'est justement l'une des capacités du mécanisme d' |
====== 16 ====== | ====== 16 ====== | ||
Ligne 403: | Ligne 403: | ||
ID 279 gen 873 top level 5 path @home-snap** | ID 279 gen 873 top level 5 path @home-snap** | ||
- | Nous devons juste faire un point avant de commencer les tests : les instantanés peuvent être faits uniquement sur les sous-volumes. C'est une autre raison pour laquelle il est important de planifier à l' | + | Il y a une chose à souligner |
Commençons par un exemple simple. Supposons que nous voulions faire un instantané du sous-volume /home. Appelons-le home_snap. Commencez par monter la partition parent sur /mnt : | Commençons par un exemple simple. Supposons que nous voulions faire un instantané du sous-volume /home. Appelons-le home_snap. Commencez par monter la partition parent sur /mnt : | ||
Ligne 417: | Ligne 417: | ||
ID 258 gen 878 top level 5 path @home | ID 258 gen 878 top level 5 path @home | ||
ID 264 gen 851 top level 5 path @var | ID 264 gen 851 top level 5 path @var | ||
- | ID 279 gen 873 top level 5 path @home-snap** | + | ID 279 gen 873 top level 5 path @home-snap |
====== 17 ====== | ====== 17 ====== | ||
Ligne 437: | Ligne 437: | ||
The very same technique can be used with any snapshot on your system. So if you wish to roll back modifications to the system configuration or installed programs, subvolumes @ and @var are the ones to snapshot. Just remember to create new snapshots *before* making the alterations! Snapshots cost very little space...** | The very same technique can be used with any snapshot on your system. So if you wish to roll back modifications to the system configuration or installed programs, subvolumes @ and @var are the ones to snapshot. Just remember to create new snapshots *before* making the alterations! Snapshots cost very little space...** | ||
+ | |||
+ | Maintenant, faisons quelque chose de vraiment stupide, comme : | ||
+ | |||
+ | # rm -r / | ||
+ | # ls /home/alan | ||
+ | |||
+ | Maintenant il est temps de revenir à notre snapshot. Puisqu' | ||
+ | |||
+ | Maintenant, redémarrez le système et le répertoire d' | ||
+ | |||
+ | # mount | ||
+ | /dev/sda3 on / type btrfs (rw, | ||
+ | /dev/sda3 on /home type btrfs (rw, | ||
+ | /dev/sda3 on /var type btrfs (rw, | ||
+ | /dev/sda1 on /boot type ext4 (rw) | ||
+ | |||
+ | La même technique peut être utilisée avec n' | ||
====== 18 ====== | ====== 18 ====== | ||
Ligne 447: | Ligne 464: | ||
Finally, some tools are starting to become available to manage snapshots in the Ubuntu repositories – snapper and apt-btrfs-snapshot both may be worth some investigation… I may report on them later on in these columns, so stay tuned.** | Finally, some tools are starting to become available to manage snapshots in the Ubuntu repositories – snapper and apt-btrfs-snapshot both may be worth some investigation… I may report on them later on in these columns, so stay tuned.** | ||
+ | |||
+ | Quelques mots pour conclure | ||
+ | |||
+ | Tout ce que nous avons fait jusqu' | ||
+ | |||
+ | Un deuxième point qui doit être noté est que, avec ces techniques, vous pouvez très facilement endommager votre système - ça m'est arrivé. Alors soyez prudents, et commencez par jouer avec un ordinateur et un disque dur dont le contenu vous importe peu. | ||
+ | |||
+ | Enfin, certains outils commencent à devenir disponibles dans les dépôts Ubuntu pour gérer les snapshots - snapper et apt-btrfs-snapshot méritent sans doute d' | ||
issue94/labo_linux_1.1427479384.txt.gz · Dernière modification : 2015/03/27 19:03 de fredphil91