本篇博客將在KVM虛擬機中部署Lustre文件系統。
操做系統版本爲CentOS6.5_x86_64。Lustre軟件包版本在官方下載與內核版本2.6.32-431相對應的rpm(包括server和client)等所有的包。
實踐思路爲建立一個kvm模板主機,在該主機完成lustre文件系統軟件包安裝以後,而後克隆6個主機。node
首先建立虛擬機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.conf
centos
重啓主機
重啓了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
注意:網絡
在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文件系統後端存儲配置。下面將進行文件系統的建立和掛載測試
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/mdt00
;mount.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/ost00
;mount.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
查看當前掛載目錄的條帶化分配,以下圖
根據圖上顯示,全部在掛載節點建立的文件和目錄,將會被分配到4個OST上
修改掛載目錄分配到一個OST上,執行命令:lfs setstripe /mnt/lustre -c 1
;lfs 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上
以下圖,100M的test.img,剛開始分佈在obdidx=1上,執行命令lfs migrate test.img --stripe-count=3
以後,經過lfs getstripe test.img
查看到,test.img已經被遷移至其餘三個OST上