1. Introducción al sistema de archivos distribuido Ceph
Ceph es un sistema de archivos unificado y distribuido diseñado para ofrecer un rendimiento, una fiabilidad y una escalabilidad excelentes.
Ceph proporciona de forma única funciones de almacenamiento de objetos, bloques y archivos en un sistema unificado.
Los objetivos básicos de desarrollo son:
- Se puede expandir fácilmente a varios petabytes.
- Alto rendimiento que admite múltiples cargas de trabajo (operaciones de entrada / salida por segundo [IOPS] y ancho de banda)
Ceph altamente confiable no es solo un sistema de archivos, sino también un ecosistema de almacenamiento de objetos con funciones de nivel empresarial.
Sitio web de aprendizaje de chino: CEPH Chinese Learning Network
2. Construcción del sistema de archivos distribuido Ceph
2.1 Preparación ambiental
Prepare tres máquinas centos (usando máquinas virtuales)
IP | nombre de host |
---|---|
192.168.1.12 | node01 |
192.168.1.13 | node02 |
192.168.1.14 | node03 |
2.1.1 Apague el firewall (nodo01, nodo02, nodo03)
# 查看状态
firewall-cmd --state
# 停止firewall
systemctl stop firewalld.service
# 禁止firewall开机启动
systemctl disable firewalld.service
2.1.2 Cerrar selinux (node01, node02, node03)
Ejecute el comando: vi / etc / selinux / config, modifique el contenido "SELINUX = disabled"
2.1.3 Modificar el nombre de host (nodo01, nodo02, nodo03)
Ejecute vi / etc / hostname, agregue el nombre node01,
ejecute vi / etc / hosts y agregue lo siguiente:
192.168.1.12 node01
192.168.1.13 node02
192.168.1.14 node03
Después de ejecutar el comando anterior, recuerde ejecutar el comando reboot para reiniciar el servicio y luego ejecute el comando hostname para ver el nombre de la máquina
2.1.4 Modificar la fuente de yum (node01, node02, node03)
Utilice el espejo Tsinghua para acelerar la descarga.
Ejecute el comando: vi /etc/yum.repos.d/ceph.repo y agregue el siguiente contenido:
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
# 清华源
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
2.1.5 Instalar ceph y ceph-deploy (node01)
Primero ejecute los siguientes dos comandos (nodo01, nodo02, nodo03):
yum install epel-release -y
yum install lttng-ust -y
Ejecute el comando de instalación (nodo01):
yum update && yum -y install ceph ceph-deploy
La ejecución es exitosa, como se muestra en la siguiente figura, todo el proceso será un poco lento, no te preocupes, ¡ten paciencia! ! !
2.1.6 Instale la herramienta de sincronización de tiempo NTP (nodo01, nodo02, nodo03)
1) Ejecute el comando:
yum install ntp ntpdate ntp-doc -y
2) Configurar el arranque
systemctl enable ntpd
3) Configure la sincronización de calibración automática cada 1 hora.
Ejecute el comando: vi /etc/rc.d/rc.local, agregue lo siguiente
/usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
4) Configure las tareas de tiempo, ejecute crontab -e para unirse
0 */1 * * * ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
2.1.7 Configuración sin contraseña (nodo01, nodo02, nodo03)
Cree un usuario cuser, la contraseña también es cuser (node01, node02, node03)
useradd -d /home/cuser -m cuser
passwd cuser
Establecer permisos (nodo01, nodo02, nodo03)
echo "cuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cuser
sudo chmod 0440 /etc/sudoers.d/cuser
Cambiar de usuario cuser, ejecutar ssh-keygen, generar clave (node01)
su cuser
Distribuya la clave a todos los nodos: (node01)
ssh-copy-id cuser@node01
ssh-copy-id cuser@node02
ssh-copy-id cuser@node03
Cambiar a usuario root
su root
Ejecute el comando: mkdir ~ / .ssh, luego ingrese el directorio .ssh, cree la configuración del archivo y agregue el siguiente contenido al archivo
Host node01
Hostname node01
User cuser
Host node02
Hostname node02
User cuser
Host node03
Hostname node03
User cuser
Modificar los permisos de los archivos:
chmod 600 ~/.ssh/config
2.2 Construcción de clústeres Ceph
2.2.1 Crear un directorio de administración de clústeres como directorio de almacenamiento de información de configuración de ceph
mkdir -p /usr/local/che/cephcluster
cd /usr/local/che/cephcluster
2.2.2 Crear un clúster
ceph-deploy new node01 node02 node03
2.2.3 Modificar el archivo de configuración
Ejecute el comando: vi /usr/local/che/cephcluster/ceph.conf, agregue lo siguiente
#对外开放网段
public network = 192.168.1.0/24
# 设置pool池默认分配数量
osd pool default size = 2
# 容忍更多的时钟误差
mon clock drift allowed = 2
mon clock drift warn backoff = 30
# 允许删除pool
mon_allow_pool_delete = true
[mgr]
# 开启WEB仪表盘
mgr modules = dashboard
Ejecute el comando de instalación: ceph-deploy install node01 node02 node03
2.2.4 Inicializar monitor
ceph-deploy mon create-initial
2.2.5 Sincronización de la información de gestión
ceph-deploy admin node01 node02 node03
2.2.6 Instalar mgr
ceph-deploy mgr create node01 node02 node03
2.2.7 Instalar rgw
ceph-deploy rgw create node01 node02 node03
2.2.7 Instalar el servicio mds
ceph-deploy mds create node01 node02 node03
2.2.8 Instalar OSD
Ejecute fdisk -l para ver la información del disco y
ejecute el comando para crear OSD: (node01)
ceph-deploy osd create --data /dev/sdb node01
ceph-deploy osd create --data /dev/sdb node02
ceph-deploy osd create --data /dev/sdb node03
Ejecute ceph -s para ver la información de estado del clúster de ceph
2.2.8 instalación del tablero
1) Abra el módulo del tablero
ceph mgr module enable dashboard
2) Generar firma
ceph dashboard create-self-signed-cert
3) Crea un directorio
mkdir -p /usr/local/che/cephcluster/mgr-dashboard
4) Genere un par de claves
openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650 -keyout dashboard.key -out dashboard.crt -extensions v3_ca
5) Inicie el tablero
ceph mgr module disable dashboard
ceph mgr module enable dashboard
6) Establecer IP y PUERTO
ceph config set mgr mgr/dashboard/server_addr 192.168.1.12
ceph config set mgr mgr/dashboard/server_port 8443
7) Apague HTTPS
ceph config set mgr mgr/dashboard/ssl false
8) Ver información de servicio
ceph mgr services
9) Establecer la contraseña de la cuenta de administrador
ceph dashboard set-login-credentials admin admin
10) Visite https://192.168.1.13:8443/ en el navegador,
11) RGW visite http://192.168.1.12:7480/
2.3 Gestión de Cephfs
2.3.1 Crear dos grupos de almacenamiento
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64
Ver grupo de almacenamiento
ceph osd lspools
2.3.2 Crear fs, llamado fs_demo01
ceph fs new fs_demo01 cephfs_metadata cephfs_data
Comprobar estado:
ceph fs ls
ceph mds stat
2.3.3 soporte de fusible
# 安装
yum -y install ceph-fuse
# 创建挂载目录
mkdir -p /usr/local/che/cephfs_directory
# 挂载cephfs
ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.1.12:6789 /usr/local/che/cephfs_directory
Ver información de montaje
df -h