订阅软件研发RSS CSDN首页> 软件研发

Linux 3.6:更优秀的虚拟化平台

发表于2012-10-09 00:53| 次阅读| 来源CSDN| 0 条评论| 作者王然

摘要:这一版本的更新包括Btrfs新特性;挂起到磁盘和内存;TCP "Fast Open"模式;"TCP small queues"来解决bufferbloat问题;NFS/NBD安全交换;更好的ext4配额支持;支持PCIe D3cold电源状态;支持VFIO,并可以保证guest driver对裸主机设备的安全访问。

Linux 3.6的重大改进包括:

1. Btrfs:子卷配额、配额组、快照差别、跨子卷复制。

1.1. 子卷配额和配额组

每个子卷都可以设置相应的大小限制。一旦子卷大小达到限制配额将无法继续写入数据。该功能可用来代替配额,通过分配每个用户home一个子卷,并设置大小限制。

然而单独设置子卷配额是非常困难的,Btrfs支持配额组概念,可以通过创建一个配额组,并将多个子卷加入该组:该组中的所有子卷将会自动应用相同的配额限制。该功能命令是:

btrfs qgroup create/destroy assign/remove show/limit

1.2. 快照差别(或者说“send/receive”)

Btrfs可以计算两个快照间的区别,并在文件中存储其不同之处。该存储文件可以用在之后重建sent子卷/快照。send/receive的主要用处在于备份。

1.3. 跨子卷复制

Btrfs写时复制设计支持很多文件同时共享相同的底层数据,这使得不需要增倍使用空间就可以复制(使用 cp --reflink)文件或者路径。它有一个限制,尽管:不可以跨子卷进行复制,但这一限制现在已经没有了(但仍然不可以跨vfsmount复制文件,例如:文件系统上分开挂载的两个子卷)

2. 同时挂载到磁盘和内存

在便携式设备上,将休眠的镜像写入磁盘并挂起设备非常有用。如果电池用光了甚至丢失。计算机将会立刻关机,在重新启动后会从休眠镜像中恢复系统。否则会从内存中恢复,而休眠的镜像则会被忽略。

如果你希望将休眠镜像保存到swap并挂起到RAM,你可以使用“echo suspend > /sys/power/disk; echo disk > /sys/power/state”命令

3. 对SMBv2协议的支持

cifs网络文件系统增加了对SMB协议第二版的支持。SMB2协议是流行的CIFS和SMB网络文件共享协议的继承者,并且在2006年引入Vista后,一直是Windows操作系统的本体文件分享原理。SMB2的实现最终会给用户带来更好的性能、安全和更多的特性。

4. TCP Fast Open(客户端)

“Fast Open”是建立TCP链接的最优选择,相比于一般TCP会话能够减少一个RTT(round time trip),在访问流行网站时可以提速4%-41%。但这一版本仅加入了客户端的TFO支持。

5. Bufferbloat fight:TCP small queues

TCP small queues是另一个减少网络拥堵的机制,它的目标在于减少xmit queues (qdisc & device queues)中TCP包的数量,来减少RTT和cwnd bias,以此解决部分网络拥堵情况。我们可以在不降低名义带宽的情况下,减少每一个批量发送者的缓冲区:每Gbit< 1ms (相比于50ms with TSO)以及每100Mbit < 8ms (相比于132 ms)

6. 基于NFS/NBD的安全交换

Linux Terminal Server项目推荐使用Network Block Device(NBD)交换,在其手册上还有在某些地方。如何通过NBD设置交换的指南。即使如此,频繁使用NBD交换的机器还是会在几分钟内死锁。该版本允许使用NBD交换,但也增加了对通过NFS交换的支持。

7. ext4:更好的配额支持

ext4增加了对配额的支持,并视其为一类元素,这也就是说,不再是一单独的可见文在文件系统目录层,配额文件将会作为文件系统元数据存储在隐藏的索引节点中,将可以直接有e2fsprogs管理,配额哦将在文件系统被挂载的瞬间自动应用。而repquota程序则不会首先启动,除非实现了一个QUOTASCAN_OPEN接口。详细信息:https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4

8. PCIe D3cold电源状态支持

新版本增加了对PCI Express运行时D3cold电源状态的支持。D3cold是PCIe设备最底层省电模式。

9. VFIO:userspace driver裸机安全访问设备

VFIO驱动是一个IOMMU/设备不可知框架,在一个受IOMMU保护的安全的环境中向向userspace直接暴露设备访问。换句话说,它保证了安全的、无特权的userspace driver。为什么Linux需要它?虚拟机经常为了最高I/O性能使用直接设备访问(“设备分配”)。从设备和主机透视图来看,它只是简单地将虚拟机转变成一个用户驱动,因此能够显著降低延迟、更高的带宽、并可以直接使用裸机驱动。某些应用,特别是在高性能计算领域,也能从低开销、命名空间直接设备访问中收益,例如:网络适配器(通常基于非TCP/IP)和计算加速器。

详细更新可以查看Linux Kernel官网

0
0
Linux 3.6:更优秀的虚拟化平台

热门专区