一 前期准备
1.1 配置规格
节点 | 类型 | IP | CPU | 内存 |
ceph-deploy | 部署管理平台 | 172.24.8.71 | 2 C | 4 G |
node1 | Monitor OSD | 172.24.8.72 | 2 C | 8 G |
node2 | OSD | 172.24.8.73 | 2 C | 8 G |
node3 | OSD | 172.24.8.74 | 2 C | 8 G |
Ceph 版本: mimic
- OS:CentOS 7.5
- kernel:4.20.2
关闭防火墙和 SELinux;
提示:
Ceph Monitors 之间默认使用 6789 端口通信, OSD 之间默认用 6800:7300 范围内的端口通信. Ceph OSD 能利用多个网络连接进行与客户端, monitors, 其他 OSD 间的复制和心跳的通信. 若需要开启防火墙则必须同时放通相应规则, 具体操作见: http://docs.ceph.org.cn/rados/configuration/network-config-ref/
1.2 前置准备
所有节点 NTP 安装及配置, 具体操作略;
所有节点更新环境:
1 yum -y update
deploy 节点安装 pip 环境:
- [root@deploy ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- [root@deploy ~]# python get-pip.py
配置国内 yum 源:
- [root@node1 ~]# rm /etc/yum.repos.d/* -rf
- [root@node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- [root@node1 ~]# yum -y install epel-release
- [root@node1 ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
- [root@node1 ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
- [root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
提示: 以上操作需要在所有节点操作, 工具会默认安装 (采用) 国外官方源, 国内环境建议 EPEL 和 CEPH 都替换为国内源.
部署节点配置主机名:
- [root@deploy ~]# vi /etc/hosts
- 172.24.8.71 deploy
- 172.24.8.72 node1
- 172.24.8.73 node2
- 172.24.8.74 node3
提示: 主机名应该能正确解析主机名, 若管理节点同时也是一个 Ceph 节点, 也要确认能正确解析自己的主机名和 IP 地址.
配置 deploy 节点到所有 OSD node 节点的免秘钥登录:
- [root@deploy ~]# useradd manager
- [root@deploy ~]# echo manager | passwd --stdin manager # 创建非 root 的管理用户
- [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";SSH root@node${i} 'useradd -d /home/cephuser -m cephuser; echo"cephuser"| passwd --stdin cephuser'; done #所有 OSD node 节点创建 cephuser 用户
- [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";SSH root@node${i} 'echo"cephuser ALL = (root) NOPASSWD:ALL"> /etc/sudoers.d/cephuser'; done
- [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";SSH root@node${i} 'chmod 0440 /etc/sudoers.d/cephuser'; done
- [root@deploy ~]# su - manager
- [manager@deploy ~]$ SSH-keygen -f ~/.SSH/id_rsa -N ''
- [manager@deploy ~]$ SSH-copy-id -i ~/.SSH/id_rsa.pub cephuser@172.24.8.72
- [manager@deploy ~]$ SSH-copy-id -i ~/.SSH/id_rsa.pub cephuser@172.24.8.73
- [manager@deploy ~]$ SSH-copy-id -i ~/.SSH/id_rsa.pub cephuser@172.24.8.74
提示: 管理节点必须能够通过 SSH 无密码地访问各 Ceph 节点, 建议使用非 root 用户;
用户名 "ceph" 保留给了 Ceph 守护进程. 若 Ceph 节点上已经存在 "ceph" 用户, 升级前必须先删掉这个用户.
- [manager@deploy ~]$ vi ~/.SSH/config #修改 ceph-deploy 管理节点上~/.SSH/config 文件
- Host node1
- Hostname node1
- User cephuser
- Host node2
- Hostname node2
- User cephuser
- Host node3
- Hostname node3
- User cephuser
- [manager@deploy ~]$ chmod 600 .SSH/config
- [manager@deploy ~]$ SSH node1 # 测试
- [cephuser@node1 ~]$ exit
提示: 修改 config 后 deploy 节点所建的用户名登录 Ceph 节点无需每次指定 --username cephuser . 简化了 SSH 和 scp 的用法.
1.3 部署需求
首先创建一个 Ceph 存储集群, 它有一个 Monitor 和三个 OSD 守护进程. Monitor 和 OSD 共存
二 正式部署
2.1 部署 deploy 节点
- [root@deploy ~]# cat <<EOM> /etc/yum.repos.d/ceph.repo
- [ceph-noarch]
- name=Ceph noarch packages
- baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
- enabled=1
- gpgcheck=1
- type=rpm-md
- gpgkey=https://download.ceph.com/keys/release.asc
- EOM
提示: 国内也可采用阿里源, 参考如下:
- [root@deploy ~]# vi /etc/yum.repos.d/ceph.repo
- [ceph-noarch]
- name=Ceph noarch packages
- baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
- enabled=1
- gpgcheck=1
- type=rpm-md
- gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
- 1 [root@deploy ~]# yum install -y ceph-deploy
2.2 Ceph 节点安装
- [root@deploy ~]# su - manager
- [manager@deploy ~]$ mkdir my-cluster
- [manager@deploy ~]$ cd my-cluster/
- [manager@deploy my-cluster]$ ceph-deploy new node1
- [manager@deploy my-cluster]$ ll
提示: 该目录存在一个 Ceph 配置文件, 一个 monitor 密钥环和一个日志文件.
2.3 安装 Ceph
1 [manager@deploy my-cluster]$ ceph-deploy install node1 node2 node3
提示: ceph-deploy 将在各节点安装 Ceph, 若部署过程出现异常, 可通过以下命令清除相应配置, 从而重新部署:
- ceph-deploy purgedata node1 node2 node3
- ceph-deploy forgetkeys
- rm ceph.*
或用以下命令将安装包也一并清除:
ceph-deploy purge node1 node2 node3
注意: 如果你执行过 ceph-deploy purge , 你必须重新执行这一步来安装 Ceph;
若出现以下报错, 可能是版本不兼容, 可通过 yum -y remove ceph-release 卸载后重新执行 install.
注意: 若使用 ceph-deploy 部署的时候出现安装包无法下载, 可在部署时候指定 ceph.repo 为国内源:
1 ceph-deploy install node1 node2 node3 --repo-url=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc
2.4 初始化 monitor
- [manager@deploy my-cluster]$ ceph-deploy mon create-initial # 初始 monitor, 并收集所有密钥
- [manager@deploy my-cluster]$ ll
2.5 部署 MGR
1 [manager@deploy my-cluster]$ ceph-deploy mgr create node1 node2 node3
提示: ceph12 版本之后, 就需要为集群部署 mgr 服务, Ceph-Mgr 将作为 Ceph 集群的管理进程, 负责整个集群的管理操作和监控.
2.6 复制 key
1 [manager@deploy my-cluster]$ ceph-deploy admin node1 node2 node3
提示: 为方便后期 deploy 节点管理 node1,node2,node3, 在 CLI 中使用命令中简化相关 key 的输出, 可将 key 复制至相应节点.
2.7 添加 OSD
- [manager@deploy my-cluster]$ ceph-deploy disk list node1 node2 node3 #列出磁盘
- [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
- [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
- [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
提示: 生产环境强烈强烈不建议在单分区单硬盘上运行多个 OSD;
强烈不建议在运行 OSD 的单分区硬盘上同时运行监视器或元数据服务器, 即 OSD 建议采用独立的硬盘, 且 OSD 及其日志使用独立硬盘或分区.
当前官方似乎已经不支持指定不同目录弄多个 OSD 节点的形式.
2.8 检测健康状态
- [manager@deploy my-cluster]$ SSH node1 sudo ceph health
- [manager@deploy my-cluster]$ SSH node1 sudo ceph -s
提示: 若出现如下 mgr 没有 active 的 warn 提示, 是因为没有添加 mgr, 集群处于 WARN 状态. 可参考 2.5 步骤部署 MGR.
2.9 开启 dashboard
- [root@node1 ~]# ceph mgr module enable dashboard # 开启 dashboard 模块
- [root@node1 ~]# ceph dashboard create-self-signed-cert
提示: 默认情况下, dashboard 的所有 HTTP 连接均使用 SSL/TLS 进行保护. 以上内置命令可快速生成并安装自签名证书.
- [root@node1 ~]# ceph dashboard set-login-credentials admin admin # 创建管理员
- [root@node1 ~]# ceph mgr services # 确认验证
提示: 以上操作在 node1 节点操作即可.
浏览器访问: https://172.24.8.72:8443
参考官方文档: http://docs.ceph.org.cn/start/quick-start-preflight/
来源: https://www.cnblogs.com/itzgr/p/10275863.html