我想请问一下块存储与文件存储的详细对比?比如说,块存储比文件更稳定,时延低,为什么?块协议比文件协议怎么稳定,体现在哪?文件协议开销大,体现在哪?
收起最直观的区别是二者接口不一样,块存储一般使用 iSCSI/SCSI/FC 等协议,文件存储一般使用 NFS/CIFS/SMB/FTP 等协议。通常情况下,块存储一般直接操作裸设备,文件存储则需要在设备上构建文件系统,如xfs等,因此从IO栈来看,文件存储需要多走一层文件系统,理论上性能要低于块存储。
另外,文件存储协议如 NFS 等可以支持多客户端读写,大部分应用可以直接支持文件接口;而块存储一般只能单个客户端读写,一般在虚拟化平台如 VMware, OpenStack 上应用较多。当然,很多应用可以同时支持块和文件接口,具体地还要根据应用对性能的要求以及业务场景决定采用什么存储。