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

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集合框架的一部分。...