/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.
Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: /var /tmp su filesystem tmpfs

Messaggio da 414N »

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
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: /var /tmp su filesystem tmpfs

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggio da Bart »

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

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: /var /tmp su filesystem tmpfs

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggio da Bart »

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. ;)

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: /var /tmp su filesystem tmpfs

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggio da Bart »

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

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: /var /tmp su filesystem tmpfs

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggio da Bart »

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.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: /var /tmp su filesystem tmpfs

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggio da Bart »

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:

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: /var /tmp su filesystem tmpfs

Messaggio da zoros »

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 ...

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Re: /var /tmp su filesystem tmpfs

Messaggio da Bart »

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

Avatar utente
zoros
Linux 4.x
Linux 4.x
Messaggi: 1361
Iscritto il: lun 28 mag 2007, 22:51
Nome Cognome: Fabio`Zorba`
Slackware: 14.1
Kernel: 3.10.30-smp
Desktop: KDE-3.5(works!)
Località: Gorizia
Contatta:

Re: /var /tmp su filesystem tmpfs

Messaggio da zoros »

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
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: /var /tmp su filesystem tmpfs

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Rispondi