苹果/微美全息创新引领AR技术制高点,共赴下一个XR产业消费主战场
随着ChatGPT接棒元宇宙成为当下火热风口、多家大厂收缩XR业务规模,外界开始出现不少质疑XR的声音。 XR却迎来爆发 但仔细发现XR的浓度正
ldiskfs-osd
后端存储上的对象被删除后,Lustre文件系统
的表现。核心演练两个场景,一个是MDS
中的ldiskfs
中的ROOT
中文件被删除;另外一个是OST
中的文件对象
被删除。Lustre MDS
通过mount -t ldiskfs /dev/sdb /mnt/mdt
挂载后端存储后,此次我们关注ROOT
目录,ROOT
目录是所有Lustre
文件系统客户端看到的统一的posix
的视图,在这个目录里操作对应的Lustre内部对象
Lustre OST
通过类似的方法挂载后端存储,这里我们关注O/0
目录,这个目录存储了Lustre
文件系统的数据的分片,我们会找到写入文件的分片位置,来操作O/0
下面的分片数据。Lustre
环境节点 | IP地址
| 磁盘 | Lustre 版本 |
---|---|---|---|
Lustre-MGS-MDS | 192.168.28.129 | sdb | 2.15.2 |
Lustre-OST1 | 192.168.28.50 | sdb | 2.15.2 |
Lustre-OST2 | 192.168.28.34 | sdb | 2.15.2 |
Lustre-Client | 192.168.28.189 | sdb | 2.15.2 |
场景模拟
数据准备
// 查看挂载点[root@Lustre-Client ~]$ df -h |grep bigfs192.168.28.129@tcp:/bigfs 251G 2.5M 238G 1% /mnt/bigfs// 创建data1、data2文件[root@Lustre-Client ~]$ cp anaconda-ks.cfg /mnt/bigfs/data1[root@Lustre-Client ~]$ cp anaconda-ks.cfg /mnt/bigfs/data2[root@Lustre-Client /mnt/bigfs]$ ls -ltotal 8-rw-------. 1 root root 1094 Feb 6 17:53 data1-rw-------. 1 root root 1094 Feb 6 17:53 data2// 获取布局信息,lustre默认的选择OST的策略是RR模式,会轮训选择OST进行数据写入// 文件的位于 ost index={obdidx},O/{group}/d{{objid}%32}/{obdidx}文件[root@Lustre-Client ~]$ lfs getstripe -v /mnt/bigfs/*/mnt/bigfs/data1lmm_magic: 0x0BD10BD0lmm_seq: 0x200000401lmm_object_id: 0x1lmm_fid: [0x200000401:0x1:0x0]lmm_stripe_count: 1lmm_stripe_size: 1048576lmm_pattern: raid0lmm_layout_gen: 0lmm_stripe_offset: 2 obdidx objid objid group 2 2 0x2 0/mnt/bigfs/data2lmm_magic: 0x0BD10BD0lmm_seq: 0x200000401lmm_object_id: 0x2lmm_fid: [0x200000401:0x2:0x0]lmm_stripe_count: 1lmm_stripe_size: 1048576lmm_pattern: raid0lmm_layout_gen: 0lmm_stripe_offset: 1 obdidx objid objid group 1 2 0x2 0
删除MDS下ROOT目录文件
Lustre
客户端数据数据初始化后,可以在MDS
后端文件系统挂载后查看ROOT
目录,这个目录中文件名称对应的是客户端每个写入文件的文件名称,大小都是0
;对于目录大小为4k
.在MDS
端删除ROOT
下面对象后,Lustre客户端
是找不到这个文件,也就是这个文件对应的元数据
信息在MDS
端丢失,但是这些文件对应的OST
上的数据分片也会被清理掉删除MDS端ROOT
中的目录// 数据初始化后,ROOT目录里的数据和客户端看到的保持一致[root@Lustre-MGS-MDS ~]$ df -h |grep mnt/dev/sdb 73G 5.6M 67G 1% /mnt/mdt[root@Lustre-MGS-MDS ~]$ cd /mnt/mdt/ROOT/[root@Lustre-MGS-MDS /mnt/mdt/ROOT]$ ls -l -1htotal 0-rw-------. 1 root root 0 Feb 6 17:53 data1-rw-------. 1 root root 0 Feb 6 17:53 data2// 删除ROOT下所有的文件,MDS端未做sync [root@Lustre-MGS-MDS ~]$ rm -rf /mnt/mdt/ROOT/*[root@Lustre-MGS-MDS ~]$ ls -l /mnt/mdt/ROOT/total 0// 客户端缓存依旧可以看到[root@Lustre-Client ~]$ ls -l /mnt/bigfs/total 8-rw-------. 1 root root 1094 Feb 6 17:53 data1-rw-------. 1 root root 1094 Feb 6 17:53 data2// mds端执行sync操作[root@Lustre-MGS-MDS ~]$ cd /mnt/mdt/ROOT/[root@Lustre-MGS-MDS /mnt/mdt/ROOT]$ sync// mds端sync后,客户端显示data1和data2不存在;但是仅仅是这2个文件受影响。[root@Lustre-Client /mnt/bigfs]$ ls -lls: cannot access "data2": No such file or directoryls: cannot access "data1": No such file or directorytotal 0-????????? ? ? ? ? ? data1-????????? ? ? ? ? ? data2[root@Lustre-Client /mnt/bigfs]$ cat data1cat: data1: No such file or directory[root@Lustre-Client /mnt/bigfs]$ cat data2cat: data2: No such file or directory// 客户端重新挂载后,MDS的ROOT目录中删除的对象已经在客户端消失[root@Lustre-Client ~]$ umount /mnt/bigfs [root@Lustre-Client ~]$ mount -t lustre Lustre-MGS-MDS@tcp0:/bigfs /mnt/bigfs[root@Lustre-Client ~]$ cd /mnt/bigfs/[root@Lustre-Client /mnt/bigfs]$ ls -ltotal 0// MDS端删除ROOT下目录后,对应的OST上的数据也会被清除,OST1上已经找不到data1这个文件的数据了[root@Lustre-OST1 ~]$ cd /mnt/ost1/O/0[root@Lustre-OST1 /mnt/ost1/O/0]$ lsd0 d1 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d2 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d3 d30 d31 d4 d5 d6 d7 d8 d9 LAST_ID[root@Lustre-OST1 /mnt/ost1/O/0]$ cd d2[root@Lustre-OST1 /mnt/ost1/O/0/d2]$ ls[root@Lustre-OST1 /mnt/ost1/O/0/d2]$ ls -l total 0// OST2上已经也找不到data2这个文件数据了[root@Lustre-OST2 ~]$ cd /mnt/ost2/O/0[root@Lustre-OST2 /mnt/ost2/O/0]$ cd d2[root@Lustre-OST2 /mnt/ost2/O/0/d2]$ ls[root@Lustre-OST2 /mnt/ost2/O/0/d2]$ ls -l -1htotal 0[root@Lustre-OST2 /mnt/ost2/O/0/d2]$
删除OST下O/0数据分片
OST
上的文件对应的数据分片删除后,Lustre
客户端访问这些文件的元数据都不存在任何的问题,但是访问OST
上的实际数据就会进程卡主的问题但是不会影响到整个文件系统的使用,针对这种情况就需要定期备份磁盘或者基于Lustre Changelog
写个客户端的服务消费数据变化来备份数据。// 客户端写入两个文件demo1和demo2[root@Lustre-Client ~]$ cp anaconda-ks.cfg /mnt/bigfs/demo1.txt[root@Lustre-Client ~]$ cp anaconda-ks.cfg /mnt/bigfs/demo2.txt[root@Lustre-Client ~]$ cd /mnt/bigfs/// 发起sync命令同步元数据和数据到mds和ost[root@Lustre-Client /mnt/bigfs]$ sync// 查看demo1和demo2的布局[root@Lustre-Client /mnt/bigfs]$ lfs getstripe -v ./(Default) ./lmm_fid: [0x200000007:0x1:0x0]stripe_count: 1 stripe_size: 1048576 pattern: 0 stripe_offset: -1.//demo2.txtlmm_magic: 0x0BD10BD0lmm_seq: 0x200000403lmm_object_id: 0x2lmm_fid: [0x200000403:0x2:0x0]lmm_stripe_count: 1lmm_stripe_size: 1048576lmm_pattern: raid0lmm_layout_gen: 0lmm_stripe_offset: 2 obdidx objid objid group 2 4 0x4 0.//demo1.txtlmm_magic: 0x0BD10BD0lmm_seq: 0x200000403lmm_object_id: 0x1lmm_fid: [0x200000403:0x1:0x0]lmm_stripe_count: 1lmm_stripe_size: 1048576lmm_pattern: raid0lmm_layout_gen: 0lmm_stripe_offset: 1 obdidx objid objid group 1 3 0x3 0// 查看ost2上的demo2.txt数据[root@Lustre-OST2 ~]$ cd /mnt/ost2/O/0/d4[root@Lustre-OST2 /mnt/ost2/O/0/d4]$ ls4[root@Lustre-OST2 /mnt/ost2/O/0/d4]$ cat 4#version=RHEL8# Use graphical installgraphical/*********忽略剩余内容显示*****/// 删除这个文件对象,但是MDS端的依旧存在[root@Lustre-OST2 /mnt/ost2/O/0/d4]$ rm -rf 4[root@Lustre-OST2 /mnt/ost2/O/0/d4]$ sync// 客户端清除pagecache[root@Lustre-Client /mnt/bigfs]$ echo 1 > /proc/sys/vm/drop_caches[root@Lustre-Client /mnt/bigfs]$ sync// 查看demo2.txt的元数据依旧就可以正常访问[root@Lustre-Client /mnt/bigfs]$ stat demo2.txt File: demo2.txt Size: 1094 Blocks: 8 IO Block: 4194304 regular fileDevice: a51ef1a0h/2770268576d Inode: 144115205306056706 Links: 1Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:unlabeled_t:s0Access: 2023-02-06 18:31:41.000000000 -0500Modify: 2023-02-06 18:24:07.000000000 -0500Change: 2023-02-06 18:24:07.000000000 -0500 Birth: 2023-02-06 18:24:07.000000000 -0500[root@Lustre-Client /mnt/bigfs]$ ls -l demo2.txt -rw-------. 1 root root 1094 Feb 6 18:24 demo2.txt// 访问demo2.txt直接卡主[root@Lustre-Client /mnt/bigfs]$ cat demo2.txt ^C// 查看进程后通过kill是无法停止,这个卡主仅仅是影响单个文件的数据读取,并不影响整个客户端的情况[root@Lustre-Client /mnt/bigfs]$ ps -ef|grep catroot 2041 1746 0 18:31 pts/1 00:00:00 cat demo2.txtroot 2065 1476 0 18:35 pts/0 00:00:00 grep --color=auto cat[root@Lustre-Client /mnt/bigfs]$ kill -9 2041[root@Lustre-Client /mnt/bigfs]$ ps -ef|grep catroot 2041 1746 0 18:31 pts/1 00:00:00 cat demo2.txtroot 2067 1476 0 18:35 pts/0 00:00:00 grep --color=auto cat
思考
MDS
对应的后端存储已经把inode
占满导致MDS
不可用,如何进行恢复?如果OST
上的文件的数据分片所消耗的inode
资源超过系统最大限制,导致OST
不可用如何进行恢复? 关键词: Unix
随着ChatGPT接棒元宇宙成为当下火热风口、多家大厂收缩XR业务规模,外界开始出现不少质疑XR的声音。 XR却迎来爆发 但仔细发现XR的浓度正
日前,中影发行和万达电影联合发起预约放映,即将在3月19日进行“中国电影筑梦科幻”《流浪地球》系列电影的连映。据中国电影集团董事长、电影
解答:1、对于受苦的人来说,生命是漫长的;对于快乐的人来说,是短暂的一刻。2、吃别人吃不到的,忍别人受不了的,付出比别人
万众瞩目的重量级拳王统一战——泰森-富里VS奥雷科桑德-乌西克,如今已经趋于崩溃了,根据富里联合推广人弗兰克-沃伦之前的说法,无论结果如何
1、【导读】市政和水利,想必大家都不陌生,他们作为二级建造师专业其中的两个,在社会上充当着十分重要的角色,发挥着非常重要的作用,所以每
咬一口樱花味的四喜风糕,感受舌尖上的非遗丨老上海达人秀
1、 “读书破万卷,下笔如有神。”你不要以为读书的好处只有方便写作哦,其实读书的好处可多了!下面给大家整理了小学生四年
1、是美国士兵用无线电通信时常用的词意思是收到。本文分享完毕,希望对大家有所帮助。
1、IDP是教育部批准的留学咨询服务机构,由澳大利亚政府于1969年出资设立,前身为澳大利亚教育国际开发署,现总部位于墨尔本。2、与英国文化协
1、企业所得税:是以企业取得的生产经营所得和其他所得为征税对象所征收的一种税。2、2、企业所得税的申报方式是:季度预缴年度汇算清缴。3、3
1、烧开的自来水可以喝。2、自来水是经过过滤、消毒等简单处理后,达到国家饮用水质量标准的生活用水。3、烧水时,当水接近沸
夏弥来为大家解答以下的问题,chloe,说一说chloe的简介,现在让我们一起来看看吧!1、CHLOE(克洛伊)诞生于2
1、歌曲:触电歌手:芭比bob触电的那种感觉已漫漫出现想要无时无刻有你陪伴我身边触电的那种感觉有点点危险什么方法爱你才会永远不蜕变爱的魔
1、《Dieu,l》导演:AlineIssermann,主演:EmmanuelleRiva、FrancisHus
1、《中国好声音2018》是浙江卫视推出的音乐励志评论类节目,节目不再引进任何海外模式,继续致力于原创模式的开发。2、该
Copyright 2015-2023 京津冀双创网 版权所有 备案号:京ICP备2022022245号-12 联系邮箱:434 922 62 @qq.com
随着全光网络越织越密 如何进一步增强消费者和产业界的“获得感”?
近年来,在5G和宽带双千兆牵引下,新项目、新试点、新应用层出不穷。随着全光网络越织越密,如何进一步增强消费者和产业界的获得感?湖北日
致敬老将!热爱可抵岁月漫长
北京冬奥会赛程过半冰雪之上老将们的坚守让人动容热爱可抵岁月漫长老将们,下场比赛见!徐梦桃,第四次参加冬奥会武大靖,第三次参加冬奥会
微视频|字里藏情迎元宵
2月15日是农历正月十五元宵节。作为中华民族传统节日之一,元宵节有着诸多传统习俗,全家人围坐在一起,吃元宵、猜灯谜,尽情享受团圆的喜