Conceptos básicos de NFS en Linux

  

Descripción general de NFS

NFS es el acrónimo de Network FileSystem, que fue desarrollado por primera vez por Sun. Su función más importante es hacer que diferentes máquinas, diferentes sistemas operativos
compartan sus propios archivos (compartir archivos) a través de la red, de modo que simplemente pueda pensar en él como un servidor de archivos. . Este servidor NFS permite que su PC monte el directorio compartido por el host NFS remoto en la red en la máquina local. Por lo tanto, la máquina local parece que el directorio del host remoto es como su propia partición. La máquina remota que le proporciona el recurso compartido es el servidor y su PC es el cliente.

El protocolo NFS se ha lanzado desde su inicio, como NFS V2 (rfc1094), NFS V3 (rfc1813) y la última versión es V4 (rfc3010).

V3 agrega muchas funciones a V2. Una de las funciones importantes es agregar la función de escritura asíncrona. Aquí hay una introducción:

¿Puede NFS V3 usar escrituras asíncronas? Esta es una característica opcional. El cliente NFS V3 envía una solicitud de escritura asíncrona al servidor, y el servidor no tiene que escribir datos en la memoria (estable) antes de responder al cliente. El servidor puede determinar cuándo escribir datos o agregar varias solicitudes de escritura juntas y procesarlas, luego escribir. El cliente puede guardar una copia de los datos en caso de que el servidor no pueda escribir los datos completamente. Cuando el cliente desea liberar la copia, pasa el proceso al servidor para asegurarse de que cada paso esté completo. Las escrituras asíncronas permiten al servidor determinar la mejor estrategia para sincronizar datos. Haga que los datos lleguen lo más cerca posible de la llegada de los datos. Comparado con V2, un mecanismo de este tipo puede lograr un mejor almacenamiento de datos y más paralelo (balance). El SERVIDOR NFS V2 ya no puede escribir solicitudes de escritura antes de escribir datos en la memoria.

Entonces, ¿cómo se implementa NFS?


Descripción general de RPC

Aunque NFS tiene su propio protocolo y número de puerto, pero cuando se entrega la transferencia de datos u otra información relacionada NFS utiliza un protocolo llamado Llamada a procedimiento remoto (RPC) para ayudar en el funcionamiento de NFS.

Cuando utilizamos algunos servicios para la conexión remota, es necesario administrar y corresponder cierta información, como la IP del host, el número de puerto del servicio y el PID del servicio correspondiente. El trabajo de estas correspondencias de puertos de administración y dependencias de servicio es la tarea de esta llamada a procedimiento remoto, RPC.

El servicio NFS en sí no proporciona un protocolo para la transferencia de datos, pero NFS nos permite compartir archivos. La razón de esto es que NFS utiliza otros protocolos de transporte relacionados. El protocolo para estas transmisiones es utilizar la llamada función RPC. Es decir, NFS en sí mismo es un programa que usa RPC. Para decirlo más claramente, NFS también puede considerarse como un servidor RPC.

Al mismo tiempo, se debe tener en cuenta que en algunas situaciones, no solo el servidor que ejecuta NFS necesita activar el servicio RPC, sino también la máquina cliente que monta la partición NFS, y también debe activar RPC de forma síncrona. La razón es que esto se puede hacer para que el lado del servidor y el lado del cliente puedan realizar la correspondencia del puerto del programa mediante el protocolo RPC. NFS gestiona principalmente los directorios compartidos y, en la medida en que se pasan los datos, se lanzará directamente al protocolo RPC para que funcione.

Entonces, ¿qué tipo de programa de fondo se necesita para acceder a los archivos en el lado del servidor, es decir, el lado del servidor necesita proporcionar servicios NFS? ¿Qué programas daemon son necesarios? De la discusión anterior, podemos saber que el servidor nfs es en realidad un servidor rpc, por lo que el demonio que proporciona nfs es el demonio rpc.


Daemons RPC del servidor NFS

El cliente necesita acceder al archivo del servidor nfs, el servidor NFS debe tener un servicio NFS y el servicio NFS es Se realiza mediante los siguientes dos procesos de fondo.

2, rpc.mountd: la función principal de este daemon es administrar el sistema de archivos NFS.

Cuando el cliente inicie sesión correctamente en el host a través de rpc.nfsd, pasará el permiso del archivo antes de que pueda usar el archivo proporcionado por el servidor NFS (es decir, el -rwxrwxrwx y el propietario, agrupar esos permisos) ) El proceso de certificación. Leerá el archivo de configuración NFS /etc /exports para comparar los permisos del cliente. Después de pasar este nivel, el cliente puede obtener el permiso para usar el archivo NFS.
(Nota: aquí también utilizamos los permisos y la configuración de seguridad para administrar los directorios compartidos de NFS).

Para que NFS esté en funcionamiento externamente, se requieren un total de dos paquetes. Son:

1, nfs-utils: es un conjunto de demonios NFS y otros documentos y documentos relacionados, archivos ejecutables, etc., que son rpc.nfsd y rpc.mountd. Este es el paquete principal de NFS.

2, portmap: Mejora la asignación de puertos.
Como acabamos de mencionar, nuestro NFS puede considerarse como un programa de servidor RPC, y antes de que podamos activar cualquier programa de servidor RPC, debemos hacer el trabajo de mapeo del puerto. El trabajo es realmente responsable del servicio "portmap". En otras palabras, debemos activar portmap antes de activar cualquier servidor RPC.

Entonces, ¿qué está haciendo el portmap? Al igual que el nombre de este servicio, es la asignación del puerto. Por ejemplo: cuando el cliente intenta usar el servicio proporcionado por el servidor RPC, el cliente necesita obtener un puerto que se pueda conectar para usar el servicio proporcionado por el servidor RPC. Por lo tanto, el cliente hablará primero con el mapa de puertos. ¿Puedes decirme, dame un número de puerto, para que pueda contactarme con RPC? This, esta vez portmap informará automáticamente al cliente de la asignación de puertos que gestiona, para que pueda conectarse al servidor.

Entonces: "Activar portmap antes de activar NFS"


Configuración del cliente NFS

Lado del cliente La configuración, de hecho, es decir cómo el cliente debe montar el directorio del host, por supuesto, utilizando el directorio mount, su sintaxis:

#mount -t nfs hostname (orIP): /directory /mountpoint

Para preocuparse por la ejecución del programa del archivo con privilegios SUID que se vinculará accidentalmente al lado NFS, la raíz puede montar el directorio compartido por NFS en una situación más segura,

#mount -t Nfs -o nosuid, ro nombre de host: /directory /mountponit

Otros parámetros opcionales para el montaje nfs:

1, montaje HARD y SOFT MOUNT:

HARD: NFS El CLIENTE continuará intentando conectarse con el SERVIDOR (en el fondo, no proporcionará ninguna información rápida, algunas versiones en Linux aún darán algunos consejos), hasta MOUNT.

SOFT: intentará conectarse con el SERVIDOR en el primer plano, que es el método de conexión predeterminado. El intento de montaje termina cuando se recibe un mensaje de error y se proporciona la información relevante.

Ejemplo: mount -F nfs -o hard 192.168.0.10:/nfs /nfs

Para la pregunta de si usar duro o blando, depende principalmente de la información que visite. Por ejemplo, si desea ejecutar X PROGRAM a través de NFS, definitivamente no desea que el sistema muestre una gran cantidad de mensajes de error debido a algunas situaciones inesperadas (como que la velocidad de la red sea muy lenta, enchufar el conector de la tarjeta de red, etc.). Si está utilizando el método HARD en este momento, el sistema esperará hasta que pueda restablecer la conexión con el SERVIDOR NFS para transferir información. Además, si se trata de datos no críticos, también puede usar el método SOFT, como los datos de FTP, para que su sesión no se suspenda cuando la máquina remota esté temporalmente conectada o cerrada.

Copyright © Conocimiento de Windows All Rights Reserved