Btrfs-Balance schlägt aufgrund eines Enospc-Fehlers fehl

Btrfs-Balance schlägt aufgrund eines Enospc-Fehlers fehl

[von Stackoverflow übernommen, da ich dachte, das wäre wahrscheinlich der falsche Ort]

Ich teste derzeit btrfs als möglichen Ersatz für mein NAS mit ZFS. Ich habe 4 Geräte mit jeweils 20 GB erstellt und mithilfe der balance -dconvert=raid5Option ein btrfs-Dateisystem erstellt. Dann habe ich begonnen, das FS mit 5 GB großen Dateien zu füllen (im Moment habe ich 9 davon). Nachdem ich diese Dateien erstellt hatte (mit ddvon dev/zero), habe ich begonnen balance btrfs balance start. Nach einiger Zeit wird der Fehler ausgegeben error during balancing '.' - No space left on device. Das Syslog zeigt diesen Fehler an: btrfs: 4 enospc errors during balance.

Das erneute Ausführen von „balance“ wird -dusage=0(wie erwartet) erfolgreich abgeschlossen, aber balance -dusage=90oder einfach balanceohne Filter funktioniert nicht. Warum kümmere ich mich so darum? Ich habe getestet, was passiert, wenn man eine Festplatte aus einem RAID5-BTRFS-Volume entfernt, um zu sehen, ob keine Datenbeschädigung auftritt. Nachdem ich die Festplatte entfernt hatte, wollte ich eine weitere hinzufügen und die defekte entfernen. Dieser Vorgang schlug ebenfalls aufgrund von EnosPC-Fehlern fehl.

Weitere Informationen finden Sie weiter unten:

(der Einhängepunkt für das FS ist /mnt/raid/)

linux:/mnt/raid # btrfs filesystem show
Label: 'test_raid5'  uuid: 8b137115-974e-4f91-a243-ec6239c34761
    Total devices 4 FS bytes used 45.06GiB
    devid    4 size 20.00GiB used 16.03GiB path /dev/sde
    devid    3 size 20.00GiB used 17.00GiB path /dev/sdd
    devid    2 size 20.00GiB used 17.00GiB path /dev/sdc
    devid    1 size 20.00GiB used 16.04GiB path /dev/sdb

Label: none  uuid: 69c33622-1c80-4dc3-9c01-24c27def730c
    Total devices 1 FS bytes used 1.04GiB
    devid    1 size 18.92GiB used 3.04GiB path /dev/sda2

linux:/mnt/raid # btrfs filesystem df /mnt/raid/
Data, RAID5: total=48.00GiB, used=45.01GiB
System, RAID1: total=32.00MiB, used=12.00KiB
System: total=4.00MiB, used=0.00
Metadata, RAID1: total=1.00GiB, used=53.69MiB


linux:/mnt/raid # btrfs version
Btrfs v0.20-rc1+20130701


linux:/mnt/raid # uname -a
Linux linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) x86_64 x86_64 x86_64 GNU/Linux


linux:/mnt/raid # cat /etc/os-release
NAME=openSUSE
VERSION="13.1 (Bottle)"
VERSION_ID="13.1"
PRETTY_NAME="openSUSE 13.1 (Bottle) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:13.1"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://opensuse.org/"
ID_LIKE="suse"

Ich kann nicht glauben, dass ich noch mehr Speicherplatz hinzufügen muss, nur um mein BTRFS-Volume neu ausbalancieren zu können. Irgendwelche Ideen dazu?

Antwort1

Ich habe mich für btrfs statt zfs für mein „NAS“ entschieden. Ich habe beide zuvor getestet und muss zugeben, dass ich ZFS viel besser dokumentiert fand. Die Kommandozeilenschnittstelle hat mich wirklich überzeugt, daher war ZFS für mich die „bessere“ Wahl.

Aber es gab einen Showstopper: Wenn Sie 3 x 2 TB HDD für ZFS in RAID-5 haben und diese auf 4 x TB HDD erweitern möchten, ist das nicht einfach. Wenn Sie ZFS als 3 HDD-Pool haben und neue HDDs hinzufügen möchten, müssen Sie 3 weitere hinzufügen: für insgesamt 6 x 2 TB. Und wenn Sie 6 HDDs haben und Ihr FS erweitern möchten, müssen Sie 6 weitere hinzufügen usw. Ich hatte das Problem, dass mein NAS-Gehäuse nicht mehr als 4 Festplatten aufnehmen kann und ich mir den Kauf der 4 HDDs noch nicht leisten kann. In dieser Hinsicht ist Btrfs viel flexibler.

RAID-5/6 wurde jedoch zu Beginn wirklich schlecht unterstützt. Ich habe wie Sie einige Tests durchgeführt und dabei das Dateisystem beschädigt. Ich habe dieselben Tests in RAID-1 durchgeführt und es gab keine Probleme! Also habe ich mich für Btrfs in RAID-1 entschieden und anstatt Ubuntu LTS zu verwenden, verwende ich immer die neueste Ubuntu-Version, um das neueste Kernel- und Btrfs-Tools-Paket zu erhalten (ich verwende Ubuntu 15.04 und bereite mich auf den Wechsel zu 15.10 vor). Ich werde wahrscheinlich (nach dem Testen) endgültig auf RAID-5 umsteigen, sobald Ubuntu 16.04 veröffentlicht wird, und wahrscheinlich dabei bleiben. Ich habe in den jüngsten Kernel-Änderungsprotokollen gesehen, dass die Codebasis für RAID-5/6 viel ausgereifter ist.

Also zu deinem Problem. Wenn du Btrfs insbesondere in RAID-5 oder 6 ausprobieren möchtest,Bleiben Sie bei den aktuellsten Linux-Distributionen(z. B. Arch Linux, das neueste Ubuntu, Fedora usw.). Ihnen fehlt möglicherweise die Stabilität anderer Distributionen, aber für Btrfs sind sie wahrscheinlich viel stabiler.

Eine Anmerkung zu Ihrem „Anwendungsfall“: Ihr Btrfs-Dateisystem ist im Vergleich zur Größe der Dateien, die Sie darin ablegen, ziemlich klein. Es spiegelt wahrscheinlich nicht wirklich ein reales Szenario wider. Sie sollten große (Videos) und kleine Dateien (Fotos, Dokumente) erstellen und versuchen, Ihr Dateisystem bis zu 80 % zu füllen. Eine gute Möglichkeit, dies zu testen, besteht darin, viele Dateien auf Ihrem Dateisystem abzulegen und dann Dateisystem-Benchmarks auszuführen, nicht für das Benchmarking selbst, sondern für die Belastung, die sie mit sich bringen. Sie können denPhoronix-Testsuitedafür (zB phoronix-test-suite benchmark pts/disk).

verwandte Informationen