【冬瓜哥雄文】高端存储系统江湖风云录!

来源:互联网 发布:转录组提取线粒体数据 编辑:程序博客网 时间:2024/04/27 16:54

无怨无悔我走我路,走不尽天涯路!在风云之中你追我逐,恩怨由谁来结束!什么时候天地变成江湖,每一步风起云涌!什么时候流泪不如流血,每个人也自称英雄!什么是黑白分明,是是非非谁人会懂?怕什么刀光剑影,把风花雪月留在心中!无怨无悔我走我路,走不尽天涯路!人在江湖却潇洒自如,因为我不在乎!

最近冬瓜哥比较忙,所以一直没有出新文章,发了几篇旧文章,因为瓜哥看到这些旧文章的浏览量不够高,一定有很多人没有看到过,或者粗略看了一遍没有消化,本着负责任的态度,冬瓜哥在新文章间隔期间填充这些旧文章,让大家充分的吸收营养。冬瓜哥之前一直说要写一篇高端存储架构方面的文章,但是期间被多个其他主题打断了。

要想参透本文,冬瓜哥建议大家先学习冬瓜哥之前的几篇文章,包括多控缓存管理和集群锁、大话众核心处理器体系结构。这些基础知识,都是理解高端存储体系结构的关键。

另外,关于“什么是高端存储”,“高端存储发展历程”,这些课题,冬瓜哥就不介绍了,瓜哥相信大家已经被介绍过无数次了。

【主线1】正统高端存储系统——紧耦合?不!


国内多数人对高端存储系统的认识,起源于上图,这是EMC Symmetirx DMX4高端存储系统的架构图。2005年前后,此图一出,顿时成为当时业界议论的焦点。原因很简单,这张图让人反复琢磨,看不懂,深奥,神秘,深邃。冬瓜哥那时候也是这种感觉,这到底是一个什么系统架构?为什么缓存放在中间?直到冬瓜哥彻底理解了计算机的本质之后,这个问题才得到彻底的答案,现在冬瓜哥会问:“为什么不能放中间?”。这是一个共享外部内存架构,但是它并不是SMP也不是NUMA,因为这些外部内存空间,并没有被纳入系统的地址空间,这意味着,代码并不能直接使用load/stor指令访问这些地址上的数据,而必须通过IO的方式,相当于,这些RAM,其访问方式类似于对磁盘的访问方式,每个磁盘扇区有一个LBA地址,系统要将LBA地址封装到SCSI指令中,发送给磁盘通道控制器(比如SAS通道卡),通道控制器再发送给磁盘,磁盘到对应的LBA读出数据返回。上图中的系统,其对RAM的访问也是这样,将内存地址封装,通过图中所示的“Direct Matrix”网络的通道控制器,发送给中间的内存,内存读出对应地址数据返回。可以看到,不管是Load/Stor访存,还是IO,其本质,都是将数据取回,只是方式不同。

该系统,本质上其实是16台计算刀片+8台RAM刀片的合体。计算刀片就是常见架构,通用CPU+本地DDR RAM+前/后端通道控制器。RAM不是共享的么,怎么每个刀片上还有RAM?是的,每个刀片上有自己的RAM,这个RAM是可以被该刀片上的CPU直接Load/Stor存储数据的,刀片的OS运行时数据就存在本地RAM中,每个刀片上都运行一个OS,所以,这个系统,其实是松耦合的MPP(大规模并行处理)系统。其共享的外部RAM,是唬人的,并不可以直接寻址,其本质上相当于“高速硬盘”,多台服务器共同访问这块“高速硬盘”,并将数据缓存在这块“高速硬盘”中。
什么?最正统的高端存储系统,冬瓜哥说它是松耦合,而不是紧耦合?没错的。冬瓜哥这并不是在哗众取宠,可能有不少工程师会不以为然,但这就是事实。除非你是Symmetric DMX4的研发人员,否则还是不要轻易挑战冬瓜哥深邃敏感的洞察力。当你的积累和逼格提升到足够高之后,就会体会冬瓜哥上面的结论了,只有那些做过底层,针对多核心异构计算芯片编程的程序员,才会有这种洞察力。

什么叫紧耦合?紧耦合就是全局统一的地址空间,直接寻址的多CPU系统。而Symmtrix显然不是。SymmetrixDMX4的架构,更像是冬瓜哥在本公众号之前的一篇文章《大话众核心CPU体系结构》中所介绍的IBM Cell B.E处理器体系结构,大家必须阅读该文,才可以深刻理解冬瓜哥上面的话,请进入公众号,点击右上角头像,然后点击“查看历史消息”获取所有文章列表。

下图是SymmetrixDMX4的实物图,可以清晰的看到,其控制部分,满配时,由左边8张刀片(CPU+DDR控制器+本地RAM+DIrectMatrix网卡+前端FC网卡)、中间8张RAM刀片(DirectMatrix网卡+嵌入式CPU+DDR控制器+RAM条)、右侧8张刀片(CPU+DDR控制器+本地RAM+DIrectMatrix网卡+后端FC网卡)组成,连线则在背板上。


其IO流程如下:前端Director(就是含有前端FC控制器的那个刀片),接收到主机的SCSI指令,由SCSI Target端程序解析该指令,根据所做Raid的盘数、Lun的分布等元数据,前端Director上的程序将该指令翻译成一堆子IO,这些子IO将会提交给后端Director来执行。由于不能共享内存,这些子IO请求,首先由前端Director上的程序调用对应的私有的DirectMatrix网络协议栈,封装为DirectMarix网络包,然后发送到对应RAM刀片的DirectMatrix网卡上,由RAM刀片上的嵌入式CPU进行包解析后,写入到板上的DDR RAM对应地址(一般为一堆的循环队列,数据结构上就是环形链表)中存放。然后前端Director通过物理中断线或者虚拟中断线(共享RAM里的某个Queue)向对应的后端Director发出中断请求,后端Director收到中断信号之后(或者不断的poll虚拟中断Queue获取信号),从对应的Queue中取出子IO请求,获取其中的信息(其中包含SGL等描述信息,告诉执行者读出的数据需要存放的位置,或者待写入的数据所在的共享RAM中的位置),执行,也就是对后端的磁盘读写数据,将数据读出到共享RAM中存放,或者从RAM将数据读出到本地RAM,再从本地RAM写入磁盘。

什么时候你能彻底的在纸上把上述流程画下来,逼格就到了。对于一个系统,必须在脑子中进行时序分析,才可以最彻底的理解其运行机制,从而感受其设计初衷,甚至设计出自己的架构和产品。冬瓜哥可以凭借肉眼分析出两个正弦波叠加后的波形,时域分析,而不是在频域,曾经有些搞模电的朋友很不理解冬瓜哥为什么不去看频域图而是要盯着时域图看很久,时域图里就俩频谱竖在那,多简单。而冬瓜哥笑而不语,他们并不知道,事物,要去从底层一点点体会的,而不是完全按照被灌输的路径走下去,缺乏足够思考和感知的功底,是不稳固的。

好了,至此,Symmetrix正统血统的“紧耦合”神话和谬误,被冬瓜哥彻底土崩瓦解了,是不是觉得不可思议?事实不可否认,你只能认为自身的逼格还差得远,而那些忽悠人的贴别人ppt外加评论几句的快餐式忽悠,显然,会让你变胖,最后三高,最后迷失自身。

【支线】SymmetrixDMX的前身



如上图所示,其实SymmetrixDMX之前,还有前几代的产品的,其架构都是多台机器共同访问一堆外置RAM。只不过使用了不同的总线,这些总线甚至都不是标准的,是完全自己设计的,不过,不重要,这些总线的运行机制,无外乎那几种,这不重要。

【支线】HDS USP架构


与EMCSymmetrix同时代类似架构的产品则是HDS USP。其套路类似,也是共享外部的RAM,但是多个刀片之间并不是直接连接到每个RAM刀片,而是通过一个Crossbar交换芯片与RAM相连,相当于加了个网络交换机,至于HDS用的是什么网络来连接RAM的,冬瓜哥也不得而知,不过,这不重要,爱用什么网络用什么网络,什么网络都可以,无非就是性能的差别。其与DMX的另外一个区别,就是用了单独的一批RAM,专门盛放元数据,比如Raid组映射信息、逻辑卷的元数据、子IO指令,等等。而用另一批容量较大的RAM盛放实际数据。访问元数据RAM和访问数据RAM分别使用不同的网络,元数据网络讲究低时延,而数据网络讲究高带宽,至于原因,经常看冬瓜哥文章的话,应该会有一定的sense了,冬瓜哥就不多解释了。

【支线】2005年的江湖

十年前,那时候的江湖上,存储这个圈子非常小,信息渠道很窄,不像现在。当时多数搞存储的人都在dostor论坛论道,其中有几位大侠,代表IBM DS8000势力的昵称为“HOST”的老葛(给冬瓜哥提供过很多帮助),代表HDS USP势力的昵称为“林肯”的老陈,和当时任Xyratex(存储JBOD、控制器准系统ODM)中国区技术经理的中立派人物董唯元(冬瓜哥的启蒙老师之一)。这三个人经常互相调侃,尤其是Host和林肯,由于直接代表两股不同的势力,经常互掐。冬瓜哥那时候只能眼看着人家互掐,自己p都不懂。不过还好,瓜哥得到了老董和老葛的帮助,算是入了门,于是后来有了大话存储一书。HOST目前仍在IBM,老董已经是天玑数据的总经理,老陈则换了个东家,改吹某厂“流动的数据”stuff。

如今,dostor论坛已经败落,新媒体层出不穷,大家的信息严重爆炸和碎片化,已经没有人愿意在论坛异步的,发了贴明天才可能有人回复的,来和别人交流了。05年以后,国内存储厂商逐渐开花,积累逐渐深厚,有更多的人了解和从事了存储行业。令冬瓜哥欣慰的是,不少存储界的后来者像冬瓜哥表示,正是因为阅读了《大话存储》系列图书,他才进入了IT界,正如冬瓜哥当年在大学的时候,只因多看了一眼、多想了一下墙上的网口,结果再也无法忘掉那容颜,稀里糊涂的进入了IT这个圈子。

至今,冬瓜哥在身边并没有见过像当年冬瓜哥那样,为了搞清楚一件事物的本质而倾尽其力的,执着的研究者。QQ上有人说要拜我为师,让我传授他功力。冬瓜哥只能苦笑。这个时代太浮躁了,到处都是想不劳而获的人。

【主线2】Symmetrix DMX以及HDS USP架构总结

架构关键点1 :分布式集群。啥?堂堂的Symmetrix竟然是现在被吹成灰的分布式集群?的确是。多个独立的服务器,每两台(DirectorPair)挂起后端一堆JBOD,多个Director Pair组成分布式集群。

架构关键点2 :物理共享RAM。与普通分布式集群不同的是,所有的集群节点,物理上,独享且直接寻址的访问本地RAM,同时共享访问集中的RAM。Symmetrix DMX的一个Director内的具体的硬件架构如下图所示。可以明显看到,这种架构是不适合直接寻址的,尤其是2005年时候的体系下,其CPU内的架构、网络的速度、时延均不足以支持远程直接寻址,或者说RDMA。但是现在不同了,这是后话。就算假设Symmetrix DMX使用了RDMA,其也依然是松耦合系统,RDMA体系下,每个节点依然各自看到各自独立的地址空间,只不过是互相为对方的地址开了一个映射窗口而已,只要不是同一个全局地址空间的系统,或者说每个节点必须运行自己独立的OS的系统,都是松耦合系统。RDMA可以被称为半紧耦合,或者说,强耦合。而紧耦合,可以只运行一个OS,管理一个地址空间。


架构关键点3 :对称式同构协作

理解这个关键点,需要先阅读冬瓜哥之前的那篇《大话众核心CPU体系结构》以及《集群文件系统架构终极解析》。不管是DMX还是USP,其都是一种局部对称+全局非对称式集群,比如DMX,8个前端Director之内是完全对称式的,角色完全相同,8个后端Director之内也是对称式,但是8个前端和8个后端Director以及8个RAM刀片之间,角色不同,所以是全局非对称式。

8 个前端节点,其处理任务的模式,是同构式协作,也就是每个节点都能够独立处理一个任务的所有工序。这里的任务,就是IO请求,一个IO请求到来之后,需要解码(组成Parse或者Decode),生成子IO,创建数据结构,发射执行,完成返回,释放资源等多道工序,IO处理场景,无疑适用同构协作而不是异构协作了。对称式同构协作有个好处就是一个节点当掉之后,整个流水线不需要全被冲刷,而非对称式异构协作,一旦某个节点宕机,那么整个流水线都需要重新来一遍,不过对于存储来讲,计算量非常少,主要是数据拷贝传输过程,异构协作没有意义。

【主线3】富士通——强耦合共享式集群高端存储系统

与DMX和USP位于同一个时代的另一款高端存储系统,则是富士通的一款产品,型号冬瓜哥忘了,由于写该文时不能上网,所以就不查了,这不重要。其架构如下图。满配8台服务器,前端通过两台冗余的PCIE交换机连接,后端连接到8台FC交换机,一堆的FC接口的JBOD也连接到这些交换机,这样,所有服务器物理上可以直接访问所有磁盘,这与中低端双控存储的做法是相同的,只不过JBOD上的FC PBC芯片或者SAS芯片一般只出一个上行口和下行口,所以无法同时连接8个节点,所以只能使用FC交换机将端口扩开。多台服务器之间并不物理上共享RAM,但是是通过PCIE的NTB方式,将其他节点上对应内存的窗口映射到本地,实现RDMA,所以,是一种强耦合型的集群。


【主线4】EMC VMax——堕落的开始

综上所述,纯正的高端存储系统血统,有两大族系,一种是物理上共享RAM,另一种则是后端共享存储。但是,如果只有两个节点,即便是具备上述两个特点或者其中一个,也不足以称之为高端存储,还必须要求系统扩展性足够强。反过来,如果系统扩展性够强,比如几十个节点,但是不具备上述两点钟的任何一点的话,就不是正统的高端存储,只能称之为新时代的高端存储,只是规格上高端,架构上并不高端,反而很市井。比如,数千个节点的集群文件系统,扩展性足够强,但是其并不是高端存储系统。

EMC 的VMax,就是这样一款骨子里就是一款市井Server SAN的,但是打着高端旗号和外衣的高端存储系统。VMax的架构,就是将多套双控存储系统,利用Infiniband网络互连起来,形成一套多控的分布式存储系统,其后端的JBOD并不能被所有节点共享,而且,节点之间也不能共享内存。但是VMax对外声称的却是“全局共享缓存”,这与传统高端的“共享缓存”,看上去类似,让人认为其依然保留着高端存储的纯正血统,而其实有本质区别。

【支线】EMC VMax——唬人的“全局共享缓存”

对于一个分布式单一系统来讲,缓存是个比较重要的环节,尤其是缓存块/页与磁盘块在不同的节点上的时候,比如A节点磁盘中有数据块a,而数据块a的缓存可能在B节点,为什么呢,因为可能有前端应用从B节点写入了数据块a的最新副本,如果这个系统被设计成这样的话,那么就不能拒绝这样一种访问方式:客户端1向节点A写入了数据块a的新副本,然后,客户端2向节点B写入了数据块a的有一个新副本,此时,节点A上的数据块a副本就必须被作废,所以,B节点需要广播给系统内所有的节点,作废其上可能的过期数据,而且仅当所有节点都返回“作废成功”消息之后,B节点才能返回“写完成”消息给客户端。这种缓存管理方式,只有在多CPU紧耦合系统内,才是这么实现的,而且还加入了目录过滤器以过滤不必要的广播。所以,在一个利用慢速网络互连的分布式系统内,这么做是不可行的,性能会惨不忍睹。

分布式系统内的缓存基本上有两种设计模式,第一种,从任意节点都可以更新任何数据块,但是节点会将这个写请求转发给硬盘上有该数据块的那个节点来处理,说白了,按照数据块分配Owner,针对对应数据块的IO,全部转发给Owner节点来做缓存,接收数据的节点本身不缓存对应数据块,对应数据块只会有一份缓存副本,这也是传统双控存储系统ALUA模式的实现方式,这样最简单,天然保证一致性,不需要广播,但是,其劣势,就是缓存空间不能充分的被利用,比如,如果某些应用只访问某些热点数据,而这些热点数据恰好只保存在A节点,那么A节点缓存会被爆,而其他节点缓存却是空空如也。第二种,就是刚才说的这种,任意节点可以缓存任意数据块,其结果就是系统内可能有多个缓存副本,需要用广播实现实时的同步作废,来保证只存在一份有效副本,刚才也说过,这种做法,慢速互联的松耦合系统内不可行。第三种,要解决缓存空间利用不均匀问题,就得让任何块可以存在任何节点的缓存内,而这样会带来广播作废问题,所以,进一步,需要解决广播问题,如何不广播?可以使用某种算法,来降对应数据块的缓存均匀的分配在所有节点。比如,形象的说,针对LBA26的写IO,系统可以使用26除以总共的节点数量,假设为4,余数为2,则系统会将LBA26缓存在2号节点上,同理,LBA27则会被缓存在3号节点,因为除以4余3。所有的节点一旦接收到某个块的IO请求,先用这种算法算一遍,判断出其“应该”被缓存在哪个节点,便直接发请求给该节点读写这个数据块。这样做,相当于每个数据块也有了Owner,解决了一致性问题,避免了广播,另外,利用类似hash或者某种均衡性算法,能够让所有节点立即知道某个数据块应该在哪,避免了查表和遍历。

这就是全局共享缓存,其并不是说所有节点直接物理的访问共享的RAM。所以,VMax算是一款enable了缓存的分布式系统,别无他。

当VMax出来的时候,有人很久之前曾经写过篇文章说VMax是NUMA架构。不瞒您说,冬瓜哥当时也是小白一个,完全被这位给忽悠了。然而,冬瓜哥现在看来,这篇文章完全驴唇不对马嘴,第一,其当时根本不懂什么叫做NUMA,第二其当时也没有理解VMax的缓存管理方式。

【支线】富士通DX8000S3——跟着一起堕落

VMax 彻底堕落之后,富士通也跟着堕落了。上文中介绍的富士通的高端存储,是很多年前的。其与今年中推出的新一代高端存储,已经沦为与VMax类似的架构了,只不过依然用PCIE Switch进行互联。再起一些花哨的名字,就像VMax把单个控制器叫做Director,双控组成一个Engine。而富士通把控制叫做Control Module(CM),双控组成一个“Cell”,名字嘛,浮云耳。


【主线5】骨气尚存,血统尚存——HDS VSP

在VMax堕落的带动之下,HDS却依然存有高端血统,虽然其使用了开放的x86平台,但是依然保存了多节点共享物理RAM的老方式,但是变化还是较大的。相对于USP,最大的变化,就是前后端通道控制器与主控CPU脱离,前后端控制卡(就是大SAS卡、FC卡)与DDR RAM都接到PCIE交换机上。相当于多个主控,通过PCIE识别到一片DDR RAM地址空间,和一片IO通道卡的MMIO地址空间。每个VSD板上只有CPU+本地RAM+PCIE边缘Switch,每个VSD运行各自的OS,实现同构对称式协作,共同驱动前后端IO控制器,共享访问物理RAM数据缓存。IO流程与上文中介绍的类似。


【主线6】国内“高端”存储纷至沓来

看啊,EMC都堕落了,咱们的机会来啦,兄弟们,抄家伙上!首当其冲的就是某厂,某厂一听说要做高端的高大上的,大盒子,大机架,顿时犹如打了鸡血一般。仿佛是被这些所谓高端存储的唬人的架构给弄晕了,不就是画板子、做箱子么,这个咱土豹子们绝对在行,兄弟们,开干!冬瓜哥看来,浮云,浮云,哈哈!哈哈哈哈!

【支线】国内高端存储典型代表——宏杉MacroSAN MS7000

大家已经知道,宏杉的存储系统,是国内第一个实现Raid2.0的存储系统,也就是其cRaid技术。其高端存储系统的架构,属于对称式同构协作+后端全共享式集群,具有高端血统,所以宏杉MacroSAN MS7000可以说是国内自主开发的唯一一款具有纯正高端血统的存储系统。


其架构如下图所示。最大16个控制器,由8个双控组成,缓存镜像在双控之间进行。所有16个控制器直接通过SAS Expander网络来共享访问后端所有的JBOD,所有控制器同时看到且读写所有盘。这种架构与富士通之前那款纯正血统高端采用类似架构。节点间的消息通道采用PCIE Switch。采用PCIE方式的互联,可以避免其他开销,PCIE原生就是RDMA,而使用IB或者以太网同步的集群,其或使用传统TCPIP等协议栈方式,或使用RDMA,但是无论用什么方式,其效果都不如直接用PCIE来DMA来的更高效,但是使用PCIEDMA的话,需要做不少的开发工作,包括PCIE Switch整个域的初始化,让对应的NTB声明对应的内存空间,这一步需要在PCIE Switch固件初始化init string中设定,然后,还需要在OS内读出每个NTB所声明的空间长度,为其分配物理地址,然后需要将地址映射信息写入到每个NTB的BAR0中所包含的配置寄存器中,从而实现多节点的相互DMA。


最大支持6TB缓存容量。缓存管理方式,采用对称式真多活,冬瓜哥在之前的文章中曾经分析过谁是假多活,谁是真多活。所谓真多活,就是任何缓存块均没有Owner,任何节点都可以缓存并处理任何块,这就需要所有控制器节点之间传递锁信号。MS7K存储系统采用4KB块为锁粒度,这已经是极限了,不可能有人做到低于4KB粒度的锁,当使用PCIE内存映射方式传递底层元数据信息时,PCIE的一个TLP有效负载最少为1Byte,比如更新某个bitmap,这1Byte中包含8个bit,每个bit表示一个扇区,这1Byte则表示4KB,所以,4KB是系统底层的粒度极限。锁的管理,建议大家阅读之前冬瓜哥的那篇《浅谈多控缓存管理和集群锁》的文章打一下功底,MS7K采用采用Token Ring的方式进行锁管理,任意节点均可接受任意块的写请求,接收到写请求的节点,会拥有该块的锁,并使用Token Ring的方式按序通知并作废所有其他节点上的针对该块的缓存。这种TokenRing的缓存管理方式,相比VMax那种使用Hash完全均衡分布的缓存管理方式,Token Ring会增加额外的消息流量,但是却可以保证无数据转发,数据被写到哪个节点,就缓存在哪个节点,但是会有缓存空间利用不均匀的情况发生。而且在特殊场景下,会有Token的乒乓效应,也就是前端主机不停地从多个节点写入相同地址数据块,此时Token会不断的被抢来抢去。但是这种情况一般不太会发生,除非故意为之。GPFS集群文件系统也使用相同的缓存管理方式。


底层数据布局方面,采用了Raid2.0技术,将条带浮动于物理硬盘之上,Raid2.0技术,冬瓜哥之前写过一篇文章《大话Raid2.0》,在此不再敖述。再次提一下,宏杉是国内第一家实现Raid2.0技术的存储厂商,但是声音不够大,被其他人盖掉了。值得一提的是,MS7K支持RaidTP,也就是Triple Parity,可以允许任意三块盘故障。其他软件特性,其实业界基本都差不多了,该支持的都支持了,有用没用的,全支持。

不容易,从杭州某知名IT企业脱离出来之后,宏杉独自前行,自主研发,率先支持Raid2.0,还推出了具有纯正血统的高端存储系统,应该可以说是国产存储的骄傲了。

【主线4】大结局

在冬瓜哥看来,高端存储的体系结构,没什么意思,随便一片SAS IO控制器或者Raid控制器的体系结构的复杂度足可以秒杀任何高端存储的体系结构,但是看到菊厂的枪手一个劲乐此不疲的宣扬“高端存储”,冬瓜哥其实是替大家着急的,一份没啥含量的ppt,几篇市场数据趋势图,全国各地走穴开了,这不科学,不禁让冬瓜哥回忆起当年在某菊厂mkt规划产品时遇到的笑话,“NAS全球增长率80%,我们要做NAS,规划完毕”,去tmd。冬瓜哥后续看情况和精力,或许会写一篇Riad控制器架构解析的文章,那逼格比什么高端存储之流,高的多得多。就看大家的红包了。

江湖尚在?已无江湖。有传说,有永远也达不到的希望,有正有邪,有执着追求的大侠们,才有江湖。而当前,已经没有了传说,任何希望好像很简单的就可以达到,“互联网+”让一切东西开始躁动,改变了生活方式,改变了人们的追求和希望。江湖在何方?往事不堪回首,即便是世上已无江湖,心中的江湖,依然是风起云涌,英雄辈出,不断激励着我们奋进!现在大家可以理解《大话存储》中的那些情节了,那便是冬瓜哥心中的江湖,一个奋进的、执着的、潇洒的江湖!

漫漫长路远,冷冷幽梦清,雪里一片清静。可笑我在独行,要找天边的星。有我美梦作伴不怕伶仃,冷眼看世间情,万水千山独行找我登天路径。让我实现一生的抱负,摘下梦中满天星,崎岖里的少年抬头来,向青天深处笑一声。我要发誓把美丽拥抱, 摘下闪闪满天星,俗世翩翩少年歌一曲,把心声写给青山听。漫漫长路远,冷冷幽梦清,雪里一片清静,可笑我在独行,要找天边的星,有我美梦作伴不怕伶仃,冷眼看世间情,万水千山独行找我登天路径!


本文转载须全文转载,包括二维码和所有图片文字,并注明出自 大话存储 公众号。长按识别二维码关注 大话存储 获取业界最高逼格的存储知识。 看了好的请点赞/转发/红包,平时群里发红包装逼,不如把红包猛烈的砸向冬瓜哥吧!冬瓜哥后续会有更多高逼格的东西出炉。大话存储,只出精品。

长按图片发红包:

支付宝扫码发红包:

长按扫码关注“大话存储”


强赠冬瓜哥真容:

(请注意,冬瓜哥不是西瓜哥,这是两个人,很多人给混淆了,冬瓜哥很早就叫冬瓜了,某菊花司的某人2年前参考鄙人昵称在业界混淆视听,现在以至于很多人认为大话存储为那人所著,其目的一开始就是在冬瓜哥离开某菊之后消除冬瓜哥在某菊和业界的影响力,菊花黑寡妇作风是改不了了,冬瓜哥有图为证当年某人是怎么搅混水的)

阅读全文
0 0
原创粉丝点击