Guía Gentoo Linux OpenAFS
1.
Introducción
Sobre este documento
Este documento provee todos los pasos necesarios para instalar un
servidor OpenAFS en Gentoo Linux. Partes de este documento están
tomadas del AFS PUF y la Guía de inicio rápido sobre AFS de
IBM. Bueno, nunca reinventaremos la rueda. :)
¿Qué es AFS?
AFS es un sistema de archivos distribuido que permite compartir,
eficientemente, recursos del sistema de archivos a través de una
red de área local y una red de área amplia entre máquinas
co-operativas (clientes y servidores). Los clientes mantienen un
caché de los objetos más utilizados (archivos), para tener un
acceso más rápido.
AFS está basado en el sistema de archivos distribuido
originalmente desarrollado en el Centro de Tecnología de la
Información de la Universidad Carnegie-Mellon que fue llamado el
"Sistema de Archivos Andrew". "Andrew" era el nombre del proyecto
de investigación de la CMU - honrando a los fundadores de la
universidad. Una vez que Transarc fue formada y AFS se convirtió
en un producto, el "Andrew" fue dejado de lado como una forma de
indicar que AFS había ido más allá del proyecto de investigación
Andrew y se había convertido en un producto con soporte, un
sistema de archivos de calidad. Sin embargo, ya habían numerosas
celdas cuyo sistema de archivos raíz era /afs. Inicialmente,
cambiar este detalle no era una operación sencilla, así que, para
evitar que los primero sitios AFS tuviesen que renombrar sus
sistemas de archivos, se mantuvo el nombre AFS.
¿Qué es una celda AFS?
Una celda AFS es una colección de servidores agrupados juntos
administrativamente y que representan un único y cohesionado sistema
de archivos. Típicamente, una celda AFS es un conjunto de máquinas que
comparten el mismo nombre de dominio de Internet (como por ejemplo
gentoo.org). Los usuarios ingresan al sistema a través de una de las
estaciones de trabajo cliente y esta solicita, a nombre del usuario,
la información y archivos necesarios de los servidores de la celda. El
usuario no sabe en qué servidor se encuentra el archivo al que está
accediendo, incluso no notará si el servidor está localizado en otra
habitación, dado que cada volumen puede ser replicado y movido a otro
servidor sin que el usuario lo note. Los archivos son siempre
accesibles. Es como NFS, pero con esteroides :)
¿Cuáles son los beneficios de usar AFS ?
Las principales fortalezas de AFS son: facilidad en el manejo del
caché (en el lado del cliente, normalmente de 100M a 1GB),
características de seguridad (basado en Kerberos 4, listas de control
de acceso), simplicidad en el direccionamiento (existe un único sistema
de archivos), escalabilidad (es posible agregar servidores a la celda
cuando sea necesario), protocolo de comunicaciones.
¿Dónde puedo encontrar más información?
Lee el AFS
PUF.
La página principal de OpenAFS www.openafs.org.
AFS fue desarrollado originalmente por Transarc que es ahora
parte de IBM. No ha vuelto a aparecer en el catálogo de productos
de IBM desde abril de 2005.
¿Cómo puedo depurar problemas?
OpenAFS tiene grandes capacidades de bitácora. Sin embargo, por
defecto, los mensajes son direccionados directamente a sus propias
bitácoras en vez de hacerlo a través de los mecanismos que tienes en
tu sistema. Para que los servidores utilicen estos mecanismos agrega
la opción -syslog a todos los comandos bos.
2.
Actualizando desde versiones anteriores
Introducción
Esta sección apunta a ayudarte a través del proceso de actualización
de una instalación existente a OpenAFS versión 1.4.0 o superior (o
1.2.x empezando desde 1.2.13. Lo antes mencionado no será atacado
específicamente, ya que la mayoría de las personas querrán la versión
1.4 debido a que incorpora soporte apropiado de linux-2.6, soporte para
archivos más grandes y correcciones de ciertos fallos).
Si, en cambio, estás haciendo una instalación completamente nueva de
la versión 1.4 de OpenAFS, entonces no dudes en saltarte este
capítulo. Sin embargo, si estás actualizando de una versión anterior,
es muy recomendable que sigas las instrucciones de las siguientes
secciones. El guión de transición en el ebuild está diseñado para
asistirte en una actualización rápida y el reinicio del sistema en
poco tiempo. Por favor, nota que (por razones de seguridad) no borrará
los archivos de configuración y guiones de arranque de los lugares
antiguos, tampoco alterará tu configuración de arranque para que
utilice los nuevos guiones, etc. Si necesitas más razones para
convencerte, utilizando el antiguo módulo OpenAFS del núcleo junto con
los binarios del sistema actualizados, muy probablemente causará que
tu núcleo enloquezca. Así que, sigamos leyendo para tener una
transición limpia y tranquila, ¿ok?
Nota:
Este capítulo ha sido escrito teniendo en mente distintas
configuraciones del sistema. Sin embargo, es posible que debido a
ajustes que el usuario haya realizado, su configuración específica no
esté descrita aquí. Un usuario con suficiente confianza en sí mismo
como para modificar sus sistema debe tener suficiente experiencia cómo
para aplicar los consejos aquí presentados cuando sean
necesarios. Viceversa, un usuario que haya hecho pocas modificaciones
puede saltarse la mayoría de las advertencias.
|
Diferencias con versiones anteriores
Tradicionalmente, OpenAFS ha utilizado las mismas convenciones de
rutas que utilizaba IBM TransArc labs, antes de que el código sea
bifurcado. Por lo cual se entiende que configuraciones antiguas de AFS
sigan con aquellas convenciones de rutas antiguas. Instalaciones más
recientes están más acorde con el FHS al utilizar ubicaciones estándar
(como se ve en muchas distribuciones de Linux). La siguiente tabla es
una compilación del guión de configuración y el LEEME que acompaña los
comprimidos de la distribución de OpenAFS:
| Directorio |
Propósito |
Modo Transarc |
Modo por defecto |
Traducción hacia Gentoo |
| viceetcdir |
Configuración del cliente |
/usr/vice/etc |
$(sysconfdir)/openafs |
/etc/openafs |
| sin nombre |
Binarios del cliente |
sin especificar |
$(bindir) |
/usr/bin |
| afsconfdir |
Configuración del servidor |
/usr/afs/etc |
$(sysconfdir)/openafs/server |
/etc/openafs/server |
| afssrvdir |
Binarios internos del servidor |
/usr/afs/bin (servers) |
$(libexecdir)/openafs |
/usr/libexec/openafs |
| afslocaldir |
Estado del servidor |
/usr/afs/local |
$(localstatedir)/openafs |
/var/lib/openafs |
| afsdbdir |
Auth/serverlist/... bases de datos |
/usr/afs/db |
$(localstatedir)/openafs/db |
/var/lib/openafs/db |
| afslogdir |
Archivos de bitácora |
/usr/afs/logs |
$(localstatedir)/openafs/logs |
/var/lib/openafs/logs |
| afsbosconfig |
Configuración del supervisor |
$(afslocaldir)/BosConfig |
$(afsconfdir)/BosConfig |
/etc/openafs/BosConfig |
Hay algunas rarezas, como binarios siendo colocados en
/usr/vice/etc en modo Transarc, pero esta lista no
intenta ser exhaustiva. Es más que nada para dar una referencia a
aquellos tratando de resolver problemas con la transición de sus
archivos de configuración antiguos.
Otro resultado del cambio de rutas es que el caché de disco ha sido
movido de ubicación de /usr/vice/cache a
/var/cache/openafs.
Además, el guión de inicio ha sido dividido en una parte cliente y
otra servidor. Solía existir /etc/init.d/afs, pero ahora
existen tanto /etc/init.d/openafs-client como
/etc/init.d/openafs-server. Consecuentemente, el archivo
de configuración /etc/conf.d/afs a sido dividido en
/etc/conf.d/openafs-client y
/etc/conf.d/openafs-server. Junto con esto, las opciones
dentro de /etc/conf.d/afs para definir la máquina como
cliente o servidor son ahora obsoletas.
Otro cambio en el guión de inicio ha causado que la configuración de
tu caché de disco ya no sea revisada. El antiguo código requería que
una partición ext2 separada sea montada en
/usr/vice/cache. Habían algunos problemas con ello:
-
Aunque es una configuración muy lógica, tu caché no necesita estar
en una partición separada. Mientras te asegures que exista la
cantidad de espacio libre que especificas en
/etc/openafs/cacheinfo para el uso del caché de
disco, estás a salvo. Así que no existe un problema real con que
tu caché esté en tu partición raíz.
-
Algunas personas utilizan enlaces simbólicos para apuntar a la
verdadera ubicación del caché de disco. El guión de inicio no se
llevaba bien con ello, ya que la ubicación del caché no era
mostrada en /proc/mounts.
-
En estos días, muchos prefieren ext3 sobre ext2. Ambos sistemas de
archivos son válidos para utilizarlos en el caché de
disco. Cualquier otro sistema de archivos no está soportado (como
por ejemplo: no intentes reiserfs, recibirás una enorme
advertencia, y ocurrirán fallos de todas formas).
Transición a las nuevas rutas
Antes de nada, emerger una nueva versión de OpenAFS no debe
sobreescribir ningún archivo de configuración antiguo. El guión está
diseñado para no alterar ningún archivo de configuración ya existente
en el sistema. Incluso si tienes una configuración completamente
entreverada utilizando nuevas y antiguas ubicaciones, el guión no debe
causar mayores problemas. También, si se detecta que hay un servidor
OpenAFS ejecutándose, la instalación se detendrá, previniendo
cualquier posible corrupción en la base de datos.
Una advertencia sin embargo -- han estado circulando algunos ebuilds a
través de la Internet que desactivan parcialmente la protección que
Gentoo impone a /etc. Estos ebuilds nunca han sido
distribuidos por Gentoo. Quizás quieras revisar la variable
CONFIG_PROTECT_MASK en la salida del siguiente comando:
Listado de Código 2.1: Revisando tu CONFIG_PROTECT_MASK |
# emerge info | grep "CONFIG_PROTECT_MASK"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
|
Aunque nada en este ebuild tocará el archivo /etc/afs, la
actualización causará que tu antigua instalación de OpenAFS sea
eliminada. Los archivos en CONFIG_PROTECT_MASK que pertenezcan
a la antigua instalación también serán eliminados.
Debe ser claro para el usuario experimentado que en caso se haya
ajustado el sistema añadiendo enlaces simbólicos manualmente
(e.g. /usr/afs/etc hacia /etc/openafs), la
nueva instalación posiblemente se llevará bien con los antiguos
archivos de configuración. En este caso, no ha habido una transición
real, así que eliminar la antigua instalación resultará en una
configuración de OpenAFS rota.
Ahora que sabes que no sucede, quizás quieras saber lo que sí pasa:
-
/usr/afs/etc es copiado a /etc/openafs/server
-
/usr/vice/etc es copiado a /etc/openafs
-
/usr/afs/local es copiado a /var/lib/openafs
-
/usr/afs/local/BosConfig es copiado a
/etc/openafs/BosConfig, mientras se reemplazan las
ocurrencias de /usr/afs/bin/ con
/usr/libexec/openafs, /usr/afs/etc con
/etc/openafs/server y /usr/afs/bin
(sin el / como previamente) con /usr/bin
-
/usr/afs/db es copiado a /var/lib/openafs/db
-
El archivo de configuración /etc/conf.d/afs es
copiado a /etc/conf.d/openafs-client, ya que todas
las opciones antiguas estaban destinadas para el uso exclusivo del
cliente.
La actualización en sí
¿Así que no tienes un servidor OpenAFS? O quizás sí, y las secciones
anteriores te han informado de que va a suceder, ¿y aún quieres seguir?
¡Entonces vamos a hacerlo!
Si tienes el servidor corriendo, es recomendable que lo apagues ahora.
Listado de Código 2.2: Deteniendo OpenAFS (en caso que tengas un servidor) |
# /etc/init.d/afs stop
|
Ahora, a actualizar.
Listado de Código 2.3: ¡Actualiza! |
# emerge -u openafs
|
Reiniciando OpenAFS
Si tenías el servidor OpenAFS corriendo, no deberías haber sido
obligado a detener el cliente. Ahora es tiempo de hacerlo.
Listado de Código 2.4: Deteniendo el cliente OpenAFS luego de la actualización |
# /etc/init.d/afs stop
|
De seguro querrás mantener al mínimo el tiempo de inactividad del
servidor, así que ahora reinicia tu servidor OpenAFS.
Listado de Código 2.5: Reiniciando el servidor OpenAFS luego de la actualización |
# /etc/init.d/openafs-server start
|
Puedes revisar si está corriendo adecuadamente con el siguiente
comando:
Listado de Código 2.6: Revisando el estado del servidor OpenAFS |
# /usr/bin/bos status localhost -localauth
|
Antes de reiniciar el cliente OpenAFS, por favor revisa la
configuración de la caché. La configuración está definida en
/etc/openafs/cacheinfo. Para reiniciar tu cliente
OpenAFS, ejecuta el siguiente comando:
Listado de Código 2.7: Reiniciando el cliente OpenAFS luego de la actualización |
# /etc/init.d/openafs-client start
|
Haciendo la limpieza
Antes de hacer la limpieza de tu sistema, asegúrate bien que todo esté
corriendo adecuadamente y que efectivamente has reiniciado el cliente
y el servidor luego de la actualización (de otra forma, puede que aún
estés ejecutando tu antigua instalación).
Importante:
¡¡Asegúrate de no estar estás utilizando /usr/vice/cache
para el caché de disco si vas a eliminar el directorio
/usr/vice!!
|
Los siguientes directorios pueden ser eliminados del sistema de manera
segura:
- /etc/afs
- /usr/vice
- /usr/afs
- /usr/afsws
Los siguientes archivos también son innecesarios:
- /etc/init.d/afs
- /etc/conf.d/afs
Listado de Código 2.8: Eliminando los archivos antiguos |
# tar czf /root/oldafs-backup.tgz /etc/afs /usr/vice /usr/afs /usr/afsws
# rm -R /etc/afs /usr/vice /usr/afs /usr/afsws
# rm /etc/init.d/afs /etc/conf.d/afs
|
En caso que hayas utilizado previamente los ebuilds =openafs-1.2.13 o
=openafs-1.3.85, es probable que también tengas algunos archivos
innecesarios más:
- /etc/init.d/afs-client
- /etc/init.d/afs-server
- /etc/conf.d/afs-client
- /etc/conf.d/afs-server
Cambios en los guiones de inicio
La mayoría de la gente tiene configurado su sistema para que inicie el
cliente y el servidor OpenAFS automáticamente durante el inicio del
sistema. Aquellos que no, pueden saltarse esta sección con
seguridad. Si tienes un sistema que inicia automáticamente el cliente
y el servidor, debes reactivar esta característica ya que los nombres
de lo guiones de inicio han cambiado.
Listado de Código 2.9: Reactivando el inicio de OpenAFS al arrancar el sistema |
# rc-update del afs default
# rc-update add openafs-client default
# rc-update add openafs-server default
|
Si tienes =openafs-1.2.13 o =openafs-1.3.85, debes
eliminar afs-client y afs-server del nivel
de ejecución por defecto, en lugar de afs.
Solucionando problemas: qué hacer si falla la actualización
automática
No entres en pánico. No deberías haber perdido ninguna información ni
tampoco archivos de configuración. Así que analicemos la situación. En
cualquier caso envía información sobre la falla a bugs.gentoo.org, con la mayor
cantidad de información posible.
Si tienes problemas iniciando el cliente, los siguientes pasos deben
ayudarte a diagnosticar el problema.
-
Ejecuta dmesg. El cliente normalmente envía mensajes de error ahí.
-
Revisa /etc/openafs/cacheinfo. Debería estar con el
siguiente formato: /afs:{ruta al caché de disco}:{número de
bloques para el caché de disco}. Normalmente, tu caché de disco
estará localizado en /var/cache/openafs.
-
Revisa la salida de lsmod. Debes revisar las lineas que
empiecen con la palabra openafs.
-
pgrep afsd te dirá si afsd se está ejecutando o no.
-
cat /proc/mounts debe mostrar si /afs fue
montado.
Si tienes problemas iniciando el servidor, entonces estos consejos
deben ser útiles:
-
pgrep bosserver te dirá si el supervisor está en ejecución
o no. Si tienes más de uno corriendo, entonces algo ha salido
mal. En ese caso, deberías intentar apagar el servidor OpenAFS
elegantemente con bos shutdown localhost -localauth -wait,
revisar el resultado con bos status localhost -localauth y
eliminar los procesos supervisores restantes que sigan
ejecutándose (ls /usr/libexec/openafs para obtener una
lista de ellos). Luego de ello, haz un
/etc/init.d/openafs-server zap para reiniciar el estado del
servidor y /etc/init.d/openafs-server start para intentar
arrancarlo nuevamente.
-
Si estás utilizando el sistema de bitácoras propio de OpenAFS (que
es la configuración por defecto), revisa
/var/lib/openafs/logs/*. Si estás utilizando syslog,
revisa sus propias bitácoras en búsqueda de cualquier información
útil.
3.
Documentación
Obteniendo la documentación sobre AFS
Puedes obtener la documentación original AFS de IBM. Está muy bien
escrita y si vas a administrador un servidor AFS es una lectura muy
recomendada.
Listado de Código 3.1: Instalando afsdoc |
# emerge app-doc/afsdoc
|
También tienes la opción de utilizar la documentación distribuida con
OpenAFS. Esta es instalada cuando tienes activada la bandera USE
doc. La documentación puede ser encontrada en el directorio
/usr/share/doc/openafs-*/. Al momento de escribir este
documento, esta documentación está aún en fase de desarrollo. Puede,
sin embargo, documentar características nuevas de OpenAFS que no son
incluidas en la documentación de IBM sobre AFS.
4.
Instalación del cliente
Construyendo al cliente
Listado de Código 4.1: Instalando openafs |
# emerge net-fs/openafs
|
Luego de una compilación exitosa, estás listo para seguir.
Instalación de un cliente de navegación-global simple
Si no eres parte de una celda OpenAFS específica a la cual que
quieres acceder, y solamente quieres navegar las particiones
compartidas OpenAFS disponibles de manera global, entonces solo
instala OpenAFS, no modifiques la configuración para nada, y arranca
/etc/init.d/openafs-client.
Accediendo a una celda OpenAFS específica
Si necesitas acceder a una celda específica, digamos a la celda
de tu universidad o compañía, entonces es necesario hacer
algunos ajustes a la configuración.
Primero, necesitas actualizar
/etc/openafs/CellServDB con la base de datos de
servidores de tu celda. Normalmente, tu administrador te
ofrecerá esta información.
Luego, para poder ingresar a la celda OpenAFS, necesitas
especificar su nombre en /etc/openafs/ThisCell.
Listado de Código 4.2: Ajustando CellServDB y ThisCell |
CellServDB:
>netlabs #Nombre de la celda
10.0.0.1 #almacenamiento
ThisCell:
netlabs
|
Aviso:
Utiliza solamente espacios dentro del archivo
CellServDB. El cliente muy probablemente fallará si
utilizas TABs.
|
CellServDB le dice al cliente que servidor(es) necesita contactar para
una celda en particular. ThisCell debe ser bastante obvio. Normalmente
se utiliza un nombre que es único para tu organización. Tu dominio
(oficial) es una buena elección.
Para un inicio rápido, puedes iniciar
/etc/init.d/openafs/client y utilizar klog para
autenticarte y empezar a utilizar tu acceso a la celda. Para
autenticarte de manera automática en tu celda, consulta la sección
adecuada más abajo.
Ajustando el caché
Nota:
Desafortunadamente los clientes AFS necesitan un sistema de archivos
ext2/3 para que su caché funcione correctamente. Existen algunos
problemas cuando se utilizan otros sistemas de archivos (e.g. utilizar
reiserfs no es una buena idea).
|
Puedes hospedar tu caché en un sistema de archivos ya existente (si
es ext2/3), o quizás prefieras crear una partición separada para
ello. La ubicación por defecto del caché es
/var/cache/openafs, pero puedes cambiarla editando
/etc/openafs/cacheinfo. El tamaño estándar del caché es
de 200MB, pero más no hará ningún daño.
Iniciando AFS en el arranque
El siguiente comando creará los enlaces apropiados para que el cliente
afs se inicie durante el arranque del sistema.
Aviso:
Siempre debes tener activo el servidor AFS cuando trates de iniciar un
cliente afs. Si el servidor está fuera de línea tu sistema no
arrancará hasta que llegue a un límite de tiempo. (y esto es un
tiempo muy, muy largo).
|
Listado de Código 4.3: Agregando AFS al nivel de ejecución por defecto |
# rc-update add openafs-server default
|
5.
Instalación del servidor
Construyendo el servidor
Nota:
¡Todos los comandos deben ser escritos en una sola linea!
En este documento están, algunas veces, divididos en dos
líneas para hacerlos más fáciles de leer.
|
Si aún no lo has hecho, el siguiente comando instalará todos los
binarios necesarios para construir un servidor y cliente AFS.
Listado de Código 5.1: Instalando openafs |
# emerge net-fs/openafs
|
Iniciando el servidor AFS
Necesitas ejecutar el comando bosserver para inicializar el
Servidor Basic OverSeer (BOS), que monitorea y controla otros procesos
del servidor AFS. Tómalo como si fuera el init del sistema. Incluye la
bandera -noauth para desactivar la comprobación de
autorización, ya que no has añadido al usuario administrador todavía.
Aviso:
Deshabilitar la comprobación de autenticación compromete
gravemente la seguridad de la celda. Debes completar todos los
siguientes pasos subsecuentemente de manera ininterrumpida y no
debes dejar desatendida la máquina en ningún momento hasta que
reinicies el servidor BOS con la comprobación de autorización
habilitada. Bueno, eso es lo que la documentación sobre AFS dice
:).
|
Listado de Código 5.2: Inicializando el servidor Basico OverSeer (supervisor básico) |
# bosserver -noauth &
|
Verifica que el Servidor BOS creó
/etc/openafs/server/CellServDB y
/etc/openafs/server/ThisCell
Listado de Código 5.3: Revise si CellServDB y ThisCell han sido creados |
# ls -al /etc/openafs/server/
-rw-r--r-- 1 root root 41 Jun 4 22:21 CellServDB
-rw-r--r-- 1 root root 7 Jun 4 22:21 ThisCell
|
Definiendo nombre de celda y membrecía para los procesos del servidor
Ahora asígnale un nombre a tu celda.
Importante:
Hay algunas restricciones en el formato del nombre. Dos de las
más importantes son que el nombre no puede incluir mayúsculas
y tiene que ser menor a 64 caracteres. Recuerda que el nombre
de tu celda estará bajo /afs, así que quizás
desees escoger un nombre corto.
|
Nota:
En la demás instrucciones de esta guía, sustituye el argumento
<nombre servidor> por el nombre calificado completo (como por
ejemplo afs.gentoo.org) de la máquina en la que estás
instalando OpenAFS. Cambia también el argumento <nombre celda> por
el nombre completo de tu celda (como gentoo).
|
Ejecuta el comando bos setcellname para definir el nombre de la
celda:
Listado de Código 5.4: Asignando el nombre de la celda |
# bos setcellname <nombre servidor> <nombre celda> -noauth
|
Iniciando el proceso de servidor de base de datos
Ahora, utiliza el comando bos create para crear las entradas de
los cuatro procesos servidores de base de datos en el archivo
/etc/openafs/BosConfig. Los cuatro procesos corren
únicamente en las máquinas servidoras de base de datos.
| kaserver |
El servidor de autenticación mantiene la base de datos de
autenticación. Este puede ser reemplazado por un demonio kerberos
5. Si alguien quiere intentarlo siéntase libre de agregarlo a este
documento :)
|
| buserver |
El servidor de respaldo mantiene la base de datos de respaldo |
| ptserver |
El servidor de protección mantiene la base de datos de
protección |
| vlserver |
El servidor de localización de volumen mantiene la base de
datos de localización de volumen(VLDB). Por cierto, es muy importante.
|
Listado de Código 5.5: Creando los registros para los procesos de bases de datos |
# bos create <nombre servidor> kaserver \
simple /usr/libexec/openafs/kaserver \
-cell <nombre celda> -noauth
# bos create <nombre servidor> buserver \
simple /usr/libexec/openafs/buserver \
-cell <nombre celda> -noauth
# bos create <nombre servidor> ptserver \
simple /usr/libexec/openafs/ptserver \
-cell <nombre celda> -noauth
# bos create <nombre servidor> \
vlserver simple /usr/libexec/openafs/vlserver \
-cell <nombre celda> -noauth
|
Puedes comprobar que todos los servidores están funcionando
con el comando bos status:
Listado de Código 5.6: Revisar que estén corriendo todos los servidores |
# bos status <nombre servidor> -noauth
Instance kaserver, currently running normally.
Instance buserver, currently running normally.
Instance ptserver, currently running normally.
Instance vlserver, currently running normally.
|
Inicializando la seguridad de la celda
Es hora de inicializar los mecanismos de seguridad de la
celda. Empezaremos creando las dos siguientes entradas iniciales en la
base de datos de autenticación: La cuenta administrativa principal,
llamada admin por convención, y una entrada para el proceso del
servidor AFS, llamado afs. Ningún usuario ingresa al sistema
bajo la identidad afs, pero el módulo del Servicio de Entrega
de Tickets (TGS) del Servidor de Autenticación utiliza esta cuenta
para encriptar todos los tickets que entrega a clientes AFS. Esto
suena muy parecido a Kerberos :)
Entrando al modo interactivo de kas
Listado de Código 5.7: Entrando al modo interactivo |
# kas -cell <nombre celda> -noauth
ka> create afs
initial_password:
Verifying, please re-enter initial_password:
ka> create admin
initial_password:
Verifying, please re-enter initial_password:
ka> examine afs
User data for afs
key (0) cksum is 2651715259, last cpw: Mon Jun 4 20:49:30 2001
password will never expire.
An unlimited number of unsuccessful authentications is permitted.
entry never expires. Max ticket lifetime 100.00 hours.
last mod on Mon Jun 4 20:49:30 2001 by <none>
permit password reuse
ka> setfields admin -flags admin
ka> examine admin
User data for admin (ADMIN)
key (0) cksum is 2651715259, last cpw: Mon Jun 4 20:49:59 2001
password will never expire.
An unlimited number of unsuccessful authentications is permitted.
entry never expires. Max ticket lifetime 25.00 hours.
last mod on Mon Jun 4 20:51:10 2001 by <none>
permit password reuse
ka>
|
Ejecuta el comando bos adduser para añadir el
usuario admin a /etc/openafs/server/UserList.
Listado de Código 5.8: Agregando al usuario admin al UserList |
# bos adduser <nombre servidor> admin -cell <nombre celda> -noauth
|
Utiliza el comando bos addkey para definir la llave de
encriptación del servidor AFS
en /usr/afs/etc/KeyFile
Nota:
Si el sistema solicita una llave de entrada, usa la contraseña que
ingresaste al crear la entrada afs con kas
|
Listado de Código 5.9: Ingresando la contraseña |
# bos addkey <nombre servidor> -kvno 0 -cell <nombre celda> -noauth
input key:
Retype input key:
|
Con el comando pts createuser crea una entrada para el
usuario admin en la Base de Datos de Protección
Nota:
Por defecto el servidor de protección asigna AFS UID 1 al
usuario admin, porque es el primer usuario cuya entrada
se crea. Si el archivo de contraseñas local (/etc/passwd o
equivalente) ya tiene una entrada para admin que le
asigna un UID distinto, utiliza el argumento -id para
crear UID que sean iguales.
|
Listado de Código 5.10: Creación del registro en la base de datos de protección para el usuario |
# pts createuser -name admin -cell <nombre celda> [-id <AFS UID>] -noauth
|
Ejecuta el comando pts adduser para hacer al
usuario admin miembro del grupo system:administrators, y
el comando pts membership para verificar la membresía.
Listado de Código 5.11: Hacer a admin miembro del grupo de administradores y verificación |
# pts adduser admin system:administrators -cell <nombre celda> -noauth
# pts membership admin -cell <nombre celda> -noauth
Groups admin (id: 1) is a member of:
system:administrators
|
(re-)iniciando apropiadamente el servidor AFS
En este momento, una autenticación adecuada es posible, y el
servidor OpenAFS puede ser iniciado de forma normal. Nota que la
autenticación también requiere un cliente OpenAFS corriendo
(configúralo como se indica en el capítulo anterior).
Listado de Código 5.12: Apangando bosserver |
# bos shutdown <nombre servidor> -wait -noauth
# killall bosserver
|
Listado de Código 5.13: Inicialización normal del servidor (y cliente) OpenAFS |
# /etc/init.d/openafs-server start
# /etc/init.d/openafs-client start
|
Listado de Código 5.14: Agregando el servidor AFS al nivel de ejecución por defecto |
# rc-update add openafs-server default
|
Listado de Código 5.15: Obteniendo un token como usuario administrador |
# klog admin
|
Iniciando el Servidor de Archivos, el Servidor de Volumen y Salvager
Arranca el proceso fs, que consiste en el Servidor de
Archivos, el Servidor de Volumen y Salvager (procesos
fileserver, volserver y salvager).
Listado de Código 5.16: Iniciando el proceso fs |
# bos create <nombre servidor> fs \
fs /usr/libexec/openafs/fileserver /usr/libexec/openafs/volserver /usr/libexec/openafs/salvager \
-cell <nombre celda> -noauth
|
Es hora de verificar que todos los procesos estén en ejecución:
Listado de Código 5.17: Verificando que todos los procesos estén corriendo |
# bos status <nombre servidor> -long -noauth
Instance kaserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is '/usr/libexec/openafs/kaserver'
Instance buserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is '/usr/libexec/openafs/buserver'
Instance ptserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is '/usr/libexec/openafs/ptserver'
Instance vlserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is /usr/libexec/openafs/vlserver'
Instance fs, (type is fs) currently running normally.
Auxiliary status is: file server running.
Process last started at Mon Jun 4 21:09:30 2001 (2 proc starts)
Command 1 is '/usr/libexec/openafs/fileserver'
Command 2 is '/usr/libexec/openafs/volserver'
Command 3 is '/usr/libexec/openafs/salvager'
|
Tu siguiente acción depende de si alguna vez has ejecutado un servidor
de archivos AFS en la celda.
En caso que estés instalando el primer servidor AFS de la celda,
crea el primer volumen AFS root.afs
Nota:
En el argumento "nombre partición", sustituye el nombre de una
de las particiones de la máquina Servidor AFS. Cualquier sistema de
archivos montado en un directorio llamado /vicepx, donde
x está en el rango a-z, será considerado y utilizado como una
partición del servidor AFS. A diferencia del caché (que solo soporta
ext2/3), estas particiones pueden tener cualquier sistema de archivos
unix. Tip: el servidor revisa cada punto de montaje
/vicepx y si encuentra algún sistema de archivos montado
ahí lo utiliza, de otra forma lo ignora. Este comportamiento puede ser
modificado si creas un archivo llamado AlwaysAttach en el
directorio en cuestión.
|
Listado de Código 5.18: Creación del volumen root.afs |
# vos create <nombre servidor> <nombre partición> root.afs -cell <nombre celda> -noauth
|
Si hay máquinas servidoras de archivos AFS y volúmenes ya
creados en la celda, utiliza los comandos vos sncvldb
y vos syncserv para sincronizar el VLDB (Base de Datos de
Localización de Volumen) con el estado actual de la localización
de los volúmenes. Esto copiará toda la información necesaria a
tu nuevo servidor.
Si el comando falla con el mensaje "partition /vicepa does not
exist on the server", asegúrate que la partición está montada
antes de levantar los servidores OpenAFS, o monta el directorio
y reinicia los procesos utilizando/usr/afs/bin/bos restart
<nombre servidor> -all -cell <nombre celda> -noauth.
Listado de Código 5.19: Sincronice el VLDB |
# /usr/afs/bin/vos syncvldb <nombre servidor> -cell <nombre celda> -verbose -noauth
# /usr/afs/bin/vos syncserv <nombre servidor> -cell <nombre celda> -verbose -noauth
|
Iniciando la parte servidor del servidor de actualizaciones
Listado de Código 5.20: Iniciando el servidor de actualización |
# bos create <nombre servidor> \
upserver simple "/usr/libexec/openafs/upserver \
-crypt /etc/openafs/server -clear /usr/libexec/openafs" \
-cell <nombre celda> -noauth
|
Configurando el Nivel Superior del espacio de archivos AFS
Primero necesitas definir algunos ACLs, de manera que
cualquier usuario pueda ver /afs.
Nota:
La configuración por defecto del cliente OpenAFS tiene
dynroot activado. Esta opción convierte /afs en
un directorio virtual compuesto por el contenido de tu archivo
/etc/openafs/CellServDB. Como tal, el siguiente comando
no funcionará, debido a que necesita un directorio AFS real. Puede
desactivar dynroot de manera temporal al definir
ENABLE_DYNROOT en no en
/etc/conf.d/openafs-client. No olvides reiniciar el
cliente luego de modificar los parámetros.
|
Listado de Código 5.21: Configure las listas de control de acceso |
# fs setacl /afs system:anyuser rl
|
Ahora necesitas crear el volumen raíz, montarlo como solo lectura en
/afs/<nombre celda> y lectura-escritura en
/afs/.<nombre celda>.
Listado de Código 5.22: Preparando el volumen raíz |
# vos create <nombre servidor><nombre partición> root.cell
# fs mkmount /afs/<nombre celda> root.cell
# fs setacl /afs/<nombre celda> system:anyuser rl
# fs mkmount /afs/.<nombre celda> root.cell -rw
|
Listado de Código 5.23: Agregando los volúmenes inferiores |
# vos create <nombre servidor> <nombre partición> <MiVolumen>
# fs mkmount /afs/<nombre celda>/<nombre partición> <MiVolumen>
# fs mkmount /afs/<nombre celda>/.<miPuntoDeMontaje> <MiVolumen> -rw
# fs setquota /afs/<nombre celda>/.<miPuntoDeMontaje> -max <quotum>
|
Finalmente, ¡terminaste!. Ahora debes tener un servidor de
archivos AFS funcionando en tu red local. ¡¡Es hora de tomar una
gran taza de café e imprimir la documentación sobre AFS!!
Nota:
Es muy importante para el correcto funcionamiento de servidor
AFS que todos los relojes de todos los sistemas estén
sincronizados. Esto lo puedes conseguir instalando un servidor
ntp en una máquina (por ejemplo el servidor AFS) y sincronizar
los relojes como clientes ntp. Esto también puede ser hecho por
el cliente AFS.
|
6.
Administración básica
Renuncia de responsabilidad
OpenAFS es una tecnología extensa. Por favor lee la documentación de
AFS para mayor información. Nosotros solo listamos una pequeña lista
de tareas administrativas en este capítulo.
Configurando PAM para obtener una ficha AFS al ingresar
Para poder utilizar AFS necesitas autenticarte con el servidor KA si
utilizas una implementación AFS Kerberos 4, o con un servidor Kerberos
5 KDC si utilizas MIT, Heimdal o ShiShi Kerberos 5. Sin embargo, para
poder ingresar a una máquina también necesitarás una cuenta de
usuario, que puede ser local mediante /etc/passwd, NIS, LDAP
(OpenLDAP), o una base de datos Hesiod. PAM permite a Gentoo atar la
autenticación de ingreso al sistema y de AFS a la cuenta del usuario.
Necesitarás actualizar /etc/pam.d/system-auth que es
utilizado por las demás configuraciones. "use_first_pass" indica que
primero se revisará el ingreso al sistema, e "ignore_root" evita que
el usuario root sea autenticado de manera que pueda ingresar al
sistema si el AFS o la red falla.
Listado de Código 6.1: /etc/pam.d/system-auth |
auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth sufficient pam_afs.so.1 use_first_pass ignore_root
auth required pam_deny.so
account required pam_unix.so
password required pam_cracklib.so retry=3
password sufficient pam_unix.so nullok md5 shadow use_authtok
password required pam_deny.so
session required pam_limits.so
session required pam_unix.so
|
Para hacer que sudo mantenga la ficha del usuario real y prevenir a los
usuarios locales ganar acceso AFS cambia /etc/pam.d/su de la siguiente
manera:
Listado de Código 6.2: /etc/pam.d/su |
auth sufficient pam_afs.so.1 ignore_uid 100
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session optional pam_xauth.so
session optional pam_afs.so.1 no_unlog
|
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|