• No results found

Gaining Support for Your Security Program

Antes de comenzar el proceso de instalación de Ceph es necesaria una minuciosa planificación del hardware y el software a emplear. La documentación oficial de Ceph expone una serie de recomendaciones que deben ser tomadas en cuenta para lograr el funcionamiento estable del clúster Ceph.

ceph-admin ceph1 ceph2

Subred del clúster

Red de acceso switch

switch

Cuando se planea el hardware es necesario balancear un número de consideraciones[36], incluyendo los dominios de fallo y los problemas potenciales de rendimiento. Se deberá distribuir los servicios de Ceph y otros procesos que usen Ceph a través de múltiples máquinas. Generalmente se recomienda correr cada servicio de Ceph de un tipo específico en una máquina configurada para ese tipo de servicio. A continuación, se exponen los requerimientos de hardware:

 CPU: Los servidores de metadatos de Ceph dinámicamente redistribuyen su carga, lo cual es un proceso intensivo para la CPU. Por tanto, deben tener un poder de procesamiento significativo, se recomienda 4 núcleos o más para correr este servicio. Los Ceph OSD corren el servicio RADOS, calculan las ubicaciones de los PGs con el algoritmo CRUSH, replican los datos y mantienen su propia copia del mapa del clúster. Por esto, deben tener un poder de procesamiento relativamente alto, se recomienda 2 núcleos o más. Los Ceph Monitors simplemente mantienen la copia máster del mapa del clúster, por lo que su carga de procesamiento no es significativa. En el caso de los Managers, su carga de procesamiento depende de la cantidad de módulos que estén habilitados y corriendo; generalmente 1 núcleo es suficiente.  RAM: Generalmente más RAM es mejor. El uso de memoria de los servicios de los

Ceph Monitors y los Managers generalmente escalan con el tamaño del clúster. Para clústeres pequeños, 1-2GB es suficiente. Para clústeres grandes, se debe proveer 5- 10GB. El uso de RAM usado por estos servicios se puede controlar con parámetros de configuración como mon_osd_cache_size. La utilización de RAM del servicio de metadatos depende de cuanta memoria se configuró para consumir, se recomienda 1GB como mínimo; el parámetro de configuración que controla su utilización es mds_cache_memory. Para el caso de los OSD, se recomienda 3-5GB de RAM; se puede ajustar la cantidad de memoria a usar a través del parámetro osd_memory_target.

 Dispositivos de almacenamiento: Los dispositivos de almacenamiento están sujetos a limitaciones en el tiempo de búsqueda, tiempo de acceso, tiempo de lectura/escritura y la razón total de transferencia. Estas limitaciones afectan el rendimiento del sistema, especialmente durante la recuperación. Se recomienda usar un dispositivo dedicado al sistema operativo y el software, un dispositivo para cada Ceph OSD y otro para el

journal de los OSD. Una oportunidad para mejorar el rendimiento del sistema es usando discos de estado sólido para reducir el tiempo de acceso aleatorio y la latencia de lectura mientras se acelera la razón de transferencia. Sin embargo, este tipo de discos es más costoso por lo que una buena relación entre beneficio-costo se logra empleando los discos sólidos solo como journal.

Se pueden correr múltiples OSDs en la misma máquina, pero se debe tener en cuenta que la suma total de las razones de transferencia de todos los OSDs no exceda el ancho de banda de la red requerido para servir a un cliente.

En cuanto a los requerimientos de software[37], Ceph puede correr en una gran variedad de sistemas operativos Linux. Oficialmente ha sido probado en CentOS, Debian, Fedora, RHEL y Ubuntu, pero las pruebas más exhaustivas se han realizado sobre CentOS y Ubuntu. La documentación oficial no recomienda el uso de una plataforma en específico, no es así en el caso de la versión del kernel Linux ya que cada versión de Ceph requiere de una versión mínima del kernel Linux para funcionar correctamente.

En el presente trabajo se empleó CentOS 7 (release 7.6.1810) como sistema operativo de los nodos del clúster Ceph, con la versión 3.10.0-957.1.3.el.7.x86_64 del kernel de Linux. La versión de Ceph que se instaló es la 13.2.5 (mimic), que en el momento de realización de este trabajo es la versión estable más reciente y según la documentación oficial de Ceph corre sin problemas en el sistema operativo seleccionado (el kernel de Linux también cumple los requisitos).

Para la implementación de Ceph se cuenta en el Centro de Datos de la UCLV con tres servidores. La Tabla 1 muestra las características del hardware y los servicios que corren en cada uno de ellos.

Tabla 1. Características del hardware disponible y distribución de los servicios del Clúster

Ceph

Tipo CPU RAM Interfaz de red Discos duros Nombre asignado Servicios* Dell Power Edge R410 Intel(R) Xeon(R) X5660 8GB 2 x 1GB/s 1 x 500GB - SO ceph- admin OSD MON

(12 núcleos a 2.80 GHz cada uno, 32-64 bit) 3 x 500 GB - OSD Dell Power Edge R410 Intel(R) Xeon(R) X5660 (24 núcleos a 2.80 GHz cada uno, 32-64 bit) 8GB 2 x 1GB/s 1 x 500GB - SO 3 x 500 GB - OSD ceph1 OSD MON MGR MDS Dell Power Edge R410 Intel(R) Xeon(R) X5660 (24 núcleos a 2.80 GHz cada uno, 32-64 bit) 16GB 2 x 1GB/s 1 x 500GB - SO 3 x 500 GB - OSD ceph2 OSD MON MGR MDS

* OSD, MON, MGR y MDS representan los servicios Ceph OSD, Ceph Monitor, Ceph Manager y Servidor de Metadatos Ceph respectivamente.

El primer señalamiento importante es que en la planificación del clúster Ceph del presente trabajo se asume que como máximo fallará un servidor a la vez (dominio de fallo), sin verse afectada la disponibilidad del clúster. Esto se debe fundamentalmente a que solo se cuenta con tres servidores y, por tanto, es extremadamente difícil lograr la disponibilidad del clúster en caso de fallo de más de un servidor. En el caso de los OSDs es imprecisa la cantidad máxima que pueden fallar simultáneamente, esto se debe a la forma en que Ceph distribuye los objetos. Pero en caso de fallo de un único OSD, Ceph debe ser capaz de recuperarse completamente.

De acuerdo a las recomendaciones de hardware expuestas anteriormente, la Tabla 2 muestra la cantidad de CPU y RAM (pronosticada) que usará cada servicio de Ceph. La última fila muestra la suma total para los cuatro servicios, de modo que se obtiene una estimación de cuantos recursos se necesitarán por servidor para correr los cuatro servicios simultáneamente.

Tabla 2. Recomendaciones de hardware para los servicios de Ceph CPU (núcleos) RAM (GB)

MDS 4 1

OSD 2 3-5

MON 1 1-2

MGR 1 1-2

En el total, se obtiene que se necesitan como mínimo 8 núcleos de CPU y 6GB de RAM por servidor. En el caso de la RAM, como el clúster Ceph del presente trabajo es pequeño y solo cuenta con seis OSD se toma el valor más pequeño (6 GB), dado que es muy poco probable que se exceda este valor. Como resultado se tiene que, de acuerdo a las propiedades expuestas en la Tabla 1 los tres servidores disponibles cumplen con los requerimientos para correr los cuatro servicios del clúster Ceph a la vez, sin que esto signifique una degradación considerable del rendimiento.

Con el objetivo de lograr una alta disponibilidad del sistema de archivos, en el presente trabajo se propone la distribución de los servicios de Ceph mostrada en la Tabla 1 (ver columna “Servicios”). Además de las correspondientes instancias de los Ceph OSD (una por cada disco duro, lo que da un total de dos por servidor), cada servidor corre una instancia del servicio Ceph Monitor, con lo cual se logra formar un quorum1 de tres, tal y como se recomienda. Para el caso de los servicios Ceph Manager y MDS se corren dos instancias de cada uno (una en cada servidor) en los servidores especificados; de acuerdo al dominio de fallo seleccionado esto es suficiente para lograr la disponibilidad esperada.