哪个好?我是不知道的,也是不关心的。
NFS,network file system的简写。iSCSI,是Internet Small Computer Systems Interface的简写。直译就是“互联网小计算机系统接口”。乍一看上去,以为是SCSI硬盘呢。
有一篇长达14页的论文,作者来自麻省工学院、IBM和加州伯克利大学,好像很牛叉哦!论文对这两个系统进行了对比,结论是:
- 两个系统NFS(v4)和iSCSI尽管一个是文件管理系统,一个是块管理系统,在数据存取层次上,性能不相上下。
- 但在Metadata,元数据存取上,NFS v4比iSCSI快一倍。
Wikipedia上说,尽管iSCSI使用CHAP协议,避免明文交换密码,但其本身也较容易受攻击。所以安全性,也都差不多。不想翻译,完整的论文在这里,能看懂的且有兴趣的,就将就着瞅一眼吧。
http://lass.cs.umass.edu/papers/pdf/FAST04.pdf
我更关心的是,如何在Linux中实现它们。简单地比较一下:
NFS部署
存储阵列端(服务端)需要运行:
- nfs-server
- nfs-secure-server
服务端的配置文件是/etc/exports。在里面写上你要提供的空间的位置
#/etc/exports
/exportdir 172.25.0.0/24(rw,sec=krb5p)
/exportdir2 172.25.0.0/24(ro)
客户端需要运行:
- nfs
- nfs-secure
客户端/etc/fstab中装载示例:
//server:/protected /mnt/nfssecure nfs sec=krb5, _netdev 0 0
iSCSI部署
存储阵列端(服务端)需要运行:
- targetcli,用来配置阵列资源的命令行工具,并非用来提供服务
客户端需要运行:
- iscsi
- iscsid,这才是服务器端守护进程软件,跟nfs颠倒过来了。
- iscsi-initiator-utils,也是用来配置的工具
客户端/etc/fstab中装载示例:
UUID = “as identified in blkid” /mnt/ ext4 _netdev 0 0