Ceph集群详细部署配置
一、部署结构
虚拟机创建三台服务器, CENTOS 版本为 7.6 , IP 网段 192.168.116.2/24 。三台主机名称为:
CENTOS7-1: IP 为 192.168.116.141 , 既做管理节点, 又做子节点。
CENTOS7-2: IP 为 192.168.116.142 , 子节点。
CENTOS7-3: IP 为 192.168.116.143 , 子节点
二、系统配置
系统配置工作, 三台节点依次执行:
1、修改主机名称
[root@CENTOS7-1 ~]# vi /etc/hostname CENTOS7-1
2、编辑hosts文件
192.168.116.141 CENTOS7-1 192.168.116.142 CENTOS7-2 192.168.116.143 CENTOS7-3
注意, 这里面的主机名称要和节点名称保持一致, 否则安装的时候会出现问题
3、修改yum源
vi /etc/yum.repos.d/ceph.repo , 为避免网速过慢问题, 这里采用的是清华镜像源:
[ceph] name=Ceph packages for $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/ enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [ceph-noarch] name=Ceph noarch packages # 官方源 #baseurl=http://download.ceph.com/rpm-mimic/el7/noarch # 清华源 baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/ enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [ceph-source] name=Ceph source packages baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/ enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc
4、安装ceph与ceph-deploy组件
yum update && yum -y install ceph ceph-deploy
安装完成, 如果执行 ceph-deploy 出现 ImportError: No module named pkg_resources
安装 python2-pip :
yum install epel-release -y yum -y install python2-pip
5、安装NTP时间同步工具
yum install ntp ntpdate ntp-doc -y
确保时区是正确, 设置开机启动:
systemctl enable ntpd
并将时间每隔1小时自动校准同步。编辑 vi /etc/rc.d/rc.local 追加:
/usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
配置定时任务, 执行crontab -e 加入:
三、免密码SSH登陆
1、官方建议不用系统内置用户, 创建名为ceph_user用户, 密码也设为ceph_user:
useradd -d /home/ceph_user -m ceph_user passwd ceph_user
2、设置sudo权限
echo "ceph_user ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph_user sudo chmod 0440 /etc/sudoers.d/ceph_user
1 、 2 两个步骤依次在三台机器上执行。
接下来在主节点, 继续执行:
3、生成密钥:
切换用户: su ceph_user
执行 ssh-keygen ,一直按默认提示点击生成 RSA 密钥信息。
4、分发密钥至各机器节点
ssh-copy-id ceph_user@CENTOS7-1 ssh-copy-id ceph_user@CENTOS7-2 ssh-copy-id ceph_user@CENTOS7-3
5、修改管理节点上的 ~/.ssh/config 文件, 简化SSH远程连接时的输入信息:
管理节点是会有root和ceph_user多个用户, ssh远程连接默认会以当前用户身份进行登陆, 如果我们是root身份进行远程连接, 还是需要输入密码, 我们想简化, 该怎么处理?
切换root身份
su root
修改~/.ssh/config 文件
Host CENTOS7-1 Hostname CENTOS7-1 User ceph_user Host CENTOS7-2 Hostname CENTOS7-2 User ceph_user Host CENTOS7-3 Hostname CENTOS7-3 User ceph_user
注意修改文件权限, 不能采用777最大权限:
chmod 600 ~/.ssh/config
进行ssh远程连接时, Host的主机名称是区分大小写的, 所以要注意配置文件的主机名称。
6、开放端口, 非生产环境, 可以直接禁用防火墙:
systemctl stop firewalld.service systemctl disable firewalld.service
7、SELINUX设置
SELinux 设为禁用:
setenforce 0
永久生效:
编辑 vi /etc/selinux/config 修改:
SELINUX=disabled
四、集群搭建配置
采用root身份进行安装
1、在管理节点创建集群配置目录,cd /usr/local:
mkdir ceph-cluster cd ceph-cluster
注意: 此目录作为 ceph 操作命令的基准目录, 会存储处理配置信息。
2、创建集群, 包含三台机器节点:
ceph-deploy new CENTOS7-1 CENTOS7-2 CENTOS7-3
创建成功后, 会生一个配置文件。
3、 如果接下来集群的安装配置出现问题, 可以执行以下命令清除, 再重新安装:
ceph-deploy purge CENTOS7-1 CENTOS7-2 CENTOS7-3 ceph-deploy purgedata CENTOS7-1 CENTOS7-2 CENTOS7-3 ceph-deploy forgetkeys
将三台节点的mon信息也删除
rm -rf /var/run/ceph/
4、 修改配置文件, 有些配置后面需用到:
vi /usr/local/ceph-cluster/ceph.conf
加入:
[global] # 公网网络 public network = 192.168.88.0/24 # 设置pool池默认分配数量 默认副本数为3 osd pool default size = 2 # 容忍更多的时钟误差 mon clock drift allowed = 2 mon clock drift warn backoff = 30 # 允许删除pool mon_allow_pool_delete = true [mgr] # 开启WEB仪表盘 mgr modules = dashboard
第一项为副本数, 设为 2 份。
第二项为对外 IP 访问网段,注意根据实际 IP 修改网段。
第三、四项为允许一定时间的漂移误差。
5、执行安装:
ceph-deploy install CENTOS7-1 CENTOS7-2 CENTOS7-3
如果出现错误:
ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph --version
可以在各节点上单独进行安装:
yum -y install ceph
如果没有仓库文件 ceph.repo , 按上面的步骤手工创建。
6、初始monitor信息:
ceph-deploy mon create-initial ## ceph-deploy --overwrite-conf mon create-initial
执行完成后, 会生成以下文件:
7、同步管理信息:
下发配置文件和管理信息至各节点:
ceph-deploy admin CENTOS7-1 CENTOS7-2 CENTOS7-3
8、安装mgr(管理守护进程), 大于12.x版本需安装, 我们装的是最新版,需执行:
ceph-deploy mgr create CENTOS7-1 CENTOS7-2 CENTOS7-3
9、安装OSD(对象存储设备)
注意: 新版本的 OSD 没有 prepare 与 activate 命令。
这里需要新的硬盘作为 OSD 存储设备, 关闭虚拟机, 增加一块硬盘, 不用格式化。
重启, fdisk -l 查看新磁盘名称:
执行创建OSD命令:
ceph-deploy osd create --data /dev/sdb CENTOS7-1
三台节点都需分别依次执行。
ceph-deploy gatherkeys CENTOS7-1
10、验证节点:
输入 ceph health 或 ceph -s 查看, 出现 HEALTH_OK 代表正常。
通过虚拟机启动, 如果出现错误:
在各节点执行命令, 确保时间同步一致:
ntpdate ntp1.aliyun.com