跳到主要内容

离线部署 CurveFS 集群

本文适用于无法从公网docker镜像仓库拉取CurveFS docker镜像场景下的部署。

离线环境准备

Curve镜像准备

  1. 拉取镜像 Curve官方镜像(如opencurve/curve/curvefs:v2.4)到本地环境(可访问外网的机器)
$ sudo docker pull opencurve/curve/curvefs:v2.4
  1. 导出镜像
# 查看下载到的Curve镜像,镜像版本、id和大小为示例,具体以实际为准,下同
$ sudo docker image ls
opencurve/curve/curvefs v2.4 5717f16d4bec 1 months ago 1.84GB

# 导出镜像
$ sudo docker save -o curve_v2.4.tar 5717f16d4bec
  1. 拷贝镜像到本地仓库节点
$ scp curve_v2.4.tar  ${desthost}:/path/to/save/image
  1. 导入镜像
$ docker load --input curve_v2.4.tar

# 查看导入的镜像
$ sudo docker image ls
opencurve/curve/curvefs v2.4 5717f16d4bec 1 months ago 1.84GB

本地镜像仓库搭建

使用docker-registry来进行本地仓库的搭建,搭建完本地仓库后, 把前面步骤中下载的Curve镜像上传到本地仓库。主要有以下几步:

  1. 运行 docker-registry
$ docker run -d -p 5000:5000 --restart=always --name registry registry
  1. 标记Curve镜像 标记下载到的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 ls
opencurve/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 ls
127.0.0.1:5000/curvefs v2.4_local 5717f16d4bec 13 months ago 1.84GB
  1. 上传镜像
$ 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

CurveAdm是Curve部署工具,有外网的机器可以一键安装,具体安装参见CurveAdm安装

但由于本文是介绍内网环境的部署,所以需按如下步骤操作:

  • 下载CurveAdm到本地可访问外网机器,下载地址(最新版本可咨询Curve社区成员): CurveAdm
  • 把CurveAdm拷贝到内网安装需部署Curve集群的主控机
  • 解压CurveAdm
  • 拷贝执行程序并设置环境变量
$ mv curveadm ~/.curveadm

# 可考虑更新到~/.bash_profile进行持久化
$ export PATH=~/.curveadm/bin:$PATH

主机配置

配置Curve集群要使用的服务器列表,提交列表给CurveAdm管理。主机配置过程比较简单,在hosts.yaml中添加实际主机名和ip,然后提交就可以了。

具体配置参考文档:主机管理

Curve服务端部署

需修改topology.yaml中的镜像为本地镜像地址,示例如下:

kind: curvefs
global:
container_image: 127.0.0.1:5000/curvefs:v2.4_local ## 修改为本地镜像

其他的配置项请参考文档 CurveFS集群部署CurveBS集群部署

client端部署

需修改client.yaml中的镜像为本地镜像地址,示例如下:

kind: curvefs
global:
container_image: 127.0.0.1:5000/curvefs:v2.4_local ## 修改为本地镜像

其他的配置项请参考文档 部署CurveFS客户端部署CurveBS客户端