Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Navegación
 Índice
 Wiki
 FAQ del foro
 FAQ del VDR-NG-EM
 Funcionalidades del VDR
 Mejoras del VDR-NG-EM
 Primeros pasos FW-VDR
 Descargas VDR-NG-EM
Flujo RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 



Mejoras en la comprobación de discos

Ver el tema anterior Ver el tema siguiente Ir abajo

Mejoras en la comprobación de discos

Mensaje por devotee el Miér 1 Abr 2009 - 19:27

Este tema viene por este mensaje que escribí.

Desde que arreglé el disco duro externo (un Seagate Freeagent) para que no diera problemas con el ahorro de energía, sólo me he encontrado un caso en el que la comprobación de discos salta cuando no debería: si se va la luz.

Nuestro Giga no tiene pila interna para conservar la hora, depende de que esté enchufado. Si se desenchufa, o si se va la luz, pierde la fecha y hora. Así que pasa lo siguiente (un ejemplo):

- Apagamos el Giga y nos vamos a dormir
- Durante la noche, se va la luz y el Giga pierde la fecha y hora (ahora, para él, son las 00:00 del 1/1/1970)
- Por la mañana, encendemos el Giga
- En los scripts de inicio, el fsck mira cuándo se comprobó el disco por última vez (ya que, si seguimos las recomendaciones del foro, al formatear el disco especificamos que se haga una comprobación cada 30 días) y (oh, ¡sorpresa!) hace -39 años (!!) que no se comprueba el disco
- El Giga comprueba el disco (en mi caso son unos 20 minutos sin poder hacer nada) y guarda en el disco que la última fecha en la que se comprobó el disco fue el 1/1/1970
- Al arrancar, el Giga recupera la hora correcta, ya sea por NTP o desde el canal que tengamos configurado
- Apagamos el Giga y lo volvemos a encender
- Al inicio, el fsck mira cuándo se comprobó el disco por última vez y (oh, sorpresa) hace 39 años (!!) que no se comprueba (recordad que en la última comprobación se guardó la fecha 1/1/1970 en el disco)
- El Giga comprueba el disco (otros 20 minutos sin poder hacer nada) y guarda en el disco la última fecha en la que se comprobó el disco (esta vez la buena)

Veo dos problemas con esto:
1. Se comprueba el disco dos veces (por el cambio de fecha) en un periodo de tiempo muy corto
2. Se pierde un montón de tiempo en las comprobaciones, si tenemos prisa por hacer algo (grabar un programa que empieza ya mismo) toca esperar

La solución más sencilla sería sincronizar la hora antes de que se ejecute /sbin/usbautomounter aunque no sé si en ese momento la red estará ya configurada (para sincronizar por NTP, lo que no funcionaría en la versión lite del firmware) o si ya se habrá sintonizado algún canal para poder coger la hora de ahí.

Otra opción es guardar la fecha al apagar el Giga, y recuperarla al arrancar si detectamos un "salto en el tiempo". No tendremos la fecha y hora exactas pero al menos sí tendremos una aproximación que evitará la comprobación del disco:

En rc.local (antes de que se ejecute /sbin/usbautomounter):
Código:
if [ "`date '+%Y'`" = "1970" ] ; then
# Si estamos en 1970, recuperamos la fecha aproximada desde /etc/time.backup
      /bin/date -r /etc/time.backup
fi

Y en rc.halt (antes de desmontar /etc):
Código:
if [ "`date '+%Y'`" != "1970" ] ; then
# Creamos el fichero /etc/time.backup con la fecha y hora actuales
touch /etc/time.backup
fi

Esto no afectaría a la comprobación de discos cuando hay un corte de luz mientras el Giga está funcionando, ya que al estar marcado el disco como "no desmontado correctamente", ese estado prevalece frente al de intervalo de comprobaciones que se haya configurado.

devotee

Cantidad de envíos : 45
Fecha de inscripción : 14/01/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Mejoras en la comprobación de discos

Mensaje por Posix el Miér 1 Abr 2009 - 19:43

Lo de no poder saltar atrás en el tiempo me parece bien. Pictool puede devolver si se ha producido un fallo de corriente (vdr lo tiene en cuenta). En ese caso puede ejecutarse un script guardado durante el apagado (en el rc.halt) que ajuste con la misma hora de cierre.

Si queréis puedo implementarlo en el arranque de ntpclient, aunque para la versión lite estaría mejor en el rc.halt (guardar) y yo diría que en rc (recuperar) antes de cargar ntpclient.

_________________
VDR-NG-EM 0.7 R1084 - WD Elements 1TB ext3
VDR-NG-EM 0.7 R1048 - WD Elements 250GB ext3
swap, samba, VPN, mediatomb, uShare, nfsd
avatar
Posix
Desarrollador

Cantidad de envíos : 691
Fecha de inscripción : 05/11/2008
Edad : 50
Localización : Madrid

Ver perfil de usuario

Volver arriba Ir abajo

Re: Mejoras en la comprobación de discos

Mensaje por bittor el Miér 1 Abr 2009 - 20:44

La idea está muy bien, pero no me gusta la idea de implementarla a través de los scripts del firmware porque aunque no lo parezca hacen un arranque y un apagado más lentos.
Ya sé que no es mucho y casi no se nota, pero si todas las cosas las hacemos igual en poco tiempo tenemos otro wavebug Sad.

Lo más óptimo de cara al rendimiento sería que el propio pic_tool si hay un fallo de corriente hiciera este proceso.
pic_tool se ejecuta al arrancar con los parámetros "time pictosys" para obtener la hora del PIC y establecerla en el sistema y al apagar con "time systopic" para pasar la hora del sistema al PIC, por lo que en systopic se podría actualizar la hora de algún archivo del sistema que no se use para nada, como por ejemplo /etc/fw-version, /etc/systemtype, ... y al arrancar pictosys comprobaría si hay un fallo de corriente o la fecha es 1970 para darle al sistema la hora del PIC o del archivo con la hora correcta.

De esta forma sería más rápido al ejecutarse desde un binario compilado y más limpio de cara a no enguarrar los scripts del firm.
avatar
bittor
Desarrollador

Cantidad de envíos : 3633
Fecha de inscripción : 25/06/2008
Localización : Zaragoza

Ver perfil de usuario http://bittor7x0.googlepages.com

Volver arriba Ir abajo

Re: Mejoras en la comprobación de discos

Mensaje por Posix el Jue 2 Abr 2009 - 9:52

Me parece muy buena idea.
Yo me quité de Lemmi por los cienes y cienes de scripts que manejaban scripts que llamaban a scripts que revisaban si ejecutar un script.

No se muy bien como cambiar la fecha de un fichero desde código pero no debe ser difícil.

Si no hay ningún voluntario me ocupo yo, aunque últimamente estoy demasiado liado.

_________________
VDR-NG-EM 0.7 R1084 - WD Elements 1TB ext3
VDR-NG-EM 0.7 R1048 - WD Elements 250GB ext3
swap, samba, VPN, mediatomb, uShare, nfsd
avatar
Posix
Desarrollador

Cantidad de envíos : 691
Fecha de inscripción : 05/11/2008
Edad : 50
Localización : Madrid

Ver perfil de usuario

Volver arriba Ir abajo

Re: Mejoras en la comprobación de discos

Mensaje por bittor el Jue 2 Abr 2009 - 10:37

Creo que en el VDR cambiaste la función que actualiza la hora del archivo .update para el tema de detectar los directorios de grabación en caliente sin necesidad de reiniciar el VDR, porque después de ese cambio así lo marca en el log.
En principio sería similar.
avatar
bittor
Desarrollador

Cantidad de envíos : 3633
Fecha de inscripción : 25/06/2008
Localización : Zaragoza

Ver perfil de usuario http://bittor7x0.googlepages.com

Volver arriba Ir abajo

Re: Mejoras en la comprobación de discos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.