Documente Academic
Documente Profesional
Documente Cultură
Daniel Martín
Introducción
Ceph es una plataforma de almacenamiento de código abierto que proporciona una interfaz
para almacenamiento de objetos, bloques y archivos. Ceph File System está diseñado para su
uso con gran cantidad de datos, ya que posee un alto rendimiento, confiabilidad y
escalabilidad.
Una máquina que será la encargada de monitorear el estado del clúster y ejecutar el
mapa OSD que se llamará “Ceph-monitor”.
Tres máquinas OSD que serán las que se encargarán de manejar el almacenamiento de
datos, a las que llamaré “Ceph-osd1”, “Ceph-osd2” y “Ceph-osd3”.
Y una máquina que será la que configurará al resto de máquinas, que tendrá acceso vía
SSH a todas ellas sin tener que ingresar su contraseña. Esta máquina se llamará “Ceph-
admin”.
A parte de todas estas máquinas también tendré un cliente al cual llamaré “Ceph-
client”
Todas las máquinas que usaré serán Ubuntu 16.04 sin entorno gráfico, tanto clientes como
servidores.
1. Configurar los nodos para Ceph
passwd cephuser
Este mismo procedimiento lo utilizaré en todos los nodos. Si en alguno de los nodos no uso
dichos comandos no podré acceder a superusuario desde el usuario Cephuser de ese nodo.
Sincronizar la misma fecha y hora entre nodos
Para este paso instalaré la herramienta NTP, que será mediante la cual asignaré la misma fecha
y hora en todos los nodos. Ejecutaré el comando “ntpdate” para establecer la hora del servidor
NTP de grupo español:
ntpdate 0.es.pool.ntp.org
hwclock –systohc
Instalar Open-vm-tools
Como estoy ejecutando todos los nodos dentro de VMware necesito instalar esta utilidad de
virtualización en caso de no tenerla ya:
Ahora comprobaré que tengo conectividad al resto de nodos haciendo ping a ellos:
2. Configurar servidor SSH
En este paso configuraré el nodo ceph-admin. Este nodo lo utilizaré para instalar y configurar
los nodos del clúster, por lo que el usuario en el nodo ceph-admin debe tener privilegios para
conectarse a todos los nodos sin una contraseña.
su cephuser
nano ~/.ssh/config
Y agregaré la clave de este a todos los nodos usando el comando ssh-copy-id a cada uno:
ssh-copy-id ceph-monitor
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id ceph-osd3
ssh-copy-id ceph-client
Me solicitará la contraseña del usuario “cephuser” y una vez ingresada se añadirá la key.
Y ahora comprobaré que funciona conectándome vía ssh a alguno de los nodos:
Almacenamiento OSD
Para esta práctica dispongo de 3 nodos OSD, cada uno de estos nodos dispone de dos
particiones de disco duro, una que se encuentra en “/dev/sda” que es la partición raíz de la
máquina y otra que se encuentra en “/dev/sdb” que es una partición vacía de 10 Gb.
Antes que nada, comprobaré que el disco duro se encuentra en la ruta “/dev/sdb”, para ello
usaré el comando fdisk:
mkfs.xfs –f /dev/sdb
En este paso instalaré Ceph en todos los nodos de la máquina ceph-admin, para ello iniciaré
sesión en la máquina “ceph-admin” con el usuario “cephuser”.
Una vez instalada esta herramienta crearé un nuevo directorio para la configuración del
clúster.
Durante la instalación me han aparecido muchos errores, nada más ejecutarlo me apareció
este error en todos los nodos:
Para solucionarlo basta con entrar al fichero “/etc/apt/sources.list” y comentar las líneas que
incluyen “cdrom” como por ejemplo “deb cdrom:[Ubuntu-Server 16.04]”.
Volveré a usar el comando “ceph-deploy install” y comenzará a instalar el clúster en todos los
nodos:
Después, mientras instalaba Ceph en ceph-monitor me apareció otro error:
Este se solucionaba usando “apt-get –f install”. Si aparece un error al ejecutar este comando
sobrescribiré los archivos que causan los errores mediante “dpkg –i –force-overwrite
<fichero.deb>” y listo.
Y, por último, en caso de no disponer de Python en alguno de los nodos aparecerá este error
diciendo que no puede establecer conexión con el host.
Ahora pasaré a desplegar el nodo del monitor en el nodo ceph-monitor, para ello utilizaré el
comando:
Tras usar “ceph-deploy mon create-initial” se creará una clave de monitor, puedo verificar esta
clave usando:
Al completarse aparecerá que el nodo ceph-osd está listo para usarse. En el caso de que ceph-
deploy no reconozca el comando “prepare” me descargaré otra versión de este, en mi caso la
“1.5.39” usando: “pip install ceph-deploy==1.5.39”. Este error se debe al uso una versión más
nueva de Ceph que la versión Kraken.
Ahora, implementaré la clave de gestión en todos los nodos asociados, para ello usaré:
Si en este nodo está configurado correctamente al usar el comando “ceph health” dará como
resultado “HEALTH_OK”:
Este comando muestra varias opciones, como que existe 1 monitor con la dirección
“192.168.197.221” y que 3 máquinas osd que están en estado “up”.