Ubuntu 16.04 ext4 erstellen: 500 TB Dateisystem

Ubuntu 16.04 ext4 erstellen: 500 TB Dateisystem

Der ext4-Standard schlägt vor, dass man ein Dateisystem mit einer Größe von bis zu 1 EB erstellen kann.

Mein Ziel ist es, ein 500 TB großes Ext4-Dateisystem unter Ubuntu 16.0.4 zu erstellen. Sehen Sie sich meinen Befehl zur FS-Erstellung an:

sudo mkfs.ext4 -m 0 -J device=/dev/md125p1 /dev/md125p2 -b 4096 -E stride=128,stripe-width=6400,lazy_itable_init=0,lazy_journal_init=0

Mit diesem Befehl erhalte ich folgenden Fehler:

Beim Einrichten des Superblocks kann kein Dateisystem mit der angeforderten Anzahl von Inodes erstellt werden

Ich habe versucht, den Wert für Bytes pro Inode mit der Option -i in mkfs.ext4 auf einen sehr hohen Wert zu setzen, aber immer noch ohne Erfolg.

Mir ist bewusst, dass RHEL ein ext4-Dateisystem mit maximal 50 TB empfiehlt. Ist es trotzdem möglich, mit ext4 ein Dateisystem mit 500 TB zu erstellen?

Antwort1

Dies sollte funktionieren. Mit einer modernen Version von mke2fs:

% mkfs.ext4 /tmp/test.img 500T
mke2fs 1.45.4 (23-Sep-2019)
Creating regular file /tmp/test.img
Creating filesystem with 134217728000 4k blocks and 4259840000 inodes
Filesystem UUID: 00257d43-0298-4aaf-8cca-37e34f3d1bb8
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
    2560000000, 3855122432, 5804752896, 12800000000, 17414258688, 
    26985857024, 52242776064, 64000000000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

Die Anzahl der Inodes wird automatisch begrenzt (2**32)-1, sodass die in der anderen Antwort geäußerte Besorgnis kein Problem darstellt.

Außerdem wird die Verwendung einer Blockgröße > 4 KB auf x86 nicht unterstützt, da Linux-Beschränkungen erfordern, dass die Blockgröße nicht größer als die VM-Seitengröße sein kann. Daher können Sie auf dem PowerPC eine Blockgröße von bis zu 64 KB verwenden, da dieser eine Seitengröße von 64 KB hat.

Ich möchte außerdem sagen, dass ich Ihnen dringend empfehle, bei der Verwendung wirklich großer Dateisysteme die neueste Version von zu verwenden e2fsprogsund nicht die veraltete Version, die in Ubuntu 16.04 enthalten ist. In den letzten 3 Jahren wurden viele Fehler behoben, darunter auch einige, die sich auf sehr große Dateisysteme beziehen.

Antwort2

Meinen Untersuchungen zufolge unterstützt ext4 möglicherweise keine 500 TB für 4K-Blöcke.

Eine Standardpartition von EXT3/EXT4 hat ein Bytes-pro-Inode-Verhältnis von einem Inode alle 16384 Bytes (16 KB).
Somit haben wir:

500 GB = 500 * 1024 * 1024 * 1024 * 1024 = 549 755 813 888 000 bytes
549 755 813 888 000 bytes / 16384 = 33 554 432 000 inodes

Die Anzahl der Inodes ist eine 32-Bit-Zahl, daher beträgt die maximal mögliche Anzahl an Inodes auf jedem ext2/3/4-Dateisystem 2^32-1 oder 4.294.967.295 Inodes.

Da 33.554.432.000 viel größer ist als 4.294.967.295, ist die Zuweisung dieser Anzahl von Inodes unmöglich. Sie benötigen 8 Mal mehr als die maximale Anzahl von Inodes.

So wie ich das sehe, haben Sie folgende Optionen:

  • Versuchen Sie, ein Inode-Limit zu erzwingen:-N 4294967295
  • Verwenden Sie Blöcke von 8x4 = 32 KB, was bei kleinen Dateien Verschwendung ist
  • Verwenden Sie ein anderes Dateisystem als ext4. Ich habe Berichte gesehen, in denen es heißt, dass XFS ein solches Dateisystem unterstützen kann, kann dies aber nicht aus eigener Erfahrung sagen.

verwandte Informationen