如何优化 Linux 下 ntfs-3g 读写机能?

2016-06-23 22:24:39 +08:00
 okudayukiko0
因为 /分区太小,所以只能把一些文件移到 ntfs 分区,很无奈。
/分区采用的是 ext4 。
先是在 /分区上新建一个 qcow2 文件,用于一个 kvm 虚拟机。
然后用 qemu-kvm 启动这个 qcow2 镜像并安装 win2003 r2 。
测得 win2003 的开机时间为 30 秒(从 BIOS 到桌面)。
但是将这个 qcow2 复制到一个 NTFS 分区并用 kvm 启动 NTFS 分区上的 qcow2 时,却悲剧了,不仅启动极慢,连打开一个开始菜单都要等。
8022 次点击
所在节点    Linux
14 条回复
BSD
2016-06-23 22:34:14 +08:00
NTFS 是商业产品,不知是稳定性原因还是因为微软的法律威胁,一直没有进入 Linux/BSD 的内核,只能在用户态运行,所以,效率肯定极差,反正我是从来不在 Linux/BSD 下用 NTFS 的,非要跟 Windows 交换数据,就用 VFAT 。

也不知为嘛, VFAT 同样也是微软的,却可以进入内核。
okudayukiko0
2016-06-23 23:29:49 +08:00
@BSD 刚刚试了下 发现用 VMware 启动原有 NTFS 上的 VMware 虚拟机依旧很快,估计是 VMware 对 NTFS 做了优化。
okudayukiko0
2016-06-24 00:00:26 +08:00
@BSD 又用 cp 和 KDE 文件管理器试了下复制这个 2.5GB 的 QCOW2 文件,
NTFS->EXT4 和 EXT4->EXT4 (复制到不同的目录)所用的时间只差 2 秒。
网上也有文章说 NTFS-3G 的性能已经比较好了 ...
okudayukiko0
2016-06-24 00:01:40 +08:00
@BSD 我是在 tty 下用 qemu 手动启动的 KVM 。
likuku
2016-06-24 00:19:42 +08:00
全硬盘都 EXT4 ,给虚拟机直接用文件作此盘。

或者,全盘都 LVM ,如此,可以给部分虚拟机用 LVM 卷了。
wsy2220
2016-06-24 00:26:28 +08:00
ntfs3g 有商业版本,快很多
fengyqf
2016-06-24 01:19:49 +08:00
编译内核,里面有 ntfs 支持,或许效率高一些,没证实过。
不过一般的发行版大概不会编译入这个支持的
legendt
2016-06-24 01:21:14 +08:00
可以用 ufsd 替代 ntfs-3g
fengyqf
2016-06-24 01:23:27 +08:00
如果是多系统的个人桌面机,可以在 win 下把 ntfs 分区单独划出来一部分(比如 pq 之类无损分区软件),在 linux 里格式化成 ext4 并挂载
okudayukiko0
2016-06-24 01:39:47 +08:00
@wsy2220 为什么复制文件的速度都差不多但是跑 KVM 虚拟机就差这么远?
RqPS6rhmP3Nyn3Tm
2016-06-24 16:14:36 +08:00
Paragon 我记得有在 Linux 下的商业 NTFS 软件
adadada
2016-06-24 19:32:26 +08:00
如果对 I/O 性能有要求,除了上面说的 NTFS 驱动的问题,可能还需要考虑磁盘镜像格式和 QEMU 模拟的磁盘设备的类型。 qcow2 因为要实现 copy on write 的特性,在读写时需要维护额外的数据结构,必然会影响吞吐量 (特别是在你的 qcow2 镜像还依赖与另外的 base image 的时候),可以考虑用 qemu-img 转换成 raw 格式。 qemu 默认通过 -hda 参数创建的磁盘设备是模拟真正的磁盘设备,也会有额外的开销,可以考虑使用 virtio block 设备 (-device file=disk_image,if=virtio),注意要在 guest windows 里先装好 virtio 的驱动。
stevegy
2016-06-24 20:11:34 +08:00
记得很久以前( 3 年?大概。。。)装个 qemu kvm 的 windows 2008 虚拟机, IO 的性能很差,磁盘和网络的 IO 都很差。结果发现需要在 windows 上安装 kvm 磁盘驱动和网卡驱动。。。装完就飞快了。
okudayukiko0
2016-07-15 04:19:46 +08:00
后来用 dd 试了下,原来在 Linux 下 NTFS 读取快但写入很慢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287915

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX