Installer le cluster Ceph
Préparation environnementale
CentOS 7.6
Nom du processeur | PI | Rôle |
---|---|---|
administrateur | 192.168.182.128 | administrateur |
noeud1 | 192.168.182.129 | lundi/gestionnaire/osd |
noeud2 | 192.168.182.130 | osd |
noeud3 | 192.168.182.131 | osd |
client | 192.168.182.132 |
- Tous les nœuds modifient les noms d'hôte pour se résoudre
- Trois nœuds ajoutent des disques durs d'une taille de 5G ou plus
- Désactivez tous les pare-feu de nœuds et SeLinux
- Créez des utilisateurs ordinaires sur tous les nœuds et définissez des mots de passe
Écrivez le contenu suivant à/etc/hosts
192.168.182.128 admin
192.168.182.129 node1
192.168.182.130 node2
192.168.182.131 node3
192.168.182.132 client
Fermez tous les pare-feu de nœuds et les scripts SeLinux (autorisez et exécutez simplement)
#!/bin/bash
# 关闭防火墙
echo "正在关闭防火墙..."
sudo systemctl stop firewalld
sudo systemctl disable firewalld
echo "防火墙已关闭并禁用。"
# 检查 SELinux 状态
sestatus=$(sestatus | grep "SELinux status" | awk '{print $3}')
if [ "$sestatus" == "enabled" ]; then
# 关闭 SELinux
echo "正在关闭 SELinux..."
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
echo "SELinux 已关闭。"
else
echo "SELinux 已经处于禁用状态,无需操作。"
fi
echo "脚本执行完毕。"
Créez des utilisateurs sur tous les nœuds et définissez des mots de passe
useradd cephu
passwd cephu
Assurez-vous que les utilisateurs nouvellement créés sur les nœuds Ceph disposent des autorisations sudo et que tous les nœuds peuvent fonctionner.
visudo
#大约在100行添加
cephu ALL=(root) NOPASSWD:ALL
Implémenter une connexion ssh sans mot de passe (opération du nœud d'administration)
[root@admin ~]# su - cephu
[cephu@admin ~]$ ssh-keygen
#将admin节点cephu用户生产的密钥拷贝到各Ceph节点
ssh-copy-id cephu@node
#admin节点root用户田家庵~/.ssh/config配置文件 这样ceph-deploy就能用你所建的用户名登陆Ceph节点了
[root@admin ~]# mkdir ~/.ssh
[root@admin ~]# vim ~/.ssh/config
[root@admin ~]# cat ~/.ssh/config
Host node1
Hostname node1
User cephu
Host node2
Hostname node2
User cephu
Host node3
Hostname node3
User cephu
Ajouter une source de téléchargement
Installer ceph-deploy (utilisateur root du nœud administrateur)
vim /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
yum makecache
yum update
#开启yum缓存
[root@admin ~]# vim /etc/yum.conf
keepcache=1
yum install ceph-deploy -y
Installer le service NTP
Opérez sur tous les nœuds, sélectionnez un nœud pour être le serveur de temps ntp et d'autres nœuds pour être le serveur de temps. Le client synchronise l'heure avec le serveur.
[root@admin ~]# yum install -y ntp
[root@admin ~]# vim /etc/ntp.conf #有4行server的位置,把那4行server行注释掉,填写以下两行
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
[root@admin ~]# systemctl start ntpd
[root@admin ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
Autres nœuds
yum install ntpdate -y
ntpdate 时间服务器ip
Déployer le cluster
Sans instructions particulières, les opérations suivantes sont effectuées sur le nœud admin et l'utilisateur cephu
-
Créez un répertoire pour les opérations cephu. L'opération de commande ceph-deploy doit être exécutée dans ce répertoire.
[root@admin ~]# su - cephu Last login: Tue Jul 11 10:09:09 EDT 2023 on pts/0 [cephu@admin ~]$ mkdir my-cluster sudo yum install wget unzip -y
-
Créer un cluster
wget https://files.pythonhosted.org/packages/5f/ad/1fde06877a8d7d5c9b60eff7de2d452f639916ae1d48f0b8f97bf97e570a/distribute-0.7.3.zip
[cephu@admin ~]$ ls distribute-0.7.3.zip my-cluster [cephu@admin ~]$ unzip distribute-0.7.3.zip [cephu@admin ~]$ cd distribute-0.7.3 [cephu@admin distribute-0.7.3]$ sudo python setup.py install [cephu@admin distribute-0.7.3]$ cd ../my-cluster/ [cephu@admin my-cluster]$ ceph-deploy new node1 [cephu@admin my-cluster]$ ls ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
-
Installez le package principal ceph-radosgw sur trois nœuds
(Trois nœuds fonctionnent)
#安装epel源 yum install -y epel* #创建Ceph源,内容如下:阿里源 vim /etc/yum.repos.d/ceph.repo
[Ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [Ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [ceph-source] name=Ceph source packages baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS enabled=1 gpgcheck=0 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1
-
Exécuter des commandes pour installer le logiciel sur trois nœuds
su - cephu sudo yum install ceph ceph-radosgw -y ceph --version ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
Initialiser le cluster
-
Initialiser mon(cephu@admin)
[cephu@admin my-cluster]$ ceph-deploy mon create-initial ceph-deploy admin node1 node2 node3 ceph-deploy mgr create node1
-
Ajouter un osd
#查看node节点的磁盘名称 [cephu@node3 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 5G 0 disk sr0 11:0 1 918M 0 rom
[cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node1 [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node2 [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
Configuration du tableau de bord
opération nœud1
#创建管理域密钥 [cephu@node1 ~]$ sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' [mgr.node1] key = AQCUXa5kZcSGIhAAqRGiZM7wLa3PQpfhR3dJbA== #开启管理域 [cephu@node1 ~]$ sudo ceph-mgr -i node1 #查看状态 [cephu@node1 ~]$ sudo ceph status cluster: id: 4f902c45-53fb-4048-9697-77b959811be9 health: HEALTH_OK services: mon: 1 daemons, quorum node1 mgr: node1(active, starting) osd: 3 osds: 3 up, 3 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0B usage: 3.01GiB used, 12.0GiB / 15.0GiB avail pgs: #打开dashboard模块 [cephu@node1 ~]$ sudo ceph mgr module enable dashboard #绑定dashboard模块 sudo ceph config-key set mgr/dashboard/node1/server_addr 192.168.182.129 # ip地址为mgr节点的ip地址,也就是node1的ip地址
accéder
Configurer le client
Configurez le client pour utiliser rbd. Pour créer un périphérique de bloc, vous devez créer un pool de stockage. Les commandes pertinentes doivent être exécutées par le nœud mon (nœud node1)
[cephu@node1 ~]$ sudo ceph osd pool create rbd 128 128
pool 'rbd' created
#初始化存储池
[cephu@node1 ~]$ sudo rbd pool init rbd
#升级内核
[root@client ~]# uname -r
3.10.0-957.el7.x86_64
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@client ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#查看可用系统内核包
[root@client ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel | 3.0 kB 00:00:00
elrepo-kernel/primary_db | 3.2 MB 00:00:17
Available Packages
elrepo-release.noarch 7.0-6.el7.elrepo elrepo-kernel
kernel-lt.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.249-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 6.4.3-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 6.4.3-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 6.4.3-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 6.4.3-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 6.4.3-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 6.4.3-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 6.4.3-1.el7.elrepo elrepo-kernel
perf.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.4.249-1.el7.elrepo elrepo-kernel
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
#内核默认启动顺序
[root@client ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (6.4.3-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-3e4185a101a24cd88c8db432a7f43144) 7 (Core)
grub2-set-default 0
reboot
#删除旧内核
yum remove kernel -y
yum -y install python-setuptools
Créer une source epel
yum install -y epel*
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[root@client ~]# vim /etc/yum.conf #开启yum缓存
keepcache=1
yum clean all
su - cephu
Le nœud d'administration autorise le client
[cephu@admin my-cluster]$ ceph-deploy admin client
#client修改读写权限
[cephu@client ~]$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
[cephu@client ~]$ sudo vi /etc/ceph/ceph.conf #在global section下添加:
rbd_default_features = 1
Le nœud client crée une image de périphérique de bloc
rbd create foo --size 4096
---映射---
#映射到主机
[cephu@client ~]$ sudo rbd map foo --name client.admin
/dev/rbd0
#格式化块设备
sudo mkfs.ext4 -m 0 /dev/rbd/rbd/foo
[cephu@client ~]$ sudo mkdir /mnt/ceph-block-device
[cephu@client ~]$ sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
[cephu@client ~]$ cd /mnt/ceph-block-device
[cephu@client ceph-block-device]$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 452M 0 452M 0% /dev
tmpfs tmpfs 465M 0 465M 0% /dev/shm
tmpfs tmpfs 465M 6.6M 458M 2% /run
tmpfs tmpfs 465M 0 465M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 2.0G 16G 12% /
/dev/sda1 xfs 1014M 141M 874M 14% /boot
tmpfs tmpfs 93M 0 93M 0% /run/user/0
/dev/rbd0 ext4 3.8G 24K 3.8G 1% /mnt/ceph-block-device
[cephu@client ceph-block-device]$ sudo touch test.txt
Après le redémarrage du client, le périphérique doit être remappé, sinon il risque de se bloquer.