说实话,不是很喜欢发技术帖,但是看到误导向科普又不是很开心。
前情提要
某位试图重塑国人商家形象的商家开始了T楼
在帖子中标榜了“硬盘能真的塞满”云云之类的
https://www.hostloc.com/thread-787339-1-1.html
随后,发表了一篇自诩干货的文章“超售终结者?”
https://www.hostloc.com/thread-787355-1-1.html
那么究竟是否如其帖子中所说真的能验证“大盘鸡是不是真的大盘?”
.先说结论
为了方便不想看太长的MJJ,结论就是不能。
至于这串操作是否商家偷换概念夹带私货,便不得而知了。
科普时间
A. linux中的文件分配的方式,绝大部分取决于文件系统的支持。
B. 为了保证一个文件可以顺利完成写入,文件分配是常见的操作,就如入住酒店一样,为了保证你能付房费,就必须先冻结银行卡里的一部分余额。
C. 面对一个大文件时,那么如何快速分配一个文件,这也是人类以前曾关心过的事情。
一个文件大致上可以分成文件信息和文件数据两部分,可以理解为一个文件如一本书,文件信息写在封面上。
第一种传统方法,dd并写入数据。
这种方式就是完整的出书过程,从头到尾,有多少就是多少。没什么可多说的。
第二种称之为稀疏文件,只造壳。
这种方式只写书的封面,书里面连一页纸都没有,实际上只占用一个文件项,所以你在一个1G盘上声称有几PB都是没问题的。
专业说法:block未分配。
常见的造壳方式有truncate、 dd w/ seek
第三种是上述两种的折中方案,可以理解为轻度的预分配。
这种方式在写完书的封面的基础上,还把目录预先写好,也就是先决定好了书的内容框架,换句话说你的目录都写好了所以你不能写超你目录之外了,所以你只能在文件系统实际可用空间范围内进行分配。
专业说法:block已分配,但未written。
所以,这也是造壳的一种方式。常用方法:fallocate
.验证方式
自己开个虚拟机,上去建几个硬盘,分别运行上述命令,看看硬盘文件是不是真的变大不就好了?
(本文未经实际验证,纯理论上探讨,有兴趣的mjj可以自行验证)
.写在最后
做什么事都得脚踏实地,从来没有什么快速方便的途径,如果有要么是歪门邪道,要么就是你被忽悠了。
(想一秒塞满硬盘?老老实实的写数据吧!)
山东省网友说:年轻人你不讲武德
云南省网友说:目前还没持有大盘鸡
云南省网友说:干就完了,塞满
四川省网友说:陆陆续续用了好几家大盘鸡,还是hosthatch体验最好。
湖北省网友说:楼主V5啊,知识普及贴。