ubuntu+lustre 文件系统

简介:
Lustre 是一个透明的全局文件系统,客户端可以透明地访问集群文件系统中的数据,而无需知道这些数据的实际存储位置。客户端通过网络读取服务器上的数据,存储服务 器负责实际文件系统的读写操作以及存储设备的连接,元数据服务器负责文件系统目录结构、文件权限和文件的扩展属性以及维护整个文件系统的数据一致性和响应 客户端的请求。 Lustre把文件当作由元数据服务器定位的对象,元数据服务器指导实际的文件I/O请求到存储服务器,存储服务器管理在基于对象的磁盘组上的物理存储。 由于采用元数据和存储数据相分离的技术,可以充分分离计算和存储资源,使得客户端计算机可以专注于用户和应用程序的请求;存储服务器和元数据服务器专注于 读、传输和写数据。存储服务器端的数据备份和存储配置以及存储服务器扩充等操作不会影响到客户端,存储服务器和元数据服务器均不会成为性能瓶颈。

引用:[url]http://www.ixdba.net/article/02/1211$2.html[/url]

lustre文章还是不少的,但是关于ubuntu上的文章很少,因为我的服务器多半是ubuntu,所以这两天研究了下lustre的编译安装真的够麻烦的,但是只要明白了,也就没什么难度了!

mds  :192.168.6.6
ost1 :192.168.6.119
ost2 :192.168.6.137
client:192.168.6.137         因为资源问题,我把  client 在 ost2 机器上操作了。

一.在mds编译内核在  [url]http://www.kernel.org[/url] 下载 linux-2.6.22 内核,因为lustre-1.6.5最高支持 
linux-2.6.22 
apt-get install quilt linux-patch-lustre 
libncurses5-dev  module-assistant dpatch  lustre-utils
shell $> cd /usr/src
shell $> ls
kernel-patches linux-2.6.22.tar.bz2
shell $> tar jxvf   linux-2.6.22.tar.bz2
shell $> cd linux-2.6.22
shell $> ln -s /usr/src/
kernel-patches/lustre/series/2.6.22-vanilla.series series
shell $> ln -s /usr/src/kernel-patches/lustre/patches/ patches
shell $> quilt setup series -d patches 
#为内核打 lustre 补丁
shell $> quilt push -av
shell $> quilt refresh
shell $> make clean
shell $> make mrproper
shell $> cp /boot/config-2.6.27.7-server  .config
shell $> make menuconfig
#编译内核,相信大家都知道自己需要什么,这里我就用默认的没有作任何改变!
shell $> make-kpkg --added-patches=lustre --initrd --append-to-version "-lustre" --revisionn ludy.1 kernel_image
#version 与 revision 后跟的是版本号!
shell $>dpkg -i linux-image-2.6.22-lustre_2.6.22-lustre-ludy.1_amd64.deb
shell $> reboot
#从启后选用 新编译的内核
shell $> uname -r
2.6.22-lustre
shell $> m-a auto-install lustre
#安装含lustre内核模块
#漫长的等待后 终于编译完毕了!
把 lustre-modules-2.6.22-lustre_1.6.5_amd64.deb  linux-image-2.6.22-lustre_2.6.22-lustre-ludy.1_amd64.deb拷贝到两台 ost与client 机器上安装都选用 2.6.22内核进入系统!
二.测试
1.修改三台服务器的 /etc/hosts
   192.168.6.6 mds
   192.168.6.119 ost
   192.168.6.137 cls
2.在md服务器执行以下操作
modprobe lustre
modprobe ldiskfs
modprobe lnet 'network="tcp0(eth0)"'
mkfs.lustre --reformat --fsname=testfs --mdt --mgs /dev/sda5 
#如硬盘没有被格式化或者里面有数据的话需要加 --reformat参数格式化!
mkdir -p /opt/mds
mount -t lustre /dev/sda5 /opt/mds
3.在两台 ost 上执行以下操作
modprobe lustre
modprobe ldiskfs
modprobe lnet 'network="tcp0(eth0)"'
mkfs.lustre --fsname=testfs --ost --mgsnode=mds@tcp0 /dev/sdb1
#同样如果 sdb1 没有被格式化或者有数据必须加 --reformat参数
mount -t lustre /dev/sdb1 /opt
4.在 client服务器上执行 (也就是ost2)
mount -t lustre mds@tcp0:/testfs /mnt
好三台服务器已经连上了!
我们建立己个大文件测试
5.在client 服务器上执行
dd if=/dev/zero of=test1 bs=1024 count=40000
40000+0 records in
40000+0 records out
40960000 bytes (41 MB) copied, 2.85257 s, 14.4 MB/s

在 ost1服务器 执行 df -lh查看
/dev/sdb1            1004M   57M  897M   6% /opt
在 ost2 服务器 执行 df -lh  查看
/dev/sdb1            1004M   17M  897M   2% /opt
明显 ost1 写入了 40M 的数据 而 ost2没有
在次执行 dd if=/dev/zero of=test2 bs=1024 count=40000
40000+0 records in
40000+0 records out
40960000 bytes (41 MB) copied, 4.66784 s, 8.8 MB/s
在ost1服务器 执行 df -lh  查看
/dev/sdb1            1004M   57M  897M   6% /opt 
没有变动
在ost2服务器 执行 df -lh 查看
/dev/sdb1            1004M   57M  897M   6% /opt
ost2 被写入了 40M 数据!

6.停止lustre文件系统 
umount -f /opt

我做一点简单 说明 来 说  lustre 工作原理!

mds  大概就是 存放元数据的地方  也就是 文件列表一样的东西,他知道存储的文件在 哪台ost服务器上 
ost 就是存储文件的服务器

我也是刚刚研究 lustre所以不能准确的说出 什么。希望高手能够多多指点!

注意:以后启动 mds  ost 略过 mkfs.lustre不用从新建立文件系统

只需要  mount -t lustre 挂在文件系统即可!



本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/125071,如需转载请自行联系原作者

相关文章
|
2月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
141 15
|
5月前
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
298 0
|
6月前
|
Ubuntu Linux Shell
使用ramdisk启动ubuntu文件系统(pivot_root)
使用ramdisk启动ubuntu文件系统(pivot_root)
|
7月前
|
Ubuntu 网络协议 搜索推荐
Ubuntu系统上定制文件系统
基于全志T507H处理器设计研发的OKT507-C开发板为例进行介绍。 Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。 能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统
|
9月前
|
Ubuntu 网络协议 搜索推荐
在Ubuntu系统上定制文件系统
在Ubuntu上定制全志T507H开发板的文件系统,包括解压文件系统、安装QEMU、修改配置、挂载文件系统、安装软件及打包文件系统。使用QEMU模拟器来挂载和操作文件系统,通过`apt-get`在线安装所需软件,例如minicom。最后,将定制的文件系统打包成新的ISO镜像,用于烧录到开发板,实现预装软件的自动化流程,简化批量生产中的系统配置步骤。
|
9月前
|
Ubuntu
蓝易云 - 解决ubuntu文件系统变成只读的方法
请注意,上述操作可能会导致数据丢失,所以在操作前最好备份重要数据。如果问题依然存在,可能需要考虑更深入的系统诊断或者重装系统。
328 1
|
10月前
|
Ubuntu 网络协议 搜索推荐
Ubuntu系统上定制文件系统
基于全志T507H处理器设计研发的OKT507-C开发板为例进行介绍。 Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。 能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统
|
10月前
|
Ubuntu 网络协议 搜索推荐
如何在Ubuntu系统上定制文件系统
该文介绍了如何在基于全志T507H处理器的OKT507-C开发板上定制Ubuntu文件系统。首先,通过解压文件系统到指定目录。接着,安装QEMU模拟器并修改配置,包括复制QEMU静态文件和DNS配置到文件系统,以及更新下载源。然后,挂载文件系统并使用shell脚本进行挂载和卸载,接着在挂载的文件系统中通过apt-get安装所需软件,如minicom。最后,打包文件系统为tar.gz格式,替换旧的文件系统压缩包,重新编译生成新的镜像烧录到开发板。通过这种方法,可以方便地批量定制和预装软件到开发板,提高生产效率。
|
10月前
|
Ubuntu Linux 芯片
Linux(2)ubuntu rootfs根文件系统制作
Linux(2)ubuntu rootfs根文件系统制作
422 0
|
Ubuntu 安全
Ubuntu 20.04 搭建NFS文件系统
Ubuntu 20.04 搭建NFS文件系统
426 0