Skip to content

offline deployment

wuhongsong edited this page May 22, 2023 · 20 revisions

离线环境准备

Curve镜像准备

下载Curve标准镜像(如:harbor.cloud.netease.com/curve/curvefs:release2.4-beta2)到本地环境(可访问外网的机器)

sudo docker pull harbor.cloud.netease.com/curve/curvefs:release2.4-beta2

本地镜像仓库搭建

可参照私有仓库搭建, 搭建本地仓库, 并把Curve镜像上传到本地仓库

修改镜像

修改client.yaml以及topology.yaml中的镜像路径(container_image)为本地仓库镜像路径 备注: topology.yaml以及client.yaml分别是curvefs的服务端以及客户端的一键部署文件(详情参考CurveAdm部署文档)

部署

安装curveadm

curveadm是curve部署工具,可以一键安装,具体安装参见curveadm安装 由于是内网环境,所以需要把 curvadm 先下载下来,然后cp到服务器解压,然后 mv curveadm ~/.curveadm并将 ~/.curveadm/bin加入环境变量中。

主机配置

其实就是配置curve所属集群(包括服务端以及客户端)有哪些机器,让curveadm这一部署工具知道自己管理着哪些机器。主机配置也很简单,hosts.yaml中添加实际主机名和ip,然后可以一键搞定 具体配置如文档:主机管理

CurveFS服务端部署

参见文档 CurveFS集群部署

topology.yaml可以参考如下:

kind: curvefs
global:
  container_image:harbor.cloud.netease.com/curve  ##修改问本地镜像
  log_dir: ${home}/curvefs/logs/${service_role}
  data_dir: ${home}/curvefs/data/${service_role}
  variable:
    home: /metaserver
    machine1: node16    ## 修改为hosts.yaml中定义的主机名
    machine2: node17     ## 修改为hosts.yaml中定义的主机名
    machine3: node18     ## 修改为hosts.yaml中定义的主机名
  
etcd_services:
  config:
    listen.ip: ${service_host}
    listen.port: 2480       ## 服务端口号,可按需修改 ,下同
    listen.client_port: 2479   ## 同上
  deploy:
    - host: ${machine1}
    - host: ${machine2}
    - host: ${machine3}
  
mds_services:
  config:
    listen.ip: ${service_host}
    listen.port: 6700       ## 同上
    listen.dummy_port: 7700
    mds.loglevel: 3
  deploy:
    - host: ${machine1}
    - host: ${machine2}
    - host: ${machine3}
  
metaserver_services:
  config:
    listen.ip: ${service_host}
    listen.port: 6800     ## 同上
    listen.external_port: 7800   ## 同上
    global.enable_external_server: true
    metaserver.loglevel: 3
    braft.raft_sync: True
  deploy:
    - host: ${machine1}
    - host: ${machine2}
    - host: ${machine3}

client端部署

参见文档 部署 CurveFS 客户端 client.yaml参考如下:

kind: curvefs
s3.ak:  ## 后端对象存储信息
s3.sk:
s3.endpoint: 
s3.bucket_name: 
s3.max_connections: 1000
s3.async_thread_num: 1000
container_image: ## 镜像信息
mdsOpt.rpcRetryOpt.addrs: 
fuseClient.cto: false
fuseClient.attrTimeOut: 0
fuseClient.entryTimeOut: 0
client.loglevel: 3
log_dir: /curvefs/data/logs  ## 日志路径
data_dir: /curvefs/data       ## 本地缓存盘路径
Clone this wiki locally