Arch rc.sysinit: LUKS parallel
Im Arch Bootscript /etc/rc.sysinit werden u.A. die per /etc/crypttab definierten verschlüsselten Volumes geöffnet und gemountet – sequentiell. Da ein luksOpen-Aufruf generell schon recht lange dauert, kommen bei mehreren solcher Volumes schnell einige Sekunden zusammen.
Auf einer Kiste mit fünf LUKS-Volumes kam mir die Idee, die entsprechende Funktion mal per “&” zu forken und das Ganze so ein wenig zu parallelisieren.
In wie fern das jetzt tatsächlich im messbaren Bereich liegt, sei mal dahingestellt. Ich bilde mir jedenfalls erfolgreich einen Geschwindigkeits-zuwachs ein, und da der Patch meines Erachtens recht unkritisch ist, bleibe ich dabei
Wer es ausprobieren mag:
--- /etc/rc.sysinit.backup 2010-01-24 15:35:12.000000000 +0100 +++ /etc/rc.sysinit 2010-05-04 18:57:53.380890577 +0200 @@ -149,7 +149,7 @@ cpass="$3" shift 3 copts="$*" - stat_append "${cname}.." + #stat_append "${cname}.." # For some fun reason, the parameter ordering varies for # LUKS and non-LUKS devices. Joy. if [ "${cpass}" = "SWAP" ]; then @@ -188,15 +188,16 @@ fi if [ $? -ne 0 ]; then csfailed=1 - stat_append "failed " + stat_append "${cname} failed " else - stat_append "ok " + stat_append "${cname} ok " fi fi } while read line; do - eval do_crypt "$line" + eval do_crypt "$line" & done </etc/crypttab + wait if [ $csfailed -eq 0 ]; then stat_done else
Keine Kommentare
Noch keine Kommentare vorhanden.
RSS-Feed für Kommentare zu diesem Artikel. TrackBack URI