Linux虚拟机经常假死通常是由于VMware Tools无法识别剪贴板格式等问题导致的文件系统死锁

解决办法:不要使用并发性比较差的ext4文件系统,而是使用并发性比较好的xfs文件系统

btrfs并发性也比较好,但是btrfs基于写时复制,在虚拟机里使用容易造成虚拟硬盘体积膨胀

虚拟机很少有原地缩小分区大小的需求,xfs的这个限制影响不大,使用xfsdump和xfsrestore等方式已经足够

虚拟硬盘可通过sudo vmware-toolbox-cmd disk shrink /命令先填0再压缩虚拟硬盘缩小虚拟硬盘实际占用空间

xfs删除大量小文件的性能问题早已解决

----

btrfs的优点:

1、基于写时复制copy-on-write(COW),从根源上避免各种可靠性、并发性等问题

2、分区大小容易调整(扩大缩小分区均可在线调整)

3、有数据校验,避免数据损坏

4、有压缩、快照、子卷、RAID、磁盘配额等功能

5、自动识别SSD并为SSD优化文件系统算法并启用TRIM

6、Windows文件系统驱动维护较为活跃(WinBtrfs)

btrfs的缺点:写时复制大量丢弃的元数据/文件数据碎片可能导致性能降低、物理硬盘寿命降低和虚拟硬盘体积膨胀

注意:元数据写时复制是btrfs的核心特性,nodatacow挂载选项、chattr +C只能关闭可选的文件数据写时复制,而且只对新创建的文件有效(对挂载/目录来说,相当于对新创建的文件自动chattr +C,对文件来说,相当于要求后续写入尽可能原地更新)

----

参考资料:

Btrfs - ArchWiki (archlinux.org)

XFS - ArchWiki (archlinux.org)

Ext4 - ArchWiki (archlinux.org)

Linux 性能调优之文件系统调优 - 知乎 (zhihu.com)

04-20 17:16