Yum安装支持InfiniBand的lustre——Install Lustre with InfiniBand Support By Yum

本文详细介绍通过YUM库在服务器及客户端上安装配置Lustre存储系统的过程,包括卸载旧组件、添加YUM仓库、安装InfiniBand组件、配置内核、安装Lustre软件包及IB网卡等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:实验室需要搭建一套Lustre,我在使用了网上各种教程之后总是不成功,于是尝试了使用Lustre的yum库来安装,作如下总结

安装支持InfiniBand的lustre

note:lustre的编译安装太容易出问题,所以这里选用的是yum安装,请确保您的服务器能够连接到相应网络

server端(包括mds与osd)

首先卸载已经安装了的infiniband(未安装可不选)
sudo yum remove neohost-backend
sudo /sbin/ofed_uninstall.sh
#卸载已经安装了的lustre组件
sudo yum remove "*lustre*"

请确认没有多删之后再按y

添加lustre-server的yumrepo
sudo vim /etc/yum.repos.d/lustre-server.repo

写入如下内容

[lustre-server]
name=lustre-server
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.12.0-ib/MOFED-4.5-1.0.1.0/el7/server
gpgcheck=0

从lustre网站上安装infiniband相关组件

sudo yum --enablerepo=lustre-server install "*OFED*" "*mlnx*" ibutils

同样,请检查以上包来自于lustre-client而不是其他的镜像源

启动ib
sudo modprobe -rv ib_isert rpcrdma ib_srpt
sudo service openibd start

关于infiniband的config部分我是用的我们实验室的规定,可以根据自己情况修改
如果读者不知道怎么弄,如下操作

/etc/sysconfig/network-scripts/ifcfg-ib0
TYPE=InfiniBand
DEVICE=ib0
NAME=System ib0
BOOTPROTO=static
IPADDR=10.0.0.1
NETMASK=255.255.255.0
BROADCAST=10.0.0.255
NETWORK=10.0.0.0
ONBOOT=yes

请将10.0.0.1修改为每台机器对应的地址

添加e2fsprogs的yumrepo
sudo vim /etc/yum.repos.d/e2fsprogs.repo

写入

[e2fsprogs-el7-x86_64]
name=e2fsprogs-el7-x86_64
baseurl=https://downloads.whamcloud.com/public/e2fsprogs/latest/el7/
enabled=1
priority=1

note:最好打开浏览器手动核对url链接,确保与你的服务器版本对应

安装打过lustre补丁的内核
sudo yum install kernel-3.10.0-957.el7_lustre  kernel-debuginfo-3.10.0-957.el7_lustre kernel-debuginfo-common-x86_64-3.10.0-957.el7_lustre kernel-devel-3.10.0-957.el7_lustre kernel-headers-3.10.0-957.el7_lustre
uname -r
#检查内核是否是3.10.0-957.el7_lustre,不是的话设定手动内核启动模块
sudo reboot
安装lustre
sudo yum --nogpgcheck --enablerepo=lustre-server install kmod-lustre-osd-ldiskfs kmod-lustre lustre lustre-osd-ldiskfs-mount lustre-iokit lustre-tests kmod-lustre-tests

装lustre应该会自动装上e2fsprogs,没有的话就手动yum装一下好了

为lustre添加ib网卡:这一步很重要
sudo vim /etc/modprobe.d/lustre.conf
#写入以下内容
options lnet networks="o2ib0(ib0)"
sudo modprobe -v lustre 无error说明大功告成

如何配置mgs,mdt,ost我会新开一个页面来写,不混在一起。(其实是我累了

client端

首先卸载已经安装了的infiniband
sudo yum remove neohost-backend
sudo /sbin/ofed_uninstall.sh
卸载已经安装了的lustre组件
sudo yum remove "*lustre*"

请确认没有多删之后再按y

添加lustre-client的yumrepo
sudo vim /etc/yum.repos.d/lustre-client.repo

写入

[lustre-client]
name=Lustre Client
gpgcheck=0
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.12.0-ib/MOFED-4.5-1.0.1.0/el7/client/

note:最好打开浏览器手动核对url链接,确保与你的服务器版本对应

安装infiniband相关组件
sudo yum --enablerepo=lustre-client install "*OFED*" "*mlnx*" ibutils

同样,请检查以上包来自于lustre-client而不是其他的镜像源

启动ib
sudo modprobe -rv ib_isert rpcrdma ib_srpt
sudo service openibd start

关于infiniband的config与上一段相似

安装lustre的client
sudo yum install kmod-lustre-client  kmod-lustre-client-tests lustre-client  lustre-client-debuginfo lustre-client-tests  lustre-iokit pcp-pmda-lustre pcp-pmda-lustrecomm

如果有一些奇怪的东西混进来了,可以手动指定版本号重新执行yum install

为lustre添加ib网卡
sudo vim /etc/modprobe.d/lustre.conf
#写入以下内容
options lnet networks="o2ib0(ib0)"
sudo modprobe -v lustre 

无error说明大功告成
创建40个client并挂载上去(请确保服务器available,如果你还没挂载mds与osd请不要这么做,没有用)

for ((i=0; i<40;i++)); do sudo mkdir /mnt/lustre-client-$i; sudo chown user:group lustre-client-$i; sudo mount -t lustre node6@o2ib0:node7@o2ib0:/lustre  /mnt/lustre-client-$i; done

这个chown user:group自己换一下

Failed to install neohost-backend DEB Collecting debug info... See /tmp/MLNX_OFED_LINUX.30888.logs/neohost-backend.debinstall.log ubuntu@ubuntu-System-Product-Name:~/Downloads/MLNX_OFED_LINUX-4.9-0.1.7.0-ubuntu18.04-x86_64$ sudo apt install neohost-backend Reading package lists... Done Building dependency tree Reading state information... Done Package neohost-backend is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'neohost-backend' has no installation candidate ubuntu@ubuntu-System-Product-Name:~/Downloads/MLNX_OFED_LINUX-4.9-0.1.7.0-ubuntu18.04-x86_64$ cat /tmp/MLNX_OFED_LINUX.30888.logs/neohost-backend.debinstall.log /usr/bin/dpkg -i --force-confmiss /home/ubuntu/Downloads/MLNX_OFED_LINUX-4.9-0.1.7.0-ubuntu18.04-x86_64/DEBS/MLNX_LIBS/neohost-backend_1.5.0-102_amd64.deb (Reading database ... 180562 files and directories currently installed.) Preparing to unpack .../neohost-backend_1.5.0-102_amd64.deb ... /var/lib/dpkg/tmp.ci/preinst: line 4: python: command not found NEO-Host requieres Python 2.6 or 2.7 dpkg: error processing archive /home/ubuntu/Downloads/MLNX_OFED_LINUX-4.9-0.1.7.0-ubuntu18.04-x86_64/DEBS/MLNX_LIBS/neohost-backend_1.5.0-102_amd64.deb (--install): new neohost-backend package pre-installation script subprocess returned error exit status 1 Errors were encountered while processing: /home/ubuntu/Downloads/MLNX_OFED_LINUX-4.9-0.1.7.0-ubuntu18.04-x86_64/DEBS/MLNX_LIBS/neohost-backend_1.5.0-102_amd64.deb
最新发布
08-08
<think>我们正在处理一个关于安装neohost-backend DEB包失败的问题。用户遇到了两个错误信息: 1. 'NEO-Host requires Python 2.6 or 2.7' 2. 'python: command not found' 从错误信息看,系统可能没有安装Python 2,或者没有将Python 2的可执行文件正确链接到`python`命令。 解决思路: 1. 确认系统是否安装了Python 2.6或2.7版本。 2. 如果没有安装,则安装Python 2.7(因为Python 2.6已经非常老旧,建议安装2.7)。 3. 确保系统中存在`python`命令,并且指向Python 2.7。在有些系统中,默认的`python`命令可能指向Python 3,而Python 2的命令可能是`python2`。因此,可能需要创建符号链接或者使用`alternatives`工具(在基于RPM的系统如CentOS上)来设置默认的Python版本。 4. 由于用户使用的是DEB包,但之前引用中提到了RPM安装(可能是兄弟篇中的情况),这里需要明确用户系统是Debian/Ubuntu(使用DEB)还是RHEL/CentOS(使用RPM)?因为错误信息中提到了DEB包,但引用中处理的是RPM。因此,我们需要分情况处理。 但是,用户的问题描述中明确提到了DEB包,所以我们应该按照Debian/Ubuntu系统来处理。然而,错误信息中提到的命令`rpm`是RPM包管理工具,通常在Debian/Ubuntu上不可用。因此,我怀疑用户可能混淆了包类型,或者问题描述有误。 考虑到引用中提到了使用yum(CentOS的包管理工具)和rpm,以及用户现在的问题描述是DEB包,我们需要澄清:用户到底是在什么系统上安装?是Debian/Ubuntu还是CentOS/RHEL? 但是,用户现在的问题描述是DEB包,所以我们先按照Debian/Ubuntu系统来提供解决方案。 步骤: 1. 首先,确保系统已安装Python 2.7。在Debian/Ubuntu系统中,可以使用以下命令安装: ```bash sudo apt update sudo apt install python2 ``` 注意:在较新的Ubuntu版本中,Python 2可能不在默认仓库中,但通常可以通过`python2`包安装。 2. 安装后,检查Python 2.7是否安装成功: ```bash python2 --version ``` 3. 由于错误信息提示'python: command not found',说明系统没有将`python`命令链接到任何Python解释器。在Debian/Ubuntu系统中,通常不会将`python`命令默认指向Python 2,因为系统可能依赖Python 3。但是,我们可以手动创建一个符号链接,或者使用`update-alternatives`来设置。 创建符号链接(不推荐,因为可能会破坏系统依赖): ```bash sudo ln -s /usr/bin/python2 /usr/bin/python ``` 或者,使用`update-alternatives`(更安全): ```bash sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2 sudo update-alternatives --config python ``` 然后选择python2对应的编号。 注意:将`python`指向Python 2可能会影响系统脚本,因为有些系统脚本可能依赖于Python 3。因此,建议仅在安装neohost-backend期间临时切换,或者在使用neohost-backend时设置环境变量。 4. 安装DEB包: ```bash sudo dpkg -i neohost-backend-xxx.deb # 替换为实际的DEB包文件名 ``` 如果安装过程中有依赖问题,可以运行: ```bash sudo apt install -f ``` 5. 如果上述步骤后仍然遇到问题,可能需要按照引用中提到的,安装jsonschema模块(但注意,引用中处理的是RPM包安装,且使用了pip2): ```bash pip2 install jsonschema==2.6.0 ``` 注意:在Debian/Ubuntu上,可能需要先安装pip2: ```bash sudo apt install python-pip # 对于Python2的pip ``` 6. 设置pip国内镜像源(如果需要): ```bash mkdir -p ~/.pip echo -e "[global]\nindex-url = https://mirrors.aliyun.com/pypi/simple/\ntrusted-host = mirrors.aliyun.com" > ~/.pip/pip.conf ``` 但是,请注意,用户的问题描述中出现了两个不同的包管理系统(DEB和RPM),这可能是混淆的根源。如果用户实际上是在Debian/Ubuntu系统上,那么应该使用DEB包和apt命令;如果是在CentOS/RHEL上,则使用RPM包和yum/rpm命令。 因此,我们需要用户确认操作系统的类型。 如果用户无法确认,我们可以提供两个系统的解决方案,但需要用户根据实际情况选择。 总结解决方案: 情况1:Debian/Ubuntu系统 - 安装python2 - 设置python命令指向python2(注意系统兼容性) - 安装pip2(如果需要) - 安装jsonschema(如果需要) - 安装DEB包 情况2:CentOS/RHEL系统 - 安装python2(通常系统自带,但可能没有) - 设置python命令指向python2(使用alternatives) - 安装pip2 - 安装jsonschema - 安装RPM包(因为用户提到DEB包,但错误信息中出现了RPM?这里需要用户澄清) 鉴于用户问题描述中同时出现了DEB和RPM的线索,我建议用户确认: 1. 使用的操作系统是什么? 2. 下载的安装包是DEB还是RPM格式? 如果用户确实在Debian/Ubuntu上,但下载了RPM包,那是无法安装的,需要使用alien工具转换或者重新下载DEB包。反之亦然。 因此,在回答中,我们需要先澄清操作系统的类型和安装包的类型,然后提供对应的解决方案。 由于用户没有提供操作系统信息,我们提供两种可能的解决方案,并建议用户根据实际情况选择。 但是,用户的问题描述中明确写了“解决安装 neohost-backend DEB 包失败”,所以我们假设用户使用的是Debian/Ubuntu系统。 最终回答: ### 解决 neohost-backend DEB 包安装失败的问题 根据错误信息 `'NEO-Host requires Python 2.6 or 2.7'` 和 `'python: command not found'`,问题原因是系统缺少Python 2.7环境或未正确配置`python`命令。以下是针对Debian/Ubuntu系统的解决方案: #### 步骤1: 安装Python 2.7 在终端中执行以下命令: ```bash sudo apt update sudo apt install python2 ``` #### 步骤2: 检查Python 2.7安装 ```bash python2 --version ``` 应输出类似 `Python 2.7.18` 的版本信息。 #### 步骤3: 配置`python`命令指向Python 2.7 在Debian/Ubuntu系统中,通常不推荐将`python`命令全局指向Python 2,因为这可能影响系统脚本(它们可能依赖Python 3)。但为了安装需要,我们可以临时设置或使用替代方案。 **方案A(推荐):** 使用`update-alternatives`管理多个Python版本 ```bash # 添加Python2和Python3到alternatives sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2 # 配置默认版本 sudo update-alternatives --config python ``` 在出现的菜单中选择Python2对应的编号。 **方案B:** 创建临时符号链接(安装完成后可以删除) ```bash # 备份原来的python链接(如果存在) sudo mv /usr/bin/python /usr/bin/python.bak # 创建新链接 sudo ln -s /usr/bin/python2 /usr/bin/python ``` 注意:此操作可能会影响系统功能,建议在安装完成后恢复: ```bash sudo rm /usr/bin/python sudo mv /usr/bin/python.bak /usr/bin/python ``` #### 步骤4: 安装pip2(可选,如果需要安装Python模块) ```bash sudo apt install python-pip ``` #### 步骤5: 安装jsonschema模块(参考兄弟篇) ```bash pip2 install jsonschema==2.6.0 ``` #### 步骤6: 安装neohost-backend DEB包 ```bash sudo dpkg -i neohost-backend-xxx.deb # 替换为你的DEB包文件名 # 如果出现依赖问题,运行: sudo apt install -f ``` #### 步骤7: 验证安装 运行neohost相关命令,检查是否正常工作。 #### 注意事项 - 安装完成后,建议将`python`命令恢复为系统默认(通常是Python3),以避免影响其他系统功能。可以使用`update-alternatives`重新配置,或者删除临时创建的符号链接。 - 如果安装过程中遇到其他问题,请参考兄弟篇:[【问题记录】Mellanox网卡性能调试工具neohost1.5.0安装遇到的问题记录](引用链接)[^1]。 ### 相关问题 1. 如何在Ubuntu 20.04上同时安装Python 2和Python 3? 2. 如何永久修改系统默认的Python版本? 3. 在Debian/Ubuntu系统上安装DEB包时遇到依赖问题如何解决? 4. 如何为Python 2设置国内pip镜像源? [^1]: 参考兄弟篇:【问题记录】Mellanox网卡性能调试工具neohost1.5.0安装遇到的问题记录</think>### 解决 neohost-backend DEB 包安装失败问题 根据错误信息 `NEO-Host requires Python 2.6 or 2.7` 和 `python: command not found`,问题核心是系统缺少 Python 2.7 环境。以下是完整解决方案: #### 步骤 1:安装 Python 2.7 ```bash sudo apt update sudo apt install python2.7 # 安装 Python 2.7 运行时 ``` #### 步骤 2:创建符号链接 ```bash sudo ln -s /usr/bin/python2.7 /usr/bin/python # 建立 python 命令指向 ``` #### 步骤 3:验证 Python 版本 ```bash python --version # 应显示 "Python 2.7.x" ``` #### 步骤 4:修复依赖关系 ```bash sudo apt install -f # 修复缺失的依赖 ``` #### 步骤 5:安装必要组件 ```bash # 安装 pip 和基础模块 sudo apt install python-pip sudo pip2 install jsonschema==2.6.0 # 指定兼容版本 ``` #### 步骤 6:重新安装 neohost-backend ```bash sudo dpkg -i neohost-backend-xxx.deb # 替换为实际 DEB 文件名 sudo apt install -f # 再次修复依赖 ``` > **重要提示**:如果之前安装失败导致残留文件,需先清理: > ```bash > sudo dpkg --purge neohost-backend # 清除旧安装 > sudo rm -rf /opt/neohost # 删除残留文件 > ``` #### 步骤 7:配置镜像源(可选) 在 `~/.pip/pip.conf` 添加: ```ini [global] index-url = https://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com ``` ### 问题分析 该错误通常由以下原因导致: 1. 系统默认 Python 版本为 Python 3.x 2. 缺少 Python 2.7 运行时环境 3. `python` 命令未正确链接到 Python 2.7 4. 缺少必要的 jsonschema 模块[^1] > **注意**:现代 Linux 系统(如 Ubuntu 20.04+)默认不安装 Python 2,需手动配置。安装后建议使用 `update-alternatives` 管理多版本: > ```bash > sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 > sudo update-alternatives --config python # 选择默认版本 > ``` ### 相关问题 1. 如何在 Ubuntu 22.04 中永久设置 Python 2 为默认版本? 2. 安装 jsonschema 时出现 "No such file or directory" 错误如何解决? 3. 如何验证 neohost-backend 是否安装成功? 4. Python 2 和 Python 3 共存时如何管理模块依赖? [^1]: 参考兄弟篇解决方案:【问题记录】Mellanox网卡性能调试工具neohost1.5.0安装遇到的问题记录
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值