虚拟机搭建 Lustre 文件系统

本文的目标是使用虚拟机搭建 Lustre 系统,体验学习Lustre文件系统。具体来说,该文件系统有四个节点,一个mds节点,两个oss节点,一个client节点;下图展示了该系统的全貌。

Lustre文件系统

Lustre文件系统

背景

  • 虚拟机镜像使用 CentOS-7-x86_64-DVD-1511.iso,该镜像的官方下载地址请点击 这里
  • 使用VMware ESXi虚拟化平台管理虚拟机
  • 每个虚拟机分配两块磁盘,一块用于操作系统的安装,另一块用于Lustre文件系统存储
  • 需要同时起五个虚拟机(有一个用于本地repo功能),所以尽量选用一个高性能的宿主机
  • 支持LDISKFS和ZFS

注意

使用VMware Workstation,或者Virtual Box等虚拟机管理软件也可以。本文以VMware ESXi为例做演示。

安装配置虚拟机

首先完成一台虚拟机的安装,然后在该虚拟机上针对Lustre系统做一些基础配置,最后关闭该虚拟机,使用VMware ESXi的 导出OVF模板 功能(其他虚拟机管理软件也有类似功能)导出该虚拟机的示例模板。最终利用虚拟机模板再创建四个虚拟机,用于构建Lustre文件系统。

虚拟机安装

根据宿主机的性能安排虚拟机的硬件配置,不确定的配置使用默认值即可;需要注意的是给虚拟机分配两块磁盘,在本例中,系统盘分配20G,Lustre存储盘分配16G。

虚拟机配置

虚拟机配置

加载 CentOS-7-x86_64-DVD-1511.iso 镜像,上电后选择 minimal 安装方式安装即可。

简单配置虚拟机

  • 查看Linux版本

  • 安装一些基础包

  • 关闭SELINUX(Lustre不支持SELINUX)

  • 关闭防火墙,或者添加iptables规则

导出虚拟机模板

正常关闭该虚拟机后,导出该虚拟机模板。

导出OVF模板

导出OVF模板

获得五个虚拟机

利用虚拟机模板,使用 部署OVF模板 功能创建四个虚拟机作为Lustre文件系统的四个节点。

创建四个节点

创建四个节点

使用 hostnamectl set-hostname mds/oss1/oss2/client1 命令设置这四个节点的主机名,便于分辨。起始的虚拟机作为repo主机(主机名设置为repo),为这四个节点提供Lustre repo功能。

构建本地Lustre repo库

该小节严格遵循 Using YUM to Manage Local Software Provisioning 的步骤来完成本地repo库的搭建。基本原理就是在repo主机上起一个web服务器,把从官方源上拷贝过来的Lustre安装包放到web服务目录中;mds/oss1/oss2/client1这四个节点安装Lustre时就可以直接使用repo主机的web服务提供的repo了,从而更方便地统一部署安装Lustre了。

创建repo定义

本例使用了2.10.3版本(注意,该版本有bug,建议使用最新版本),从 官方repo 中选择目标版本,将目标版本的URL分别填到对应的baseurl变量中,可以排除掉用于debug功能的rpm包从而减小安装。

同步源到本地

使用 reposync 命令将官方源中的包同步到本地(repo主机),目标目录是 /var/www/html/repo,即Apache服务器的默认目录。

创建repo元数据

创建本地repo的元数据:

创建repo访问文件

该文件定义了repo主机提供的本地源服务,其中 192.168.199.143 是repo主机的IP地址,确保Lustre文件系统的四个节点都可以访问到该地址。

  1. 在repo主机上 service httpd start 启动web服务,关闭防火墙或开放80端口,使web服务可用
  2. 将该 lustre.repo 文件拷贝到mds/oss1/oss2/client1这四个节点的 /etc/yum.repos.d/ 目录中
  3. 可在mds/oss1/oss2/client1四节点中使用 curl 命令验证本地repo的可用性

搭建Lustre

至此,准备工作完成,可以开始Lustre的安装了。

mds/oss1/oss2三节点安装

在mds/oss1/oss2这三个节点上执行以下命令,完成Lustre服务端的软件包安装和模块插入。

具体插入的内核模块可参看以下输出:

troubleshooting

在上述命令中有对某些包的升级操作,主要原因是它们的版本太低,所以需要升级。

诸如此类的:

client1节点安装

在client1节点执行以下命令,完成Lustre客户端的软件包安装和模块插入。

配置mds

终于可以配置mds了,将之前添加的第二块盘(/dev/sdb)作为Lustre的存储盘,格式化为lustre格式。

最后创建挂载点,挂载该盘。

配置oss1

在oss1节点将第二块盘作为ost类型的存储盘,其中 192.168.199.138 为mds节点的IP。

最后创建挂载点,挂载sdb。

配置oss2

同理,oss2的配置与oss1一样。

配置client1

在client1节点创建挂载点,挂载Lustre文件系统。

验证Lustre

在client1节点可以查看Lustre文件系统的所有磁盘情况。

简单测试

试了一下写入速度,同样的128M写入10次,在client1节点本地可达到118MB/s,写入到Lustre文件系统速度在12.1MB/s;当然这肯定不能作为结论,因为毕竟只是一次在虚拟机上的尝试安装,没有考虑网络、磁盘和其他硬件性能等。

测试结果

测试结果

另外,不小心发现了Lustre 2.10.3版本的bug,从上图可以看出查看 /lustre 目录时报错了。查了一下,原来是个已知bug,并且在2.10.4上已经修复了。具体bug信息可以查看 RHEL/CentOS 7.5 prevent listing Lustre directory contents

关于DKMS

Using_DKMS 上提到需要安装DKMS的相关开发包(见下面的yum命令),才可以支持DKMS。

但本例中,没有执行上述命令,依然有DKMS存在,再具体了没有深入研究;具体输出可查看下面,mds/oss1/oss2输出相同,四节点都没有升级内核(可能与这有关?)。

mds输出

oss1输出

oss2输出

client1输出

参考资料

  1. Creating a Lustre Test System from Source with Virtual Machines : 讲解了虚拟机源码安装Lustre的简要步骤,虽然使用的Lustre、Linux版本较低,但参考价值很大
  2. Installing the Lustre Software : 很全面很具体的安装部署文档,参考价值很大
  3. Lustre* Software Release 2.x Manual : 官方手册,大而全,可翻阅
如无特殊说明,文章均为本站原创,转载请注明出处
源自: 王明军的博客
本文链接地址: 虚拟机搭建 Lustre 文件系统
广告

Categories: Lustre

Tagged as: , , , ,

1 reply

  1. 唉,这些我好像在我爸的旧书堆里看到过,他也考了个啥网络工程师,可这证书上的灰有5毫米厚了,他现在竟然是。。。。。中学信息老师

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.