it-swarm.com.de

Gibt es ein "schnelles" Format für ext4?

Unter Windows ist das Formatieren mit NTFS sehr schnell. Ich habe eine Linux-Maschine mit geringem Stromverbrauch und wenig RAM. Das Formatieren eines 2-TB-Volumes auf ext4 dauert sehr lange.

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

28
stuck

Strikte Antwort

Lösungen wie -E lazy_itable_init ändere das Ergebnis nicht, beschleunige nur den Prozess. Dies wurde ausdrücklich gefragt, doch 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 -E lazy_itable_init beschleunigen die folgenden Optionen die Erstellungszeit eines 2-TB-Dateisystems von 16 Minuten 2 Sekunden auf 1 Minute 21 Sekunden (Kernel 3.5.0 64-Bit auf Intel i7 2,2 GHz, 2 TB 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

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

    inode_ratio = 4194304
    blocksize = -1

Mach ein 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, dass 5% nicht für root reserviert werden sollen, was für ein Datendateisystem (nicht boot/root) in Ordnung ist. 5% einer 2-TB-Festplatte bedeuten 100 GB. Das ist ein ziemlich bedeutender Unterschied.

16

Fügen Sie die Flagge -E lazy_itable_init

Folgendes steht auf der Manpage:

Wenn aktiviert und die Funktion uninit_bg aktiviert ist, wird die Inode-Tabelle von mke2fs nicht vollständig initialisiert. Dies beschleunigt die Initialisierung des Dateisystems spürbar, erfordert jedoch, dass der Kernel die Initialisierung des Dateisystems im Hintergrund abschließt, wenn das Dateisystem zum ersten Mal bereitgestellt wird. Wenn der Optionswert weggelassen wird, wird standardmäßig 1 verwendet, um die verzögerte Inode-Tabelleninitialisierung zu aktivieren.

19
Alex Wheeler

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

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 verkürzen.

4
rnxrx