Servidor De Ra�ces NFS Mini-COMO
Ofer Maor,
[email protected]
Traducido por Rodolfo Pilas,
[email protected]
v3, 5 Diciembre 1996
El objetivo de este Mini-COMO es explicar c�mo crear directorios en un
servidor que los clientes montar�n como su directorio ra�z por NFS.
______________________________________________________________________
�ndice General:
1. Derechos
1.1. Agradecimientos
2. Prefacio
2.1. Nota
3. Creaci�n del directorio ra�z de los clientes
3.1. Creaci�n del �rbol de directorios
3.2. Creaci�n del sistema de archivos m�nimo para arrancar
3.2.1. Creaci�n del directorio /dev
3.2.2. Copia de los binarios necesarios
3.2.3. El directorio /var
3.2.4. El resto de los directorios
3.3. Preparaci�n del directorio /etc y configuraci�n de los
clientes
3.3.1. Creaci�n del �rbol etc de los clientes
3.3.2. Creaci�n del directorio /etc del cliente
3.3.3. Arrancando
4. Creaci�n de m�s clientes
5. Anexo: El INSFLUG
______________________________________________________________________
1. Derechos
� 1996 Ofer Maor
[email protected]
Se puede encontrar la �ltima versi�n de este Mini-COMO (HTML o texto)
en
http://www.hadar.co.il/ofer/nfs-root-client/
Salvo que exista una aclaraci�n en contra, los documentos COMO de
Linux son propiedad de sus respectivos autores. Los documentos COMO de
Linux pueden ser reproducidos o distribuidos en su totalidad o en
parte, en cualquier medio f�sico o electr�nico, siendo estas
declaraciones de derechos aplicables a todas las copias. Se permite y
fomenta las redistribuciones comerciales, pero en esos casos el autor
debe ser notificado.
Todas las traducciones y trabajos derivados que incorporen cualquier
documento COMO de Linux est�n cubiertos por esta declaraci�n de
derechos. Esto es, Usted no puede producir trabajos derivados de un
COMO e imponerle restricciones adicionales. Pueden ser concedidas
excepciones a estas reglas bajo ciertas condiciones; por favor,
contacte con el coordinador de los COMO de Linux en la direcci�n que
se indica m�s adelante.
En resumen, deseamos promover la diseminaci�n de esta informaci�n a
trav�s de tantos canales como sea posible. Sin embargo, se desea
retener los derechos sobre los documentos COMO, y nos gustar�a estar
informados de cualquier plan de redistribuir los COMOs.
Si tiene preguntas, por favor, contacte con Ofer Maor
[email protected], o Greg Hankins, el coordinador de los Linux COMO,
[email protected] v�a correo electr�nico.
Si tiene cualquier cosa para agregar a este Mini-COMO, por favor env�e
un email al autor (Ofer Maor
[email protected]), con la informaci�n.
Toda informaci�n nueva que sea relevante ser� bienvenida.
1.1. Agradecimientos
Me gustar�a expresar mi agradecimiento al autor de Linux Con Ra�z NFS
Mini-COMO, Andreas Kostyrca,
[email protected]. A partir de su
Mini-COMO pude dar los primeros pasos para montar mis clientes con
directorio ra�z por NFS. Este Mini-Como no pretende, de ninguna
forma, suplantar dicho trabajo; lo ampl�a usando mi experiencia en
este proceso.
Tambi�n quiero agradecer a Mark Kushinsky,
[email protected] por pulir
el ingl�s y las expresiones de este Como, hasta lograr hacerlo mucho
m�s legible.
2. Prefacio
Este Mini-Como ha sido escrito para ayudar a las personas que desean
preparar los directorios de un servidor para ser montados como
directorio ra�z mediante por clientes NFS.
Por favor, tenga en cuenta que existen muchas maneras de lograr esto,
dependiendo de las necesidades y de sus intenciones. Si cada cliente
es individual, y cada uno de ellos tiene su propio usuario y
administrador, ser� necesario que una parte significativa de los
directorios de cada cliente no sea compartida con otro cliente. Por
otro lado, si el cliente es accesible a muchos usuarios y est�n todos
administrados por la misma persona (como en un aula de clases), se
buscar� que la mayor cantidad posible de archivos est�n compartidos a
los efectos de hacer la administraci�n m�s manejable. Este Como se
enfoca en esta segunda opci�n.
2.1. Nota
Cuando se construye el que ser� el directorio ra�z del cliente, y se
trata de ocupar un espacio m�nimo, se debe atender principalmente a
qu� archivos pueden ser compartidos o montados desde el servidor. En
este Como recomiendo la configuraci�n de un cliente basado en mi
experiencia. Pero antes de empezar tenga en cuenta que:
� Este Mini-COMO no explica la importaci�n del directorio ra�z por
NFS. Refi�rase al Linux-Con-Ra�z-NFS Mini-COMO si necesita mayor
informaci�n sobre esto.
� Yo baso la mayor�a de las configuraciones de mis clientes en
montajes y enlaces simb�licos. Muchos de los enlaces simb�licos
pueden ser reemplazados por enlaces r�gidos (hardlinks). Uno puede
elegir de acuerdo a sus preferencias personales. Utilizar enlaces
r�gidos sobre lo montado en vez de enlaces simb�licos tiene sus
ventajas, pero puede causar confusi�n. Un archivo no es borrado
definitivamente hasta que todos los enlaces r�gidos sean
eliminados. Por esto, en previsi�n del caso en que alg�n archivo
sea puesto al d�a y el enlace r�gido todav�a se refiera a la
versi�n vieja, es necesario tener especial cuidado en recordar cada
enlace que utilice.
� Cuando se monta la informaci�n desde el servidor, pueden seguirse
dos m�todos. El primero (y m�s com�n), es montar la totalidad del
directorio ra�z del servidor bajo un directorio local, y cambiar
simplemente la trayectoria de b�squeda o enlazar los directorios
relevantes all�. Personalmente no me gusta montar la partici�n
ra�z del servidor en los clientes. Por ello, este Como sugiere un
m�todo para montar los directorios relevantes del servidor en los
lugares apropiados del sistema.
� Este Como est� basado en mi experiencia en la preparaci�n de
directorios para clientes basados en la distribuci�n Slackware 3.1.
Algunas cosas pueden resultar diferentes (especialmente en los
archivos rc.*), para usuarios de otras distribuciones, sin embargo
los m�todos y conceptos no var�an.
3. Creaci�n del directorio ra�z de los clientes
3.1. Creaci�n del �rbol de directorios
Antes que nada, es necesario crear la estructura de directorios en s�.
Yo creo todos los clientes bajo /clients/nombre-maquina y usar� esto
en los ejemplos que cito a continuaci�n. No obstante, se puede
cambiar por cualquier otro nombre. La primera etapa por tanto,
consiste en crear los directorios relevantes en el que ser� directorio
ra�z del cliente. Se deben crear los siguientes directorios:
/bin
/dev
/etc
/home
/lib
/mnt
/proc
/sbin
/server
/tmp
/usr
/var
y cualquier otro directorio que desee tener en su sistema.
Los directorios locales /proc y /dev deben ser utilizados
separadamente por cada m�quina, a diferencia del resto de directorios,
que pueden estar compartidos parcial o completamente con el resto de
los clientes.
3.2. Creaci�n del sistema de archivos m�nimo para arrancar
3.2.1. Creaci�n del directorio /dev
Si bien el directorio /dev puede ser compartido, es mejor crearlo
separado para cada cliente. Puede crear dicho directorio en el
cliente con la macro MAKEDEV; sin embargo, en muchos casos resulta m�s
simple copiarlo del servidor:
cp -a /dev /clients/nombre-maquina
Debe recordar que /dev/mouse, /dev/cdrom y /dev/modem son enlaces
simb�licos a los dispositivos actuales y por tanto, asegurarse de que
queden enlazados correctamente para apuntar al hardware
correspondiente del cliente.
3.2.2. Copia de los binarios necesarios
Aunque montemos todo desde el servidor, existe un grupo de binarios
que necesitamos copiar para cada cliente. Para empezar, necesitamos
"init", ya que nuestro sistema no podr� ejecutar nada antes de
inicializarse (como su autor indica en los comentarios sobre el
programa).
Por tanto, primero deber� copiar /sbin/init al directorio /sbin del
cliente y como ejecutar� rc.S, necesitar� copiar /bin/sh al directorio
/bin del cliente. Para poder montar necesitar� copiar /sbin/mount al
directorio /sbin del cliente.
Esto es lo m�nimo, asumiendo que la primera l�nea de su rc.S es mount
-av. No obstante, recomiendo copiar algunos archivos m�s: update, ls,
rm, cp y umount, y as� disponer de las herramientas b�sicas en caso de
que el cliente tenga problemas para montar. Si elige tener el swap
habilitado antes de montar, tambi�n tendr�a que copiar el binario
swapon.
Ya que muchos de estos binarios est�n por defecto compilados
din�micamente, necesitar� copiar una peque�a parte de /lib:
cp -a /lib/ld.* /lib/libc.* /lib/libcurses.* /client/nombre-maquina/lib
Tambi�n es posible enlazar los binarios a s� mismos, en lugar de
copiarlos. Por favor, lea mis comentarios de la secci�n ``'' de este
documento.
Tenga en cuenta que estamos asumiendo que el n�cleo ha recibido todos
los par�metros de red mientras se iniciaba. Si planea utilizar rarp o
bootp, posiblemente necesite copiar tambi�n los binarios relevantes
para esto.
Generalmente, se necesitar� tener un m�nimo de archivos disponibles
para configurar la red y ejecutar rc.S hasta el momento en que se
monta el resto del sistema de archivos.
3.2.3. El directorio /var
El directorio /var, en muchos casos, puede ser separado para cada
cliente. Sin embargo, gran parte de la informaci�n puede estar
compartida. Cree bajo el directorio del servidor un directorio
llamado var. Montaremos el directorio /var de all�. Para crear el
directorio local /var, simplemente escriba:
cp -a /var /clients/nombre-maquina
Ahora, tiene la posibilidad de elegir lo que desea separar, y lo que
desea compartir. Para compartir cualquier directorio/archivo,
elim�nelo simplemente del directorio /var del cliente y enl�celo en al
directorio /server/var. Tenga en cuenta que debe enlazar tanto para
/server/var como para ../server/var pero NO para /clients/nombre-
maquina/server/var ya que esto no funcionar� cuando cambie el
directorio ra�z en cada cliente.
Generalmente recomiendo separar /var/run, /var/lock, /var/spool y
/var/log.
3.2.4. El resto de los directorios
� /etc se explica en la siguiente secci�n.
� /mnt y /proc son para prop�sitos locales de cada cliente
� /usr y /home son solamente para montar
� /tmp depende de Usted. Se puede crear un directorio tmp diferente
para cada cliente, o crear un directorio /clients/tmp y montarlo
para cada cliente en /tmp. Yo recomiendo darle a cada cliente un
directorio tmp separado.
3.3. clientes Preparaci�n del directorio /etc y configuraci�n de los
Tenga en cuenta lo siguiente: esta secci�n se refiere a la creaci�n
del directorio etc que est� preferentemente compartido entre los
clientes. Si sus clientes sin disco tienen administradores de sistema
diferentes, lo mejor es configurar un directorio etc para cada
cliente.
3.3.1. Creaci�n del �rbol etc de los clientes
Aunque separemos el directorio etc para los clientes, mantendremos
compartida una gran parte de los archivos que all� se encuentran.
Creo que compartir los archivos con el /etc del servidor es mala idea,
y recomiendo crear un directorio /clients/etc que contenga la
informaci�n compartida entre los clientes. Para arrancar con esto,
simplemente copie el contenido del /etc del servidor en el directorio
/clients/etc.
Se deber� colocar en este directorio todos los archivos de
configuraci�n que no sean espec�ficos para una m�quina, como pueden
ser motd, issue, etc. y no los que sean espec�ficos del cliente, como
inittab o fstab.
El cambio m�s importante que deberemos realizar estar� bajo el
directorio rc.d. Primero, deberemos cambiar rc.inet1 para que refleje
la configuraci�n local. Yo paso al n�cleo todos los par�metros de red
usando LILO/Loadlin, por lo que quito todo lo relacionado del archivo
rc.inet1. Lo �nico que dejo all� son los binarios ifconfig y route
del cliente. Si utiliza rarp o bootp, necesitar� crearlo acorde a
esto.
En segundo lugar, deber� editar su rc.S y eliminar todas las partes
responsables de la comprobaci�n por parte de fsck que tiene lugar
cuando arranca el servidor. Debe encontrar la l�nea que monta su
fstab, que se parecer� a:
mount -avt nonfs
El par�metro -t nonfs se debe a que los clientes normales ejecutan
primero rc.S, usando despu�s rc.inet1 para configurar la red. Como
esto provoca que no sea montada ninguna partition NFS, la l�nea es
ignorada, y por ello, se debe cambiar a mount -av. Si necesita
ejecutar rarp/bootp para configurar la red, h�galo en rc.S (o incluya
una llamada a alguna macro desde rc.S), antes de montar, y aseg�rese
de que sus directorios /bin y /sbin tengan disponibles los archivos
necesarios.
Una vez se lleva a cabo mount -av, tendr� un sistema de archivos
funcionando. Cree un fstab general, luego puede copiarlo en cada
cliente. Su fstab debe ser aproximadamente como este:
server/nfs default 1 1
server:/bin /bin nfs default 1 1
server:/usr /usr nfs default 1 1
server:/sbin /sbin nfs default 1 1
server:/home /home nfs default 1 1
server:/lib /lib nfs default 1 1
server:/clients/etc /server/etc nfs default 1 1
server:/clients/var /server/var nfs default 1 1
none /proc proc default 1 1
Aseg�rese tambi�n de que el /etc/exports del servidor sea algo como:
/clients/<nombre-m�quina> maquina.dominio(rw,no_root_squash)
/clients/etc maquina.dominio(ro,no_root_squash)
/clients/var maquina.dominio(ro,no_root_squash)
/usr maquina.dominio(ro,no_root_squash)
/sbin maquina.dominio(ro,no_root_squash)
/bin maquina.dominio(ro,no_root_squash)
/lib maquina.dominio(ro,no_root_squash)
/home maquina.dominio(ro,no_root_squash)
Con excepci�n de la primera l�nea, que debe ser �nica para cada
m�quina, el resto de las l�neas pueden ser reemplazadas por nombres
que engloben a todas las m�quinas (por ejemplo pc*.dominio). Le
sugiero crear la mayor�a de los directorios como s�lo lectura, aunque
esto es decisi�n suya. La indicaci�n no_root_squash har� que los
usuarios administradores de los clientes tengan tambi�n los permisos
vigentes de root sobre nfsd. Revise la p�gina man exports(5). Si
desea que los usuarios puedan ejecutar passwd desde los clientes,
aseg�rese que /etc est� con permisos rw y no ro. Aunque esto no es
obligatorio.
Por favor, tenga en cuenta otro detalle en el archivo rc.S. En
Slackware, por defecto, se crea un nuevo /etc/issue y /etc/motd cada
vez que se ejecuta. Esta funci�n DEBE ser deshabilitada si dichos
archivos son montados como s�lo lectura desde el servidor, y
recomiendo que est�n deshabilitados en todos los casos.
Finalmente, si desea mantener la misma base de usuarios tanto en el
servidor como en los clientes, deber� elegir entre:
1. usar NIS (P�ginas Amarillas - revise el NIS-Como), cada cliente
deber� disponer, por separado, de un /etc/passwd y un /etc/group
tal y como lo recibe del servidor NIS.
2. En la mayor�a de los casos, ser� suficiente con un simple enlace
simb�lico. Por lo tanto, necesitar� o bien un enlace r�gido
(hardlink) de /clients/etc/passwd a /etc/passwd, o si prefiere, un
enlace simb�lico, enlazando /etc/passwd a /clients/etc/passwd (y no
de la otra forma, ya que los clientes no montar�n el directorio
/etc del servidor). Haga lo mismo para /etc/group.
3.3.2. Creaci�n del directorio /etc del cliente
Generalmente, la mayor�a de los archivos en el /etc del cliente
estar�n enlazados simb�licamente con el directorio /server/etc. Sin
embargo, algunos archivos son diferentes para cada m�quina, y otros
solamente tienen que estar all� cuando el n�cleo los carga. Lo m�nimo
que se necesita en el directorio /etc es lo siguiente:
resolv.conf
hosts
inittab
rc.d/rc.S
fstab
Ya que estos cinco archivos pueden ser id�nticos para todos los
clientes, los puede simplemente enlazar r�gidamente o copiarlos una y
otra vez. No obstante, con los archivos rc.S y fstab debe tener
presente que se necesita una copia separada para cada cliente.
Tambi�n necesitar� separar el /etc/HOSTNAME de cada cliente. Yo
personalmente recomiendo tener todos los archivos de rc.d separados
para cada cliente, ya que la configuraci�n de hardware puede variar de
uno a otro.
Para cada cliente, agregue en el fstab una l�nea apropiada para el
archivo de intercambio:
/dev/particion_swap swap swap default 1 1
Con el resto de los archivos del /etc del cliente, puede o bien
enlazarlos r�gidamente a los archivos /clients/etc/* o bien
simb�licamente con /server/etc (ya que es el punto de montaje de
/clients/etc/)
Aseg�rese de que su m�quina puede resolver apropiadamente, tanto a
trav�s de named como de etc/hosts. No es mala idea mantener el n�mero
IP del servidor en /etc/hosts, en lugar de contar con resolverlo. Si
conf�a resolverlo con named solamente, cualquier problema con named
puede impedir que sus clientes arranquen.
3.3.3. Arrancando
Ahora, todo lo que necesita hacer es iniciar su m�quina, cruzar los
dedos y esperar que todo funcione como debe :-).
4. Creaci�n de m�s clientes
Si ha seguido mis instrucciones, lo cual deber�a haberle resultado
simple, cambie al directorio /clients/ y escriba:
cp -a hostname1 hostname2
y aseg�rese de revisar estos puntos:
los archivos rc.d/* coinciden con el hardware y la configuraci�n de
software de /etc/HOSTNAME es correcta, la l�nea del archivo de swap en
fstab es correcta, y los enlaces simb�licos a dev/mouse, dev/modem y
dev/cdrom son correctos.
Mucha suerte ...
5. Anexo: El INSFLUG
El INSFLUG forma parte del grupo internacional Linux Documentation
Project, encarg�ndose de las traducciones al castellano de los Howtos
(Comos), as� como la producci�n de documentos originales en aquellos
casos en los que no existe an�logo en ingl�s.
En el INSFLUG se orienta preferentemente a la traducci�n de documentos
breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
:) ), etc.
Dir�jase a la sede del INSFLUG para m�s informaci�n al respecto.
En la sede del INSFLUG encontrar� siempre las �ltimas versiones de las
traducciones: www.insflug.org. Aseg�rese de comprobar cu�l es la
�ltima versi�n disponible en el Insflug antes de bajar un documento de
un servidor r�plica.
Se proporciona tambi�n una lista de los servidores r�plica (mirror)
del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
recursos en castellano.
Francisco Jos� Montilla,
[email protected].