欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

002.Ceph安装部署

程序员文章站 2022-11-17 20:08:41
一 前期准备 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 1 ......

一 前期准备

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环境:
  1 [root@deploy ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  2 [root@deploy ~]# python get-pip.py
 
  • 配置国内yum源:
  1 [root@node1 ~]# rm /etc/yum.repos.d/* -rf
  2 [root@node1 ~]# wget -o /etc/yum.repos.d/centos-base.repo http://mirrors.aliyun.com/repo/centos-7.repo
  3 [root@node1 ~]# yum -y install epel-release
  4 [root@node1 ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
  5 [root@node1 ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
  6 [root@node1 ~]# wget -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 
提示:以上操作需要在所有节点操作,工具会默认安装(采用)国外官方源,国内环境建议epel和ceph都替换为国内源。
  • 部署节点配置主机名:
  1 [root@deploy ~]# vi /etc/hosts
  2 172.24.8.71 deploy
  3 172.24.8.72 node1
  4 172.24.8.73 node2
  5 172.24.8.74 node3
 
提示:主机名应该能正确解析主机名,若管理节点同时也是一个ceph节点,也要确认能正确解析自己的主机名和ip地址。
  • 配置deploy节点到所有osd node节点的免秘钥登录:
  1 [root@deploy ~]# useradd manager
  2 [root@deploy ~]# echo manager | passwd --stdin manager		#创建非root的管理用户
  3 [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用户
  4 [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
  5 [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'chmod 0440 /etc/sudoers.d/cephuser'; done
  6 [root@deploy ~]# su - manager
  7 [manager@deploy ~]$ ssh-keygen -f ~/.ssh/id_rsa -n ''
  8 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.72
  9 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.73
 10 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.74
 
提示:管理节点必须能够通过ssh无密码地访问各ceph节点,建议使用非root用户;
用户名 “ceph” 保留给了ceph守护进程。若ceph节点上已经存在“ceph”用户,升级前必须先删掉这个用户。
  1 [manager@deploy ~]$ vi ~/.ssh/config	        #修改ceph-deploy管理节点上~/.ssh/config文件
  2 host node1
  3    hostname node1
  4    user cephuser
  5 host node2
  6    hostname node2
  7    user cephuser
  8 host node3
  9    hostname node3
 10    user cephuser
 11 [manager@deploy ~]$ chmod 600 .ssh/config
 12 [manager@deploy ~]$ ssh node1			#测试
 13 [cephuser@node1 ~]$ exit
 
提示:修改config后deploy节点所建的用户名登录ceph节点无需每次指定 --username cephuser ,简化了ssh和scp的用法。

1.3 部署需求

首先创建一个ceph存储集群,它有一个monitor和三个osd守护进程,monitor节点也作为osd节点。

二 正式部署

2.1 部署deploy节点

  1 [root@deploy ~]# cat << eom > /etc/yum.repos.d/ceph.repo
  2 [ceph-noarch]
  3 name=ceph noarch packages
  4 baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
  5 enabled=1
  6 gpgcheck=1
  7 type=rpm-md
  8 gpgkey=https://download.ceph.com/keys/release.asc
  9 eom
提示:国内也可采用阿里源,参考如下:
  1 [root@deploy ~]# vi /etc/yum.repos.d/ceph.repo
  2 [ceph-noarch]
  3 name=ceph noarch packages
  4 baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
  5 enabled=1
  6 gpgcheck=1
  7 type=rpm-md
  8 gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
  1 [root@deploy ~]# yum install -y ceph-deploy

2.2 创建集群

  1 [root@deploy ~]# su - manager
  2 [manager@deploy ~]$ mkdir my-cluster
  3 [manager@deploy ~]$ cd my-cluster/
  4 [manager@deploy my-cluster]$ ceph-deploy new node1
  5 [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

  1 [manager@deploy my-cluster]$ ceph-deploy mon create-initial	#初始monitor、并收集所有密钥
  2 [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

  1 [manager@deploy my-cluster]$ ceph-deploy disk list node1 node2 node3	        #列出磁盘
  2 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
  3 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
  4 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
 
提示:生产环境强烈强烈不建议在单分区单硬盘上运行多个osd;
强烈不建议在运行osd的单分区硬盘上同时运行监视器或元数据服务器,即osd建议采用独立的硬盘,且osd及其日志使用独立硬盘或分区。
当前官方似乎已经不支持指定不同目录弄多个osd节点的形式。

2.8 检测健康状态

  1 [manager@deploy my-cluster]$ ssh node1 sudo ceph health
  2 [manager@deploy my-cluster]$ ssh node1 sudo ceph -s
 
提示:若出现如下mgr没有active的warn提示,是因为没有添加mgr,集群处于warn状态。可参考2.5步骤部署mgr。

2.9 开启dashboard

  1 [root@node1 ~]# ceph mgr module enable dashboard			#开启dashboard模块
  2 [root@node1 ~]# ceph dashboard create-self-signed-cert
 
提示:默认情况下,dashboard的所有http连接均使用ssl/tls进行保护。以上内置命令可快速生成并安装自签名证书。
  1 [root@node1 ~]# ceph dashboard set-login-credentials admin admin	#创建管理员
  2 [root@node1 ~]# ceph mgr services					#确认验证
 
提示:以上操作在node1节点操作即可。
浏览器访问:https://172.24.8.72:8443
参考官方文档:http://docs.ceph.org.cn/start/quick-start-preflight/