daos集群部署(单机)

1. 前言

本文详细介绍如何在almalinux8.9上部署daos.2.0.0单机集群。系统环境如下:

daos:           2.0.0
linux os:       almalinux 8.9
linux kernel:   4.18.0-513.5.1.el8_9.x86_64

之所以选择2.0.0版本,是因为daos从2.0.0开始是一个全新的架构设计,与1.x版本是不兼容的。其次为了方便研究daos源码,当然是版本越早,功能越少,代码逻辑更清晰。

 
 

2. 集群规划

daos_server        192.168.3.11
daos_agent         192.168.3.12

 
 

3. 系统设置

3.1. 防火墙设置

systemctl stop firewalld.service
systemctl disable firewalld.service

 

3.2. 开启IOMMU支持

为了让daos_server能够以非root用户运行在nvme设备上,硬件必须要支持虚拟化设备访问,也就是BIOS要开启(VT-d)功能,同时linux kernel必须要开启IOMMU支持。

3.2.1. 编辑grub配置文件

编辑/etc/default/grub文件,修改GRUB_CMDLINE_LINUX参数,添加intel_iommu=on,重启生效。

GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/almalinux-swap rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap rhgb quiet intel_iommu=on"

3.2.2. 重新生成grub.cfg文件:

grub2-mkconfig --output=/boot/grub2/grub.cfg

 

3.3. 配置daos yum源

/etc/yum.repos.d/目录下创建daos.repo文件,并添加以下内容:

[daos-2.0.0]
name=DAOS v2.0.0 Packages Packages
baseurl=https://packages.daos.io/v2.0.0/CentOS8/packages/x86_64/
enabled=1
#gpgcheck=1
gpgcheck=0
protect=1
#gpgkey=https://packages.daos.io/RPM-GPG-KEY-2023

 

3.4. 重启机器

reboot

 
 

4. 集群部署

4.1. 服务端部署

4.1.1. 安装软件

dnf install daos-server

4.1.2. 配置server

name: daos_server
access_points: ['node0']
provider: ofi+tcp;ofi_rxm
control_log_mask: INFO
control_log_file: /var/log/daos/daos_server.log
transport_config:allow_insecure: true
enable_vmd: falseengines:
-targets: 1first_core: 0nr_xs_helpers: 0fabric_iface: enp0s8fabric_iface_port: 31416log_mask: INFOlog_file: /var/log/daos/daos_engine.0.logenv_vars:- FI_SOCKETS_MAX_CONN_RETRY=1- FI_SOCKETS_CONN_TIMEOUT=2000- DAOS_SCHED_UNIT_RUNTIME_MAX=0# Storage definitionsscm_mount: /var/lib/daos/scmscm_class: ramscm_size: 4bdev_class: filebdev_size: 16bdev_list: [/var/lib/daos/dev/daos-bdev]

以上配置效果为:启动一个server(node0),该server将启动一个engine,该engine将挂载1个scm和1个nvme。scm将占用4G的系统内存,nvme是本地的文件模拟出来的设备,大小为16G。

  • provider:配置网卡,可以使用daos_server network scan命令查找。
  • env_vars:配置DAOS系统环境变量,所有的环境变量可以在https://docs.daos.io/v2.0/admin/env_variables/中查找。
  • scm:全名:storage-class memory,用来存元数据。
  • scm_class:dcpm和ram。dcpm需要用Optane device,ram直接使用内存。
  • bdev:用来存数据。
  • bdev_class:file、nvme、kdev。file用来模拟nvme ssd,nvme直接使用nvme ssd,kdev使用kernel block device(/dev/sd*等)。

4.1.3. 启动服务

systemctl start daos_server.service
systemctl enable daos_server.service

测试发现,daos_server.service服务默认是使用daos_server运行,在虚拟机上部署的集群总是会启动失败,可能是因为虚拟机并不支持IOMMU。在这种情况下,可以修改/usr/lib/systemd/system/daos_server.service,将用户改成root。

4.1.4. 存储格式化

dmg storage format
  • dmg是daos-client的命令行工具,上述命令需要在客户端执行。上述命令执行后,daos server将会启动engine进程,并挂载scm。
  • 启动engine可能会失败,大概率是内存不够daos分配,测试发现,对于1个engine和1个target的配置,至少需要9G内存。

 

4.2. 客户端部署

4.2.1. 安装软件

dnf install daos-client

4.2.2. 配置agent

name: daos_server
access_points: ['node0']
port: 10001transport_config:allow_insecure: trueruntime_dir: /var/run/daos_agent
log_file: /var/log/daos/daos_agent.log
  • name:必须和server配置一致。
  • access_points:必须和server配置一致。

4.2.3. 配置control

name: daos_server
port: 10001
hostlist: ['node0']
transport_config:allow_insecure: true
  • name:必须和server配置一致。
  • hostlist:必须和server配置一致。

4.2.4. 启动服务

systemctl start daos_agent.service
systemctl enable daos_agent.service

 
 

5. 参考资料

  • https://docs.daos.io/v2.0/admin/deployment/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472627.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Web Search 插件扩展 GitHub Copilot 问答

GitHub Copilot 是一个由 GitHub 和 OpenAI 合作开发的人工智能代码提示工具。它可以根据上下文提示代码,还可以回答各种技术相关的问题。但是 Copilot 本身不能回答非技术类型的问题。为了扩展 Copilot 的功能,微软发布了一个名为 Web Search 的插件&am…

24 年第十届数维杯国际数模竞赛赛题浅析

本次万众瞩目的数维杯国际大学生数学建模赛题已正式出炉,无论是赛题难度还是认可度,该比赛都是数模届的独一档,含金量极高,可以用于综测加分、保研、简历添彩等各方面。考虑到大家解题实属不易,为了帮助大家取得好成绩…

无人机检测车辆——多目标检测

目录 YOLOv3(You Only Look Once version 3)简介 YOLOv3 的主要特点 YOLOv3 的结构 1. 特征提取网络(Backbone) 2. 检测头(Head) 3. 输出层 YOLOv3 损失函数 YOLOv3 的优势 YOLOv3 的应用 YOLOv3…

ThriveX 博客管理系统前后端项目部署教程

前端 前端项目地址:https://github.com/LiuYuYang01/ThriveX-Blog 控制端项目地址:https://github.com/LiuYuYang01/ThriveX-Admin Vercel 首先以 Vercel 进行部署,两种方式部署都是一样的,我们以前端项目进行演示 首先我们先…

python的matplotlib实现数据分析绘图

目录 需求 效果 数据分析绘图示例 代码解释 运行结果 需求 分析一个班级中学生成绩分布,并绘图 效果 数据分析绘图示例 import matplotlib.pyplot as plt import numpy as np# 假设的学生成绩数据 np.random.seed(0) # 设置随机种子以确保结果可复现 score…

计算机网络 (3)计算机网络的性能

一、计算机网络性能指标 速率: 速率是计算机网络中最重要的性能指标之一,它指的是数据的传送速率,也称为数据率(Data Rate)或比特率(Bit Rate)。速率的单位是比特/秒(bit/s&#xff…

MySQL Online DDL

文章目录 1. 在线DDL的优势2. 支持的DDL操作3. 在线DDL的原理4. Online DDL的操作流程1. 准备阶段(Prepare phase)2. 拷贝阶段(Copy phase)3. 应用阶段(Apply phase)4. 替换阶段(Swap phase&…

SwanLab安装教程

SwanLab是一款开源、轻量级的AI实验跟踪工具,提供了一个跟踪、比较、和协作实验的平台,旨在加速AI研发团队100倍的研发效率。 其提供了友好的API和漂亮的界面,结合了超参数跟踪、指标记录、在线协作、实验链接分享、实时消息通知等功能&…

基于rk356x u-boot版本功能分析及编译相关(三)Makefile分析

🎏技术驱动源于热爱,祝各位学有所成。 文章目录 一、Makefile简要概述二、简要流程图三、Makefile文件具体分析大家好哈,这次因工作比较忙,文章更新拖的有些久了。哈哈,话不多说,咱们接着上次继续说u-boot的Makefile。 一、Makefile简要概述 一般要了解u-boot源码的编译…

vscode中执行git合并操作需要输入合并commit信息,打开的nano小型文本编辑器说明-

1.前提: VScode中的git组件执行任何合并动作的时候需要提交远程合并的commit信息,然后编辑器自动打开的是nano文本编辑器 2.nano编辑器说明: 1.保存文件:按 Ctrl O,然后按 Enter 来保存文件。 2.退出编辑器&#xf…

微信小程序 === 使用腾讯地图选点

目录 插件介绍 接入指引 相关参数说明 插件错误处理 效果图 permission 插件的作用 添加插件 引入插件代码包 使用插件 页面 js 接口 插件介绍 腾讯位置服务地图选点插件 可以让用户快速、准确地选择并确认自己的当前位置,并将相关位置信息回传给开发者。…

vue内置指令和自定义指令

常见的指令: v-bind : 单向绑定解析表达式, 可简写为 :xxx v-model : 双向数据绑定 v-for : 遍历数组/对象/字符串 v-on : 绑定事件监听, 可简…

Mac终端字体高亮、提示插件

一、安装配置“oh my zsh” 1.1 安装brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 按照步骤安装即可,安装完成查看版本 brew -v 1.2 安装zsh brew install zsh 安装完成后查看版本 zsh --version 1.3 …

CentOS8 在MySQL8.0 实现半同步复制

#原理 MySQL默认是异步的,不要求必须全部同步到从节点才返回成功结果; 同步复制: 用户发请求到代理, 代理收到请求后写/更新数据库写入到二进制日志bin_log, 然后必须等数据发到所有的从节点, 从节点全部收到数据后, 主节点才返回给客户端的成功结果。 弊端: 客…

手机ip地址异常怎么解决

在现代社会中,手机已成为我们日常生活中不可或缺的一部分,无论是工作、学习还是娱乐,都离不开网络的支持。然而,有时我们会遇到手机IP地址异常的问题,这不仅会影响我们的网络体验,还可能带来安全隐患。本文…

C++:基于红黑树封装map和set

目录 红黑树的修改 红黑树节点 红黑树结构 红黑树的迭代器 红黑树Insert函数 红黑树的默认成员函数 修改后完整的红黑树 set、map的模拟实现 set map 测试封装的set和map 红黑树的修改 想要用红黑树封装map和set,需要对之前实现的key-value红黑树进行修…

Spring Boot框架:电商系统的技术革新

4 系统设计 网上商城系统的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没有经过全…

【Linux】介绍和基础01

Linux介绍 linux是一个操作系统 和 windows平级 虚拟机 运行Linux在当前系统的 ‘另一个电脑’ 虚拟机可以运行多个‘电脑’ 你在哪 决定操作文件 ~ 波浪线代表当前登录的家 root 用户没有单独的家 整个操作都是root的家 Ubuntu没有盘的概念 所有的linux中都是文件 文…

(一)Ubuntu20.04服务器端部署Stable-Diffusion-webui AI绘画环境

一、说明 cup型号: Intel(R) Celeron(R) CPU G1610 2.60GHz 内存大小: 7.5Gi 356Mi 4.6Gi 1.0Mi 2.6Gi 6.8Gi Swap: 4.0Gi 0B 4.0Gi 显卡型号:NVIDIA P104-100 注意&#xff1a…

IQ Offset之工厂实例分析

有个产品 其方块图如下: FEM全名为Front End Module 详情可参照这篇 [1] WIFI前端模块的解析 这边就不赘述 而在工厂大量生产时 有一块板子 其Chain1的EVM Fail 分析Log后 发现其IQ Offset的值 比Chain2/Chain3/Chain4 还要来得差 请问 问题是出在收发器? 还是…