背景
在开始操作前,你需要准备一台可以联网的 PC 或服务器,并安装了 Docker 环境。同时,你还需要将 CurveAdm 工具和 Curve 镜像文件上传到内网服务器中。
本文将详细介绍如何搭建本地镜像仓库、导出和导入 Curve 镜像、使用 CurveAdm 工具部署 Curve 集群等步骤。
请注意,离线部署 Curve 集群需要一定的技术基础和经验,建议在实际操作前,认真阅读 CurveAdm 的官方 wiki,并进行充分的测试和验证。由于离线部署环境的差异,实际操作步骤可能会有所差异,需要根据实际情况进行调整。
希望本文能够对需要在内网环境下部署 Curve 集群的社区小伙伴提供帮助。
Curve 镜像准备
$ sudo docker pull opencurve/curve/curvefs:v2.4
打包镜像
# 查看下载到的Curve镜像$ sudo docker image lsharbor.cloud.netease.com/curve/curvefs release2.4-beta2 5717f16d4bec 1 months ago 1.84GB# 打包镜像$ sudo docker save -o curve_release2.4-beta2.tar 5717f16d4bec
拷贝镜像到本地仓库节点
$ scp curve_release2.4-beta2.tar ${desthost}:/path/to/save/image
导出镜像
$ docker load --input curve_v2.4.tar# 查看导出的镜像$ sudo docker image lsopencurve/curve/curvefs v2.4 5717f16d4bec 1 months ago 1.84GB
运行 docker-registry
$ docker run -d -p 5000:5000 --restart=always --name registry registry
标记 Curve 镜像
opencurve/curve/curvefs:v2.4)标记为
127.0.0.1:5000/curvefs:v2.4_local(其中
127.0.0.1为本地仓库服务 IP,5000 为本地仓库服务端口号,请根据实际环境修改)
# 查看下载到的Curve镜像$ sudo docker image lsopencurve/curve/curvefs v2.4 5717f16d4bec 1 months ago 1.84GB# 标记镜像$ sudo docker tag opencurve/curve/curvefs:v2.4 127.0.0.1:5000/curvefs:v2.4_local# 查看标记完的镜像$ sudo docker image ls127.0.0.1:5000/curvefs v2.4_local 5717f16d4bec 13 months ago 1.84GB
上传镜像
$ docker push 127.0.0.1:5000/curvefs:v2.4_local
client.yaml以及服务端集群部署配置文件
topology.yaml中的镜像地址配置项(
container_image)为本地仓库镜像地址(如:
127.0.0.1:5000/curvefs:v2.4_local)
CurveAdm 是 Curve 部署工具,有外网的机器可以一键安装,具体安装参见CurveAdm安装
https://github.com/opencurve/curveadm/wiki/install-curveadm#%E5%AE%89%E8%A3%85-curveadm
但由于本文是介绍内网环境的部署,所以需按如下步骤操作:
下载 CurveAdm 到本地可访问外网机器,下载地址(最新版本可咨询Curve社区成员): CurveAdm
CurveAdm 下载地址: https://curveadm.nos-eastchina1.126.net/release/curveadm-v0.2.0.tar.gz 把 CurveAdm 拷贝到内网安装需部署 Curve 集群的主控机
解压 CurveAdm
拷贝执行程序并设置环境变量
$ mv curveadm ~/.curveadm# 可考虑更新到~/.bash_profile进行持久化$ export PATH=~/.curveadm/bin:$PATH
配置Curve集群要使用的服务器列表,提交列表给 CurveAdm 管理。主机配置过程比较简单,在 hosts.yaml
中添加实际主机名和 ip,然后提交就可以了。
具体配置参考文档:主机管理
topology.yaml中的镜像为本地镜像地址,示例如下:
kind: curvefsglobal:container_image: 127.0.0.1:5000/curvefs:v2.4_local ## 修改为本地镜像
client.yaml中的镜像为本地镜像地址,示例如下:
kind: curvefsglobal:container_image: 127.0.0.1:5000/curvefs:v2.4_local ## 修改为本地镜像
使用 Curve 云上部署 Hadoop,轻松节约 50% 存储成本


关于 Curve
Curve 亦可作为云存储中间件使用 S3 兼容的对象存储作为数据存储引擎,为公有云用户提供高性价比的共享文件存储。




