Tengo que "modificar" un cambio en /etc/exports para poder ejecutar mount -a, ¿cuál es el problema?

Tengo que "modificar" un cambio en /etc/exports para poder ejecutar mount -a, ¿cuál es el problema?

Siempre que tengo que reiniciar el servidor1, la única forma de recuperar los montajes NFS en el servidor2 es cambiar uno de los enteros "fsid" en el archivo/etc/exportacionesarchivo en el servidor1. De lo contrario, elmontar -aEl comando simplemente se cuelga en el servidor2.

Escenario típico:

El servidor1 se reinicia. En el servidor1, tengo dos líneas de código en/etc/exportaciones:

/mnt/ramdisk/dir1 *(fsid=0,rw,no_root_squash,no_subtree_check,async)
/mnt/ramdisk/dir2 *(fsid=1,rw,no_root_squash,no_subtree_check,async)

Emito este comando:

"exportfs -r".

En el servidor 2, tengo esto en/etc/fstab:

xxx.xxx.x.x:/server1_dir1/ /dir1_server2 nfs async,noatime 0 0
xxx.xxx.x.x:/server2_dir2  /dir2_server2 nfs async,noatime 0 0

Primero "desmonto" los directorios antiguos que ahora tienen identificadores NFS obsoletos. Entonces,

"mount -a"

El comando se cuelga. Después de que lo mate,dfmuestra dir1 montado, pero dir2 no.

La única forma de montar ambos directorios es cambiar el entero fsid por otro. Por ejemplo, en el servidor1 ahora tenemos:

/mnt/ramdisk/dir1 *(fsid=0,rw,no_root_squash,no_subtree_check,async)
/mnt/ramdisk/dir2 *(fsid=2,rw,no_root_squash,no_subtree_check,async)

Cambiéfsid=1 a =2. vuelvo a emitir elexportfs -rcomando, y listo, elmontar -aEl comando funciona en el servidor2.

Tal vez no entiendo lo quefsidrealmente lo hace, pero obviamente debe haber una mejor manera de "remontar" NFS que tener que editar aleatoriamente el número fsid cada vez.

EDITAR: Si no tengofsidincluido en mi archivo de exportaciones en el servidor1, me da

"Warning: /mnt/ramdisk/dir1 requires fsid= for NFS export" 

Y, si configuro fsid=0 para ambas líneas (dir1 y dir2), entonces los puntos de montaje terminan siendo los mismos ya que todos mis archivos se copiaron en la ubicación dir1. Entonces, parece que la única forma de que esto funcione es cambiar constantemente los enteros fsid, de forma algo aleatoria.

EDITAR2: Quiteidf=0ya que es "especial", y los cambié aidf=1yidf=2en/etc/exportacionesen el servidor1. Por supuesto, esto funcionó (ya que se cambió el archivo). Pero hoy tuve que reiniciar a la fuerza y ​​después de desmontar (lentamente) las unidades obsoletas del servidor 2,montar -afalló, como antes. Entonces, (como antes), edité el archivo de exportaciones en el servidor1, esta vez,idf=2yidf=3,exportfs -r, y voilá,montar -aFunciona de nuevo en el servidor 2. De vuelta al cuadro 1.

EDITAR3Información crítica: si elimino todo de manera controlada (es decir, el servidor1 no "falla") y primero desmonto los directorios en el servidor2, luego reinicio el servidor1, LUEGO monto -a en el servidor2, funciona muy bien. Sólo cuando los montajes en el servidor 2 se cortan abruptamente ocurre este problema. Entonces, ¿supongo que es necesario restablecer algo en el servidor 2? Sé que lleva mucho tiempo desmontar los identificadores obsoletos en el servidor 2 después de que el servidor 1 falla.

Respuesta1

Supongo que el problema se debe al uso de fsid=0en una de sus exportaciones.

Recuerde que fsidestá destinado a identificar de forma única los dispositivos cuando el controlador del sistema de archivos subyacente no proporciona sus propios ID únicos. Y en particular, fsid=0tiene unsignificado especial:

Para NFSv4, existe un sistema de archivos distinguido que es la raíz de todos los sistemas de archivos exportados. Esto se especifica con fsid=rooto fsid=0ambos, los cuales significan exactamente lo mismo.

Como claramente esto no es lo que desea, utilice siempre un fsid distinto de 0.

información relacionada