Ceph简介

Ceph 是一个开源的分布式存储系统,提供对象存储、块存储和文件存储功能。它通过自动分布数据和高可用性设计,旨在提供高度可扩展的存储解决方案。

ceph架构如下图所示

 Ceph的安装

本次实验环境基于Linux发行版 CentOS Linux release 7.9.2009 (Core)

本次实验准备了四台虚拟机,一台虚拟机安装ceph-deploy(本实验的node5),用来配置管理其他三个节点(本实验的node1,node2,node3)这四台主机需要相互免密!!!,关闭防火墙和selinux

注意:前期配置工作都在node5管理节点(也就是安装了ceph-deploy那个主机)进行。

 本次ceph安装采用ceph-deploy,ceph-deploy 是一个用于简化 Ceph 存储集群部署的命令行工具。它旨在减少配置和管理 Ceph 集群的复杂性,使得用户可以更轻松地部署和维护 Ceph 集群。简言之就是管理,配置其他ceph节点。

主要功能和特点

  1. 简化部署过程

    • ceph-deploy 提供了一系列命令来自动化 Ceph 集群的安装、配置和启动过程,包括监视器(MON)、对象存储守护进程(OSD)、管理守护进程(MGR)和其他组件的安装和配置。
  2. 集中管理

    • 通过一个管理节点运行 ceph-deploy 命令,你可以在集群中的多个节点上进行操作,而无需在每个节点上单独配置。
  3. 自动配置

    • ceph-deploy 能够自动生成和分发配置文件,如 ceph.conf,并为各个守护进程创建和分发必要的密钥。
  4. 安装和配置

    • 通过简单的命令,可以完成 Ceph 的软件安装、监视器和管理守护进程的创建、OSD 的准备和激活等操作。

 在管理节点安装ceph-deploy(本次实验的node5)

安装前首先确保网络源没有问题,需要安装好epel源

为了后续安装操作的正常进行,在四台主机上配置一个ceph源

注意:四台主机都要配置这个ceph源,命令如下:

#进入yum文件目录
cd /etc/yum.repos.d/

#新建ceph.repo
touch ceph.repo

#在ceph.repo加入如下内容
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc

然后在管理节点(node5节点)安装ceph-deploy和相关软件包

 注意下面这条命令在管理节点进行

yum install ceph-deploy python-setuptools python2-subprocess3

安装成功后可以查看ceph-deploy命令是否能够使用(在主管理节点进行)

ceph-deploy --version

出现下图就代表安装成功 

 创建集群,包含3台机器节点(在主管理节点进行)

注意下面节点的名字,和自己的保持一致

ceph-deploy new node1 node2 node3

由于我在自己的根目录下运行的命令,所以文件直接在我的根目录下(实际应该建一个目录,在目录中安装),会出现下面这三个文件

修改配置文件:ceph.conf

vim ceph.conf

#在文件末尾添加以下内容,注意不删除原有的内容

# 容忍更多的时钟误差 
mon clock drift allowed = 2 
mon clock drift warn backoff = 30 
# 允许删除pool 
mon_allow_pool_delete = true
mgr modules = dashboard

在ceph-deploy节点通过执行install命令,为ceph集群中的osd节点安装ceph相关包

下面三个节点名字换成自己的

ceph-deploy install --no-adjust-repos --nogpgcheck node1 node2 node3

此过程较慢,请耐心等待 

终于完成了,继续!

初始化节点信息(在主管理节点进行)

ceph-deploy new 命令配置集群之后,会得到一个初步的配置文件,定义了 Monitor 节点。ceph-deploy mon create-initial 命令会根据这个配置文件在指定的节点上创建并启动 Monitor 服务。

ceph-deploy mon create-initial

下发信息到各个节点(在主管理节点进行) 

#注意下面节点的名字换成自己的
ceph-deploy admin node1 node2 node3

安装mgr管理守护进程 (在主管理节点进行)

ceph-deploy mgr create node1 node2 node3

添加硬盘进行验证

如果三台主机已经添加过硬盘了则可以不添加

这三台主机都要添加,一路下一步即可

注意,对正在运行的虚拟机添加硬盘需要重启生效

 出现下图自己新添加的硬盘即可,注意不一定非得是sdb

执行创建osd命令:注意不一定非得是sdb,根据新加的名字来决定

注意在管理节点进行 

ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3

同步信息

注意也是在管理节点进行

ceph-deploy gatherkeys node1
ceph-deploy gatherkeys node2
ceph-deploy gatherkeys node3

 验证ceph节点

接下来在各个节点运行(注意不是管理节点了)

ceph -s

如果显示下图ok就行了

安装web管理后台界面 

开启dashboard模块

注意:以下命令都是在节点开启(可以是 node1,node2,node3中的任意一个节点)

ceph mgr module enable dashboard

生成签名

ceph dashboard create-self-signed-cert

执行上面两个命令出现下图即代表生成成功

创建目录

注意:创建位置没有要求,但是要记得在哪里(我这里直接在root目录下创建了)

mkdir mgr-dashboard

 进入刚刚创建的目录,然后生成密钥对

#进入刚刚创建的目录,因为我是在root目录下创建的,所以路径如下
cd /root/mgr-dashboard

#生成密钥对
openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650 -keyout dashboard.key -out dashboard.crt -extensions v3_ca

出现下图代表生成成功

 dashboard设置开机自启

ceph mgr module enable dashboard

设置访问的ip地址和端口号

注意:下面的ip填写当前节点的ip 

ceph config set mgr mgr/dashboard/server_addr 192.168.202.130
ceph config set mgr mgr/dashboard/server_port 18843

关闭https

ceph config set mgr mgr/dashboard/ssl false

 查看服务信息

ceph mgr services

出现下图信息即可

图中的node1是本节点,在浏览器实际访问时要替换成对应的IP地址

注意:现在还不能访问,因为还没有创建用户和密码

创建用户和密码

 注意:下图中的ghl 可以替换成任意名称,123可以换成任意密码

ceph dashboard set-login-credentials ghl 123

出现下图代表创建成功

终于!要访问了!!

 在浏览器地址栏输入刚刚生成的地址,点击继续访问

填写创建的用户和密码

 进入后显示如下

至此,ceph简单基础环境搭建完成。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐