首页 > 系统相关 >Centos7.9离线部署ceph(octopus)

Centos7.9离线部署ceph(octopus)

时间:2025-01-14 20:10:48浏览次数:1  
标签:mirrors ## 离线 192.168 ceph Centos7.9 yum docker

原创文档编写不易,未经许可请勿转载,目前仅发布于博客园,其他平台均为非法转载。文档中有疑问的可以邮件联系我文章。 邮箱:yinwanit@163.com

说明

文档适用于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文件即可。

 

标签:mirrors,##,离线,192.168,ceph,Centos7.9,yum,docker
From: https://www.cnblogs.com/Pigs-Will-Fly/p/18671388

相关文章

  • 在线翻译工具-免费离线且好用的OCR
    点击上方蓝字关注我前言CopyTranslator一个特别好用的在线翻译小帮手。你只需要把文字复制进去,它就能自动帮你翻译,而且它还很聪明,能自己认出是哪种语言。这个工具能一边翻译一边自动处理你复制的文字,比如去掉多余的格式、自动显示或隐藏翻译结果,用起来特别顺手。它翻译得又快又......
  • 简述下html5的离线存储原理,同时说明如何使用?
    HTML5的离线存储原理主要是基于浏览器对一个新建的.appcache文件(或称为manifest文件)的缓存机制。这个机制不是一种存储技术,而是一个缓存机制,通过该文件上的解析清单离线存储资源。这些资源会像cookie一样被存储下来,以便在网络离线状态下,浏览器可以通过这些被离线存储的数据进行页......
  • HTML5的文件离线存储怎么使用,工作原理是什么?
    HTML5的文件离线存储功能允许Web应用程序在浏览器离线时继续访问相关资源,从而提高Web应用程序的性能和用户体验。以下是关于HTML5文件离线存储的使用方法和工作原理的详细解释:使用方法:创建并配置缓存清单:缓存清单文件是一个文本文件,通常命名为.appcache(也有资料称其为.manif......
  • 请讲讲WebSocket如何判断在线离线?
    WebSocket判断用户在线或离线状态主要依赖于几种机制,以下是从前端开发的角度对这些机制的详细解释:心跳包机制:WebSocket是一种持久连接,一旦建立连接,它就会保持开启状态。为了检测连接的活跃性,可以通过定期发送心跳包(通常是小的数据包)来确认连接是否仍然有效。心跳包可以由客......
  • [大模型]本地离线运行openwebui+ollama容器化部署
    本地离线运行Openweb-uiollama容器化部署说明安装internet操作内网操作问题线程启动错误最终命令总结说明最近公司有一个在内网部署一个离线大模型的需求,网络是离线状态,服务器有A100GPU,一开始是想折腾开源chatGML4大模型,因为使用过gml3,所以想着部......
  • 离线服务器迁移安装docker镜像
    场景服务器需要使用容器,但是服务器是离线状态,或者无法直接拉取docker镜像,这时候就需要本篇文章了步骤步骤1:将镜像导出为tar文件首先,在在线服务器上将镜像导出为一个.tar文件。你可以使用dockersave命令来将镜像导出:dockersave-o/path/to/your-image.taryour-im......
  • DataGrip的数据库驱动的离线安装
    文章目录概要离线安装数据库驱动本地云桌面注意概要在某些工作环境中,由于网络访问受限,可能无法自动下载所需的数据库驱动。离线安装数据库驱动本地本地的DataGrip打开File->DataSources:云桌面云桌面的DataGrip打开File->DataSources:注意请确保......
  • 高PF低THD 离线CV控制器CRE6636
    CRE6636是一款具有高功率因数、低THD和高恒压精度的反激式控制器。通过原边即可完成控制的单级输出。CV系统设计方案,不需要二次侧反馈组件和光耦以及TL431,CRE6636在恒定的实时控制方案下即可实现高功率因数。准谐振(QR)模式和频率箝位,提高系统效率。采用先进的启动技术,满......
  • 写一个支持折叠、有缩进、代码高亮、离线的,方便部署的、易用的、优雅的json格式化查看
    缘由网上的在线json格式化有很多,但我是个有追求的人。在线的很难同时支持折叠、有缩进线、代码高亮、离线的,方便部署的、易用的、不请求后端(为了安全)的json格式化工具。去Github上找项目,华而不实的东西占半个屏幕,格式化json要点好几下,一个json格式化工具npm安装之后几百个文件。......
  • Zabbix安装,配置模板监控主机(在线安装和离线安装)
    安装环境组件版本LinuxRockyLinux8ZabbixZabbix6.0MySql8.0.30(根据Zabbix6搭建时的经验,MySql版本太低的话会不兼容Zabbix,但当时的报错找不到了,所以未能在此展示)IP监控192.168.88.1&&被监控192.168.88.2安装步骤#离线安装https://repo.zabbix.com/zabbix/7.0/rocky/......