Die Grundlagen
Das btrfs-Dateisystem wurde entwickelt, um die wachsenden Skalierbarkeitsanforderungen großer Speichersubsysteme zu erfüllen. Da das btrfs-Dateisystem in seiner Implementierung B-Bäume verwendet, leitet sich sein Name vom Namen dieser Datenstrukturen ab, obwohl es sich nicht um ein echtes Akronym handelt. Ein B-Baum ist eine baumähnliche Datenstruktur, die es Dateisystemen und Datenbanken ermöglicht, effizient auf große Datenblöcke zuzugreifen und diese zu aktualisieren, egal wie groß der Baum wird.
Das btrfs-Dateisystem bietet die folgenden wichtigen Funktionen:
- Mit der Copy-on-Write-Funktion können Sie sowohl lesbare als auch beschreibbare Snapshots erstellen und ein Dateisystem auf einen früheren Zustand zurücksetzen, selbst nachdem Sie es von einem ext3- oder ext4-Dateisystem konvertiert haben.
- Die Prüfsummenfunktion stellt die Datenintegrität sicher.
- Transparente Komprimierung spart Speicherplatz.
- Transparente Defragmentierung verbessert die Leistung.
- Die integrierte Verwaltung logischer Volumes ermöglicht Ihnen die Implementierung von RAID 0-, RAID 1- oder RAID 10-Konfigurationen und das dynamische Hinzufügen und Entfernen von Speicherkapazität.
Ab CentOS/RHEL 6 Update 3 können Sie mit dem Boot-ISO ein btrfs-Root-Dateisystem konfigurieren. Vor CentOS/RHEL 6 Update 3 konnten Sie während der Installation kein btrfs-Root-Dateisystem erstellen.
Mit UEK R3 unterstützt btrfs die folgenden zusätzlichen Funktionen:
- Mit der Sende-/Empfangsfunktion können Sie die Unterschiede zwischen zwei Subvolumes aufzeichnen, die entweder Snapshots desselben Subvolumes oder übergeordnete und untergeordnete Subvolumes sein können.
- Quota-Gruppen (qgroups) ermöglichen es Ihnen, unterschiedliche Größenbeschränkungen für ein Volume und seine Subvolumes festzulegen.
- Sie können Geräte ersetzen, ohne den Zugriff auf das Dateisystem aufzuheben oder anderweitig zu unterbrechen.
Dieses Dokument soll erklären, wie man ein BTRFS-Dateisystem auf einem einzelnen Gerät auf einem CentOS/RHEL-System erstellt. Die folgenden Schritte wurden auf einer virtuellen Maschine mit CentOS/RHEL 7 und einer virtuellen Festplatte mit einer Größe von 5 GB durchgeführt.
Erstellen Sie ein BTRFS-Dateisystem
Fügen Sie die gewünschte Festplatte hinzu, auf der das Btrfs-Dateisystem konfiguriert werden soll, und stellen Sie sicher, dass das System die Festplatte erkennt:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk ├─xvda1 202:1 0 1G 0 part /boot └─xvda2 202:2 0 19G 0 part ├─ol-root 251:0 0 17G 0 lvm / └─ol-swap 251:1 0 2G 0 lvm [SWAP] xvdb 202:16 0 5G 0 disk
In der obigen Ausgabe wird unsere Festplatte „xvdb“ sein. Bei den Geräten kann es sich um einfache Festplattenpartitionen, Loopback-Geräte (d. h. Festplatten-Images im Arbeitsspeicher), Multipath-Geräte oder LUNs handeln, die RAID in Hardware implementieren.
1. Installieren Sie das btrfs-progs-Paket, falls es noch nicht auf Ihrem System installiert ist:
# yum install btrfs-progs
2. Erstellen Sie das Btrfs-Dateisystem mit dem Befehl mkfs.brtfs:
# mkfs.btrfs /dev/xvdb btrfs-progs v4.9.1 See http://btrfs.wiki.kernel.org for more information. Detected a SSD, turning off metadata duplication. Mkfs with -m dup if you want to force metadata duplication. Label: (null) UUID: c7d1687d-fe91-4837-b14a-4870466d1a3f Node size: 16384 Sector size: 4096 Filesystem size: 5.00GiB Block group profiles: Data: single 8.00MiB Metadata: single 8.00MiB System: single 4.00MiB SSD detected: yes Incompat features: extref Number of devices: 1 Devices: ID SIZE PATH 1 5.00GiB /dev/xvdb
3. Verwenden Sie den Befehl btrfs filesystem show, um zu überprüfen, ob das Dateisystem auf dem Gerät erstellt wurde:
# btrfs filesystem show Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
Der obige Befehl zeigt alle Btrfs-Dateisysteme im System an
oder
# btrfs filesystem show /dev/xvdb Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
Der obige Befehl zeigt Informationen über das btrfs-Dateisystem nur auf dem angegebenen Gerät an, das benötigt wird (/dev/xvdb)
4. Mounten Sie das entsprechende Dateisystem:
# mount /dev/xvdb /btrfsTest
5. Stellen Sie sicher, dass das btrfs-Dateisystem jetzt gemountet ist:
# mount | grep btrfs /dev/xvdb on /btrfsTest type btrfs (rw,relatime,seclabel,ssd,space_cache)
Fragen Sie ein BTRFS-Dateisystem ab
Führen Sie den Befehl btrfs filesystem df aus, um genauere Informationen über den Speicherplatz anzuzeigen, der von einem btrfs-Dateisystem verwendet wird.
# btrfs filesystem df /btrfsTest/ Data, single: total=8.00MiB, used=64.00KiB System, single: total=4.00MiB, used=16.00KiB Metadata, single: total=264.00MiB, used=112.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
Wir können den regulären df-Befehl verwenden, um das Dateisystem abzufragen, aber die angezeigten Informationen sind möglicherweise nicht genau.
# df -h /btrfsTest/ Filesystem Size Used Avail Use% Mounted on /dev/xvdb 5.0G 17M 4.8G 1% /btrfsTest
Weitere Informationen und Optionen finden Sie auf der Handbuchseite von mkfs.btrfs:
# man mkfs.btrfs