Frage gibt es so etwas wie ein 'schnelles' Format für ext4?


In Windows ist es sehr schnell mit NTFS zu formatieren. Ich habe eine Linux-Maschine mit wenig Leistung und wenig RAM. das Formatieren eines 2TB-Volumes zu ext4 dauert sehr lange

Was kann ich tun, um das Format zu beschleunigen? Ich kann mir nicht vorstellen, was so lange dauert? (was dauert so lange)


25
2017-08-01 04:37


Ursprung


Mit welchen Befehlen formatieren Sie sie? - nojak
Als Workaround. Versuchen Sie, es zu einem kleineren LVM-Volume zu machen und es nach Bedarf zu vergrößern. Das würde sowieso den anfänglichen Overhead senken. - Sirex
oder benutze XFS, wenn dich die Zeit der Erstellung des Dateisystems wirklich stört - mkfs.xfs ist viel schneller als mkfs.ext4 (weil es das nicht tut - oder tun muss - so viel). aber mkfs ist etwas, was Sie normalerweise nur einmal pro Dateisystem tun müssen - es gibt wahrscheinlich bessere Dinge zu optimieren. - cas
oder benutze ZFS. Das Erstellen von Dateisystemen mit ZFS ist fast augenblicklich, unabhängig von ihrer Größe. - jlliagre
Verwenden Sie ZFS nur, wenn Sie über eine Hardware der Unternehmensklasse verfügen, insbesondere wenn Sie über ECC-RAM verfügen und über UPS verfügen. Es ist nicht empfohlenZFS ohne diese Anforderungen zu verwenden. Sie können möglicherweise nach einem Speicherparitätsfehler und / oder einem Stromausfall nicht wiederhergestellt werden. Ihr gesamtes Volumen geht in diesem Fall verloren. Du wurdest gewarnt. - Richard Gomes


Antworten:


Strenge Antwort

Lösungen wie -E lazy_itable_init Ändere das Ergebnis nicht, sondern beschleunige den Prozess. Dies wurde explizit gefordert, aber in vielen Fällen brauchen die Menschen mehr.

Extrabonus

In den meisten Fällen möchten Sie tatsächlich einige Optionen, die Ihren Nutzungsmustern entsprechen und nicht nur die Erstellung des Dateisystems beschleunigen, sondern auch eine schnellere Nutzung und mehr nutzbaren Speicherplatz ermöglichen.

Ich habe gerade einen Test gemacht. Auch ohne zu benutzen -E lazy_itable_init, die unten genannten Optionen beschleunigen die Erstellungszeit eines 2TB Dateisystems von 16 Minuten 2 Sekunden bis 1 Minute 21 Sekunden (Kernel 3.5.0 64bit auf Intel i7 2.2GHz, 2TB Festplatte auf USB2 Verbindung - SATA wäre wahrscheinlich schneller).

Für ein Dateisystem, das große Dateien enthält, verwende ich diese Kombination:

mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4

woher -T largefile4 wählt Optionen aus /etc/mke2fs.conf die im Allgemeinen etwas enthalten wie:

    inode_ratio = 4194304
    blocksize = -1

Tu einen man mke2fs für Details zu jeder dieser Optionen.

Hier sind relevante Auszüge:

               sparse_super
                      Create a filesystem with fewer superblock backup copies (saves space on large filesystems).

               large_file
                      Filesystem can contain files that are greater than 2GB.  (Modern kernels set this feature  automatically
                      when a file > 2GB is created.)

   -i bytes-per-inode
          Specify  the  bytes/inode ratio.  mke2fs creates an inode for every bytes-per-inode bytes of space on the disk.  The
          larger the bytes-per-inode ratio, the fewer inodes will be created.  This value generally shouldn't be smaller  than
          the blocksize of the filesystem, since in that case more inodes would be made than can ever be used.  Be warned that
          it is not possible to expand the number of inodes on a filesystem after it is created, so be  careful  deciding  the
          correct value for this parameter.

-m 0 sagt nur, nicht 5% für root zu reservieren, was für ein Daten-Dateisystem (nicht boot / root) in Ordnung ist. 5% einer 2 TB-Platte bedeutet 100 GB. Das ist ein ziemlich signifikanter Unterschied.


14
2017-07-14 12:04



Beachten Sie, dass das Erlauben des Dateisystems, mehr als 95% voll zu bekommen, zu extremer Fragmentierung führt, was die Performance erheblich verlangsamt. Wenn es etwas gibt, wenn es um die Leistung seiner Datenpartition geht, sollte es auf 10% erhöht werden - Matija Nalis
Wenn Ihre Festplatte halten wird nicht nur große Dateien aber kleine Dateien auch, lesen Sie dies: Durch die Verringerung des Inode-Verhältnisses sparen Sie höchstens 1,5% Speicherplatz, und dies auf Kosten der Vielseitigkeit. inode_ratio = x bedeutet, dass wenn die durchschnittlich Dateigröße auf dem Volume ist weniger als x Bytes, dann sind Sie auf dem Weg die Inodes ausgehen Vor knapper Speicherplatz. In diesem Szenario verschwenden Sie buchstäblich Tausende mehr, als Sie erwartet haben, um zu sparen. - Stéphane Gourichon
Mit anderen Worten, wenn die durchschnittlich Die Dateigröße ist kleiner als 4 MB. Verwenden Sie nicht "-T largefile4". Für riesige Laufwerke benutze ich jetzt am Ende -T huge was tut inode_ratio = 65536. Im Zweifelsfall einfach nicht einstellen -i oder -T und lass die Weisen, die ext2 / 3/4 gemacht haben, für dich wählen. Sie reservieren einen bekannten kleinen Teil des Speicherplatzes für die Verwaltung und (es sei denn, Sie speichern Millionen sehr kleiner Dateien), Sie werden garantiert keinen willkürlichen Prozentsatz des tatsächlichen Speicherplatzes verschwenden. Wenn Leute schreiben, ist schicke Software schön, aber ein gutes Dateisystem muss langweilig sein und einfach funktionieren. - Stéphane Gourichon
in meinem Fall, mkfs.ext4 ist schneller (Zeit: real 0m16.001s) als mkfs.ext3 (Zeit: real 2m10.336s). - coanor


Fügen Sie die Flagge hinzu -E lazy_itable_init

Hier ist, was die Manpage sagt:

Wenn diese Option aktiviert ist und die Funktion "uninit_bg" aktiviert ist, wird die Inode-Tabelle nicht vollständig von mke2fs initialisiert. Dies beschleunigt die Dateisystem-Initialisierung merklich, aber es erfordert, dass der Kernel das Dateisystem im Hintergrund initialisiert, wenn das Dateisystem zum ersten Mal bereitgestellt wird. Wenn der Optionswert nicht angegeben wird, wird standardmäßig 1 verwendet, um die Initialisierung der verzögerten Inode-Tabelle zu aktivieren.


19
2017-09-18 22:09



Technisch gesehen wird dadurch das Format nicht schneller, aber Sie können das Dateisystem mounten und verwenden, während das Format im Hintergrund endet. - Wyzard
vielen Dank! das ging wirklich gut, die Ärzte waren mir nicht klar, bis ich wusste, wonach ich suchen sollte! vielen Dank! - stuck
Ich habe Referenzen zur minimalen Kernel-Version gesehen, welches ist das Minimum, um dies zu benutzen? - Xarses


Der Standard ist ein schnelles Format; Das Einrichten der Strukturen für ein ext * - Volume dauert viel länger als für ein NTFS-Volume, da es mehr davon gibt. Sie können die Anzahl der Superblöcke reduzieren, aber auch das geht nur so weit.


8
2017-08-01 04:51



Danke für die Info, mein Gerät begann eine 2TB USB2 Festplatte vor etwa 20 Stunden zu formatieren, es geht immer noch - das Gerät ist wenig Strom, denke Raspberry Pi mit 64MB RAM. Um das Format zu starten, musste ich das Paging auf den gleichen USB-Datenträger einrichten, der formatiert ist. Gibt es etwas, was ich tun kann, um das zu beschleunigen? Ich wäre großartig, wenn ich die Aufführung in weniger als einer Stunde bekommen könnte? - stuck
lazy_itable_init hat den Trick für mich gemacht, das ist nicht der Standard und macht die Formatierung viel schneller - stuck


Wenn Sie hauptsächlich größere Dateien speichern, können Sie die Anzahl der Bytes pro Inode erhöhen und so die Anzahl der erstellten Inodes verringern. Dies kann die Erstellungszeit erheblich beschleunigen.


4
2017-08-01 05:39