V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
okudayukiko0
V2EX  ›  Linux

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

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

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

    或者,全盘都 LVM ,如此,可以给部分虚拟机用 LVM 卷了。
    wsy2220
        6
    wsy2220  
       2016-06-24 00:26:28 +08:00 via Android
    ntfs3g 有商业版本,快很多
    fengyqf
        7
    fengyqf  
       2016-06-24 01:19:49 +08:00
    编译内核,里面有 ntfs 支持,或许效率高一些,没证实过。
    不过一般的发行版大概不会编译入这个支持的
    legendt
        8
    legendt  
       2016-06-24 01:21:14 +08:00
    可以用 ufsd 替代 ntfs-3g
    fengyqf
        9
    fengyqf  
       2016-06-24 01:23:27 +08:00
    如果是多系统的个人桌面机,可以在 win 下把 ntfs 分区单独划出来一部分(比如 pq 之类无损分区软件),在 linux 里格式化成 ext4 并挂载
    okudayukiko0
        10
    okudayukiko0  
    OP
       2016-06-24 01:39:47 +08:00 via Android
    @wsy2220 为什么复制文件的速度都差不多但是跑 KVM 虚拟机就差这么远?
    RqPS6rhmP3Nyn3Tm
        11
    RqPS6rhmP3Nyn3Tm  
       2016-06-24 16:14:36 +08:00 via Android
    Paragon 我记得有在 Linux 下的商业 NTFS 软件
    adadada
        12
    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
        13
    stevegy  
       2016-06-24 20:11:34 +08:00
    记得很久以前( 3 年?大概。。。)装个 qemu kvm 的 windows 2008 虚拟机, IO 的性能很差,磁盘和网络的 IO 都很差。结果发现需要在 windows 上安装 kvm 磁盘驱动和网卡驱动。。。装完就飞快了。
    okudayukiko0
        14
    okudayukiko0  
    OP
       2016-07-15 04:19:46 +08:00 via Android
    后来用 dd 试了下,原来在 Linux 下 NTFS 读取快但写入很慢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2298 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:01 · PVG 13:01 · LAX 22:01 · JFK 01:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.