Repository 32bit  Forum
Repository 64bit  Wiki

/var /tmp su filesystem tmpfs

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Re: /var /tmp su filesystem tmpfs

Messaggioda 414N » lun feb 28, 2011 18:52

Posso suggerirti una soluzione che ho trovato in questo thread?
Creare un RAID1 tra una partizione su disco e una su tmpfs, usando opzioni che rimandano la scrittura per mantenere consistente l'array.
L'unica pecca è che al riavvio perderai un po' di tempo per ricopiare il contenuto della partizione in RAM...
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2877
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: /var /tmp su filesystem tmpfs

Messaggioda targzeta » lun feb 28, 2011 19:42

414N ha scritto:Posso suggerirti una soluzione che ho trovato in questo thread?
Ehi, non vale riciclare le risposte :).

Bart, spiegami una cosa. Nel momento in cui monti una directory in tmpfs questa risulta essere vuota giusto? Quindi, come fai a riempirla di tutto quello che c'è "sotto" di lei, la directory originale per capirci. Quando spegni il PC che fai? Ti salvi l'immagine sul disco? Altrimenti ogni volta che spegni il PC è come se resettassi tutto, o no? Insomma, non ho ancora ben capito come fai :?:

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6142
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: /var /tmp su filesystem tmpfs

Messaggioda Bart » ven mar 04, 2011 12:56

spina ha scritto:
414N ha scritto:Posso suggerirti una soluzione che ho trovato in questo thread?
Ehi, non vale riciclare le risposte :).

Bart, spiegami una cosa. Nel momento in cui monti una directory in tmpfs questa risulta essere vuota giusto? Quindi, come fai a riempirla di tutto quello che c'è "sotto" di lei, la directory originale per capirci. Quando spegni il PC che fai? Ti salvi l'immagine sul disco? Altrimenti ogni volta che spegni il PC è come se resettassi tutto, o no? Insomma, non ho ancora ben capito come fai :?:

Emanuele
Si giusto, faccio un rsync quando spengo il pc e quando si riavvia. Quando spengo

Codice: Seleziona tutto
echo “Saving /var/log to /varlog_bck...”
rsync -a --delete /var/log/ /varlog_bck

quando riparte
Codice: Seleziona tutto
echo “Copying /var/log to RAM...”
rsync -a /varlog_bck/ /var/log
Bart
Staff
Staff
 
Messaggi: 4248
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggioda targzeta » ven mar 04, 2011 16:07

Scusa la domanda, ma se fai così a che ti serve avere /var/log in RAM? Quando spegni il PC devi comunque risalvarti i dati sull'HD e quando lo riaccendi li ricarchi, non ne vedo l'utilità. Senza considerare che in questo modo se salta la corrente perdi tutto quello che avresti salvato.

Detto questo, effettivamente è strano che i file non si aggiornino, non ci dovrebbe essere nessuna differenza per il sistema. Per lui quelle directory sono directory uguali a tutte le altre. Ma il syslogd è attivo? Altri file in quella directory, come i log di apache o i log di login vengono aggiornati? Ad esempio se svuoti il file degli utenti connessi con:
Codice: Seleziona tutto
cat /dev/null > /var/log/wtmp
e poi fai un login (o lanci un terminale sotto X) il comando:
Codice: Seleziona tutto
who /var/log/wtmp
è coerente?

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6142
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: /var /tmp su filesystem tmpfs

Messaggioda Bart » ven mar 04, 2011 18:50

spina ha scritto:Scusa la domanda, ma se fai così a che ti serve avere /var/log in RAM? Quando spegni il PC devi comunque risalvarti i dati sull'HD e quando lo riaccendi li ricarchi, non ne vedo l'utilità. Senza considerare che in questo modo se salta la corrente perdi tutto quello che avresti salvato.
E' un server che non viene mai spento ed ha una CF come disco. Voglio ridurre il più possibile le scritture su disco. Tutti i giorni, una volta al giorno, si avvia uno script che sincronizza /var/log su disco. Così facendo riduco le scritture ad una al giorno piuttosto che avere continue scritture dovute ai log e se va via la corrente perdo solo qualche ora di log (si lo so che sono comunque troppe ma devo trovare un giusto equilibrio tra durata del disco e gestione dei log) e non intere settimane o mesi.

Detto questo, effettivamente è strano che i file non si aggiornino, non ci dovrebbe essere nessuna differenza per il sistema. Per lui quelle directory sono directory uguali a tutte le altre. Ma il syslogd è attivo? Altri file in quella directory, come i log di apache o i log di login vengono aggiornati? Ad esempio se svuoti il file degli utenti connessi con:
Codice: Seleziona tutto
cat /dev/null > /var/log/wtmp
e poi fai un login (o lanci un terminale sotto X) il comando:
Codice: Seleziona tutto
who /var/log/wtmp
è coerente?

Emanuele
Syslog è attivo e infatti anche io non capisco cosa provochi il problema. Appena riesco faccio un po' di prove. Grazie mille intanto. ;)
Bart
Staff
Staff
 
Messaggi: 4248
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggioda targzeta » ven mar 04, 2011 19:14

Ok, ho capito la tua idea. Se è tutto in RAM comunque la prova che ti ho suggerito non fa scritture sulla chiavetta (suppongo che per CF si intenda "chiavetta flash"?). Se il sistema di login funziona, e secondo me dovrebbe funzionare, possiamo analizzare qualcos'altro. Ad esempio ho cercato di vedere se magari il syslogd viene avviato prima del mount creando eventuali problemi, ma leggendo gli rc.S e rc.M mi sembra di capire che tutti i file system (tranni alcuni ma non il tmpfs) sono montati da rc.S e quindi prima dell'avvio del syslogd, fatto in rc.M.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6142
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: /var /tmp su filesystem tmpfs

Messaggioda Bart » ven mar 04, 2011 19:37

spina ha scritto:Ok, ho capito la tua idea. Se è tutto in RAM comunque la prova che ti ho suggerito non fa scritture sulla chiavetta (suppongo che per CF si intenda "chiavetta flash"?). Se il sistema di login funziona, e secondo me dovrebbe funzionare, possiamo analizzare qualcos'altro. Ad esempio ho cercato di vedere se magari il syslogd viene avviato prima del mount creando eventuali problemi, ma leggendo gli rc.S e rc.M mi sembra di capire che tutti i file system (tranni alcuni ma non il tmpfs) sono montati da rc.S e quindi prima dell'avvio del syslogd, fatto in rc.M.

Emanuele
Si, CF sta per Compact Flash. Sono delle memorie normalmente usate nelle macchine fotografiche. Nel mio caso fa da disco principale. :) Purtroppo ha un numero di scritture limitato e quindi cerco di ridurre il più possibile le scritture su disco. Domani provo a fare come mi hai suggerito e vediamo cosa ne esce. ;)
Ciao
Bart
Staff
Staff
 
Messaggi: 4248
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggioda targzeta » sab mar 05, 2011 0:52

Un'altra prova che mi viene in mente è quella di bloccare il sysklogd e rieseguirlo con:
Codice: Seleziona tutto
sysklogd -d
in questo modo rimarrà in foreground e potrai vedere che succede dal suo stdout/stderr. La stessa cosa la puoi fare con il klogd, con la stessa opzione. Magari ti dicono qualcosa in più che ti aiuterà a capire.

D'altronde se guardi cosa fa il file rc.d/rc.syslog vedrai che non fa nient'altro che far partire questi due demoni.

Secondo me comunque è uno di quei classici casi che quando capisci dov'è l'errore ti dai un colpo in testa è ti dici:"che scemo che sono a non averci pensato!".

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6142
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: /var /tmp su filesystem tmpfs

Messaggioda Bart » sab mar 12, 2011 12:46

spina ha scritto:Ok, ho capito la tua idea. Se è tutto in RAM comunque la prova che ti ho suggerito non fa scritture sulla chiavetta (suppongo che per CF si intenda "chiavetta flash"?). Se il sistema di login funziona, e secondo me dovrebbe funzionare, possiamo analizzare qualcos'altro. Ad esempio ho cercato di vedere se magari il syslogd viene avviato prima del mount creando eventuali problemi, ma leggendo gli rc.S e rc.M mi sembra di capire che tutti i file system (tranni alcuni ma non il tmpfs) sono montati da rc.S e quindi prima dell'avvio del syslogd, fatto in rc.M.

Emanuele
Il problema Spina era proprio questo. Grazie mille per la dritta. ;) Facevo la copia dei log in rc.local e quindi DOPO l'avvio del demone sysklogd. Ho risolto mettendo la copia in rc.S. Mettendo la copia in rc.S non so perché però l'uso di rsync non funziona. Ottengo un freeze al boot quando arrivo al caricamento del demone sysklogd:
...Starting sysklogd daemon /usr/sbin/syklogd
e da qui non ne esci più. Se al posto di rsync fai un semplice cp fra le directory funziona correttamente. Per il momento sto usando il comando cp ma se qualcuno ha qualche idea migliore si faccia pure avanti. :-)
Ho fatto delle modifiche anche a /etc/fstab e monto il filesystem / in sola lettura in rc.local in modo tale che dopo il boot il filesystem sia read-only. Lo metto read-write solo in fase di aggiornamento del sistema. Questo per salvaguardare la CF.
/etc/fstab
Codice: Seleziona tutto
/dev/sda1        /               ext2    defaults            1   1
devpts           /dev/pts        devpts  gid=5,mode=620            0   0
proc             /proc           proc    defaults                  0   0
tmpfs            /dev/shm        tmpfs   defaults                  0   0
tmpfs      /tmp         tmpfs    rw,nosuid,nodev,size=8M,mode=0777     0   0
tmpfs        /var         tmpfs   rw,suid,noatime,size=60M,mode=0755     0   0
tmpfs         /home       tmpfs   rw,suid,noatime,size=100M,mode=0755   0   0

Un problema che mi è rimasto è che la macchina non si spegne. Se faccio halt mi va in shutdown ma non si spegne mai. Ho provato ad aggiungere in lilo.conf la scritta
Codice: Seleziona tutto
append="noacpi"
ma niente.
Ho anche decommentato in /etc/rc.d/rc.modules /sbin/modprobe/apm
e ho poi lanciato
Codice: Seleziona tutto
modprobe apm

ma anche così non si spegne. Idee?
Intanto grazie a tutti per l'aiuto.
Bart
Staff
Staff
 
Messaggi: 4248
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggioda targzeta » sab mar 12, 2011 13:08

Perché invece non provi a disabilitare l'avvio del syslogd in rc.M e ad avviarlo in rc.local? O magari più semplicemente a riavviarlo in rc.local dopo la copia con:
Codice: Seleziona tutto
/etc/rc.d/rc.syslog restart
Così usi anche rsync e poi non ti metti a smanettare con l'rc.S che è delicato e viene anche aggiornato.

Per lo shutdown, non è che magari dipende dall'aver messo il root filesystem in read-only? Non credo che c'entri molto, però...tra l'altro il modulo apm ormai è abbastanza superato no? Quasi tutto il power management viene gestito da ACPI al giorno d'oggi.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6142
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: /var /tmp su filesystem tmpfs

Messaggioda Bart » sab mar 12, 2011 13:42

spina ha scritto:Perché invece non provi a disabilitare l'avvio del syslogd in rc.M e ad avviarlo in rc.local? O magari più semplicemente a riavviarlo in rc.local dopo la copia con:
Codice: Seleziona tutto
/etc/rc.d/rc.syslog restart
Così usi anche rsync e poi non ti metti a smanettare con l'rc.S che è delicato e viene anche aggiornato.
Si anche questa potrebbe essere una soluzione. Farò dei test. :)

Per lo shutdown, non è che magari dipende dall'aver messo il root filesystem in read-only? Non credo che c'entri molto, però...tra l'altro il modulo apm ormai è abbastanza superato no? Quasi tutto il power management viene gestito da ACPI al giorno d'oggi.

Emanuele
No, lo shutdown non funziona mai, nè in read-only nè in read-write. Si, apm è decisamente superato. Infatti secondo me è qualcosa legato all'acpi, proprio per questo ho cercato di vedere che succedeva disabilitandolo con quell'append in lilo.conf che, sinceramente, non so nemmeno se abbia cambiato qualcosa. Resta il fatto che non ha funzionato. :roll:
Bart
Staff
Staff
 
Messaggi: 4248
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggioda zoros » sab mar 12, 2011 14:17

ho visto che cerchi di montare /var /tmp /home come distinte tmpfs ...

secondo me la soluzione ottimale è di rinominare quelle directory sul disco fisico in /var-usb e /home-usb (la /tmp è proprio temporanea e non occorre conservarne il contenuto) e tenersi dei link simbolici ad una /ramdisk da montare in tmpfs all'avvio, tipo:
Codice: Seleziona tutto
 # file /var
/var: symbolic link to `/ramdisk/var-usb'
... in questo modo è semplice sincronizzare, come suggerito qui:
viewtopic.php?f=9&t=28066&start=15#p237871
vorrei riavere le mie firme ...
Avatar utente
zoros
Linux 3.x
Linux 3.x
 
Messaggi: 1302
Iscritto il: lun mag 28, 2007 21:51
Località: Gorizia
Nome Cognome: Fabio∙Zorba
Slackware: 13.37
Kernel: 3.2.5
Desktop: KDE-3.5.10

Re: /var /tmp su filesystem tmpfs

Messaggioda Bart » sab mar 12, 2011 15:53

zoros ha scritto:ho visto che cerchi di montare /var /tmp /home come distinte tmpfs ...

secondo me la soluzione ottimale è di rinominare quelle directory sul disco fisico in /var-usb e /home-usb (la /tmp è proprio temporanea e non occorre conservarne il contenuto) e tenersi dei link simbolici ad una /ramdisk da montare in tmpfs all'avvio, tipo:
Codice: Seleziona tutto
 # file /var
/var: symbolic link to `/ramdisk/var-usb'
... in questo modo è semplice sincronizzare, come suggerito qui:
viewtopic.php?f=9&t=28066&start=15#p237871
Vediamo se ho capito, mi consigli di montare su un device esterno, tipo penna usb /var /tmp e /home?
Se è così ci avevo pensato anche io anche perché la ram di sistema è veramente poca, solo 256 MB. Adesso sono ancora in fase di test, sto valutando varie alternative. Per il momento, così facendo funziona tutto regolarmente.Le tmpfs distinte mi permettono di definire size differenti, tutto qua.
spina ha scritto:Perché invece non provi a disabilitare l'avvio del syslogd in rc.M e ad avviarlo in rc.local? O magari più semplicemente a riavviarlo in rc.local dopo la copia con:
Codice: Seleziona tutto
/etc/rc.d/rc.syslog restart
Così usi anche rsync e poi non ti metti a smanettare con l'rc.S che è delicato e viene anche aggiornato.
Emanuele
MMM, ci ho pensato su, così perdi però dei log al boot se non erro(sinceramente non so quanto siano importanti) ma modificando rc.S ho la situazione forse più lineare. Sinceramente ancora non ho capito perché rsync fallisce e cp funziona.
Prossimo scoglio la ricompilazione del kernel su questo macinino. Credo che se anche ridotto all'osso qualche ora di compilazione su questo processore ci vorrà tutta. :D
Bart
Staff
Staff
 
Messaggi: 4248
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggioda zoros » sab mar 12, 2011 18:07

Bart ha scritto:...
Vediamo se ho capito, mi consigli di montare su un device esterno, tipo penna usb /var /tmp e /home?
Se è così ci avevo pensato anche io anche perché la ram di sistema è veramente poca, solo 256 MB. Adesso sono ancora in fase di test, sto valutando varie alternative. Per il momento, così facendo funziona tutto regolarmente.Le tmpfs distinte mi permettono di definire size differenti, tutto qua.
...

volevo dire che ci sono diversi percorsi che vengono continuamente aggiornati in runtine (tipo: /var/log) ... allora è meglio che la copia "fisica", da sincronizzare sul disco, si trovi ad un diverso percorso (tipo: /var/log-disk) ... in /var (del disco fisico) avrai quindi dei link simbolici a tutte le risorse che ti sei portato in tmpfs con rsync ... per comprendere: a sistema spento /var/log sarà un link simbolico ad una risorsa inesistente --> /ramdisk/var/log-disk ...

in questo modo forse si evita confusione nei percorsi per rsync ...
vorrei riavere le mie firme ...
Avatar utente
zoros
Linux 3.x
Linux 3.x
 
Messaggi: 1302
Iscritto il: lun mag 28, 2007 21:51
Località: Gorizia
Nome Cognome: Fabio∙Zorba
Slackware: 13.37
Kernel: 3.2.5
Desktop: KDE-3.5.10

Re: /var /tmp su filesystem tmpfs

Messaggioda targzeta » sab mar 12, 2011 18:14

Bart ha scritto:
spina ha scritto:Perché invece non provi a disabilitare l'avvio del syslogd in rc.M e ad avviarlo in rc.local? O magari più semplicemente a riavviarlo in rc.local dopo la copia con:
Codice: Seleziona tutto
/etc/rc.d/rc.syslog restart
Così usi anche rsync e poi non ti metti a smanettare con l'rc.S che è delicato e viene anche aggiornato.
Emanuele
MMM, ci ho pensato su, così perdi però dei log al boot se non erro(sinceramente non so quanto siano importanti) ma modificando rc.S ho la situazione forse più lineare. Sinceramente ancora non ho capito perché rsync fallisce e cp funziona.
Prossimo scoglio la ricompilazione del kernel su questo macinino. Credo che se anche ridotto all'osso qualche ora di compilazione su questo processore ci vorrà tutta. :D
E' vero che perdi qualche log, ci avevo pensato anche io. Allora forse ti conviene modificare il file rc.M anziché l'rc.S, in quest'ultimo ci sono passaggi "delicati" e può essere che l'errore di rsync sia legato a qualcosa che non hai controllato. Normalmente in rc.M rsync dovrebbe funzionare correttamente. Prova a metterlo subito prima dell'avvio di syslogd
Codice: Seleziona tutto
# Start the system logger.
if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then
  . /etc/rc.d/rc.syslog start
fi

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6142
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

PrecedenteProssimo

Torna a Slackware

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti