百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Ubuntu2204 纯离线搭建ceph 19.2.2 测试环境的笔记

wptr33 2025-05-22 14:10 26 浏览

  • 实验环境需要准备2台服务器,一台为在线主机 192.168.81.142,配可连外网的网关,用于完整走一遍在线安装流程;另一台离线主机 192.168.81.42 ,不配网关,用于模拟离线环境。两台主机就绪后,打一个干净的快照。
  • 以下内容在在线主机81.142上运行 echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/01keep-debs
  • 这样,在/var/cache/apt/archives 即可缓存下安装包(不做这个配置的话,默认安装完就删除)
  • 添加 Ceph GPG 密钥 wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | sudo apt-key add -
  • 添加 Squid 版本的仓库(19.2.2 属于 Squid)echo "deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-squid/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph-squid.list,清华源比官方源快太多了。
  • 更新仓库 sudo apt update
  • 确认最新cephadm名字 apt search cephadm
  • 安装最新版(cephadm17.2会自动依赖安装docker,19.2似乎要手工安装) apt install cephadm=19.2.2-1jammy docker.io ceph-common -y
  • 确认最新版 cephadm version
  • 初始化集群(只需做一次) cephadm bootstrap --mon-ip 192.168.81.142
  • 初次运行会下载镜像如下:

root@DSLab-CPU-Node1:/# docker images
REPOSITORY                         TAG       IMAGE ID       CREATED         SIZE
quay.io/ceph/ceph                  v19       4892a7ef541b   4 weeks ago     1.31GB
quay.io/prometheus/prometheus      v2.51.0   1d3b7f56885b   14 months ago   262MB
quay.io/ceph/grafana               10.4.0    c8b91775d855   14 months ago   430MB
quay.io/prometheus/node-exporter   v1.7.0    72c9c2088986   18 months ago   22.7MB
quay.io/prometheus/alertmanager    v0.25.0   c8568f914cd2   2 years ago     65.1MB
  • 由于实验需要反复测试,在第一次pull完镜像后,将其保存并考到离线主机,在下次恢复快照之后、cephadm初始化之前导回,步骤如下:
    • 备份(只需做一次):docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o 1.tar
    • 考去(只需做一次):scp ./1.tar dslab@192.168.81.42:/home/dslab。拷贝成功后,记得为离线主机再打一个快照,以防离线主机回退时,镜像丢失。
    • 考回:scp dslab@192.168.81.42:/home/dslab/1.tar ./
    • 导入:docker load -i 1.tar
    • 初始化集群(反复多次测试时用这个命令) cephadm --image quay.io/ceph/ceph:v19 bootstrap --mon-ip 192.168.81.142
  • 安装ceph-common (可省略,已整合,与docker一并安装) apt install ceph-common -y
  • 至此,在线版已经装好。
root@DSLab-CPU-Node1:~# ceph -s
  cluster:
    id:     d5a1dcae-305d-11f0-8261-91e74234d1dc
    health: HEALTH_WARN
            mon DSLab-CPU-Node1 is low on available space
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum DSLab-CPU-Node1 (age 5m)
    mgr: DSLab-CPU-Node1.vqbzjs(active, since 3m)
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     
 
root@DSLab-CPU-Node1:~# ceph -v
ceph version 19.2.2 (0eceb0defba60152a8182f7bd87d164b639885b8) squid (stable)

  • 为离线版制作离线包,docker 镜像之前已经打包传至离线服务器81.42,此处省略
  • 执行下面一系列命令,做deb本地源
apt-get install dpkg-dev -y
mkdir /offlinePackage
cp -r /var/cache/apt/archives  /offlinePackage
chmod 777 -R /offlinePackage/
dpkg-scanpackages /offlinePackage/ /dev/null |gzip >/offlinePackage/Packages.gz
mkdir -p /offlinePackage/dists/jammy/main/binary-amd64/
mv /offlinePackage/Packages.gz /offlinePackage/dists/jammy/main/binary-amd64/
cd /offlinePackage
apt-ftparchive release dists/jammy > dists/jammy/Release
cd
tar zcvf offlinePackage.tar.gz /offlinePackage/
  • 做好的本地源,目录结构如下:
/offlinePackage/
└── dists
    └── jammy
        ├── Release
        └── main
            └── binary-amd64
                └── Packages.gz
  • 把离线包传到离线服务器81.42,scp ./offlinePackage.tar.gz dslab@192.168.81.42:/home/dslab/ ,随后,为81.42再打一次快照。
  • 以下内容开始在离线主机81.42上运行,执行下面一系列命令,在离线主机建立本地源。
tar zxvf offlinePackage.tar.gz -C /
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb [trusted=yes] file:///offlinePackage/ jammy main" > /etc/apt/sources.list
#在/offlinePackage/dists/jammy/Release的最后加上:
Origin: Local
Label: Local
Suite: jammy
Codename: jammy
Architectures: amd64
Components: main
#保存之后再:
apt update
  • 暴力安装,不完美,需要反复装,并定点解决依赖。dpkg -i /offlinePackage/archives/*.deb
  • 下面是完美安装的效果,用apt install来安装,并通过本地源,自行解决依赖:
root@DSLab-CPU-Node1:/home/dslab# apt install cephadm=19.2.2-1jammy docker.io ceph-common -y
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
ceph-common 已经是最新版 (19.2.2-1jammy)。
cephadm 已经是最新版 (19.2.2-1jammy)。
docker.io 已经是最新版 (26.1.3-0ubuntu1~22.04.1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
  • 离线环境初始化集群(81.42是虚拟机、81.45是物理机均离线安装成功):cephadm --image quay.io/ceph/ceph:v19 bootstrap --mon-ip 192.168.81.45 --skip-pull

相关推荐

oracle数据导入导出_oracle数据导入导出工具

关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...

继续学习Python中的while true/break语句

上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个...

python continue和break的区别_python中break语句和continue语句的区别

python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...

简单学Python——关键字6——break和continue

Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...

2-1,0基础学Python之 break退出循环、 continue继续循环 多重循

用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...

Python 中 break 和 continue 傻傻分不清

大家好啊,我是大田。...

python中的流程控制语句:continue、break 和 return使用方法

Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...

L017:continue和break - 教程文案

continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...

作为前端开发者,你都经历过怎样的面试?

已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...

面试被问 const 是否不可变?这样回答才显功底

作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...

2023金九银十必看前端面试题!2w字精品!

导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。...

前端面试总结_前端面试题整理

记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录...

2024前端面试真题之—VUE篇_前端面试题vue2020及答案

添加图片注释,不超过140字(可选)...

今年最常见的前端面试题,你会做几道?

在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...