Lustre Distributed File System


Contents

Intro

The Luster administration manual is 500 pages, and while filled with great info and very complete it is a bit daunting to do a quick set up. Following these steps you should be able to get a test cluster up in a very short period of time.

NOTE: I have since found this Quick Start Blueprint which is extremely helpful (too bad I didn't find this BEFORE I had to figure most of this out!) General information is also available at the main site where this good FAQ can also be found.

Mailing List: http://lists.lustre.org/mailman/options/lustre-discuss/peby%40sagonet.com lust3r4m3669337

Setting up a Lustre Cluster

Temp Cluster: Our temporary Luster cluster is currently in DC1 3:4 on these IPs.

207.150.181.10 - MDS
207.150.181.12 - OSS1
207.150.181.14 - OSS2

A simple scenario will consist of 3 server: (1) Management Data Server (MDS) and (2) Object Storage Servers (OSS). All three will have CentOS 5.3.

(In the future we might try this config and add the /mds and /oss partitions rather than using entire drives as devices. This way we can run software RAID 1 on the nodes. We also have to look yet at configuring High Availability (HA) services through heartbeat and configuring the OSS nodes using the failover options supported by luster.)

MDS: Software RAID 1 / = 20GB /swap 2GB /mds = remaining

OSS: Software RAID 1 / = 20GB /swap 2GB /oss = remaining

Installing Lustre

Setup Script: I made a script to automatically install all the RPMs needed on the MDS and OSS nodes. To connect from a client to the Lustre Cluster see the section below.

Create the file systems on the nodes:

 
 On the MGS Server:
 # mkfs.lustre --fsname=lustre --mgs --mdt /dev/sdb
 # mount -t lustre /dev/sdb /lustre/
 
 On each OSS Server:
 # mkfs.lustre --ost --fsname=lustre --mgsnode=207.150.181.10@tcp0 /dev/sdb
 #mount -t lustre /dev/sdb /lustre/

Now you can access this using from a client, for example from a CentOS Client

You will need these installed on the client:

[root@cobbler lustre]# rpm -qa | grep lustre
lustre-client-1.8.1-2.6.18_128.1.14.el5_lustre.1.8.1
lustre-client-modules-1.8.1-2.6.18_128.1.14.el5_lustre.1.8.1
lustre-modules-1.8.1-2.6.18_128.1.14.el5_lustre.1.8.1
kernel-lustre-2.6.18-128.1.14.el5_lustre.1.8.1

You can then mount the target with:

[root@cobbler]# mount -t lustre 207.150.181.10:/lustre /lustre

And it will show up such as:

[root@cobbler lustre]# df -h

207.150.181.10:/lustre
                      147G  460M  139G   1% /lustre

Or see the OSS mounts in the pool with:

[root@cobbler lustre]# lfs df -h
UUID                     bytes      Used Available  Use% Mounted on
lustre-MDT0000_UUID     130.4G    459.6M    122.5G    0% /lustre[MDT:0]
lustre-OST0000_UUID     146.7G      1.4G    137.8G    0% /lustre[OST:0]
lustre-OST0001_UUID     146.7G    459.6M    138.8G    0% /lustre[OST:1]

filesystem summary:     293.3G      1.9G    276.6G    0% /lustre

Managing Lustre

Please see the Quickstart Blueprint for an introduction to basic managment commands.

Stopping / Starting Storage Nodes:

[root@10-0-0-1 /]# lctl dl
  0 UP mgs MGS MGS 11
  1 UP mgc MGC207.150.181.10@tcp 286db1cc-9673-0e98-2a46-62f221910298 5
  2 UP mdt MDS MDS_uuid 3
  3 UP lov lustre-mdtlov lustre-mdtlov_UUID 4
  4 UP mds lustre-MDT0000 lustre-MDT0000_UUID 5
  5 UP osc lustre-OST0000-osc lustre-mdtlov_UUID 5
  6 UP osc lustre-OST0001-osc lustre-mdtlov_UUID 5

To deactivate the second OSS server, you would use:

[root@10-0-0-1 /]# lctl dl --device 6 deactivate 

Monitoring Striping

See the "Using Strips" section of the Quick Start guide to view and modify how data is striped across OSS nodes.

[root@cobbler lustre]# lfs getstripe /lustre/10megtest.file


Monitoring File System Useage

This project uses snmp to monitor filesystem usage and support Lustre

http://robinhood.sourceforge.net/

http://collectl.sourceforge.net/

Ubuntu Client

(Hummm . . . does not look good. There are some Lustre thins in repos, but not the unpatched client. Might have to build from lustre-source pkg.) (I could not get the module to build correctly. Not sure why. Configure fails saying it is unable to build modules at all.)

archimedes@Anduril:/$ sudo apt-get install lustre-utils lustre-source liblustre

You will also need to have linux-headers-x.y.z for your kernel installed

Then build the module using module-assistant

archimedes@Anduril:/$sudo module-assistant

(The assistant will install any needed build essential tools, then use SELECT: Select module or source package to work on, find the Lustre module and proceed with building it.)

To not use module-assistant, look in /usr/src/modules/lustre for the source file and configure and build manually.

http://wiki.lustre.org/index.php/LibLustre_How-To_Guide

Compiling Patchless Client from Source (Red Hat)

To compile a patchless client from source:

http://docs.hp.com/en/SFSUGG32-B/ch04s03.html

http://thuannvn.blogspot.com/2009/04/building-lustre-1651-against-latest.html

Looking for something?

Use the form below to search the wiki:

 

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!