当前位置:   article > 正文

在Kubernets上使用RDMA

rdma-sriov-dp-ds

摘要: ### RDMA RDMA(全称RemoteDirect Memory Access) 它为了解决网络传输中服务器端数据处理的延迟而产生。 它的原理是将待传输的数据从一台计算机的内存,直接传输到另一台计算机的内存,整个传输过程无需操作系统和协议栈的介入。由于旁路了操作系统协议栈,通讯过程极大的降低了CPU的使用率,减少了内核的内存复制,以及用户态与内核态的上下文切换。 常见的RDMA

RDMA

RDMA(全称RemoteDirect Memory Access) 它为了解决网络传输中服务器端数据处理的延迟而产生。

它的原理是将待传输的数据从一台计算机的内存,直接传输到另一台计算机的内存,整个传输过程无需操作系统和协议栈的介入。由于旁路了操作系统协议栈,通讯过程极大的降低了CPU的使用率,减少了内核的内存复制,以及用户态与内核态的上下文切换。

常见的RDMA实现有三种,基于以太网的Roce网络(RDMA over Converged Ethernet), InfiniBand, iWARP。

阿里云支持RDMA

阿里云支持超级计算集群SCC,同时支持RoCE网络和VPC网络,其中RoCE网络专用于RDMA通信。SCC 主要用于高性能计算和人工智能/机器学习、科学/工程计算、数据分析、音视频处理等应用场景。 
RoCE(RDMA over Convergent Ethernet)网络速度达到InfiniBand网络的性能,且能支持更广泛的基于Ethernet的应用。
介绍: https://www.alibabacloud.com/help/zh/doc-detail/60576.htm
可以在ECS控制台直接购买包年包月的SCC机型虚拟机。 https://www.alibabacloud.com/help/zh/doc-detail/61978.htm

容器支持RDMA

容器服务目前已支持RDMA,您可以将SCC机型的ECS添加到容器集群中,并通过RDMA的Device plugin 在调度层面支持 RDMA。
通过声明 resourcesLimit  rdma/hca: 1 ,可以指定将容器调度到RDMA的ecs上。

创建容器集群

进入容器服务控制台, 选择创建Kubernetes集群。由于SCC目前仅在上海地域支持,容器集群的地域请选择 华东2(上海) 。 配置完其他参数后,点击集群创建,等待集群创建成功。

部署RDMA Device plugin

在容器服务控制台中,选择使用模板部署。 部署支持RDMA的Device plugin, 选择对应的集群和命名空间,模板如下:

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: rdma-devices
  5. namespace: kube-system
  6. data:
  7. config.json: |
  8. {
  9. "mode" : "hca"
  10. }
  11. ---
  12. apiVersion: extensions/v1beta1
  13. kind: DaemonSet
  14. metadata:
  15. name: rdma-device-plugin
  16. namespace: kube-system
  17. spec:
  18. template:
  19. metadata:
  20. annotations:
  21. scheduler.alpha.kubernetes.io/critical-pod: ""
  22. labels:
  23. name: rdma-sriov-dp-ds
  24. spec:
  25. hostNetwork: true
  26. tolerations:
  27. - key: CriticalAddonsOnly
  28. operator: Exists
  29. containers:
  30. - image: registry.cn-shanghai.aliyuncs.com/acs/rdma-device-plugin
  31. name: k8s-rdma-device-plugin
  32. imagePullPolicy: IfNotPresent
  33. securityContext:
  34. privileged: true
  35. volumeMounts:
  36. - name: device-plugin
  37. mountPath: /var/lib/kubelet/device-plugins
  38. - name: config
  39. mountPath: /k8s-rdma-sriov-dev-plugin
  40. volumes:
  41. - name: device-plugin
  42. hostPath:
  43. path: /var/lib/kubelet/device-plugins
  44. - name: config
  45. configMap:
  46. name: rdma-devices
  47. items:
  48. - key: config.json
  49. path: config.json

通过手动添加的方式将SCC的ECS加入集群中

  • 创建SCC的ECS, 并且和容器集群在同一个VPC下。并且加入相同安全组
  • 在容器服务控制台上操作 集群-> 更多 -> 添加已有ECS。 使用手动添加, 并选择创建的RDMA机器。获取添加脚本。
  • 登录上ECS, 执行脚本。 最终添加成功有如下显示:

  • 在节点 -> 标签管理中,给rdma节点增加标签 aliyun.accelerator/rdma: true

  • 增加标签后能够看到节点上的RDMA的device plugin pod被成功分配到SCC的节点上

部署两个测试镜像

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: rdma-test-pod
  5. spec:
  6. restartPolicy: OnFailure
  7. containers:
  8. - image: mellanox/centos_7_4_mofed_4_2_1_2_0_0_60
  9. name: mofed-test-ctr
  10. securityContext:
  11. capabilities:
  12. add: [ "IPC_LOCK" ]
  13. resources:
  14. limits:
  15. rdma/hca: 1
  16. command:
  17. - sh
  18. - -c
  19. - |
  20. ls -l /dev/infiniband /sys/class/net
  21. sleep 1000000
  22. ---
  23. apiVersion: v1
  24. kind: Pod
  25. metadata:
  26. name: rdma-test-pod-1
  27. spec:
  28. restartPolicy: OnFailure
  29. containers:
  30. - image: mellanox/centos_7_4_mofed_4_2_1_2_0_0_60
  31. name: mofed-test-ctr
  32. securityContext:
  33. capabilities:
  34. add: [ "IPC_LOCK" ]
  35. resources:
  36. limits:
  37. rdma/hca: 1
  38. command:
  39. - sh
  40. - -c
  41. - |
  42. ls -l /dev/infiniband /sys/class/net
  43. sleep 1000000

在一个容器中执行 ib\_read\_bw -q 30

另一个容器中执行 ib\_read\_bw -q 30 <上一个容器的 ip>

出现测试结果,说明两个容器之间可以通过RDM完成数据传输。 带宽为5500Mb/S, 约44Gbit/s。

tips: RDMA通讯建连过程普遍分为 TCP 和 RDMA_CM 两种实现,如果应用程序使用RDMA_CM 的建连的方式,vpc网络插件中分配的pod ip 无法作为RDMA_CM 地址, 容器需要设置HostNetwork。并将bond0 ip 设置为CM的通讯地址。

阿里云双十一1折拼团活动:已满6人,都是最低折扣了

【满6人】1核2G云服务器99.5元一年298.5元三年 2核4G云服务器545元一年 1227元三年

【满6人】1核1G MySQL数据库 119.5元一年

【满6人】3000条国内短信包 60元每6月

参团地址:http://click.aliyun.com/m/1000020293/

原文链接

转载于:https://my.oschina.net/u/1464083/blog/2872269

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号