Skip to content

curvebs client deployment

caoxianfei1 edited this page Nov 23, 2023 · 9 revisions

部署 CurveBS 客户端

第 1 步:环境准备

第 2 步:导入主机

用户需导入客户端所需的主机列表,如果你在部署集群时已将客户端主机导入,可直接跳过此步骤。 请确保在之后映射/取消映射中指定的主机都已导入,详见主机管理

1. 准备主机列表

$ vim hosts.yaml
global:
  user: curve
  ssh_port: 22
  private_key_file: /home/curve/.ssh/id_rsa

hosts:
  - host: server-host1
    hostname: 10.0.1.1
  - host: server-host2
    hostname: 10.0.1.2
  - host: server-host3
    hostname: 10.0.1.3
  - host: client-host
    hostname: 10.0.1.4

2. 导入主机列表

$ curveadm hosts commit hosts.yaml

第 3 步:准备客户端配置文件

$ vim client.yaml
kind: curvebs
container_image: quay.io/opencurve/curve/curvebs:latest
mds.listen.addr: 10.0.1.1:6700,10.0.1.2:6700,10.0.1.3:6700
log_dir: /home/curve/curvebs/logs/client

客户端配置文件中的配置项含义等同于集群拓扑文件中的配置项,详见 CurveBS 重要配置项

所有未在客户端配置文件上出现的配置项,我们都将使用默认配置值, 你可以通过点击 client 配置文件来查看各配置项及相关默认值。

💡 关于 mds.listen.addr 配置项

由于所有的路由信息都存在于 MDS 服务中,客户端只需知晓集群中 MDS 服务地址即可正常进行 IO 正常。

配置文件中的 mds.listen.addr 配置项需填写集群中 MDS 服务地址,用户在部署好 CurveBS 集群后, 可通过 curveadm status 查看集群 MDS 服务地址:

$ curveadm status
Get Service Status: [OK]

cluster name      : my-cluster
cluster kind      : curvebs
cluster mds addr  : 10.0.1.1:6700,10.0.1.2:6700,10.0.1.3:6700
cluster mds leader: 10.0.1.1:6700 / 505da008b59c
...

第 4 步:映射 CurveBS 卷

$ curveadm map <volume-user>:<volume-name> --host <host> -c client.yaml --create --size 10GiB
  • <volume-user>: 该卷所属用户名,用户可自行定义
  • <volume-name>: 卷名,用户可自行定义
  • --host: 将卷挂载到指定主机,用户可自行选择,请确保该主机已被导入
  • --create:当卷不存在时,则自行创建
  • --size: 指定创建卷的大小,默认为 10GiB
  • -c: 指定客户端配置文件

当用户映射卷成功后,在相应的主机上即能看到 CurveBS 卷对应的 nbd 设备:

$ lsblk | grep nbd

用户也可以在中控机上查看所有客户端的状态:

$ curveadm client status
Get Client Status: [OK]

Id            Kind     Host          Container Id  Status       Aux Info
--            ----     ----          ------------  ------       --------
362d538778ad  curvebs  client-host1  cfa00fd01ae8  Up 36 hours  {"user":"curve","volume":"/test1"}
b0d56cfaad14  curvebs  client-host2  c0301eff2af0  Up 36 hours  {"user":"curve","volume":"/test2"}
c700e1f6acab  curvebs  client-host3  52554173a54f  Up 36 hours  {"user":"curve","volume":"/test3"}

📢 注意:

  • 用户名中不能带有下划线_
  • 卷名必须以 / 为起始,如 /test/volume,并且只能有单级目录
  • 目前卷大小只支持以 10GB 为最小单位,即创建的卷大小只能是 10GB、20GB、30GB...,依此类推
  • 我们以 <用户名>:<卷名> 作为建来存储卷的相关信息,请勿挂载相同的卷

示例

$ curveadm map curve:/test --host server-host1 -c client.yaml --create

其他:取消 CurveBS 卷映射

$ curveadm unmap <user>:<volume-name> --host server-host1
Clone this wiki locally