ceph部署
前言
- 解决的问题
使用ceph-deploy工具部署ceph存储集群
- 整体介绍
使用虚拟机构建三节点ceph存储集群
环境
全程使用root权限
虚拟化软件:vmware
虚拟机操作系统:centos 7.6
每台虚拟机配置:2G内存,1块系统盘(50G),2块ceph将使用的硬盘(每块20G)
虚拟机网络:一条虚拟机间互通,并且可以上网的网络即可(NAT)。
总共三台虚拟机:ceph1、ceph2、ceph3
ceph 版本:luminous
ceph-deploy 版本:2.0.1
实践操作时间: 2020.7
正文
基础环境配置
1. 配置网络
我这里 ceph1、ceph2、ceph3 对应的地址分别为:
192.168.10.xx 192.168.10.xx 192.168.10.xx
2. 关闭防火墙
所有机器均关闭掉防火墙。
systemctl disable iptables
systemctl stop iptables
systemctl disable firewalld
systemctl stop firewalld
selinux 也要关闭
3. 配置加速源
所有机器均配置 apt 国内加速源:
yum install -y wget
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
ceph1节点上配置 pip 国内加速源:
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF
4. 配置主机名解析
这里配置的是部署节点到其它机器间的主机解析。
在所有节点上执行:
vim /etc/hosts 添加如下内容:
192.168.x.x ceph1
192.168.x.x ceph2
192.168.x.x ceph3
所有节点操作:
yum install -y ntp ntpdate ntp-doc
yum install openssh-server -y
# 创建一个Ceph Deploy用户 - fdeploy
sudo useradd -d /home/fdeploy -m fdeploy
sudo passwd fdeploy
echo "fdeploy ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/fdeploy
chmod 0440 /etc/sudoers.d/fdeploy
# 安装epel-release yum源
yum install -y wget
cd /etc/pki/rpm-gpg
wget https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
yum install -y epel-release
5. 配置机器间的免密登录
这里配置的是部署节点到其它机器间的免密登录。
在 ceph1 (部署节点)节点上执行:
1. 生成公私钥:
ssh-keygen
2. 拷贝公钥到其它机器上:
注意:以下每行命令执行后都需要输入密码,不能直接全部复制粘贴。
ssh-copy-id fdeploy@ceph1
ssh-copy-id fdeploy@ceph2
ssh-copy-id fdeploy@ceph3
3. 测试免密登录
命令参考如下,尽量每个节点都测试一下
ssh fdeployt@ceph3
填写 ~/.ssh/config 文件
Host ceph1
Hostname ceph1
User fdeploy
Host ceph2
Hostname ceph2
User fdeploy
Host ceph3
Hostname ceph3
User fdeploy
6. 配置主机名
注意!当前步骤十分重要。
在 ceph 中读取了 hostname 命令产生的结果。
因此在每个节点上均需修改自己的 hostname。命令参考:
进入到 ceph1 节点上:
hostname ceph1
echo "ceph1" > /etc/hostname
按照此方法修改其它节点的 hostname。
开始部署 ceph
主要分两步:
第一步,安装 ceph-deploy
第二步,使用 ceph-deploy 安装 ceph 组件。
第一步:在 ceph1(部署节点)上安装 ceph-deploy
安装 ceph-deploy:
yum install python-pip -y
pip install -U pip
pip install ceph-deploy==2.0.1
第二步:在 ceph1(部署节点)上使用 ceph-deploy 部署 ceph 组件
1. 更换 ceph-deploy 将使用的 ceph 源(决定安装什么版本的 ceph):
export CEPH_DEPLOY_REPO_URL=http://mirrors.aliyun.com/ceph/rpm-luminous/el7
export CEPH_DEPLOY_GPG_URL=http://mirrors.aliyun.com/ceph/keys/release.asc
2. 创建部署临时目录:
mkdir /opt/ceph-deploy
cd /opt/ceph-deploy
3. 部署一个新集群,生成初始配置(参数 ceph01 是指该集群的第一个节点):
ceph-deploy new ceph1 ceph2 ceph3
4. 在该目录下生成了新集群的一些配置文件。接下来需要对这些配置文件做一些改动:
vim /opt/ceph-deploy/ceph.conf
在 [global] 中增加:
public network = 192.168.10.0/24
5. 安装 ceph:
ceph-deploy install ceph1 ceph2 ceph3
6. 初始化 ceph monitor:
ceph-deploy mon create-initial
当前命令执行以后,可以在当前目录下发现许多的 keyring 文件,这是连接其它节点的凭据。
以后的 ceph-deploy 命令均在当前目录下执行才可正常使用。
7. 同步配置文件
ceph-deploy admin ceph1 ceph2 ceph3
# ceph quorum_status --format json-pretty 验证
8. 安装 ceph mgr
ceph-deploy mgr create ceph1
9. 添加osd
ceph-deploy osd create --data /dev/sdb ceph1
ceph-deploy osd create --data /dev/sdc ceph1
ceph-deploy osd create --data /dev/sdb ceph2
ceph-deploy osd create --data /dev/sdc ceph2
ceph-deploy osd create --data /dev/sdb ceph3
ceph-deploy osd create --data /dev/sdc ceph3
10. 验证
ceph -s
扩展集群
添加metadata server, monitors, managers, RGW
对比第一阶段的工作,第二阶段要扩展的是:
添加1个metadata server
添加2个manager
添加1个RGW
1. 添加一个metadata server
ceph-deploy mds create ceph1
2. 添加2个managers,达到3个managers
# Ceph Manager daemon工作在active/standby的模式。添加多manager,可以保证如果一个manager或host宕掉,另一个manager可以无缝接管过来
ceph-deploy mgr create ceph2 ceph3
3. 添加一个RGW实例
ceph-deploy rgw create ceph1
RGW instance监听在7480端口。若需改变端口号,可修改ceph.conf文件。
[client]
rgw frontends = civetweb port=17480
如需扩容
按上面的步骤做好node节点。
在deploy节点上执行:
hosts解析 ,ssh 传key ,如上ceph node所有操作
然后去 deploy 上操作
进入对应目录
ceph-deploy install ceph4
ceph-deploy admin ceph4
ceph-deploy osd create ceph4 --data /dev/sdb
ceph-deploy osd create ceph4 --data /dev/sdc
ceph-deploy mon add ceph4
ceph quorum_status --format json-pretty # 检查quorum的状态