注:文章出自“DOSTOR论坛”之VERITAS存储技术专业社区,全文为个人经验总结,不代表DOSTOR观点
更多信息可访问:http://bbs.dostor.com/viewthread.php?tid=32153&extra=page%3D1&page=1
问:在关于NAS的描述中,提到一点,NAS与SAN的一个区别是:NAS是基于文件(file)系统的方式来存储数据,而SAN是基于块(block)的方式来存储数据。那NAS基于文件系统的方式存放数据,是不是指:对于NAS设备,客户端看到的是一个一个的区,而不是一个硬盘,只能读写,不能对它做行为,如:重新分区、格式化等?
答:常听人说,做文件传输用NAS,做块传输用SAN。有点意思,但没说到本质。主要是看应用在涉及到I/O的时候计算模式是怎么样的。应用是在操作系统平台上运行的,应用要运行I/O的时候,会向操作系统发个中断,请求做I/O。操作系统在接到中断后,会调用文件管理系统来处理I/O。如果是DAS,是一块盘,操作系统就直接对盘进行操作。如果是在网络存储环境中,存储一般是一个阵列,操作系统对阵列进行操作,阵列再去进行具体的I/O操作。
涉及I/O的应用模式实际有5个层次。应用、操作系统、文管系统、阵列管理和磁盘I/O读写。SAN实际只管理阵列管理和磁盘I/O读写,不管文管系统。而NAS则管理文管系统、阵列管理和磁盘I/O读写。所以,文件传输和块传输在NAS和SAN中都有,只是说在SAN的结构中,文件传输是在操作系统内部和文件系统之间消化掉了,体现出来的是文件系统处理之后的块传输到阵列管理这一部分。在NAS这种结构中,实际上是操作系统把文件传输的需求通过文件共享的协议,传给NAS系统,然后由NAS系统加上文管系统来处理。所以,应该从计算模式上来看两者之间的差别。在NAS系统中,是一个文管系统来管理整个的存储结构,而SAN的架构中,真正的数据的格式是取决于跟SAN相连的服务器的文件格式。这是NAS和SAN的最根本差别。