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
中,會報如下錯誤,暫未解決,但不影響後期配置。
執行 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。
參考:
https://blog.csdn.net/spring_color/article/details/79301167
https://doc.lustre.org/lustre_manual.xhtml#configuringlustre