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


1. Lustre文件系統概述

2. Lustre文件系統部署

2.1 基本環境

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

2.2 部署過程

2.2.1 模板主機配置

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

lustre客戶端軟件包:

lustre文件系統依賴包:

然后,執行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.conf

重啟主機
重啟了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大小的虛擬磁盤

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

為主機添加磁盤
執行以下命令,為各個虛擬主機添加磁盤

#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文件系統探索


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM