Ceph es una plataforma de almacenamiento de código abierto que ofrece alto rendimiento, confiabilidad y escalabilidad. Es un sistema de almacenamiento distribuido gratuito que proporciona una interfaz para el almacenamiento a nivel de archivos, bloques y objetos sin un solo punto de falla.
Esta es la tercera parte de la serie de tutoriales de Ceph. En la primera parte, le mostré cómo crear un 'clúster de Ceph' con varios nodos en CentOS7. La segunda parte es una guía que muestra cómo usar Ceph como dispositivo de bloque en CentOS 7. En esta tercera parte, le mostraré cómo montar Ceph como sistema de archivos en CentOS 7 como cliente.
Requisitos previos
- Clúster de Ceph:1 nodo Ceph-admin, 1 nodo Monitor (ceph-mon), 3 nodos Ceph-OSD (consulte la parte 1).
- Cliente 2:servidor CentOS 7 (consulte la parte 2).
- Privilegios de raíz
Paso 1:configurar el nodo Client2
En este primer paso, realizaremos la instalación base del cliente. Este es el mismo procedimiento que usamos en los otros nodos del clúster. Crearemos un nuevo usuario llamado cephuser en el cuadro, sincronice la hora con ntpdate, configure sudo sin contraseña para cephuser, etc. Así que comencemos...
Conéctese al nodo client2 con SSH como usuario root:
ssh [email protected]
Iniciamos sesión en el servidor con acceso de root, ahora podemos crear el nuevo cephuser.
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD
Después de que se haya creado el nuevo usuario, habilite sudo sin contraseña para el usuario creando un nuevo archivo de configuración en el directorio sudoers.
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser
A continuación, instale NTP, la herramienta de línea de comandos ntpdate y las herramientas open-vm. Luego actualice y sincronice la hora del sistema con ntpdate.
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
Deshabilite SELinux y edite el archivo del host.
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts
Pegue la configuración de hosts a continuación:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
10.0.15.16 client2
Guarde el archivo de hosts y salga del editor. Ahora intente hacer ping al nodo ceph-admin para probar la conexión y la configuración del nombre de host.
ping -c 3 ceph-admin
Debería ver la dirección IP del nodo ceph-admin como resultado.
Paso 2:instalar Ceph Common Utilities en el nodo Client2
El paquete ceph-common se puede instalar desde el repositorio de Ceph. Contiene las utilidades de Ceph para montar e interactuar con el clúster de almacenamiento de Ceph.
Antes de que podamos continuar con la instalación del paquete ceph-common, debemos agregar epel-repository y Ceph repository.
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Actualice el sistema e instale las utilidades comunes de Ceph.
sudo yum -y update
sudo yum -y install ceph-common
A continuación, debemos agregar la configuración en el nodo ceph-admin.
Paso 3:configurar el nodo Ceph-admin
En este paso, configuraremos el clúster para que podamos conectarnos desde el administrador al nodo cliente2 con la clave ssh (sin la contraseña).
Conéctese al nodo ceph-admin como root y luego inicie sesión en cephuser con su.
ssh [email protected]
su - cephuser
Edite el archivo de configuración ssh y defina una nueva sección de configuración de client2.
vim ~/.ssh/config
Al final del archivo, pegue la siguiente configuración:
Host client2
Hostname client2
User cephuser
A continuación, agregue la línea de configuración del host para el nodo del cliente al archivo '/etc/hosts' en el nodo ceph-admin.
sudo vim /etc/hosts
Pegue la configuración del host a continuación al final del archivo.
10.0.15.16 client2
Guarde el archivo de hosts y salga del editor.
Ahora agregue la clave ssh del nodo ceph-admin al nodo client2.
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD
Se ha agregado la clave ceph-admin. Ahora podemos acceder al nodo client2 sin la contraseña del nodo ceph-admin.
ssh client2
Paso 4:crear el servidor de metadatos de Ceph
Si desea ejecutar y montar CephFS, necesita un servidor de metadatos de ceph (Ceph MDS). Ceph MDS se está ejecutando en los nodos OSD. Podemos instalar Ceph MDS en el nodo OSD con el comando ceph-deploy desde el nodo ceph-admin.
Inicie sesión en el nodo ceph-admin y conviértase en cephuser.
ssh [email protected]
su - cephuser
Vaya al directorio del clúster y ejecute el comando ceph-deploy para crear un nuevo servidor de metadatos de ceph (Ceph MDS). Usaré el nodo 'osd1' como servidor de metadatos.
cd cluster/
ceph-deploy mds create osd1
Después de crear el servidor MDS en el nodo osd1, debemos conectarnos al nodo con ssh.
ssh osd1
Luego, cree nuevos grupos para el servidor MDS, al menos necesitamos 2 grupos:cephfs_data y cephfs_metadata.
Cree nuevos grupos en el nodo 'osd1'.
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
Las nuevas piscinas están listas. Ahora podemos crear el nuevo sistema de archivos usando los grupos con nombre:cephfs_data y cephfs_metadata.
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs =Nombre del sistema de archivos.
Cuando haya terminado este paso sin un error, verifique el servidor MDS con el siguiente comando.
Consulte la lista de servidores MDS:
ceph fs ls
Ahora puede ver que el nombre del sistema de archivos es 'cephfs', el grupo de metadatos es 'cephfs_metadata' y el grupo de datos es 'cephfs_data'.
Mostrar el estado de MDS:
ceph mds stat
Asegúrese de que el MDS esté activo antes de continuar.
Paso 5:Monte CephFS con el controlador del kernel
El servidor Ceph MDS se ha creado en el nodo 'osd1'. Ahora podemos usar CephFS. En este paso, montaremos CephFS en el nodo cliente2 como sistema de archivos con el comando de montaje.
Antes de comenzar con el siguiente paso, debemos instalar ceph-fuse desde el repositorio de ceph en el nodo client2.
sudo yum -y install ceph-fuse
Cuando termine la instalación, copie la clave del usuario. En nuestra configuración predeterminada, la autenticación cephx está habilitada. El usuario predeterminado es 'admin'.
Copie la clave del nodo del servidor MDS 'osd1' al nodo client2 con el comando scp, luego cambie el permiso de la clave.
ssh [email protected] 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key
A continuación, cree un nuevo directorio cephfs y monte el CephFS en ese directorio.
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
Nombre de usuario predeterminado =admin
secretfile =ceph.key del nodo MDS osd1
Verá un nuevo sistema de archivos de tipo 'ceph' montado en la lista.
sudo df -hT
Para desmontar el sistema de archivos, use la utilidad de comando umount.
umount /mnt/cephfs
Paso 6:Monte CephFS como fusible
Una vez que hayamos montado correctamente CephFS como sistema de archivos, montaremos CephFS como Fuse (sistema de archivos en USErspace). Para esta configuración, necesitamos copiar el archivo de configuración 'ceph.conf' y la clave del nodo de monitoreo 'mon1'.
Cree un nuevo directorio ceph en el nodo client2 y copie el archivo de configuración y la clave.
sudo mkdir -p /etc/ceph/
sudo scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
Cambia los permisos de los archivos.
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
A continuación, cree un nuevo directorio fuse y monte CephFS como Fuse en el directorio '/mnt/fuse'.
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse
Asegúrese de que no haya ningún error y verifique que CephFS esté montado.
sudo df -hT
Para desmontar CephFS Fuse, use el comando kill.
sudo ps -aux | grep ceph-fuse
kill -2 PID
Paso 7:Monte CephFS usando fstab
En este paso, montaremos permanentemente CephFS con fstab. Editaremos /etc/fstab y agregaremos la configuración para montar CephFS con el controlador del kernel, usando el comando de montaje.
Edite el archivo fstab.
sudo vim /etc/fstab
Pegue la siguiente configuración al final del archivo:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
Guarde el archivo y salga de vim.
Monte todos los discos desde fstab con el comando mount -a, luego enumere todos los discos disponibles.
sudo mount -a
sudo df -hT
Finalmente, reinicie el sistema y verifique los discos disponibles para asegurarse de que la configuración sea segura para reiniciar.
reboot
sudo df -hT
Verá que CephFS se montó automáticamente con fstab.