离线部署 CurveFS 集群

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

离线环境准备

Curve镜像准备

  1. 拉取镜像 Curve官方镜像(如opencurvedocker/curvebs:v1.2)到本地环境(可访问外网的机器)
  1. $ sudo docker pull opencurvedocker/curvebs:v1.2
  1. 导出镜像
  1. # 查看下载到的Curve镜像,镜像版本、id和大小为示例,具体以实际为准,下同
  2. $ sudo docker image ls
  3. opencurvedocker/curvebs v1.2 5717f16d4bec 1 months ago 1.84GB
  4. # 导出镜像
  5. $ sudo docker save -o curve_v1.2.tar 5717f16d4bec
  1. 拷贝镜像到本地仓库节点
  1. $ scp curve_v1.2.tar ${desthost}:/path/to/save/image
  1. 导入镜像
  1. $ docker load --input curve_v1.2.tar
  2. # 查看导入的镜像
  3. $ sudo docker image ls
  4. opencurvedocker/curvebs v1.2 5717f16d4bec 1 months ago 1.84GB

本地镜像仓库搭建

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

  1. 运行 docker-registry
  1. $ docker run -d -p 5000:5000 --restart=always --name registry registry
  1. 标记Curve镜像 标记下载到的Curve镜像,比如把下载来的镜像(opencurvedocker/curvebs:v1.2)标记为127.0.0.1:5000/curvebs:v1.2_local(其中127.0.0.1为本地仓库服务IP,5000为本地仓库服务端口号,请根据实际环境修改)
  1. # 查看下载到的Curve镜像
  2. $ sudo docker image ls
  3. opencurvedocker/curvebs v1.2 5717f16d4bec 1 months ago 1.84GB
  4. # 标记镜像
  5. $ sudo docker tag opencurvedocker/curvebs:v1.2 127.0.0.1:5000/curvebs:v1.2_local
  6. # 查看标记完的镜像
  7. $ sudo docker image ls
  8. 127.0.0.1:5000/curvebs v1.2_local 5717f16d4bec 13 months ago 1.84GB
  1. 上传镜像
  1. $ docker push 127.0.0.1:5000/curvebs:v1.2_local

更多详情可参考私有仓库搭建

修改镜像地址

修改客户端部署配置文件client.yaml以及服务端集群部署配置文件topology.yaml中的镜像地址配置项(container_image)为本地仓库镜像地址(如:127.0.0.1:5000/curvebs:v1.2_local

部署

安装CurveAdm

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

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

  • 下载CurveAdm到本地可访问外网机器,下载地址(最新版本可咨询Curve社区成员): CurveAdm
  • 把CurveAdm拷贝到内网安装需部署Curve集群的主控机
  • 解压CurveAdm
  • 拷贝执行程序并设置环境变量
  1. $ mv curveadm ~/.curveadm
  2. # 可考虑更新到~/.bash_profile进行持久化
  3. $ export PATH=~/.curveadm/bin:$PATH

主机配置

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

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

Curve服务端部署

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

  1. kind: curvebs
  2. global:
  3. container_image: 127.0.0.1:5000/curvebs:v1.2_local ## 修改为本地镜像

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

client端部署

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

  1. kind: curvebs
  2. global:
  3. container_image: 127.0.0.1:5000/curvebs:v1.2_local ## 修改为本地镜像

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