Saltar a contenidoSaltar a navegación de páginas: página anterior [tecla acceso p]/página siguiente [tecla acceso n]
Se aplica a SUSE Enterprise Storage 5

11 Instalación de CephFS

El sistema de archivos de Ceph (CephFS) es un sistema de archivos conforme con POSIX que utiliza un clúster de almacenamiento de Ceph para almacenar sus datos. CephFS utiliza el mismo sistema de clúster para los dispositivos de bloques de Ceph, el almacenamiento de objetos de Ceph con sus API S3 y Swift o los enlaces nativos (librados).

Para utilizar CephFS, debe disponer de un clúster de almacenamiento de Ceph en ejecución y al menos un servidor de metadatos de Ceph en ejecución.

11.1 Escenarios admitidos de CephFS y directrices

Con SUSE Enterprise Storage, SUSE incluye compatibilidad oficial con muchos escenarios en los que se utiliza el componente de ampliación horizontal y distribuido CephFS. En esta entrada se describen los límites rígidos y se ofrecen directrices para los casos de uso sugeridos.

Una distribución de CephFS compatible debe cumplir estos requisitos:

  • Un mínimo de un servidor de metadatos. SUSE recomienda distribuir varios nodos con la función de servidor de metadatos. Solo uno estará "activo", mientras el resto estarán "pasivos". No olvide mencionar todos los nodos del servidor de metadatos en el comando mount cuando monte CephFS desde un cliente.

  • Las instantáneas de CephFS están inhabilitadas (por defecto) y no se admiten en esta versión.

  • Los clientes se basan en SUSE Linux Enterprise Server 12 SP2 o SP3 y usan el controlador de módulo de kernel cephfs. No se admite el módulo FUSE.

  • Las cuotas de CephFS no se admiten en SUSE Enterprise Storage, ya que la compatibilidad con las cuotas se implementa únicamente en el cliente de FUSE.

  • CephFS admite cambios de diseño de archivos, como se describe en http://docs.ceph.com/docs/jewel/cephfs/file-layouts/. Sin embargo, aunque el sistema de archivos se puede montar mediante cualquier cliente, no es posible añadir nuevos repositorios de datos a un sistema de archivos CephFS existente (ceph mds add_data_pool). Solo se pueden añadir mientras el sistema de archivos está desmontado.

11.2 Servidor de metadatos de Ceph

El servidor de metadatos de Ceph (MDS) almacena los metadatos para CephFS. Los dispositivos de bloques de Ceph y el almacenamiento de objetos de Ceph no utilizan un servidor de metadatos. Gracias a los servidores de metadatos, los usuarios del sistema de archivos POSIX pueden ejecutar comandos básicos, como ls o find, sin que ello suponga una carga de trabajo enorme al clúster de almacenamiento de Ceph.

11.2.1 Adición de un servidor de metadatos

Es posible distribuir el servidor de metadatos durante el proceso de distribución inicial del clúster, tal como se describe en la Sección 4.3, “Distribución del clúster”, o añadirlos a un clúster ya distribuido como se describe en el Sección 1.1, “Adición de nuevos nodos de clúster”.

Después de distribuir el servidor de metadatos, permita el servicio Ceph OSD/MDS en la configuración del cortafuegos del servidor donde se vaya a distribuir dicho servidor: inicie yast, acceda a Seguridad y usuarios › Cortafuegos › Servicios autorizados y, en el menú desplegable Servicio que se va a autorizar seleccione Ceph OSD/MDS. Si no se permite el tráfico completo del nodo del servidor de metadatos de Ceph, el montaje de un sistema de archivos falla, aunque otras operaciones pueden funcionar correctamente.

11.2.2 Configuración de un servidor de metadatos

Puede ajustar con más detalle el comportamiento del servidor de metadatos insertando las opciones relevantes en el archivo de configuración ceph.conf.

Tamaño de caché del servidor de metadatos
mds cache memory limit

La cantidad máxima de memoria (en bytes) que el servidor de metadatos aplicará para su caché. Los administradores deben utilizar este valor en lugar del antiguo ajuste mds cache size. Por defecto es 1 GB.

mds cache reservation

La reserva de caché (memoria o inodos) que debe conservar el caché del servidor de metadatos. Cuando el servidor de metadatos empieza a utilizar su reserva, retendrá temporalmente el estado del cliente hasta que el tamaño de caché se reduzca para restaurar la reserva. El valor por defecto es 0,05.

Para obtener una lista detallada de opciones de configuración relacionadas con el servidor de metadatos, consulte http://docs.ceph.com/docs/master/cephfs/mds-config-ref/.

Para obtener una lista detallada de opciones de configuración del creador de diarios del servidor de metadatos, consulte http://docs.ceph.com/docs/master/cephfs/journaler/.

11.3 CephFS

Si dispone de un clúster de almacenamiento de Ceph en buen estado con al menos un servidor de metadatos de Ceph, puede crear y montar el sistema de archivos de Ceph. Asegúrese de que su cliente cuenta con conectividad de red y de un anillo de claves de autenticación adecuado.

11.3.1 Creación de CephFS

CephFS requiere al menos dos repositorios RADOS: uno para datos y otro para metadatos. A la hora de configurar estos repositorios, tenga en cuenta lo siguiente:

  • Use un nivel de réplica mayor para el repositorio de metadatos, ya que cualquier pérdida de datos en este repositorio puede producir que no sea posible acceder al sistema de archivos completo.

  • Use un almacenamiento de baja latencia, como discos SSD, para el repositorio de metadatos, ya que así mejorará la latencia observada de las operaciones del sistema de archivos en los clientes.

Los repositorios necesarios se crean automáticamente asignando una entrada role-mds en el archivo policy.cfg. Puede crear manualmente los repositorios cephfs_data y cephfs_metadata para ajustar el rendimiento de forma manual antes de configurar el servidor de metadatos. DeepSea no creará estos repositorios si ya existen.

Para obtener más información sobre cómo gestionar repositorios, consulte el Capítulo 7, Gestión de repositorios de almacenamiento.

Para crear los dos repositorios obligatorios (por ejemplo, "cephfs_data" y "cephfs_metadata") con los valores por defecto para usarlos con CephFS, ejecute los comandos siguientes:

root # ceph osd pool create cephfs_data pg_num
root # ceph osd pool create cephfs_metadata pg_num

Es posible utilizar repositorios codificados de borrado en lugar de los repositorios replicados. Se recomienda usar los repositorios codificados de borrado solo si se requiere un rendimiento bajo y acceso aleatorio poco frecuente; por ejemplo, para el almacenamiento en frío, las copias de seguridad y el archivado. En los repositorios codificados de borrado, CephFS requiere que BlueStore esté habilitado y el repositorio debe tener la opción allow_ec_overwrite definida. Esta opción puede definirse ejecutando ceph osd pool set ec_pool allow_ec_overwrites true.

La codificación de borrado añade una sobrecarga considerable a las operaciones del sistema de archivos, especialmente en pequeñas actualizaciones. Esta sobrecarga es inherente al uso de la codificación de borrado como mecanismo de tolerancia a fallos. Este problema es un inconveniente necesario si se quiere reducir de forma significativa la sobrecarga del espacio de almacenamiento.

Cuando se crean los repositorios, puede habilitar el sistema de archivos con el comando ceph fs new:

root # ceph fs new fs_name metadata_pool_name data_pool_name

Por ejemplo:

root # ceph fs new cephfs cephfs_metadata cephfs_data

Para comprobar que se ha creado el sistema de archivos, puede mostrar todos los sistemas de archivos CephFS disponibles:

root # ceph fs ls
 name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

Cuando se haya creado el sistema de archivos, el servidor de metadatos podrá entrar en un estado activo. Por ejemplo, en un único sistema de servidor de metadatos:

root # ceph mds stat
e5: 1/1/1 up
Sugerencia
Sugerencia: otros temas

Encontrará más información sobre tareas específicas; por ejemplo, el montaje, el desmontaje y la configuración avanzada de CephFS, en el Capítulo 13, Sistema de archivos con agrupación en clúster.

11.3.2 Tamaño del clúster del servidor de metadatos

Varios daemons activos de servidor de metadatos pueden dar servicio a una instancia de CephFS. Todos los daemons activos del servidor de metadatos que se asignan a una instancia de CephFS distribuirán el árbol del directorio del sistema de archivos entre sí y, por lo tanto, distribuirán la carga de los clientes simultáneos. Para poder añadir un daemon activo del servidor de metadatos a una instancia de CephFS, se necesita una reserva de repuesto. Es posible iniciar un daemon adicional o utilizar una instancia de reserva existente.

El comando siguiente muestra el número actual de daemons del servidor de metadatos activos y pasivos.

root # ceph mds stat

El siguiente comando define el número de servidores de metadatos activos a dos en una instancia del sistema de archivos.

root # ceph fs set fs_name max_mds 2

Con el fin de reducir el tamaño del clúster del servidor de metadatos antes de una actualización, es preciso llevar a cabo dos pasos. Primero, defina max_mds para que solo quede una instancia:

root # ceph fs set fs_name max_mds 1

y, después, desactive de forma explícita los demás daemons activos del servidor de metadatos:

root # ceph mds deactivate fs_name:rank

donde rank es el número de un daemon activo del servidor de metadatos de una instancia del sistema de archivos, entre 0 y max_mds-1. Consulte http://docs.ceph.com/docs/luminous/cephfs/multimds/ para obtener más información.

11.3.3 Clúster de servidor de metadatos y actualizaciones

Durante las actualizaciones de Ceph, los indicadores de función de una instancia del sistema de archivos pueden cambiar (normalmente, al añadir nuevas funciones). Los daemons incompatibles (por ejemplo, de versiones anteriores) no funcionan con un conjunto de funciones incompatible y no se iniciarán. Esto significa que actualizar y reiniciar un daemon pueden provocar que todos los otros daemons que aún no se han actualizado se detengan y no se puedan iniciar. Por este motivo, se recomienda reducir el clúster activo del servidor de metadatos a una sola instancia y detener todos los daemons en espera antes de actualizar Ceph. Los pasos manuales para este procedimiento de actualización son los siguientes:

  1. Actualice los paquetes relacionados con Ceph mediante zypper.

  2. Reduzca el tamaño del clúster activo del servidor de metadatos como se describe anteriormente a una sola instancia y detenga todos los daemons en espera del servidor de metadatos con sus unidades systemd en todos los otros nodos:

    root # systemctl stop ceph-mds\*.service ceph-mds.target
  3. Solo entonces, reinicie el único daemon del servidor de metadatos de los que quedan, de forma que se reinicie con archivo binario actualizado.

    root # systemctl restart ceph-mds\*.service ceph-mds.target
  4. Reinicie todos los demás daemons del servidor de metadatos y vuelva a definir el valor de max_mds que desee.

    root # systemctl start ceph-mds.target

Si utiliza DeepSea, se seguirá este procedimiento en caso de que el paquete ceph se haya actualizado durante las fase de la 0 a la 4. Es posible llevar a cabo este procedimiento mientras los clientes tienen la instancia de CephFS montada y hay operaciones de E/S en curso. Sin embargo, tenga en cuenta que habrá una breve pausa de E/S mientras se reinicie el servidor de metadatos activo. Los clientes se recuperarán automáticamente.

Es recomendable reducir la carga de E/S tanto como sea posible antes de actualizar un clúster del servidor de metadatos. Este procedimiento es más rápido en los clústeres del servidor de metadatos inactivos. Por el contrario, en un clúster con mucha carga con varios daemons del servidor de metadatos es fundamental reducir la carga de antemano para evitar que un solo daemon del servidor de metadatos se vea desbordado por operaciones de E/S continuas.

Imprimir esta página