磁盘阵列不如NAS服务器快的原因探究

NAS是一台服务器,有自己的核心,如CPU、内存、操作系统、磁盘系统,而磁盘阵列只是一个存储介质。NAS直接接到交换机或集线器上,磁盘阵列接到服务器后端。NAS不依赖于服务器,NAS有自己的文件管理系统,把服务器管理文件的包袱卸掉,提高服务器性能,磁盘阵列没有自己文件管理系统,完全依托于服务器,当数据流量很大时,给服务器造成的压力很大,易形成I/O瓶颈,使整个网络系统性能降低。磁盘阵列技术的出现,是为了提高数据存储的可靠性。它用效率来换取可靠性。NAS把磁盘阵列技术融合在它的文件系统中,这样既提高了数据的可靠性,又利用磁盘的并行操作,提高了系统的整体性能。 由上可基本看出NAS比磁盘阵列速度快的原因,下面就让我们来具体对NAS和磁盘阵列速度做一个比较。

控制普通磁盘的是通用操作系统,如UNIX或NT, 控制磁盘只是其职能中的一部分,I/O操作算法效率不高。而NAS的操作系统是专用的,它只管磁盘I/O,算法效率最高。

通用文件服务器的CPU当进行I/O操作时,系统发生中断,等待I/O完成后才能恢复应用运行。在有NAS的系统中,应用程序需要进行磁盘I/O操作时,I/O操作由NAS完成,在磁盘I/O操作中最费时间的是写操作,NAS将写请求先写到NVRAM(不掉电内存)中,这个动作完成后,应用程序即可恢复运行,所以要比磁盘阵列速度快得多,不但速度提升,效率也明显高于磁盘阵列。

磁盘阵列速度慢的根本原因在于磁头臂的查找是机械动作,所以减少磁头臂的移动次数是提高效率的关键。NAS对磁盘的I/O操作算法,尤其是写操作,比通用操作系统做了极大的改进,它最大限度地减少了磁头臂的移动次数。其算法保证磁头总是停留在一个可写的位置上,并从这个位置连续写下去。

通常的RAID(磁盘阵列)系统,对于通用操作系统来说是外加的,是额外负担。人们使用RAID是为了得到高可靠性,但这是以牺牲一定的系统效率做前提的。NAS的RAID系统是设计在它的专用操作系统中的,它不仅不是额外负担,相反由于多个磁盘的磁头臂可以同时并行读写,所以I/O速度更高了。