Ubuntu2204 纯离线搭建ceph 19.2.2 测试环境的笔记
wptr33 2025-05-22 14:10 6 浏览
- 实验环境需要准备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
相关推荐
- 时尚芭莎90秒|不是人造,我不要
-
各位网友大家好,欢迎来到时尚芭莎90秒!仙女们,过冬御寒的保暖单品备好了吗?在当下更讲究环保和人道主义的风向下,一件魅力不减的人造皮单品必须要加进你的必败清单,不是人造的,我可不穿。...
- Apex Stand三合一支架:简洁便携设计, 拯救你的桌面
-
这次体验的这款手机、平板、笔电三合一支架ApexStand或许可以帮你解决设备太多导致桌面太过凌乱的问题。ApexStand采用可折叠的设计,并且还配有收纳袋,这一切都给与了ApexStand优...
- 每日一荐:把iPad变成电视你觉得如何
-
iPad的屏幕尺寸介于大屏手机和笔记本电脑之间,怪异,但用途广泛。外设厂商在不遗余力地设计制造各种小玩意来妆点这块小平板,以致于有人将iPad折腾成了一个“复古电视”,这个创意你喜欢吗?这个小配件名为...
- Standalone是什么?Standalone集群的三类进程
-
Standalone是什么Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境...
- 坚守与支撑 - Hold Up and Stand Firm
-
Inlife'sjourney,theconceptof"holdup"playsavitalrole."Holdup"canme...
- 当齐秦翻唱英文神曲,这版《Stand By Me》直接唱进灵魂深处!
-
是一首英文歌曲,是我比较喜欢的一首,曲名叫standbyme,希望你们能够喜欢,谢谢。standbyme,ohstandbyme,ohstandnowstandbyme,if...
- 可以吃的“水泥”和“咖啡杯”!杨浦这家高颜值咖啡店“拍了拍”你
-
在热闹的五角场商圈,聚集着诸多网红咖啡馆。今天就跟着小编来看看拥有浓浓INS风的MSTAND咖啡馆吧~这家名叫MSTAND的咖啡馆因其浓浓的INS风,极具辨识度。整间店以黑白灰为主基调,配上金属质...
- 陈粒“洄游”巡演帷幕拉开 白衣赤足回溯音乐赤子心
-
封面新闻记者徐语杨11月9日晚,陈粒“洄游”全国巡回演唱会首场成都站温情开唱。陈粒阔别三年再度开启个人巡回演唱会,以精湛的现场舞台魅力与全新的先锋时尚造型、极具体验感的舞美和视觉创意设计,带来全新专...
- 把 iPad 变成“iMac”,elago 推出 Magnetic Stand 支架
-
IT之家11月30日消息,苹果在上月推出打开M2芯片的iPadPro之后,配件厂商elago近日推出了全新的MagneticStand铝合金支架,能够将iPadPro...
- Stand Studio 2025春夏系列,现代与经典的融合
-
StandStudio2025春夏系列,在经典的款式之中,结合了现代的流行元素,让其以崭新的面貌展现出来。让夹克套装、皮革、短裙等款式的服装,在纯色简约大方的气质中,流苏元素的装饰更多了细节潮范儿...
- M Stand全国机场首店入驻浦东机场
-
最近,MStand全国机场首店在浦东机场1号航站楼开业迎客,该品牌店位于浦东机场T1到达公众区4号门附近。MStand此次还专门把社交网络中的热门产品“鲜椰冰咖”带到了浦东机场店。MStand于...
- Java Scanner 类
-
java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。下面是创建Scanner对象的基本语法:Scanners=newScanner...
- 扯一把 Spring 的三种注入方式,到底哪种注入方式最佳?
-
循环依赖这个问题,按理说我们在日常的程序设计中应该避免,其实这个本来也是能够避免的。不过由于种种原因,我们可能还是会遇到一些循环依赖的问题,特别是在面试的过程中,面试考察循环依赖,主要是想考察候选人对...
- 前端卷Java:我被Shiro的setCipherKey方法坑惨了
-
哎呀呀,昨晚我被Shiro那个CookieRememberMeManager的setCipherKey方法给坑惨了!明明它要求传入一个byte数组作为加密密钥,但是不告诉我这个数组的长度必须是16、2...
- 100个Java工具类之58:集合HashSet
-
HashSet是Java集合框架的一部分。...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
git 执行pull错误如何撤销 git pull fail
-
面试官:git pull是哪两个指令的组合?
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)