目录
准备四台虚拟机(部署三台服务器和一台计算机更好),分别安装centos-7-x86_64操作系统,使用的ceph的版本minic版,网络地址及规划随机。
节点名称 |
IP地址 |
系统版本 |
部署进程 |
数据盘 |
Ceph1 |
192.168.239.150 |
Centos-7-x86_64 |
MON+mgr+OSD |
/dev/sdb |
Ceph2 |
192.168.239.151 |
Centos-7-x86_64 |
MON+mgr+OSD |
/dev/sdb |
Ceph3 |
192.168.239.152 |
Centos-7-x86_64 |
MON+mgr+OSD |
/dev/sdb |
Client |
192.168.239.153 |
Centos-7-x86_64 |
客户端 |
注意:
1.虚拟机网卡使用NAT模式,以便连接网络,同时避免地址冲突。
2.部署进程中的MON表示monitor监视器,要求部署个数为2N+1个;OSD表示objectstorage存储磁盘,mgr表示管理器。
在准备好的三个节点和客户端 client上分别进行下述操作:
(1)关闭防火墙
# service firewalld stop
# chkconfig firewalld off
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# setenforce 0
(2)修改网卡配置文件(以ceph1节点为例)
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络服务
# systemctl restart network
(3)配置yum源文件
<1>、通过yum安装wget下载工具
# yum install -y wget
<2>、将系统默认的yum源备份
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
<3>、通过wget下载aliyun的yum源
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
<4>、通过aliyun的yum源安装epel源
# yum install -y epel-release
<5>、清除yum
# yum clean all
<6>、创建yum缓存
# yum makecache
(4)配置hosts文件( 确保每台服务器hosts文件内容一致)
# vi /etc/hosts 添加如下内容:
192.168.239.150 ceph1
192.168.239.151 ceph2
192.168.239.152 ceph3
192.168.239.153 client
(5)安装chrony服务
Chrony 是一个开源的自由软件,能使系统时钟与时钟服务器(NTP)保持同步,在分布式集群中,为了便于同一生命周期内不同节点服务的管理,需要各个节点的时钟服务器严格同步。在以下配置中,以client节点作为时钟服务器,其他节点以client节点的时钟作为时钟标准调整自己的时钟。
client节点和三个集群节点分别安装Chrony服务。
# yum -y install chrony
找到server字段,在所有默认的server前加“#”,并添加国内时钟服务器,配置允许参同步的网段。
Client节点配置如下:
# vi /etc/chrony.conf
Ceph1节点配置如下:
# vi /etc/chrony.conf
Ceph2节点配置如下:
# vi /etc/chrony.conf
Ceph3节点配置如下:
# vi /etc/chrony.conf
在所有节点启动chrony服务,并设置开机自启动。
# systemetl restart chronyd
# systemctl enable chronyd
查看同步情况。
# chronyc sources
如果同步时间显示的还是数千秒,则可以 systemctl restart chronyd,然后再次查看同步情况。
(6)配置ceph使用的yum源。
在三个节点分别配置ceph.repo文件。
# vim /etc/yum.repos.d/ceph.repo
代码内容如下:
[Ceph]
name=Ceph packages for x86_64
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
[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
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
为防止后续python支持环境出现问题,可以在三个节点上分别运行:
# yum install -y python-pip
(7)配置无密码连接:
在ceph1上,可以设置无密码访问其他节点。
# ssh-keygen
按四次Enter键,进行无密码访问。
--->接下来访问ceph2:
# ssh-copy-id root@ceph2
在询问是否连接到ceph2节点的提示信息下,输入“yes”进行确认。接下来按提示输入ceph2的登录密码。
--->接下来访问ceph3:
# ssh-copy-id root@ceph3
在询问是否连接到ceph3节点的提示信息下,输入“yes”进行确认。接下来按提示输入ceph3的登录密码。
1.安装部署软件:
ceph-deploy是个部署工具,使用它可以实现所有节点同步安装,如果这个工具无法使用,必须在每个节点上分别进行安装过程。
在节点ceph1安装:
# yum -y install ceph-deploy
2.创建工作目录:
后续进行创建集群、安装软件包、初始化服务、创建OSD等操作时,必须创建工作目录。
# mkdir ceph-cluster && cd ceph-cluster
3.创建群集并安装软件:
# ceph-deploy new ceph{1,2,3}
# ceph-deploy install cephl ceph2 ceph3
4.初始化部署 monitor:
# ceph-deploy mon create ceph{1,2,3}
# ceph-deploy mon create-initial
# ceph mon_status 检查部署情况
5.共享管理密钥:
用 ceph-deploy 把配置文件和 admin 密钥复制到管理节点和 Ceph 节点,这样每次执行Ceph 命令行时就无须指定 monitor 地址和 ceph.client.admin.keyring。
# ceph-deploy admin cephl ceph2 ceph3
修改密钥权限:
# sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
6.创建OSD:
# ceph-deploy osd create ceph1 --data /dev/sdb
# ceph-deploy osd create ceph2 --data /dev/sdb
# ceph-deploy osd create ceph3 --data /dev/sdb
*创建完成可以查看OSD:
# ceph-deploy osd list ceph1 ceph2 ceph3
7.创建mgr:
# ceph-deploy mgr create ceph1 ceph2 ceph3
8.验证测试:
# ceph health
正常情况将显示“HEALTH_OK”
# ceph -s
显示详细信息。如果该简化命令提示错误,则使用ceph-status
9. 时钟同步问题:
如果ceph-s显示如下信息。
# ceph -s
health HEALTH WARN
clock skew detected on mon. node2, mon. node 3
Monitor clock skew detected
往往是各节点时钟同步出错。修改ceph1节点的配置文件/etc/ceph/ceph.conf,添加如下内容,将同步时间由默认的0.05s改为1s(或2s)。
[mon]
mon clock drift allowed =1
mon clock drift warn backoff = 30
Ceph从 Luminous开始,提供了原生的 Dashboard功能,通过Dashboard可以获取Ceph集群的各种状态信息,从Mimic里实现了Dashboard V2版本,提供了更全面的Ceph展示和管理功能。
1.查看ceph状态:
首先查看ceph状态,找出active的mgr,这里active mgr是ceph1。
2.启用 dashboard 插件:
# ceph mgr module disable dashboard
# ceph mgr module enable dashboard
*生成自签名证书和秘钥:
# ceph dashboard create-self-signed-cert
*生成key pair,并配置给ceph mgr:
# mkdir mgr-dashboard
# cd 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
3.配置 dashboard 地址和端口:
# ceph config set mgr mgr/dashboard/server_addr 192.168.69.150
# ceph config set mgr mgr/dashboard/server_port 8888
*关闭HTTPS
# ceph config set mgr mgr/dashboard/ssl false
*查看 dashboard服务:
# ceph mgr services
4.配置 dashboard 认证密码:
# ceph dashboard set-login-credentials admin 123456 and password updated
5.访问ceph的dashboard。
https://192.168.239.150:8888/
Dashboard面板显示当前ceph集群状态信息: