Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >源码编译Lustre-2.15.2

源码编译Lustre-2.15.2

作者头像
用户4700054
发布于 2023-02-26 06:49:21
发布于 2023-02-26 06:49:21
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

AlmaLinux版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// OS镜像:AlmaLinux-8.7-x86_64-dvd.iso
[root@Lustre-OS ~/Source/zfs]$ uname -a
Linux Lustre-OS 4.18.0-425.3.1.el8.x86_64 #1 SMP Tue Nov 8 14:08:25 EST 2022 x86_64 x86_64 x86_64 GNU/Linux

添加lustre.repo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 需要把这个园添加到节点中,后面源码编译需要这个源安装系统包
[root@Lustre-OS ~/Source/lustre-2.15.2]$ cat /etc/yum.repos.d/lustre.repo 
[lustre-server]
name=lustre-server
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.15.2/el8.7/server/
gpgcheck=0


[lustre-client]
name=lustre-client
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-2.15.2/el8.7/client/
gpgcheck=0

[e2fsprogs-wc]
name=e2fsprogs-wc
baseurl=https://downloads.whamcloud.com/public/e2fsprogs/latest/el8/
gpgcheck=0

基于AlmaLinux安装系统依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/********系统组件依赖**********
[root@Lustre-OS ~]$ yum -y groupinstall "Development Tools"

// 查看内核版本保持和kernel-devel和kernel保持一致,安装完毕后kernel的源码路径呈现在/usr/src/kernels/4.18.0-425.3.1.el8.x86_64路径
[root@Lustre-OS ~]$ rpm -qa|grep kernel
kernel-4.18.0-425.3.1.el8.x86_64
// lustre源中也有 kernel-devel,先尝试自带的kernel-devel安装
[root@Lustre-OS ~]$ yum install kernel-devel-4.18.0-425.3.1.el8.x86_64

[root@Lustre-OS ~]$ yum --nogpgcheck --enablerepo=*  install -y  audit-libs-devel binutils-devel elfutils-devel kabi-dw ncurses-devel newt-devel numactl-devel openssl-devel pciutils-devel perl perl-devel python2 python3-docutils xmlto xz-devel elfutils-libelf-devel libcap-devel libcap-ng-devel llvm-toolset libyaml libyaml-devel kernel-rpm-macros kernel-abi-whitelists uuid libuuid-devel libblkid libblkid-devel libtirpc-devel libtirpc libaio-devel libattr-devel   libffi-devel libudev-devel ncompress python3-cffi python3-devel python3-packaging  libmount libmount-devel make cmake automake gdb gcc

[root@Lustre-OS ~]$ yum --nogpgcheck --enablerepo=powertools  install libyaml-devel

[root@Lustre-OS ~]$ yum --nogpgcheck --disablerepo=* --enablerepo=e2fsprogs-wc  install  e2fsprogs e2fsprogs-devel e2fsprogs-libs libcom_err libcom_err-devel libss libss-devel 

[root@Lustre-OS ~]$ yum install  --disablerepo=*  --enablerepo=lustre-server kernel-debuginfo-common-x86_64.x86_64 -y

安装ZFS

  • 编译阶段
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/****************zfs****************/

// 开始配置和编译
[root@Lustre-OS ~/Source/zfs]$ git clone https://github.com/openzfs/zfs.git && cd zfs && git checkout zfs-2.1.5 
[root@Lustre-OS ~/Source/zfs]$ sh autogen.sh
[root@Lustre-OS ~/Source/zfs]$ ./configure --with-spec=redhat  --with-linux=/usr/src/kernels/4.18.0-425.3.1.el8.x86_64/

// 开始编译
[root@Lustre-OS ~/Source/zfs]$ make pkg-utils pkg-kmod

// 编译结果查看
[root@Lustre-OS ~/Source/zfs]$ mkdir -p zfs-rpm &&  mv *.rpm zfs-rpm/
[root@Lustre-OS ~/Source/zfs]$ ls zfs-rpm/ -l
total 126072
-rw-r--r--. 1 root root  1577432 Feb  8 20:38 kmod-zfs-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 16429760 Feb  8 20:38 kmod-zfs-debuginfo-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   403868 Feb  8 20:38 kmod-zfs-devel-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    37160 Feb  8 20:34 libnvpair3-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    93268 Feb  8 20:34 libnvpair3-debuginfo-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    32808 Feb  8 20:34 libuutil3-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    64156 Feb  8 20:34 libuutil3-debuginfo-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   234608 Feb  8 20:34 libzfs5-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   584520 Feb  8 20:34 libzfs5-debuginfo-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   384956 Feb  8 20:34 libzfs5-devel-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  1341368 Feb  8 20:34 libzpool5-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  3948900 Feb  8 20:34 libzpool5-debuginfo-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   120496 Feb  8 20:34 python3-pyzfs-2.1.5-1.el8.noarch.rpm
-rw-r--r--. 1 root root 34776594 Feb  8 20:30 zfs-2.1.5-1.el8.src.rpm
-rw-r--r--. 1 root root   673984 Feb  8 20:34 zfs-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  1030124 Feb  8 20:34 zfs-debuginfo-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root  2579340 Feb  8 20:34 zfs-debugsource-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root    17140 Feb  8 20:34 zfs-dracut-2.1.5-1.el8.noarch.rpm
-rw-r--r--. 1 root root 34772834 Feb  8 20:34 zfs-kmod-2.1.5-1.el8.src.rpm
-rw-r--r--. 1 root root  2208320 Feb  8 20:38 zfs-kmod-debugsource-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root 27365996 Feb  8 20:34 zfs-test-2.1.5-1.el8.x86_64.rpm
-rw-r--r--. 1 root root   365848 Feb  8 20:34 zfs-test-debuginfo-2.1.5-1.el8.x86_64.rpm
  • 安装阶段
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@Lustre-OS ~/Source/zfs/zfs-rpm]$ yum localinstall  -y  libuutil*.rpm libnvpair*.rpm zfs-debuginfo*.rpm zfs-debugsource*.rpm 

[root@Lustre-OS ~/Source/zfs/zfs-rpm]$ yum localinstall  -y  libzfs5*.rpm libzfs5*.rpm libzpool5*.rpm  zfs-kmod-debugsource*.rpm

[root@Lustre-OS ~/Source/zfs/zfs-rpm]$ yum localinstall  -y  kmod-zfs*.rpm zfs-2.1.5-1.el8.x86_64.rpm

m


[root@Lustre-OS ~/Source/zfs/zfs-rpm]$ rpm -ivh zfs-2.1.5-1.el8.src.rpm

// 确认下安装的包是否有遗漏
[root@Lustre-OS ~/Source/zfs/zfs-rpm]$ yum localinstall  -y  libuutil*.rpm libnvpair*.rpm  {zfs-[0-9].*,zfs-dracut-[0-9].*,kmod-zfs-[0-9].*,kmod-zfs-devel-[0-9].*,lib*}.*.rpm

// 内核加载zfs
[root@Lustre-OS ~/Source/zfs/zfs-rpm]$ modprobe zfs

安装Lustre Server

  • 编译阶段
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**************lustre -server ******/

[root@Lustre-OS ~]$ git clone git://git.whamcloud.com/fs/lustre-release.git
[root@Lustre-OS ~]cd lustre-release && git checkout 2.15.2 
[root@Lustre-OS ~]mv  lustre-release  lustre-2.15.2 && cd ~/Source/lustre-2.15.2
[root@Lustre-OS ~/Source/lustre-2.15.2]$ sh autogen.sh
[root@Lustre-OS ~/Source/lustre-2.15.2]$ make distclean


// 执行configure会报错,需要安装过程中的依赖libnl和libnl3-devel
[root@Lustre-OS ~/Source/lustre-2.15.2]$ wget https://www.infradead.org/~tgr/libnl/files/libnl-3.2.25.tar.gz
[root@Lustre-OS ~/Source/lustre-2.15.2]$ tar zxvf libnl-3.2.25.tar.gz 
[root@Lustre-OS ~/Source/lustre-2.15.2]$ cd libnl-3.2.25 && ./configure && make && make install

[root@Lustre-OS ~/Source/lustre-2.15.2]$ yum --nogpgcheck --enablerepo=*   install -y  libnl3-devel

// 添加用户自定义的lib路径
[root@Lustre-OS ~/Source/lustre-2.15.2]$ cat <<EOF >> /etc/ld.so.conf
/usr/local/lib
/usr/local/lib64
/usr/lib
/usr/lib64
EOF

// 重新加载链接库
[root@Lustre-OS ~/Source/lustre-2.15.2]$ ldconfig



// 支持编译ldiskfs-osd先决条件是安装zfs和kernel-debuginfo-common-x86_64
// 编译zfs-osd和ldiskfs-osd
[root@Lustre-OS ~/Source/lustre-2.15.2]$ rm -rf configure.log && ./configure  --enable-quota --enable-server \
--with-linux=/usr/src/kernels/4.18.0-425.3.1.el8.x86_64  --with-zfs=/usr/src/zfs-2.1.5/  >> configure.log 2>&1 &

[root@Lustre-OS ~/Source/lustre-2.15.2]$ make rpms 
[root@Lustre-OS ~/Source/lustre-2.15.2]$ mkdir -p server-rpm &&mv *.rpm server-rpm/
  • 安装阶段
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// kmod-lustre安装
[root@Lustre-Server ~/Source/lustre-2.15.2/server-rpm]$ yum localinstall -y kmod-lustre-2.15.2-1.el8.x86_64.rpm kmod-lustre-debuginfo-2.15.2-1.el8.x86_64.rpm   lustre-debuginfo-2.15.2-1.el8.x86_64.rpm lustre-debugsource-2.15.2-1.el8.x86_64.rpm

[root@Lustre-Server ~/Source/lustre-2.15.2/server-rpm]$ yum -y localinstall kmod-lustre-osd-*.rpm  lustre-osd-ldiskfs-mount-2.15.2-1.el8.x86_64.rpm lustre-osd-zfs-mount-2.15.2-1.el8.x86_64.rpm

[root@Lustre-Server ~/Source/lustre-2.15.2/server-rpm]$ yum -y localinstall   lustre-2.15.2-1.el8.x86_64.rpm   lustre-devel-2.15.2-1.el8.x86_64.rpm lustre-iokit-2.15.2-1.el8.x86_64.rpm lustre-osd-zfs-mount-debuginfo-2.15.2-1.el8.x86_64.rpm  lustre-osd-ldiskfs-mount-debuginfo-2.15.2-1.el8.x86_64.rpm

// 查看lustre的加载的内核模块
[root@Lustre-Server ~/Source/lustre-2.15.2/server-rpm]$ modprobe  -v lustre
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/kernel/net/sunrpc/sunrpc.ko.xz 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/net/libcfs.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/net/lnet.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/obdclass.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/ptlrpc.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/fld.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/fid.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/osc.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/lov.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/mdc.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/lmv.ko 
insmod /lib/modules/4.18.0-425.3.1.el8.x86_64/extra/lustre/fs/lustre.ko

安装Lustre Client

  • 编译阶段
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**************lustre client ******/
[root@Lustre-OS ~]$ cd && cd lustre-2.15.2 
[root@Lustre-OS ~/Source/lustre-2.15.2]$ make clean &&  make distclean
[root@Lustre-OS ~/Source/lustre-2.15.2]$  rm -rf configure.log && ./configure   --disable-server --enable-client \
--with-linux=/usr/src/kernels/4.18.0-425.3.1.el8.x86_64 >> configure.log 2>&1 &

[root@Lustre-OS ~/Source/lustre-2.15.2]$ make rpms 
[root@Lustre-OS ~/Source/lustre-2.15.2]$ mkdir -p client-rpm &&mv *.rpm client-rpm/
  • 安装阶段
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@Lustre-Client ~/Source/lustre-2.15.2]$ yum localinstall -y   kmod-lustre-client-2.15.2-1.el8.x86_64.rpm \
 kmod-lustre-client-debuginfo-2.15.2-1.el8.x86_64.rpm          \
 lustre-client-2.15.2-1.el8.x86_64.rpm                         \
 lustre-client-debuginfo-2.15.2-1.el8.x86_64.rpm               \
 lustre-client-debugsource-2.15.2-1.el8.x86_64.rpm             \
 lustre-client-devel-2.15.2-1.el8.x86_64.rpm                   \
 lustre-iokit-2.15.2-1.el8.x86_64.rpm
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
flutter仿boss直聘,一个比较完整的例子(一)
简介:2年前,RN刚出来时做了个仿拉钩的demo,react-native-lagou. 这次flutter来了,想感受一下,索性用目前flutter的版本写的一个仿boss直聘应用。 时间有限,没完全仿照,去掉了一些功能,但是界面风格一致,有参考价值。
kimihe
2020/03/27
1.5K1
基于 Flutter 定制一套快速开发框架(一)
现在要说哪个跨平台开发框架整一个 App 速度快一些,说 Flutter 第二,大概没没有几个敢说第一,Flutter 毫无疑问,是 目前来讲比较火爆的 跨平台研发框架了,Flutter 支持全部的平台,现在已经看到一些小伙伴在使用 Flutter 做 web 开发了,虽然本人不是太推荐,毕竟 web 上还是的 看 React & Vue 系列,这两位大哥目前看来还是更加懂 web 一些,Flutter 因为其自己实现的渲染引擎,因此在多端显示上具备其他跨平台框架不具备的优势,因此注重交互体验一致性的小伙伴来说,这毫无疑问就是首选,今天的主题是基于 Flutter ,如何打造一款快速开发的框架。
老码小张
2023/12/14
6660
基于 Flutter 定制一套快速开发框架(一)
Flutter 中Color 使用
发现个问题:包名和调用名称 不一致但是只要代码中的class名一直就行,说明这个可以做成配置文件。
zhangjiqun
2024/12/16
740
Flutter  中Color 使用
flutter主题设置
Theme组件可以为material APP定义主题数据(ThemeData)。Material组件库里很多组件都使用了主题数据, 如导航栏颜色、标题字体、Icon样式等。Theme内会使用InheritedWidget来为其子树共享样式数据。
用户1974410
2022/09/20
4.6K0
flutter主题设置
Flutter跨平台移动端开发丨WillPopScope、InheritedWidget、Theme
通过 InheritedWidget 数据可以在 Widget 树中从上向下共享与传递,组件之间也可实现跨级传递数据
码脑
2019/05/25
1.4K0
Flutter主题切换——让你的APP也能一键换肤
为了让你的 App 更美观,主题切换已经是一个必不可少的功能了,但如果想在传统的 Android 和 iOS 上分别适配不同的主题相当繁琐。但这一切,在 Flutter 中都非常容易实现。今天我们就来看看,如何在 Flutter 中给你的 App 添加换肤功能。
出其东门
2020/04/26
4.8K0
FlutterComponent最佳实践之色彩管理
Flutter中关于色彩和主题的内容非常之多,我们需要理清不同的Color之间的异同,才能更好的开发Flutter应用。
用户1907613
2022/03/31
1.7K0
FlutterComponent最佳实践之色彩管理
Flutter | 常用组件分类、概述、实战
AppBar(title属性,Text组件; action:动作响应;!!!! titleSpacing:标题文字间距; toolbarOpacity:标题透明度;)
凌川江雪
2020/06/16
4.4K0
Flutter 小技巧之 Flutter 3 下的 ThemeExtensions 和 Material3
本篇分享一个简单轻松的内容: ThemeExtensions 和 Material3 ,它们都是 Flutter 3.0 中的重要组成部分,相信后面的小知识你可能还没了解过~。
GSYTech
2022/06/06
1.5K0
《Flutter 小技巧》一行禁用App,一行置灰App,致敬
老孟导读:作为一个程序开发者,我们可以用程序员独有的方式表达对抗战在一线工作者的致敬 -禁用App,致灰App。希望这个功能永远不会在有开启的一天。
老孟Flutter
2020/09/11
6240
Flutter | 自定义一个 Stepper 步骤组件
因为当时了解过 Material 组件库里有一个 Stepper 控件,是类似的效果,我就和他说,可以魔改一下 Stepper,感觉应该不难,然后他回过来了一个这个表情:
Flutter笔记
2019/08/02
3.5K1
Flutter 多语言、主题切换之GetX库
  关于GetX库前面我们讲述了状态管理的使用,实际上GetX是非常强大的,功能很多,本篇文章中我们将介绍GetX的多语言切换和主题切换等功能。
晨曦_LLW
2024/05/25
1.3K0
Flutter 多语言、主题切换之GetX库
【Flutter】Flutter 应用主题 ( ThemeData | 动态修改主题 )
Flutter 应用主题都封装在 ThemeData 类中 , 在 MaterialApp 的 theme 字段 , 可以设置 ThemeData 主题 , 可设置的选项如下 , 下面的 ThemeData 工厂构造函数中的可选参数就是可以设置的各种主题选项 ;
韩曙亮
2023/03/28
1.6K0
【Flutter】Flutter 应用主题 ( ThemeData | 动态修改主题 )
C001Android学习笔记-初级控件(一)
px(像素)、in(英寸)、mm(毫米)、pt(磅,1/72英寸)、dp(与设备无关的显示单位)、dip(就是dp)、sp(用于设置字体大小);
訾博ZiBo
2025/01/06
1250
你知道吗,Flutter内置了10多种Button控件
Flutter内置了10多种Button(按钮)类控件供我们使用,了解这些控件有助于提高我们的开发速度。
老孟Flutter
2020/09/11
3.2K0
Flutter 页面交互 | 路由跳转方式、常用API、发送接收数据、可能发生的问题与知识点拓展
【pushAndRemoveUntil与pushNamedAndRemoveUntil区别】
凌川江雪
2020/06/29
4K0
Flutter 页面交互 | 路由跳转方式、常用API、发送接收数据、可能发生的问题与知识点拓展
Flutter主题切换 flutter redux
创建一个State对象AppState,用于储存需要共享的主题数据,并且完成AppState初始化工作,如下面代码所示
易寒
2022/01/20
8870
Flutter小课堂:Text知多少
Flutter小课堂开课了,今天的主角是Text,文字和图片几乎统治了我们的整个视觉世界 今天将带你了解一下Flutter中Text的一些属性及用法 1.简单使用 可以通过工具栏开启,显示文字
张风捷特烈
2020/04/30
5940
Flutter小课堂:Text知多少
flutter3_window_chat仿微信桌面端聊天实战
年前有给大家分享一款flutter3.x+dart3手机端聊天App实例。春节期间就又捣鼓了flutter3桌面端开发实践项目。
andy2018
2024/03/03
7940
Android关于Color你所知道的和不知道的一切
零、前言 1.做安卓的大多应该对颜色不太敏感,毕竟咱是敲代码的,颜色有设计师呢。 2.不过作为一名在大学被颜色熏(陶)过四年的人,对颜色多少还是挺亲切的(虽然当时挺讨厌的) 3.纪念也好,记录也罢,为它写篇总结也理所应当 4.如果你觉得并不需要了解关于颜色的知识,那你可以将本文当做一篇科普文(出去跟人家吹吹牛还是够用的) ---- 一、颜色知识科普: 这一切都要从光开始: 有个叫牛顿的人拿一块三棱镜将太阳光折射出了彩色产生色散现象: ----色散现象说明光在介质中的速度v=c/n(或折射率n)随
张风捷特烈
2018/12/11
2.8K0
Android关于Color你所知道的和不知道的一切
相关推荐
flutter仿boss直聘,一个比较完整的例子(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验