note:在之前的一篇FCoE模块设计和实现的文章,大致讲到了FCoE模块的设计。虽然很清楚地讲了FcoE模块的组成,可是没有站在整个存储子系统的角度来看FCoE,总是有点局限的感觉,然后存储子系统和网络子系统是怎么交互的也没有说清楚,希望在这里这些疑问都能得到解答。
我们知道linux内核是层次设计的设计模式,存储子系统也不例外。下面这张图(来自网络)表示了linux下面存储子系统的层次化模块。
e.g.Application 访问文件
根据上图,如果一个用户空间中的应用程序(假设是用c语言编写的)要读取存放在remote scsi磁盘上面的某个文件,那么这个应用程序就需要使用c库的程序,然后调用内核提供的系统调用read(),系统调用会访问VFS,也就是虚拟文件系统,那么虚拟文件系统是什么呢?虚拟文件系统其实是文件系统的抽象层(复用代码的设计思想ÿ