GlusterFS – Size of Brick – Node im Volume is exceeded obwohl noch Speicher vorhanden

Eingesetzt wird GlusterFS in der Version 3.4.2 mit einem Distributed Filesystem über 3 Bricks. Alle Bricks haben die selbe Größe und wurden bisher, wie erwartet, beschrieben. Normalerweise sollte Gluster die Dateien über die Bricks verteilt schreiben und dabei darauf achten, dass die zu kopierende Datei nicht die Größe des freien Speichers eines Bricks überfüllt. Sollte dies der Fall sein, sollte automatisch ein passender Brick gewählt werden.

Nun nähert sich das Volume (vol1) dem Ende ist fast voll. Brick 1 hat noch ca. 55,8GB, Brick 2 ca. 10GB und Brick 3 nur noch 44,6GB frei. Nun wurden weitere Daten kopiert, wobei hierunter eine eine einzelne Datei mit über 41GB war. Leider wurde diese auf Brick 2 versucht zu schreiben, was in diesem Moment jedoch nur noch 10GB frei hatte und der Kopiervorgang fehlschlug.

1. Überprüfung des Volumes

#  gluster volume info vol1


Volume Name: vol1
 Type: Distribute
 Volume ID: 05bca65e-8a7f-4647-804a-7e1ed3f8b685
 Status: Started
 Number of Bricks: 3
 Transport-type: tcp
 Bricks:
 Brick1: 192.168.0.41:/media/node01/vol1
 Brick2: 192.168.0.21:/media/node02/vol1
 Brick3: 192.168.0.43:/media/node03/vol1
 Options Reconfigured:
 auth.allow: 192.168.0.*
 cluster.min-free-disk: 500MB

Soweit so gut, die Option cluster.min-free-disk ist auch nicht zu hoch gesetzt, sodass es eigentlich funktionieren sollte. Noch eine Überprüfung der einzelnen Bricks:

2. Überprüfung der Free Inode und einzelnen Brickeigenschaften

# gluster volume status vol1 detail


Status of volume: vol1
------------------------------------------------------------------------------
Brick                : Brick 192.168.0.41:/media/node01/vol1
Port                 : 49152
Online               : Y
Pid                  : 2929
File System          : ext4
Device               : /dev/md2
Mount Options        : rw,noatime,user_xattr,barrier=1,stripe=512,data=ordered
Inode Size           : 256
Disk Space Free      : 55.8GB
Total Disk Space     : 10.9TB
Inode Count          : 11426432
Free Inodes          : 11072722
------------------------------------------------------------------------------
Brick                : Brick 192.168.0.21:/media/node02/vol1
Port                 : 49154
Online               : Y
Pid                  : 2834
File System          : ext4
Device               : /dev/md2
Mount Options        : rw,noatime,user_xattr,barrier=1,stripe=512,data=ordered
Inode Size           : 256
Disk Space Free      : 10.0GB
Total Disk Space     : 10.9TB
Inode Count          : 11426432
Free Inodes          : 11064647
------------------------------------------------------------------------------
Brick                : Brick 192.168.0.43:/media/node03/vol1
Port                 : 49152
Online               : Y
Pid                  : 2841
File System          : ext4
Device               : /dev/md2
Mount Options        : rw,noatime,user_xattr,barrier=1,stripe=512,data=ordered
Inode Size           : 256
Disk Space Free      : 44.6GB
Total Disk Space     : 10.9TB
Inode Count          : 11426432
Free Inodes          : 11083681

Auch hier sieht alles gut aus. Da ich zwischenzeitlich keine Infos aus der Community erhalten hatte, machte ich mich an den Befehl Fix-Layout:

3. mit Fix-Layout soll die Gluster-Struktur korrigiert werden:

# gluster volume rebalance vol1 fix-layout start (force)
volume rebalance: vol1: success: Starting rebalance on volume vol1 has been successful.
ID: 73f7bcf9-5f5c-4857-9edd-84f1f4d68f30

Kontrolle des Status:

# gluster volume rebalance vol1 status

 Node Rebalanced-files          size       scanned      failures       skipped         status run time in secs
 ---------      -----------   -----------   -----------   -----------   -----------   ------------   --------------
 localhost                0        0Bytes             0             0             0    in progress           169.00
 localhost                0        0Bytes             0             0             0    in progress           169.00
 localhost                0        0Bytes             0             0             0    in progress           169.00
 192.168.0.21                0        0Bytes             0             0             0    in progress           169.00
 volume rebalance: vol1: success:

Ok soweit gut, danach dann noch ein Rebalance der einzelnen Bricks und der Neuverteilung des freien Speichers:

4. Gluster soll den freien Bereich auf den Bricks neu sortieren

# gluster volume rebalance vol1  start

 volume rebalance: vol1: success: Starting rebalance on volume vol1 has been successful.
 ID: 0bf73f9c-0a84-4b12-a37e-1ed8c667758a

Every 10,0s: gluster volume rebalance vol1 status                                                                            Tue Feb  4 15:19:33 2014

Node Rebalanced-files          size       scanned      failures       skipped         status run time in secs
 ---------      -----------   -----------   -----------   -----------   -----------   ------------   --------------
 localhost                0        0Bytes            72             0             0    in progress            22.00
 localhost                0        0Bytes            72             0             0    in progress            22.00
 localhost                0        0Bytes            72             0             0    in progress            22.00
 192.168.0.41                0        0Bytes           431             0             0    in progress            22.00
 volume rebalance: vol1: success:

Nun noch den Status prüfen:

# gluster volume rebalance vol1 status

 Node Rebalanced-files          size       scanned      failures       skipped         status run time in secs
 ---------      -----------   -----------   -----------   -----------   -----------   ------------   --------------
 localhost              525       476.2MB        330361             0         52227      completed          9554.00
 localhost              525       476.2MB        330361             0         52227      completed          9554.00
 localhost              525       476.2MB        330361             0         52227      completed          9554.00
 192.168.0.41             2712       115.7GB        333092             0         29084      completed         12808.00
 volume rebalance: vol1: success:

Obiges ist ein nicht zum Zusammenhang passendes Beispiel.  Der freie Speicher wurde tatsächlich so aufgeteilt, dass jeder Brick nahezu die selbe Größe an freien Speicher hat. Abschließend dannn ein erneutes kopieren der 41GB Datei und siehe da es klappt. Im übrigen muss nur ein Rebalance ausgeführt werden, also kein fix-layout zuvor. Bei mir kam es jedoch mit sinkendem freien Speicher immer wieder zu diesem Fehler, also das der falsche Brick angesteuert wurde. Mal Brick 3, dann Brick 2, sodass ich immer eine rebalance ausführen musste.

Eine abschließende Lösung habe ich leider noch nicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.