giovedì 26 maggio 2011

Aggiornamento Initscripts 2011.04

È ora di aggiornare i nostri initscripts. Questo aggiornamento introduce la nuova cartella /run per rimuovere le cartelle nascoste in /dev. Leggere oltre per ulteriori informazioni. Inoltre, è stato aggiunto il supporto a raid e btrfs.



Nuove caratteristiche


  • Un nuovo script, che permette di avviare, interrompere e listare i demoni
  • Supporto a FakeRAID (dmraid).
  • Supporto a btrfs
  • Aggiunta la cartella /run


Modifiche funzionali


Orologio Hardware


La regolazione dell'orologio per la deriva è affidata a un demone che non dovrebbe essere utilizzato per la maggior parte delle volte, in quanto potrebbe condurre a piccoli bug (soprattutto se si è in dual-boot o si utilizza ntp). Se sapete cosa state facendo e volete regolare l'orologio hardware per la deriva, aggiungete "hwclock" alla riga DAEMONS.
Concludiamo l'affare udev con mdadm, che non verrà più chiamato esplicitamente. Ciò dovrebbe rendere le cose più robuste, senza perdere funzionalità.

Cartella /run


Per un po' di tempo, i programmi coinvolti nelle fasi iniziali dell'avvio piazzavano i propri dati in /dev all'interno di numerose cartelle nascoste. /dev/.udev è stato il primo, ma con il tempo se ne sono aggiunte altre, come /dev/.mdadm, /dev/.systemd, /dev/.mout, dracut, initscripts e altri tool. (Altre distro ne hanno addirittura di più) La ragione per cui usavano questa cartella è che /dev è risaputo essere un tmpfs disponibile dal primo istante dell'avvio della macchina. /var/run è disponibile solo verso la fine del boot, dato che /var dovrebbe trovarsi su un filesystem separato.


Tuttavia, /dev non è mai stato un buon posto per i dati a runtime, perché non sono nodi riferiti a dispositivi, quindi non dovrebbero starci. Inoltre, nascondere l'esistenza di tali cartelle all'amministratore è una brutta idea. Poi, il fatto che alcuni dati si trovano in /var/run/xxx e altri in /dev/.yyy non è spesso comprensibile per l'utente, soprattutto quando i tool originariamente creati per essere eseguiti dopo l'avvio sono necessari durante le sue prime fasi ed è necessario uno spostamento complicato tra queste cartelle.


Nel tempo, molte distribuzioni hanno sperimentato molte soluzioni invano: Debian ha introdotto /lib/init/rw, un fs in tmpfs montato durante le prime fasi dell'avvio. Su Ubuntu, /var/run veniva montato come tmpfs addirittura prima dello stesso /var, con una strana e brutta magia di mount. Molti software, tuttavia, ignorano queste caratteristiche e utilizzano /dev/.xxx.


Capito ciò, siamo arrivati alla conclusione che implementare quello che tutti pensano è la soluzione giusta, invece che evitare la reazione politica per ciò. Così, l'abbiamo implementato.


Dracut, udev e systemd sono stati già aggiornati per utilizzare /run. Ci aspettiamo che mdadm e mount li seguano presto.


Quindi, quale è, ancora una volta, il beneficio di questo?


C'è un solo tmpfs utilizzato, comprendendo /run, /var/lock e /var/run, che riduce un po' la quantità crescente dei tmpfs usati su un sistema.


Tutti i dati a runtime nello stesso posto. I dati di dracut, udev e systemd stanno tutti sotto /run e /var/run ora. Facilmente rilevabile dall'amministratore. Per la prima volta potete vedere tutti i dati utilizzati da questi tool importanti con un semplice
ls /var/run
Nulla verrà più nascosto. L'amministratore può vedere tutto sotto /run e /var/run, senza file nascosti.


Abbiamo standardizzato la soluzione early-runtime-dir insieme a tutte le maggiori distribuzioni.


Le persone coinvolte si sentono meglio dato che non hanno più bisogno di scomodare impropriamente /dev.


Le proprietà del ciclo di sviluppo delle cartelle sono chiare fin dal nome di alto livello della cartella. Esse non cambiano più si va in fondo all'albero di tali cartelle, per esempio: /var è "dati a runtime persistenti",  /run è "dati a runtime volatili", /etc è "dati di configurazione del sistema persistenti" e così via. La cosa brutta è che /var/run e /var/lock hanno garanzie diverse rispetto a /var, dove entrambi risiedono.

Raccomandazioni


Vorremmo ricordare a tutti che initscripts si aspetta che tutti gli altri pacchetti (a parte il kernel) siano aggiornati, in particolare udev, mdadm, dmraid e lvm. Sconsigliamo vivamente l'uso di HARDWARECLOCK="localtime", in quanto potrebbe incorrere in bug seri, conosciuti e non risolvibili. Tuttavia, non ci sono piani per togliere il supporto a "localtime".


Create nuove immagini initramfs dopo l'aggiornamento


Controllare inittab e rc.conf


Ricreare le immagini initramfs con
sudo mkinitcpio -p kernel26

Collegamenti


Forum di Chakra

Nessun commento:

Posta un commento