lustre文件系統環境搭建及測試


1、節點角色

主機名 IP地址 角色
node1 192.168.xxx.xx1 Client
node2 192.168.xxx.xx2 MGS MGT MDS MDT
node3 192.168.xxx.xx3 OSS OST
node4 192.168.xxx.xx4 OSS OST

2、硬件配置

主機名 角色 磁盤 內存 備注
node1 Client 一塊(20GB) 2GB
node2 MGS MGT MDS MDT 兩塊(25GB+20GB) 2GB 兩塊磁盤是系統盤加存儲盤
node3 OSS OST 兩塊(25GB+20GB) 2GB 同上
node4 OSS OST 兩塊(25GB+20GB) 2GB 同上
[root@node2 lustre]# fdisk -l

磁盤 /dev/sda:26.8 GB, 26843545600 字節,52428800 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x000c5f94

   設備 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    52428799    25164800   8e  Linux LVM

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節


磁盤 /dev/mapper/centos-root:23.6 GB, 23613931520 字節,46120960 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節


磁盤 /dev/mapper/centos-swap:2147 MB, 2147483648 字節,4194304 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節

3、軟件版本

軟件 版本
Lustre lustre-2.10.1

4、安裝軟件包

安裝時注意:

  • 先關閉selinux和防火牆
  • 設置機器間的免密登錄
  • 軟件間的依賴關系、安裝順序
  • 軟件版本一致
  • 系統內核和lustre版本一致

4.1、安裝 e2fsprogs 相關包

yum -y --nogpgcheck install
....

下載地址:https://downloads.whamcloud.com/public/e2fsprogs/latest/el7/RPMS/x86_64/

4.2、安裝 kernel 相關包

yum -y --nogpgcheck install
kernel-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-devel-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-headers-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-tools-libs-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-tools-3.10.0-693.2.2.el7_lustre.x86_64.rpm
kernel-tools-libs-devel-3.10.0-693.2.2.el7_lustre.x86_64.rpm

修改開機時默認使用的內核

grub2-set-default 'CentOS Linux (kernel-3.10.0-693.2.2.el7_lustre.x86_64) 7 (Core)'

下載地址:https://downloads.whamcloud.com/public/lustre/lustre-2.10.1/el7/server/RPMS/x86_64/

如何修改默認啟動內核:https://blog.csdn.net/sinat_25606165/article/details/106693725

4.3、客戶端安裝

下載地址:https://downloads.whamcloud.com/public/lustre/lustre-2.10.1/el7/client/RPMS/x86_64/

yum -y --nogpgcheck install 
lustre-client-2.10.1-1.el7.x86_64.rpm
lustre-client-dkms-2.10.1-1.el7.noarch.rpm
lustre-iokit-2.10.1-1.el7.x86_64.rpm
kmod-lustre-client-2.10.1-1.el7.x86_64.rpm
lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64.rpm       
lustre-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm 

執行 rpm -qa | grep lustre 查看是否安裝成功。

安裝完成后,需要重啟機器。

重啟后,執行如下命令,加載 lustre 模塊。

[root@node1 ~]# cd /opt/lustre/
[root@node1 lustre]# modprobe lustre  # 如果安裝成功,則不會報錯。

關閉后,需要在各個節點再次運行 modprobe lustre 命令。

4.4、服務器端安裝

下載地址:https://downloads.whamcloud.com/public/lustre/lustre-2.10.1/el7/server/RPMS/x86_64/

yum -y --nogpgcheck install
libzpool2-0.7.1-1.el7.x86_64.rpm
libuutil1-0.7.1-1.el7.x86_64.rpm
libnvpair1-0.7.1-1.el7.x86_64.rpm
perf-3.10.0-693.2.2.el7_lustre.x86_64.rpm 
python-perf-3.10.0-693.2.2.el7_lustre.x86_64.rpm
libzfs2-0.7.1-1.el7.x86_64.rpm 
libzfs2-devel-0.7.1-1.el7.x86_64.rpm
spl-dkms-0.7.1-1.el7.noarch.rpm
spl-0.7.1-1.el7.x86_64.rpm
zfs-dkms-0.7.1-1.el7.noarch.rpm
zfs-0.7.1-1.el7.x86_64.rpm
kmod-lustre-2.10.1-1.el7.x86_64.rpm 
lustre-osd-ldiskfs-mount-2.10.1-1.el7.x86_64.rpm
lustre-osd-zfs-mount-2.10.1-1.el7.x86_64.rpm
kmod-lustre-osd-ldiskfs-2.10.1-1.el7.x86_64.rpm
lustre-dkms-2.10.1-1.el7.noarch.rpm
lustre-iokit-2.10.1-1.el7.x86_64.rpm
lustre-2.10.1-1.el7.x86_64.rpm                               

安裝 kmod-lustre-osd-zfs-2.10.1-1.el7.x86_64.rpm 中,會報如下錯誤,暫未解決,但不影響后期配置。

env01

執行 rpm -qa | grep lustre 查看是否安裝成功。

安裝完成后,需要重啟。

重啟后,執行如下命令,加載 lustre 和 ldiskfs 模塊。

[root@node2 lustre]# cd /opt/lustre/
[root@node2 lustre]# modprobe lustre
[root@node2 lustre]# modprobe ldiskfs

# 其他兩個節點執行同樣操作
[root@node3 lustre]# ....
[root@node4 lustre]# ....

4.5、配置

以上均執行完畢,進行配置。

在塊設備上創建 MGS\MDT 組合文件系統。在 MDS 節點上運行:

# 這里的 /dev/sdb 就是新增的 20GB 的磁盤空間。新增磁盤后,執行 `fdisk -l` ,能找到即成功。
# 添加 --reformat 項是因為:
# mkfs.lustre FATAL: Device /dev/sdb was previously formatted for lustre. Use --reformat to reformat it, or tunefs.lustre to modify.
[root@node2 ~]# mkfs.lustre --reformat --fsname=lustrefs --mgs --mdt --index=0 /dev/sdb
Failed to initialize ZFS library: 256

   Permanent disk data:
Target:     lustrefs:MDT0000
Index:      0
Lustre FS:  lustrefs
Mount type: ldiskfs
Flags:      0x65
              (MDT MGS first_time update )
Persistent mount opts: user_xattr,errors=remount-ro
Parameters:

device size = 20480MB
formatting backing filesystem ldiskfs on /dev/sdb
        target name   lustrefs:MDT0000
        4k blocks     5242880
        options        -J size=819 -I 1024 -i 2560 -q -O dirdata,uninit_bg,^extents,dir_nlink,quota,huge_file,flex_bg -E lazy_journal_init -F
mkfs_cmd = mke2fs -j -b 4096 -L lustrefs:MDT0000  -J size=819 -I 1024 -i 2560 -q -O dirdata,uninit_bg,^extents,dir_nlink,quota,huge_file,flex_bg -E lazy_journal_init -F /dev/sdb 5242880
Writing CONFIGS/mountdata

在塊設備上裝入 MGS\MDT 組合文件系統。在 MDS 節點上運行:

[root@node2 mnt]# mount.lustre /dev/sdb /mnt/mdt/
Failed to initialize ZFS library: 256
mount.lustre: increased /sys/block/sdb/queue/max_sectors_kb from 512 to 4096

[root@node2 lustre]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
devtmpfs                 899M     0  899M    0% /dev
tmpfs                    912M     0  912M    0% /dev/shm
tmpfs                    912M  9.5M  903M    2% /run
tmpfs                    912M     0  912M    0% /sys/fs/cgroup
/dev/mapper/centos-root   22G  8.2G   14G   38% /
/dev/sda1               1014M  197M  818M   20% /boot
tmpfs                    183M     0  183M    0% /run/user/0
/dev/sdb                  12G  2.3M   11G    1% /mnt/mdt

本例中,OSTs(ost0和ost1)在不同 OSSs(oss0和oss1)節點上創建。

在 oss0 上創建 ost0:

# 這里是 node2 的 IP 地址
# 為增加調試日志的可讀性,並更方便為多個接口調試配置,建議使用 IP 地址
[root@node3 ~]# mkfs.lustre --reformat --fsname=lustrefs --mgsnode=192.168.xxx.xx2@tcp  --ost  --index=0 /dev/sdb
Failed to initialize ZFS library: 256

   Permanent disk data:
Target:     lustrefs:OST0000
Index:      0
Lustre FS:  lustrefs
Mount type: ldiskfs
Flags:      0x62
              (OST first_time update )
Persistent mount opts: ,errors=remount-ro
Parameters: mgsnode=192.168.xxx.xx2@tcp

device size = 20480MB
formatting backing filesystem ldiskfs on /dev/sdb
        target name   lustrefs:OST0000
        4k blocks     5242880
        options        -J size=400 -I 512 -i 69905 -q -O extents,uninit_bg,dir_nlink,quota,huge_file,flex_bg -G 256 -E resize="4290772992",lazy_journal_init -F
mkfs_cmd = mke2fs -j -b 4096 -L lustrefs:OST0000  -J size=400 -I 512 -i 69905 -q -O extents,uninit_bg,dir_nlink,quota,huge_file,flex_bg -G 256 -E resize="4290772992",lazy_journal_init -F /dev/sdb 5242880
Writing CONFIGS/mountdata

在 OSS 上,載入 ost0,在 oss0 上運行:

[root@node3 mnt]# mkdir ost0

[root@node3 mnt]# mount.lustre /dev/sdb /mnt/ost0
Failed to initialize ZFS library: 256
mount.lustre: increased /sys/block/sdb/queue/max_sectors_kb from 512 to 4096

[root@node3 lustre]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
devtmpfs                 899M     0  899M    0% /dev
tmpfs                    912M     0  912M    0% /dev/shm
tmpfs                    912M  9.5M  903M    2% /run
tmpfs                    912M     0  912M    0% /sys/fs/cgroup
/dev/mapper/centos-root   22G  8.2G   14G   38% /
/dev/sda1               1014M  197M  818M   20% /boot
tmpfs                    183M     0  183M    0% /run/user/0
/dev/sdb                  20G  1.1M   19G    1% /mnt/ost1

在 oss1 上創建 ost1:

[root@node4 mnt]# mkfs.lustre --reformat --fsname=lustrefs --mgsnode=192.168.xxx.xx2@tcp --ost --index=1 /dev/sdb

在 OSS 上,載入 ost1,在 oss1 上運行:

[root@node4 mnt]# mount.lustre /dev/sdb /mnt/ost1

在客戶端上掛載 Lustre 文件系統,在客戶端節點運行:

[root@node1 mnt]# mkdir /mnt/lustre
[root@node1 mnt]# mount.lustre 192.168.xxx.xx2@tcp:/lustrefs /mnt/lustre

5、啟動與關閉

啟動文件系統,各組件按如下順序啟動:

掛載MGT --> 掛載MDT --> 掛載OST(s) --> 掛載Client

按如下順序關閉,文件系統將完全關閉:

Client --> MDS --> MGS --> OST(s)

umount -a -t lustre
	其中,`-a -t lustre`不是文件系統名稱,指代的是卸載 `/etc/mtab` 所有條目中的 lustre 類型。

6、測試

確認文件系統已成功啟動,並正常工作。

運行如下命令,創建一個全為字符 0 的文件來驗證寫入功能:

# 執行 `dd --help` 查看 dd 命令用法
[root@node1 mnt]# dd if=/dev/zero of=/mnt/lustre/test.img bs=1M count=4500
記錄了4500+0 的讀入
記錄了4500+0 的寫出
4718592000字節(4.7 GB)已復制,11.3127 秒,417 MB/秒

[root@node2 mnt]# ....
[root@node3 mnt]# ....
[root@node4 mnt]# ....   

運行如下命令,查看每個 OST 和 MDT 的空間使用情況:

[root@node1 ~]# lfs df -h
UUID                       bytes        Used   Available Use% Mounted on
lustrefs-MDT0000_UUID       11.1G        2.3M       10.1G   0% /mnt/lustre[MDT:0]
lustrefs-OST0000_UUID       19.3G        1.2M       18.3G   0% /mnt/lustre[OST:0]
lustrefs-OST0001_UUID       19.3G        1.2M       18.3G   0% /mnt/lustre[OST:1]

filesystem_summary:        38.5G        2.4M       36.5G   0% /mnt/lustre

測試創建、刪除目錄:

# 執行 `lfs --list-commands` 查看 lfs 命令用法
# 創建一個目錄,由 mdt0 提供服務
[root@node1 ~]# lfs mkdir -i 0 /mnt/lustre/test
[root@node1 ~]# cd /mnt/lustre/
[root@node1 lustre]# ls
test 

# 刪除該目錄
[root@node1 ~]# lfs rm_entry /mnt/lustre/test
[root@node1 ~]# ll /mnt/lustre/
總用量 0

使用 lfs setstripe 創建文件,並指定文件布局:

# 文件條帶大小為4MB
[root@node1 ~]# lfs setstripe -S 4M /mnt/lustre/test.txt

[root@node1 ~]# ll /mnt/lustre/
總用量 0
-rw-r--r-- 1 root root 0 4月   8 11:32 test.txt

[root@node1 ~]# lfs getstripe /mnt/lustre/test.txt
/mnt/lustre/test.txt
lmm_stripe_count:  1
lmm_stripe_size:   4194304
lmm_pattern:       1
lmm_layout_gen:    0
lmm_stripe_offset: 0
        obdidx           objid           objid           group
             0              66           0x42                0

7、問題

問題一:安裝 spl-dkms-0.7.1-1.el7.noarch.rpm,出現要求 dkms 大於 2.2.0.2,如果直接 yum 安裝會出現 沒有可用軟件包。此時需要先執行 yum install -y epel-release,再安裝 dkms。

問題二:安裝 libcom_err-...rpm,出現類似 已安裝該包的較低版本,需要更高版本 的錯誤,如果直接 yum remove,會出現 錯誤:嘗試移除受保護的 "systemd" 這種錯誤。采用 rpm -e --nodeps 包名 的方式刪除,但刪除后,如果直接 yum install 安裝,會出現 libcom_err.so.2: cannot open shared object file: No such file or directory 錯誤,需要 rpm -ivh 包名 這種方式安裝。

問題三:如果客戶端沒有識別 OST,查看 OST 機器上的防火牆有沒有關閉,或者查看有沒有設置免密登錄。

參考:

https://blog.csdn.net/spring_color/article/details/79301167

https://doc.lustre.org/lustre_manual.xhtml#configuringlustre

https://blog.csdn.net/tengh/article/details/9567763?utm_medium=distribute.pc_relevant_download.none-task-blog-2defaultBlogCommendFromBaidudefault-2.nonecase&dist_request_id=1328760.199.16171701704387499&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-2defaultBlogCommendFromBaidudefault-2.nonecas

https://mp.weixin.qq.com/s/eJknjD6JCdKkrUeVnDGEjg


免責聲明!

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



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