Mostrando entradas con la etiqueta fs. Mostrar todas las entradas
Mostrando entradas con la etiqueta fs. Mostrar todas las entradas

Deshabilitar la comprobación de discos en el arranque

Creo que a muchos, por no decir todos los que estemos leyendo esta entrada nos habrá pasado alguna vez, que tras reiniciar un equipo y teniendo prisa en que arranque, éste se pone a comprobar el disco en busca de problemas.
Esta tarea está por defecto en los sistemas de ficheros extN y reiserfs y, lógicamente, si está es por algo. Pero puesto que GNU/Linux es altamente configurable si deseamos que una partición nunca se compruebe, bien por que son muchos datos, bien por que lo hacemos nosotros manualmente, podemos indicárselo. Para ello existe el comando tune2fs.
shell> tune2fs -c0 -i0d /dev/sdXY
Según el manual, las opciones que le pasamos indican lo siguiente:
  • -c max-mount-counts
    Adjust the maximal mounts count between two filesystem checks. If max-mount-counts is 0 then the number of times the filesystem is mounted will be disregarded by e2fsck and the kernel.
  • -i interval-between-checks[d|m|w]
    Adjust the maximal time between two filesystem checks. No postfix or d result in days, m in months, and w in weeks.
    A value of zero will disable the time-dependent checking.
Como veis, en el man de tune2fs se explica el método para deshabilitar, aunque también recomienda no deshabilitarlo, ya que la comprobación del sistema de ficheros es algo importante, ya que garantiza la integridad y la consistencia de los datos.
Failure to do so may lead to filesystem corruption due to bad disks, cables, memory, or kernel bugs to go unnoticed until they cause data loss or corruption.
Así que ya sabéis, si necesitáis evitar que la máquina compruebe el disco tras un reinicio concreto, existen otras formas de hacerlo y si aun así queréis deshabilitarlo, tener presente los problemas futuros que pueda entrañar.
Leer más

Forzar chequeo de disco en reinicio del sistema

Hoy os quiero presentar un truco tan interesante como sencillo. Hay muchas veces que nos interesa forzar un chequeo de disco cuando el sistema se reinicie, pero que por lo que sea, no podemos reiniciarlo en ese momento. Luego lo reiniciamos y se nos olvida de indicárselo en el parámetro del shutdown, con lo que seguimos en la misma.
Para evitar que eso nos suceda, podemos crear un fichero vacío en la raíz del sistema y que se llame forcefsck. Tan simple como eso y conseguiremos que en el próximo reinicio el sistema compruebe los discos, para a continuación borrar automáticamente dicho fichero.
shell> touch /forcefsck
Leer más

Cambiar en porcentaje de bloques reservados de una partición

En GNU/Linux los sistemas de ficheros ext3 y ext4 (y algunos más) cuando crean el sistema de ficheros reservan un porcentaje del espacio asignado para operaciones de root, es decir, le garantizan al administrador siempre tener poder trabajar. Esto resulta muy útil especialmente en particiones en las que se comparte espacio con usuarios que gastan mucho. Por defecto los sistemas de ficheros ext3/ext4 reservan el 5% de espacio total para root, y eso puede realmente llegar a ser mucho.
Sin embargo con el aumento de tamaño de los discos duros, formatear una partición de 2TB en ext4 supone (aplicando la pérdida de 5%) una reserva de casi 100Gb!, que realmente nunca se llegaran a ocupar. Cuando los discos eran pequeños, dicha reserva tenía sentido. Actualmente bajar ese porcentaje a un 1% o un 2% sería más que suficiente.
Este es un ejemplo práctico de lo que tenemos y lo que podemos conseguir.
shell> df -h
S.ficheros             Size  Used Avail Use% Montado en
/dev/sda3              3,7G  224M  3,3G   7% /
tmpfs                 1013M     0 1013M   0% /lib/init/rw
udev                  1008M  160K 1008M   1% /dev
tmpfs                 1013M     0 1013M   0% /dev/shm
/dev/sda1              471M   42M  405M  10% /boot
/dev/mapper/vg0-home   2,0G   68M  2,0G   4% /home
/dev/mapper/vg0-tmp    4,0G  137M  3,7G   4% /tmp
/dev/mapper/vg0-usr    7,9G  670M  6,9G   9% /usr
/dev/mapper/vg0-var    9,9G  3,5G  6,0G  37% /var
/dev/mapper/vg0-srv   1008G  200M  957G   1% /srv

shell> tune2fs -l /dev/vg0/srv | grep Reserved
Reserved block count:     13421772
Reserved GDT blocks:      960
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
Terminada de formatear la partición y con una reserva del 5%, podemos ver que acabamos de perder más de 40GB de disco, lo cual ya es un porcentaje significativo. Quizás el 5% no diga mucho, 40Gb dicen más.
Para evitar esta pérdida, vamos a reservar únicamente un 1%. La partición /srv no tendrá necesidad de tener tantos datos, pues en este caso estará destinada a almacenar información.
shell> tune2fs -m 1 /dev/vg0/srv
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 1%
Empleamos la opción -m (reserved-blocks-percentage) para pasarle el porcentaje reservado que nos interesa mantener. Tras ello, comparamos la salida del espacio disponible,
shell> df -h
S.ficheros            Size  Used Avail Use% Montado en
/dev/sda3             3,7G  224M  3,3G   7% /
tmpfs                1013M     0 1013M   0% /lib/init/rw
udev                 1008M  160K 1008M   1% /dev
tmpfs                1013M     0 1013M   0% /dev/shm
/dev/sda1             471M   42M  405M  10% /boot
/dev/mapper/vg0-home  2,0G   68M  2,0G   4% /home
/dev/mapper/vg0-tmp   4,0G  137M  3,7G   4% /tmp
/dev/mapper/vg0-usr   7,9G  670M  6,9G   9% /usr
/dev/mapper/vg0-var   9,9G  3,5G  6,0G  37% /var
/dev/mapper/vg0-srv  1008G  200M  998G   1% /srv
Como podemos observar, estamos hablando de una "pérdida" de espacio de 10Gb, mucho más aceptable.
Leer más

Windows 7, cliente NFS


Por fin, después de mucho tiempo descubro, por casualidad, que la última versión del sistema operativo de Microsoft (Windows 7) tiene la posibilidad de tener un cliente nativo de NFS para acceder a recursos en red. Quizás por fin hayan descubierto que NFS es mejor protocolo para compartir ficheros, quizás sepan que en las redes hay servidores con NFS, etc. Sea lo que sea, lo importante es que ya se puede montar una unidad de red a través de NFS.

Para comer usarla, primero tenemos que instalar los componentes de Windows necesarios.

Tras elegir el cliente NFS y aceptar se instalará el software que falte para tener dicho componente activo. Ahora, una vez lo tengamos tenemos que abrir una consola (cmd) como usuario administrador y ejecutar en ella el resto de comandos. Lo único que necesario será habilitar el servicio NFS.

C:\> nfsadmin client start

The service was started successfully.
Y tras ello, montar la unidad de red, tal como sigue,
C:\> mount -o anon,nolock,r,casesensitive \\192.168.0.10\home *
Z: is now successfully connected to \\192.168.0.10\home

The command completed successfully.
Para desmontarla, al más puro estilo GNU/Linux, umount.
C:\> umount.exe Z:

Disconnecting           Z:      \\192.168.0.10\home
The command completed successfully.
Leer más

Clonar particiones en red

Aunque este es un tema bastante recurrido en la red, tuve que emplearlo hace poco para rescatar un disco y me parece interesante ponerlo, para que quede constancia y así la próxima vez que lo tenga que emplear, simplemente lo veo y listo.
SI tenéis la necesidad de clonar un disco en red, la forma más simple de hacerlo es empleando netcat y dd. Del lado del cliente, es decir, del lado del equipo que tiene el disco a clonar, tenemos que ejecutar lo siguiente,
shell> dd if=/dev/vg0/home bs=1M | nc 192.168.1.33
Mientras que del lado del servidor, es decir, el equipo que va a recibir los datos de la clonación, tenemos que ejecutar,
shell> nc -l 9999 | dd of=/dev/vg0/home_ext bs=1M
Una breve explicación de lo que se va a realizar es la siguiente. Primero se ejecuta el segundo comando, para abrir el puerto 9999 y dejar que el flujo de datos que llegue se escriban en la partición home_ext. Ésta debe de existir. A continuación, se ejecuta el primer comando, para enviar todos los datos vía netcat al equipo que está a la escucha. Como se puede observar, dd nos da la clave, if es el origen de datos y of es el destino de los mismos.
Leer más

lvm: "connect() failed on local socket"



Tras hacer algunas pruebas y jugar un poco con lvm y la posibilidad de hacer cluster's, intenté volver al uso normal y cotidiano del mismo, pero cada vez que ejecutaba algún comando que accedía a un recurso lvm, obtenía un maravilloso error, tal como el que sigue. Aunque dicho error no impedía el funcionamiento de los volúmenes lógicos, sí era cuando menos incómodo, ya que daba la sensación de que realmente algo iba a fallar y no se sabía exactamente lo qué.



shell> lvdisplay
connect() failed on local socket: No existe el fichero o el directorio
Internal cluster locking initialisation failed.
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.

shell> vgscan
connect() failed on local socket: No existe el fichero o el directorio
Internal cluster locking initialisation failed.
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
Reading all physical volumes.  This may take a while...
Found volume group "vg0" using metadata type lvm2
Así que puse a investigar cómo poder suprimirlo, y la mejor forma es deshacer todo lo que había hecho, es decir, puesto que estuve jugando a hacer cluster's, lo lógico es deshabilitar el uso de los mismos si ya no se tiene acceso a resto de nodos. Por lo tanto,
shell> lvmconf --disable-cluster
Y como se puede ver, ahora al ejecutar cualquier comando relacionado con lvm, ya no aparece el molesto error que da la sensación de que algo falla al acceder a los grupos. Una vez que ha desaparecido el error, sólo queda reescanear los grupos accesibles localmente, para poder así seguir usándolo. Para ello,
shell> vgchange -a n
  0 logical volume(s) in volume group "vg0" now active
shell> lvscan
  ACTIVE            '/dev/vg0/datos' [53,00 GiB] inherit
  ACTIVE            '/dev/vg0/casa'  [15,00 GiB] inherit
Y ahora, una vez que hemos detectado los dispositivos que hay, los volvemos a activar, para poder usarlos.
shell> vgchange -a y
  2 logical volume(s) in volume group "vg0" now active
shell> lvscan
  ACTIVE            '/dev/vg0/datos' [53,00 GiB] inherit
  ACTIVE            '/dev/vg0/casa'  [15,00 GiB] inherit
Leer más

Deshabilitar el File Access Time del fs

Bajo ciertas circunstancias el rendimiento del sistema de ficheros es más importante que tener la fecha de la última escritura o del última acceso a un fichero. Por ejemplo, si el sistema de ficheros está únicamente dedicado a bases de datos (un MySQL) que necesitan mucho rendimiento de I/O, deshabilitar la escritura de acceso del sistema de ficheros puede permitirnos ganar en rendimiento.
Es por ello, que los sistemas de ficheros modernos integrados de GNU/Linux permiten deshabilitar dichas opciones cuando se montan para ser usados. Estas opciones son:
  • noatime
    no actualiza el inodo con el tiempo de acceso.
  • nodiratime
    no actualiza el inodo del directorio con el tiempo de acceso.
Y estos cambios pueden hacerse permanentemente si se escriben en /etc/fstab para que al montar la partición ya tengas estos valores por defecto, quedando tal que así.
#<file system> <mount point> <type> <options>        <dump> <pass>
/dev/sda3       /srv          xfs    noatime,nodiratime  0      0
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios