Instalación Ceph Primera Parte
Esta instalación
esta aplicada en un Sistema Operativo Centos7
Para esta instalación usaremos 4 Servidores
Hostname: adm01 – IP: 10.6.6.140 – Administrador
Hostname: ceph01 – IP: 10.6.6.141 – OSD – MON
Hostname: ceph02 – IP: 10.6.6.142 – OSD – MON
Hostname: ceph03 – IP: 10.6.6.143 - OSD – MON
Lo siguiente
debes aplicarlo en los 4 Servidores
Lo primero que se debe realizar es agregar los repositorios
de Ceph
nano /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
Actualizamos
los Repositorios
yum update
yum upgrade
Instalamos Openssh
yum install openssh-server
Deshabilitamos Selinux y Firewall
sed -i 's/enforcing/disabled/g'
/etc/selinux/config /etc/selinux/config
sudo systemctl disable
firewalld
Para la sincronización de hora
puedes utilizar el paquete que más sea cómodo, en mi caso voy a utilizar chrony
Instalación de chrony
yum install chrony -y
Ahora necesita configurar la
agrupación desde un servidor NTP externo. Recomiendo altamente pool.ntp.org de uso común para ese propósito.
Para utilizar los servidores para la agrupación, edite el archivo de
configuración de Chrony:
nano /etc/chrony.conf
En la parte superior del archivo debe haber líneas que comiencen
con server. Quítalos todos y usa el de pool.ntp.org. Así
que el comienzo de su archivo después de los cambios debería verse así:
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
# Ignore stratum in source selection.
stratumweight 0
Guarda los
cambios. Ahora es el momento de iniciar el servicio NTP y habilitarlo en
el arranque, por lo que se iniciará automáticamente después de reiniciar el sistema:
systemctl start chronyd.service
systemctl enable chronyd.service
Agregar
usuario para Instalación y Configuración en los 4 servidores
useradd -d /home/cephuser -m cephuser
Crear Contraseña
passwd cephuser
Permisos sudoers
echo "cephuser ALL = (root)
NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
Generar SSH Keys – esto lo debes generar desde el
servidor adm01 con el usuario cephuser
ssh-keygen
Generating public/private key pair.
Enter file in which to save the key
(/ceph-admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved
in /ceph-admin/.ssh/id_rsa.
Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.
Copiar la Key a los Nodos Ceph01, Ceph02, Ceph03
ssh-copy-id cephuser@ceph01
ssh-copy-id cephuser@ceph02
ssh-copy-id cephuser@ceph03
Para verificar si se realizó correctamente la copia
de la Key debes ingresar a cada servidor sin que este pida alguna contraseña
ssh ceph01
ssh ceph02
ssh ceph03
Cambiar permisos del archivo .ssh/config
chmod 644 ~/.ssh/config
Editar archivo .ssh/config
Host adm01
Hostname adm01
User cephuser
Host ceph01
Hostname ceph01
User cephuser
Host ceph02
Hostname ceph02
User cephuser
Host ceph03
Hostname ceph03
User cephuser
Ahora en adelante solo trabajaremos con el usuario
cephuser
Instalar Preferencias en los 4 servidores
sudo yum install yum-plugin-priorities
___________________________________________________________________________
Instalación de Ceph
Storage Cluster, Ceph Monitor y ODS
En este caso crearemos un Cluster con los servidores ceph01,
ceph02 y ceph03, adicionalmente instalaremos el demonio ODS y MON en los 3,
esto también pueden ser instalados por separados si lo desean. La mayoría de
los comandos serán ejecutados desde en servidor adm01 con el usuario cephuser.
Crear Carpeta donde se va
almacenar los archivos de configuración de la solución.
mkdir my-cluster
cd my-cluster
Crear Cluster
ceph-deploy new ceph01
ceph02 ceph03
Agregar la red en la que estás
trabajando en el archivo ceph.conf
nano ceph.conf
public network = 10.6.6.0/24
Instalar
paquetes de Ceph
ceph-deploy install ceph01 ceph02 ceph03
Desplegar los monitores
ceph
ceph-deploy mon create-initial
Una vez que complete el proceso, su directorio
local debe tener los siguientes llaveros:
- ceph.client.admin.keyring
- ceph.bootstrap-mgr.keyring
- ceph.bootstrap-osd.keyring
- ceph.bootstrap-mds.keyring
- ceph.bootstrap-rgw.keyring
- ceph.bootstrap-rbd.keyring
- ceph.bootstrap-rbd-mirror.keyring
Utilícela ceph-deploy para copiar el
archivo de configuración y la clave de administración a su nodo de
administración y sus nodos Ceph para que pueda usar ceph
sin tener que especificar la dirección del monitor y cada vez que ejecute un comando.
ceph-deploy admin ceph01 ceph02 ceph03
Implementar daemon
administrador
ceph-deploy mgr create ceph01
ceph02 ceph03
Agregar disco para cluster
En este punto debemos agregar un disco a los 3 Nodos ceph01
ceph02 ceph03, en mi caso usare 50GB para cada uno.
Luego de
agregarlo debes reiniciar los 3 servidores Ceph
En primer lugar consultamos el nombre del
disco en los nodos Ceph
fdisk –l
En mi caso el nombre del disco es:
Disk /dev/sdb: 53.7 GB
Ya teniendo esta información ejecutamos lo
siguiente desde el Servidor adm01 y con el usuario cephuser aplicamos:
ceph-deploy
osd create --data /dev/sdb ceph01
ceph-deploy
osd create --data /dev/sdb ceph02
ceph-deploy
osd create --data /dev/sdb ceph03
Comprueba
la salud de tu clúster con uno de los nodos Ceph
ssh ceph01
sudo ceph -s
Su grupo debe informar HEALTH_OK
Los
demonios Ceph Manager operan en un patrón activo - pasivo. La
implementación de daemons de administrador adicionales garantiza que si un
daemon o un host falla, otro puede asumir el control sin interrumpir el
servicio.
ceph-deploy
mgr create ceph01 ceph02 ceph03
Comprueba
la salud de tu clúster con uno de los nodos Ceph
ssh ceph01
sudo ceph -s
Su grupo debe informar HEALTH_OK
___________________________________________________________________________
Almacenar y recuperar
Datos
Para almacenar datos de
objetos en el Ceph Storage Cluster, un cliente Ceph debe:
- Establecer un object name
- Especificar un polol
El cliente Ceph recupera el mapa de clúster más reciente y el
algoritmo CRUSH calcula cómo asignar el objeto a un pool, y luego calcula cómo
asignar el grupo de ubicación a un demonio Ceph OSD dinámicamente. Para
encontrar la ubicación del objeto, todo lo que necesita es el nombre del objeto
y el nombre del grupo.
Ahora realizaremos un
ejercicio de prueba
Ejercicio: Localiza un objeto
Como ejercicio, vamos a crear un objeto. Especifique un
nombre de objeto, una ruta de acceso a un archivo de prueba que contenga
algunos datos de objeto y un nombre de pool usando el comando. Por
ejemplo: rados
put
Esto lo vamos a realizar en uno de los nodos Ceph con el usuario
cephuser
echo {Test-data} > testfile.txt
ceph osd pool create mytest 128
rados put test-object-1 testfile.txt --pool=mytest
Para verificar que el Ceph Storage Cluster almacenó el objeto, ejecute lo siguiente:
rados -p mytest ls
Ahora,
identifica la ubicación del objeto:
ceph osd map mytest test-object-1
Ceph debe
dar salida a la ubicación del objeto. Por ejemplo:
osdmap e537 pool 'mytest' (1) object 'test-object-1' -> pg
1.d1743484 (1.4) -> up [1,0] acting [1,0]
Con esto Finalizamos la Primera parte de la
Instalacion de Ceph
Luego estaremos publicandos sobre Ceph Object Gateway y la Instalacion del Dashboard
Jose Montilva