Lustre文件系統部署和應用探索

1. Lustre文件系統概述

2. Lustre文件系統部署

2.1 基本環境

本篇博客將在KVM虛擬機中部署Lustre文件系統。
操做系統版本爲CentOS6.5_x86_64。Lustre軟件包版本在官方下載與內核版本2.6.32-431相對應的rpm(包括server和client)等所有的包。
實踐思路爲建立一個kvm模板主機,在該主機完成lustre文件系統軟件包安裝以後,而後克隆6個主機。node

2.2 部署過程

2.2.1 模板主機配置

首先建立虛擬機node31
將下載的lustre文件系統的rpm包上傳至node31,這些包包括:
lustre服務端軟件包:

lustre客戶端軟件包:

lustre文件系統依賴包:
python

而後,執行rpm安裝軟件,操做以下:後端

#首先安裝lustre文件系統依賴包,進入目錄e2fsprogs-centos6.5,執行
rpm -ivh * --nodeps --force
#其次安裝服務端軟件包,進入目錄lustre-server,執行
rpm -ivh kernel-* --nodeps --force
rpm -ivh lustre-* --nodeps --force
rpm -ivh perf-* --nodeps --force
rpm -ivh python-perf-* --nodeps --force
#而後安裝客戶端軟件包,進入目錄lustre-client,執行
rpm -ivh lustre-client-* --nodeps --force
rpm -ivh lustre-iokit-2.6.0-2.6.32_431.20.3.el6.x86_64.x86_64.rpm --nodeps --force
#最後,重啓node31,執行
reboot

內核加載和網絡配置
在node31的/etc/rc.local中追加:
modprobe lustre
modprobe ldiskfs
執行命令:
echo "options lnet networks=tcp0(eth0)" > /etc/modprobe.d/lustre.confcentos

重啓主機
重啓了node31以後,登錄node31執行unmae -a,能夠發現操做系統內核已經變成:
Linux node31 2.6.32-431.20.3.el6_lustre.x86_64 #1 SMP Fri Jul 11 11:58:21 PDT 2014 x86_64 x86_64 x86_64 GNU/Linux
上述過程完成了在kvm模板機node31中,完成了lustre文件系統部署。下面進行模板主機的克隆。執行命令:服務器

for i in $(seq -w 2 6)
do
virt-clone -n node3$i -o node31 -f /mnt/data/vhosts/node3$i.img -m 00:00:00:80:00:3$i
done

注意:網絡

  1. 本博客的虛擬機已經配置了開機自動獲取固定IP,IP綁定了MAC地址
  2. 各節點之間已經配置了ssh互信

2.2.2 爲主機添加磁盤

在2.2.1小節中,進行了部署lustre文件系統時,須要的主機和軟件安裝。下面進行磁盤添加。
lustre文件系統組件包括:MGS,MDS,OSS,三個部分均須要後端存儲MGT,MDT,OST
本篇博客將MGS和MDS分開,所以其後端存儲也不會在共享存儲上。
建立虛擬磁盤
執行如下命令,建立8塊1G大小的虛擬磁盤ssh

for i  in $(seq -w 01 08)
do
qemu-img create -f raw /mnt/data/vdisks/disk$i 1G
done

爲主機添加磁盤
執行如下命令,爲各個虛擬主機添加磁盤tcp

#node31
virsh attach-disk node31 /mnt/data/vdisks/disk01 vdb --cache none
#node32
virsh attach-disk node32 /mnt/data/vdisks/disk01 vdb --cache none
#node33
virsh attach-disk node33 /mnt/data/vdisks/disk03 vdb --cache none
virsh attach-disk node33 /mnt/data/vdisks/disk04 vdc --cache none
#node34
virsh attach-disk node34 /mnt/data/vdisks/disk03 vdb --cache none
virsh attach-disk node34 /mnt/data/vdisks/disk04 vdc --cache none
#node35
virsh attach-disk node35 /mnt/data/vdisks/disk05 vdb --cache none
virsh attach-disk node35 /mnt/data/vdisks/disk06 vdc --cache none
#node36
virsh attach-disk node36 /mnt/data/vdisks/disk05 vdb --cache none
virsh attach-disk node36 /mnt/data/vdisks/disk06 vdc --cache none

其中,node31和node32共享磁盤disk01,node33和node34共享磁盤disk03,disk04,node35和node36共享磁盤disk05,disk06
至此,已經完成了lustre文件系統後端存儲配置。下面將進行文件系統的建立和掛載測試

2.2.3 Lustre文件系統建立

MGS配置
在node31上,執行命令:
mkfs.lustre --fsname=mylustre --reformat --mgs --servicenode=192.168.80.31@tcp0 --servicenode=192.168.80.32@tcp0 /dev/vdb
--fsname 指定要建立的文件系統名稱;
--mgs 指定node31做爲MGS服務器;
--servicenode 指定備份容錯節點;
--reformat 從新格式化,避免再次建立文件系統時報錯
/dev/vdb 後端存儲設備MGT;
建立掛載點:mkdir -p /mnt/mgs00,同時在node32上建立
掛載MGT:mount.lustre /dev/vdb /mnt/mgs00操作系統

MDS配置
在node33上,執行命令:

#/dev/vdb
mkfs.lustre \
--fsname=mylustre \
--reformat --mdt \
--index=0 \
--mgsnode=192.168.80.31@tcp0:192.168.80.32@tcp0 \
--servicenode=192.168.80.33@tcp0 --servicenode=192.168.80.34@tcp0 \
/dev/vdb
#/dev/vdc
mkfs.lustre \
--fsname=mylustre \
--reformat --mdt \
--index=1 \
--mgsnode=192.168.80.31@tcp0:192.168.80.32@tcp0 \
--servicenode=192.168.80.33@tcp0 --servicenode=192.168.80.34@tcp0 \
/dev/vdc

建立掛載點:mkdir -p /mnt/mdt0{0,1},同時在node34上建立
掛載MDT:mount.lustre /dev/vdb /mnt/mdt00mount.lustre /dev/vdc /mnt/mdt01

OST配置
在node35上,執行命令:

#/dev/vdb
mkfs.lustre \
--fsname=mylustre \
--reformat --ost --index=0 \
--mgsnode=192.168.80.31@tcp0:192.168.80.32@tcp0 \
--servicenode=192.168.80.35@tcp0 --servicenode=192.168.80.36@tcp0 \
/dev/vdb
#/dev/vdc
mkfs.lustre \
--fsname=mylustre \
--reformat --ost --index=1 \
--mgsnode=192.168.80.31@tcp0:192.168.80.32@tcp0 \
--servicenode=192.168.80.35@tcp0 --servicenode=192.168.80.36@tcp0 \
/dev/vdc

建立掛載點:mkdir -p /mnt/ost0{0,1},同時在node36上建立
掛載OST:mount.lustre /dev/vdb /mnt/ost00mount.lustre /dev/vdc /mnt/ost01

客戶端掛載
上述過程完成以後,Lustre文件部署基本完成。
在node31上建立掛載點,mkdir -p /mnt/lustre
掛載lustre文件系統,mount.lustre 192.168.80.31@tcp0:192.168.80.32@tcp0:/mylustre /mnt/lustre/
執行命令,查看文件系統狀態,lfs df -h

3. Lustre文件系統管理

3.1 條帶化分佈

查看當前掛載目錄的條帶化分配,以下圖

根據圖上顯示,全部在掛載節點建立的文件和目錄,將會被分配到4個OST上
修改掛載目錄分配到一個OST上,執行命令:lfs setstripe /mnt/lustre -c 1lfs setstipe /mnt/lustre/liwl01 -c 1

寫入數據,進行測試:dd if=/dev/zero of=test.img bs=10M count=1

經過lfs getstipe查看到test.img分佈在index爲2的OST上,其磁盤佔用已經更新到7%,表示test.img實際上僅分佈在一個OST上

3.2 數據遷移

以下圖,100M的test.img,剛開始分佈在obdidx=1上,執行命令lfs migrate test.img --stripe-count=3以後,經過lfs getstripe test.img查看到,test.img已經被遷移至其餘三個OST上

4. Lustre文件系統探索

相關文章
相關標籤/搜索