首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >块级虚拟化和文件级虚拟化有什么区别?

块级虚拟化和文件级虚拟化有什么区别?
EN

Software Engineering用户
提问于 2017-01-17 05:46:14
回答 1查看 3.8K关注 0票数 1

在云计算中,这两个术语确实让我感到困惑:块级虚拟化和文件级虚拟化。

据我所知,在文件级虚拟化中,计算系统不分配分区,只处理存储系统API来检索或上载文件。

块级虚拟化是为计算系统分配空间作为分区,计算系统负责设置文件系统、写入和读取进程。

这是正确的,并能阻止有不同的含义?

注:我不确定软件工程是否是问的地方,如果不只是告诉我,我会删除它。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2017-01-17 06:29:10

基本上是正确的。

文件级虚拟化基本上只是一个支持文件共享的服务器。它通常尝试支持许多不同的协议,例如SMB (也称为CIFS --起源于Windows)、NFS (起源于Solaris)、AFS (Appletalk File Protocol)、可能是RFS,以及其他一些协议。

通常,这些接口访问一个公共文件池,因此一个客户端可以通过SMB访问一个文件,而另一个客户端可以通过NFS访问同一个文件,等等。

块级虚拟化在SCSI/SATA命令级别进行虚拟化。一种物理存储设备(例如,硬盘驱动器)具有一定数量的块,以及一组用于读取和写入数据块的命令。块级虚拟化意味着模仿相同的命令,因此设备驱动程序可以发送相同的命令,并获得相同的结果--但在这种情况下,这些命令和数据可以通过FibreChannel甚至以太网传输,而不是使用专用的SCSI连接。

这三种方法大大简化了,如下所示:

当然,这并不是唯一能做到的方法。例如,在块虚拟化堆栈中,可以有一个iSCSI启动器,在这种情况下,通常使用以太网代替上面显示的FibreChannel。

但是,重要的区别很简单:通过文件级虚拟化,服务器/NAS通常尝试提供许多文件共享协议,希望您所关心的每个客户端都能理解其中的至少一个协议。同样,大多数客户端试图支持许多协议,希望您能够连接到您所关心的每一个服务器。

在块级虚拟化的情况下,(至少在理论上)只有一组命令,基本上所有操作系统都知道如何使用,因此服务器基本上只支持这一组命令。问题是SCSI命令已经存在了很多代,并且已经定义了许多子集。因此,尽管理论上它们只是处理一组命令,但有很多变化是可能的。

同时,在块设备上存储和检索文件实际上只需要相当少量的命令(虚拟的或其他的)。许多更高级的命令用于透明地迁移数据,使用最少的客户端干预进行备份,等等。它们增加了许多有用的功能,但对于让客户端在磁盘阵列上存储文件这一简单任务来说,它们并不是绝对必要的。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/340315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档