ceph安装搭建总结
大纲
- 版本选择
- 集群架构
- 免密登录
- 安装ceph-deploy
- 部署ceph集群
- 安装mgr
- 安装ceph-dashboard
版本选择
ceph 版本信息如下

本次测试使用版本为Octopus 主版本号为15, 并且使用ceph-deploy 2.0.1安装ceph集群
Ceph Octopus 官方文档
相关环境与软件
- ceph15.2.17 Octopus
- eph-deploy 2.0.1
- ubuntu18.04.6
注意使用 virtualbox 复制的虚拟机 需要修改一下hostname
集群架构
相关服务器可以ping通

免密登录
登录ceph-controller主机,后续安装部署都会从这台机器发出命令,需要让ceph-controller主机 可以对 ceph-osd1 ceph-osd2 ceph-osd3 免密登录
这里为了方便直接使用root用户
生成公私钥
ssh-keygen

复制秘钥
ssh-copy-id root@ceph-osd1
ssh-copy-id root@ceph-osd2
ssh-copy-id root@ceph-osd3

关闭防火墙
查看防火墙状态
ufw status

如果防火墙状态不是inactive 则需要关闭防火墙
ufw disable
集群节点时间同步
安装 chrony 使ceph集群主机系统时钟与NTP服务器同步
否则ceph -s 可能看到集群健康状态为 health: HEALTH_WARN
clock skew detected on mon.ceph-osd2
集群每个主机安装 chrony
apt install -y chrony

启动 chrony服务
systemctl start chronyd.service
systemctl status chronyd.service

安装ceph-deploy
ceph-deploy 是Ceph软件定义存储系统的一部分,用来方便的配置和管理Ceph存储集群
查看ubuntu18.04 apt 对应的ceph-deploy版本
apt-cache madison ceph-deploy

本次安装选择使用 ceph-deploy 2.0.1 ceph-deploy 2.x文档
https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-15.2.16/pool/main/c/ceph-deploy/

配置安装源,这里用了清华镜像的安装源
# 添加镜像源
wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | apt-key add -
echo deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-15.2.16 $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
# apt 更新
apt update
# 再次查询ceph-deploy
apt-cache madison ceph-deploy

安装ceph-deploy 2.0.1
apt install ceph-deploy=2.0.1

ceph-deploy --version

到此 ceph-deploy 安装完成
部署ceph集群
部署ceph集群管理相关软件
注意: 以下操作都是在ceph-controller主机上执行
主要操作:
- 1 创建ceph集群
- 2 部署Mon
- 3 部署MGR
- 4 部署 Ceph-Dashboard
准备工作文件夹
准备一个工作文件夹,用于保存ceph-deploy 部署过程中的各种文件
mkdir -p /ops/ceph-cluster

配置ceph安装源
可以配置环境变量来实现ceph-deploy 使用指定的安装源 (因为本次实验使用的ceph 版本为octopus)
一些常用的镜像安装源
- http://mirrors.163.com/ceph
- http://mirrors.163.com/ceph/keys/release.asc
- https://download.ceph.com
- https://download.ceph.com/keys/release.asc
这里用清华镜像的安装源
vi /etc/profile
加入以下环境变量
export CEPH_DEPLOY_GPG_URL=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
export CEPH_DEPLOY_REPO_URL=https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-octopus/
source /etc/profile

安装ceph 所需的安装包
命令 ceph-deploy install 【主机】(多个用主机用空格分开)可以安装ceph集群所需的各种安装包
例如
ceph-deploy install ceph-controller 在ceph-controller主机上安装各种所需包
ceph-deploy install ceph-osd1 ceph-osd2 ceph-osd3

安装完成后可以使用ceph -v看到版本

初始化集群
在ceph-controller控制机 /ops/ceph-cluster文件夹下执行ceph-deploy new
ceph-deploy new 能够部署一个默认名称为ceph的新集群,并且生成集群配置文件和密钥文件
初始化集群
ceph-deploy new ceph-controller
在当前目录下会生成ceph.conf文件和ceph.mon.keyring文件

安装mon mgr
安装mon 与 mgr 监控管理
# 初始化moniter节点,并生成keyring
ceph-deploy --overwrite-conf mon create-initial

注意 mon对应的服务名称为ceph-mon@【主机名称】
例如
ceph-mon@ceph-osd1
ceph-mon@ceph-osd2
ceph-mon@ceph-controller
可以使用
- systemctl status ceph-mon@ceph-controller 查看服务状态
- systemctl restart ceph-mon@ceph-controller 重启服务

#可以使用ceph-deploy admin 【主机】将admin.keyring复制到做为管理节点的主机上
#命令可以跟多台主机
ceph-deploy admin ceph-controller
执行此命令可以看到在 /etc/ceph文件夹下增加了 ceph.client.admin.keyring文件
#可以使用ceph-deploy mgr create 【主机】创建管理节点,命令可以跟多台主机
ceph-deploy mgr create ceph-controller
使用ceph -s 查看当前ceph集群状态

安装配置Ceph Dashboard
安装Ceph Dashboard 参考官方文档 https://docs.ceph.com/en/octopus/mgr/dashboard/
apt install ceph-mgr-dashboard

安装完ceph-mgr-dashboard后可能需要重启一下主机
关闭https,配置IP和端口
ceph config set mgr mgr/dashboard/ssl false
ceph config set mgr mgr/dashboard/server_addr 192.168.0.17
ceph config set mgr mgr/dashboard/server_port 18804
启动 ceph dashboard
ceph mgr module enable dashboard

浏览器访问 http://192.168.0.17:18804/ dashboard成功启动

配置账号
创建账号的命令如下
ceph dashboard ac-user-create 【用户名】 -i 【包含密码的文件】【角色】
例如创建jim 赋予 管理员角色
ceph dashboard ac-user-create jim -i jim.key administrator

使用创建好的账户登录Ddashboard

部署ceph集群osd
ceph -s 可以看到当前的ceph集群健康状态

OSD count 0 < osd_pool_default_size 3
ceph集群至少要3个OSD
虚拟机挂载硬盘
在Virtualbox上给虚拟机ceph-osd1 ceph-osd2 ceph-osd3加硬盘
选择虚拟机 -》 设置 -》存储 -》添加虚拟硬盘
点击创建




登录ceph-osd1主机,新增的磁盘已经可以识别
lsblk
新增的磁盘已经可以识别

安装ceph相关软件
注意:以下操作需要在ceph-controller主机 /ops/ceph-cluster文件夹下操作
给ceph-osd1 ceph-osd2 ceph-osd3主机安装ceph相关软件
ceph-deploy install ceph-osd1 ceph-osd2 ceph-osd3

如果出现以下错误,需要在ceph-osd1 ceph-osd2 ceph-osd3上安装python (apt install python)
bash: python2: command not found
[ceph_deploy][ERROR ] RuntimeError: connecting to host: ceph-osd1 resulted in errors: IOError cannot send (already closed?)

部署osd
1 使用ceph-deploy disk list 【主机】可以查看主机可使用的磁盘
ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

可使用的磁盘 /dev/sdb
2 使用 ceph-deploy disk zap 【主机 磁盘名称】 格式化磁盘
ceph-deploy disk zap ceph-osd1 /dev/sdb
ceph-deploy disk zap ceph-osd2 /dev/sdb
ceph-deploy disk zap ceph-osd3 /dev/sdb

3 使用 ceph-deploy osd create 创建osd
ceph-deploy osd create ceph-osd1 --data /dev/sdb
ceph-deploy osd create ceph-osd2 --data /dev/sdb
ceph-deploy osd create ceph-osd3 --data /dev/sdb

安装完成后执行ceph -s再次查看ceph集群状态

ceph-deploy osd create 还可以使用更高级的创建方式
如果有更多的磁盘可以使用 –block-db --block-wal 参数
bluestore(裸设备,文件系统方式为filestore)方式,ceph 会在 osd 里面使用 rocksdb 存放对象的元数据,这时候就会有三类数据Object Data Blobs(对象数据)、SST文件(rocksdb数据文件)、wal文件(rocksdb日志文件,类似redis的aof文件),这时候把 sst 或者 wal 文件放在更快的 ssd 或者 NVMe盘上,会提升 osd 储存性能
--data 选项指定的是Object Data存放的硬盘 (不指定--block-db和--block-wal 所有数据都放在--data指定的硬盘上)
--block-db 选项指定的是SST文件存放位置
--block-wal 选项指定的是wal文件存放位置
其中 block-db 大小应该不小于 4% data,也就是说如果 --data 盘 1T,--block-db 应该不小于40G
扩展ceph集群
Ceph集群至少需要一个monitor才能运行,为了高可以用需要部署奇数个monitor,实现仲裁

修改 /ops/ceph-cluster文件夹下的ceph.conf文件添加
public_network = 192.168.0.0/24

ceph-deploy mon create 命令
ceph-deploy --overwrite-conf mon create ceph-osd1
ceph-deploy --overwrite-conf mon create ceph-osd2
注意--overwrite-conf参数 用于覆盖已经存在的ceph.conf

安装完成后执行ceph -s再次查看ceph集群状态 monitor已经成功安装3个

简单使用ceph集群
创建一个pool
ceph osd pool create mytest 128 128

保存数据
echo "hello jimliu " > ./1.txt
rados -p mytest put object1 ./1.txt
rados -p mytest ls

后记
ceph -s 查看 health: HEALTH_WARN
1 clock skew detected on mon.ceph-osd2
可能原因是时间不同步
需要各个节点安装NTP软件
2 mon is allowing insecure global_id reclaim
ceph config set mon auth_allow_insecure_global_id_reclaim false



















