daos集群部署(单机)

news2024/11/18 20:03:58

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: false

engines:
-
  targets: 1
  first_core: 0
  nr_xs_helpers: 0
  fabric_iface: enp0s8
  fabric_iface_port: 31416
  log_mask: INFO
  log_file: /var/log/daos/daos_engine.0.log

  env_vars:
    - FI_SOCKETS_MAX_CONN_RETRY=1
    - FI_SOCKETS_CONN_TIMEOUT=2000
    - DAOS_SCHED_UNIT_RUNTIME_MAX=0

  # Storage definitions
  scm_mount: /var/lib/daos/scm
  scm_class: ram
  scm_size: 4

  bdev_class: file
  bdev_size: 16
  bdev_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: 10001

transport_config:
  allow_insecure: true

runtime_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.coloradmin.cn/o/2242996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

.NET 9.0 中 System.Text.Json 的全面使用指南

以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式,包括序列化、反序列化、配置选项等,并附上输出结果。 基本序列化和反序列化 using System; using System.Text.Json; public class Program {public class Person{public string Name { get; se…

.netcore + postgis 保存地图围栏数据

一、数据库字段 字段类型选择(Type) 设置对象类型为:geometry 二、前端传递的Json格式转换 前端传递围栏的各个坐标点数据如下: {"AreaRange": [{"lat": 30.123456,"lng": 120.123456},{"lat": 30.123456…

用pyspark把kafka主题数据经过etl导入另一个主题中的有关报错

首先看一下我们的示例代码 import os from pyspark.sql import SparkSession import pyspark.sql.functions as F """ ------------------------------------------Description : TODO:SourceFile : etl_stream_kafkaAuthor : zxxDate : 2024/11/…

算法日记 26-27day 贪心算法

接下来的题目有些地方比较相似。需要注意多个条件。 题目:分发糖果 135. 分发糖果 - 力扣(LeetCode) n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每…

编写一个生成凯撒密码的程序

plain list(input("请输入需要加密的明文(只支持英文字母):"))key int(input("请输入移动的位数:"))base_A ord(A)base_a ord(a)cipher []for each in plain:if each :cipher.append( )else:if each.i…

PyCharm2024.2.4安装

一、官网下载 1.从下面的链接点进去 PyCharm: The Python IDE for data science and web development by JetBrains 2.进入官网后,下载pycharm安装包 3.点击下载能适配你系统的安装包 4.安装包下载完成 二、安装 1.下载完成后,打开点击右键&#xff…

【MySQL】MySQL数据库入门:构建你的数据基石

🍑个人主页:Jupiter. 🚀 所属专栏:MySQL初阶探索:构建数据库基础 欢迎大家点赞收藏评论😊 目录 🦅数据库基础🐀什么是数据库🐏主流数据库🦆MySQL数据库的基本…

基于Python 和 pyecharts 制作招聘数据可视化分析大屏

在本教程中,我们将展示如何使用 Python 和 pyecharts 库,通过对招聘数据的分析,制作一个交互式的招聘数据分析大屏。此大屏将通过不同类型的图表(如柱状图、饼图、词云图等)展示招聘行业、职位要求、薪资分布等信息。 …

OMV7 树莓派 tf卡安装

​ 升级7之后,问题多多,不是docker不行了,就是代理不好使 今天又重装了一遍,用官方的链接,重新再折腾一遍…… 使用raspberry pi imager安装最新版lite OS。 注意是无桌面 Lite版 配置好树莓派初始化设置&#xff0…

idea 弹窗 delete remote branch origin/develop-deploy

想删除远程分支,就选delete,仅想删除本地分支,选cancel; 在 IntelliJ IDEA 中遇到弹窗提示删除远程分支 origin/develop-deploy,这通常是在 Git 操作过程中出现的情况,可能是在执行如 git branch -d 或其他…

GitCode光引计划有奖征文大赛

一、活动介绍 GitCode平台汇聚了众多杰出的G-Star项目,它们犹如璀璨星辰,用各自的故事和成就,为后来者照亮前行的道路。我们诚邀广大开发者、项目维护者及爱好者,共同撰写并分享项目在GitCode平台上托管的体验,挖掘平…

qt移植到讯为rk3568,包含一些错误总结

qt移植到arm报错动态库找不到 error while loading shared libraries: libAlterManager.so.1: cannot open shared object file: No such file or directory 通过设置环境变量 LD_LIBRARY_PATH就行了。 LD_LIBRARY_PATH是一个用于指定动态链接器在运行时搜索共享库的路径的环…

Android Framework AMS(16)进程管理

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读AMS 进程方面的知识。关注思维导图中左上侧部分即可。 我们本章节主要是对Android进程管理相关知识有一个基本的了解。先来了解下L…

(一)- DRM架构

一,DRM简介 linux内核中包含两类图形显示设备驱动框架: FB设备:Framebuffer图形显示框架; DRM:直接渲染管理器(Direct Rendering Manager),是linux目前主流的图形显示框架; 1&am…

【PHP】ThinkPHP基础

下载composer ComposerA Dependency Manager for PHPhttps://getcomposer.org/ 安装composer 查看composer是否安装 composer composer --version 安装 ThinkPHP6 如果你是第一次安装的话,首次安装咱们需要打开控制台: 进入后再通过命令,在命令行下面&a…

Elasticsearch基本概念及使用

Elasticsearch 是一个开源的、分布式的全文搜索和分析引擎,基于 Apache Lucene 构建。它提供了快速的搜索能力,支持大规模的数据分析,广泛应用于日志分析、全文搜索、监控系统和商业智能等领域。ES操作指令是基于restAPI构建,也就…

黑马智慧商城项目学习笔记

目录 智慧商城项目创建项目调整初始化目录vant组件库vant按需导入和全部导入 项目中的vw适配路由设计配置登录页静态布局图形验证码功能request模块-axios封装api模块-封装图片验证码接口 Toast轻提示(vant组件)短信验证倒计时功能登录功能响应拦截器统一…

攻防世界Web-bug

打开链接 先注册一个账号 创建成功,会给一个UID5 抓包的user值就是UID:用户名的md5加密的编码 点击Manage时要求admin用户 利用改包把user改成admin 1:admin的md5值为4b9987ccafacb8d8fc08d22bbca797ba 还要把url上的UID改为1 存在逻辑漏洞,成功越权 …

apk反编译修改教程系列-----apk应用反编译中AndroidManifest.xml详细代码释义解析 包含各种权限 代码含义【二】

💝💝💝💝在上期博文中解析了一个常规apk中 AndroidManifest.xml的权限以及代码。应粉丝需求。这次解析一个权限较高的apk。这款apk是一个家长管控的应用。需求的各种权限较高。而且通过管控端可以设置控制端的app隐藏与否。 通过博文了解💝💝💝💝 1💝💝…

湘潭大学软件工程算法设计与分析考试复习笔记(一)

文章目录 前言随机类(第七章)随机概述数值随机化舍伍德拉斯维加斯蒙特卡罗 模拟退火遗传人工神经网络 回溯(第五章)动态规划(第四章)后记 前言 考试还剩十一天,现在准备开始复习这门课了。好像全…