Centos7.9离线部署ceph(octopus)

 


说明

文档适用于cenots7.9操作系统下部署ceph octopus版本分布式存储使用。

离线部署的本质是先基于在线环境如vmware workstation虚拟机在线完整的部署一次,以获取部署所需的软件包。

文档可用于在线部署,亦可用于离线部署。

离线部署关键点(注意文章中部署描述):

  • 准备好所需的rpm包
  • 准备好所需的docker镜像
  • 修改cephadm代码

一、环境说明


1.1 Ceph软件架构

 

 关键组件释义:

  

1.2 服务器规划

3台虚拟机,每台主机两个网段。管理和业务网络分离部署,3个监控节点。20GB磁盘安装操作系统、40G规格磁盘裸盘配置osd。

1.3 软件清单

Vmware+centos7+docker+ceph

1.4 部署步骤

①、配置基础环境

  1. 关闭操作系统安全软件
  2. 设置ip地址
  3. 设置ntp
  4. 设置主机名和hosts解析
  5. 禁用swap
  6. 配置免密登录
  7. 配置yum源
  8. 安装依赖软件

②、ceph软件部署

  1. 配置cephadm
  2. 初始化ceph集群
  3. 添加集群节点
  4. 设置mon节点
  5. 部署osd
  6. 部署mds
  7. 部署rgw

二、基础环境部署

2.1  关闭安全软件

所有节点均需配置。

复制代码
##关闭firewalld防火墙
# systemctl stop firewalld 
# systemctl disable firewalld
# systemctl mask firewalld 

##关闭selinux
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
复制代码

2.2 设置ip地址

所有节点均需配置。

复制代码
##删除当前存在的配置
# nmcli conn delete ens33;nmcli conn delete ens36 
##创建新IP地址配置文件ens33
# nmcli conn add type ethernet  ifname ens33 con-name ens33 connection.autoconnect yes ipv4.method manual  ipv4.gateway "192.168.10.2"  ipv4.dns "192.168.10.2" ipv4.addresses  "192.168.10.100/24"
##创建新IP地址配置文件ens36
# nmcli conn add type ethernet  ifname ens36 con-name ens36 connection.autoconnect yes ipv4.method manual ipv4.addresses  "192.168.20.100/24"
##手动down,up网卡配置。
# nmcli conn down ens33;nmcli conn down ens33;nmcli conn up ens33;nmcli conn up ens33
复制代码

2.3  构建ntp服务器(选配)

如果环境中有可用的ntp服务器该步骤可省略,在节点中任选一台机器配置ntp服务器(只在某一台上面操作)

复制代码
##编辑/etc/chrony.conf配置文件,允许节点网段访问。
# vim /etc/chrony.conf
  server 192.168.20.100 iburst
  allow 192.168.20.0/24
  local stratum 10
# systemctl restart chronyd
# systemctl enable  chronyd
##查看时间是否同步
# chronyc sources
复制代码

2.4 节点配置ntp

所有节点均需配置。可以使用已有的ntp服务器,也可以使用上一步创建的ntp服务器。

复制代码
##每个节点均需要配置
# vim /etc/chrony.conf
  server 192.168.20.100 iburst
# systemctl restart chronyd
# systemctl enable  chronyd
##查看时间是否同步
# chronyc sources
复制代码

2.5  配置主机名和hosts解析

所有节点均需配置。

复制代码
##配置主机名,每个节点均需要配置,红色字体部分按照实际环境替换。
# hostnamectl set-hostname  ceph01

##每个节点均需要配置,添加蓝色字体内容
# cat /etc/hosts
  192.168.10.100 ceph01
  192.168.10.101 ceph02
  192.168.10.102 ceph03
  192.168.20.100 ceph01
  192.168.20.101 ceph02
  192.168.20.102 ceph03
复制代码

2.6  禁用swap

所有节点均需配置。

##每个节点均需要配置,sed修改后确保/etc/fstab文件中没有swap相关行。
# swapoff  -a
# sed -i '/swap/d'  /etc/fstab

2.7 配置免密登录

主节点上操作即可。

##生成密钥,传到其他节点上。
# ssh-keygen -f /root/.ssh/id_rsa -P ''
# ssh-copy-id -o StrictHostKeyChecking=no 192.168.10.100
# ssh-copy-id -o StrictHostKeyChecking=no 192.168.10.101
# ssh-copy-id -o StrictHostKeyChecking=no 192.168.10.102

2.8 配置yum源

所有节点均需配置。

阿里云线上centos7yum源,/etc/yum.repos.d/alibase.repo。

[base]
name=CentOS-$releasever – Base – mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever – Updates – mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras – mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
View Code

清华大学octopus版本ceph yum源,/etc/yum.repos.d/qhceph.repo。

[ceph]
name=ceph
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/x86_64/
enabled=1
gpgcheck=0

[Ceph-noarch]
name=Ceph noarch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/noarch/
enabled=1
gpgcheck=0

[Ceph-source]
name=Ceph SRPMS
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/SRPMS/
enabled=1
gpgcheck=0
View Code

阿里云线上docker-ce yum源,/etc/yum.repos.d/alidocker-ce.repo。

[docker-ce-stable]
name=Docker CE Stable – $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpgbaseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/SRPMS/
enabled=1
gpgcheck=0
View Code

阿里云线上cetos7 扩展yum源,/etc/yum.repos.d/alicetos-epel.repo。

[epel]
name=Extra Packages for Enterprise Linux 7 – $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
View Code

阿里云线上cetos7 k8syum源,/etc/yum.repos.d/alik8s.repo。

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
View Code

yum源配置完成过后,执行以下命令。

##刷新yum源仓库,载入yum源
# yum clean all
# yum repolist

2.9  安装依赖软件

所有节点均需配置。

复制代码
##安装必要的依赖软件。
# yum install -y python3  yum-utils  docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin python3-ceph-common python3-ceph-argparse ceph-common 
##配置docker-ce软件
# cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://sdmy9bft.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# systemctl daemon-reload;systemctl enable docker  --now
# systemctl status  docker
复制代码

 

(以下操作如离线安装必须操作:离线部署软件包获取开始)

如果需要离线安装需要同步保存下载的软件的包。在线安装软件时加上如下命令即可。

yum -y install --downloadonly --downloaddir /soft

复制代码
##只下载软件包不安装。
# mkdir -p /soft
# yum install  --downloadonly --downloaddir /soft  yum-utils  docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin python3-ceph-common python3-ceph-argparse ceph-common createrepo
##查看包是否下载成功
# ls /soft

##以/soft文件夹内文件创建yum仓库文件
# cd /soft
# createrepo  .
# cd /
# tar -zcvf ceph_rpm.tar.gz /soft
复制代码

(离线部署软件包获取完成)

 

三、ceph部署

3.1 配置cephadm软件

其中用来安装配置的机器上执行即可,文章中在第一个节点中执行。(重点注意红色字体描述)

复制代码
##下载cephadm软件
# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm 
##添加cephadm可执行权限
# chmod +x cephadm 

##离线部署时需要手动修改cephadm工具中的内容,将里面的 command_pull 函数里面 cmd 数组中的 'pull' 改为了 'images'
cmd = [container_path, 'pull', image]
cmd = [container_path, ' images', image]
复制代码

3.2 初始化ceph集群

其中用来安装配置的机器上执行即可,文章中在第一个节点中执行。

##为ceph创建一个配置文件夹
# mkdir -p /etc/ceph
##初始化ceph集群
# ./cephadm bootstrap --mon-ip 192.168.10.100  

3.3 集群添加节点

其中用来安装配置的机器上执行即可,文章中在第一个节点中执行。

复制代码
##添加公钥到新主机
# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph02
# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph03
##添加节点到集群
# ceph orch host add ceph02
# ceph orch host add ceph03
##查看集群节点
# ceph orch host ls
复制代码

3.4 设置mon节点

其中用来安装配置的机器上执行即可,mon节点必须为单数。

复制代码
##配置mon网段
# ceph config set mon public_network 192.168.20.0/24
##调整mon数量为3个
# ceph orch apply mon 3
##设置调度mon到三个制定的节点上
# ceph orch apply mon "ceph01,ceph02,ceph03"
##查看集群状态
# ceph -s
##查看确认主机标签
# ceph orch host ls
复制代码

3.5 部署OSD

其中用来安装配置的机器上执行即可。

复制代码
##查看osd磁盘信息
# ceph orch device ls

##使用节点上所有未使用的磁盘部署OSD
# ceph orch apply osd --all-available-devices
##在特定节点制定特定的磁盘部署OSD
# ceph orch daemon add osd ceph01:/dev/sdb
##查看osd磁盘信息
# ceph orch device ls
##查看集群整体状态
# ceph -s
复制代码

3.6 部署MDS

其中用来安装配置的机器上执行即可。MDS是ceph文件存储接口,如果确认不使用NAS文件系统,可不安装MDS。

复制代码
##创建一个pool存储nas数据文件
# ceph osd pool create cephfs_data 64 64
##创建一个pool存储nas元数据文件
# ceph osd pool create cephfs_metadata 64 64
##创建一个 CephFS, 制定元数据和数据的存储pool
# ceph fs new cephfs cephfs_metadata cephfs_data
##启用mds
# ceph orch apply mds cephfs --placement="3 ceph01 ceph02 ceph03"
Scheduled mds.cephfs update...
##查看cephfs状态
# ceph fs status cephfs
复制代码

3.7 部署RGW

RGW是Ceph对象存储网关服务RADOS Gateway的简称,基于LIBRADOS接口封装而实现的FastCGI服务,对外提供RESTful风格的对象存储数据访问和管理接口。

# ceph orch apply rgw myorg cn-east-1 --placement="3 ceph01 ceph02 ceph03"

3.8  打包docker镜像

这一步很关键,由于网络的问题,需要等以上步骤完成过后,集群状态HEALTH_OK后再进行镜像打包。

##确认集群状态为HEALTH_OK状态。health: HEALTH_OK
# cephs -s
##查看当前docker下镜像信息
# docker images
# docker save -o ceph_docker_images.tar.gz   quay.io/ceph/ceph:v15  quay.io/ceph/ceph-grafana:6.7.4  quay.io/prometheus/prometheus:v2.18.1  quay.io/prometheus/alertmanager:v0.20.0  quay.io/prometheus/node-exporter:v0.18.1

 

四、离线部署注意事项(很重要)

4.1 文件保存

把 2.9章节保存的 ceph_rpm.tar.gz 文件、3.1章节修改的cephadm文件、3.8保存的ceph_docker_images.tar.gz文件都从机器上下载下来。

4.2  文件使用

yum配置:离线部署时,主机的yum源配置ceph_rpm.tar.gz解压过后的路径即可。如解压到/ceph_data/下,yum配置文件中的baseurl=file:///ceph_data/soft/

docker镜像:2.9章节执行完成过后,使用 docker load -i ceph_docker_images.tar.gz 命令导入镜像到docker软件中。

cephadm:离线环境中3.1章节的curl下载软件命令不用执行,使用在保存的已修改完成的cephadm文件即可。

 

posted @   飞翔的小胖猪  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目
点击右上角即可分享
微信分享提示

目录导航