--lvm,raid5,kvm虚拟机不支持的trim预先擦除操作
ssd的trim要解决的是,ssd硬盘的一个问题, 就是flash在写入时, 需要先对flash进行擦除操作, 而擦除操作特别慢,trim功能 就是预先擦除空闲的存储空间, 来提高写入速度。trim功能需要文件系统能够通知硬盘,哪些块不再用, 可以进行擦除, 这就是说,不但硬件要支持trim, 操作系统也要支持,支持trim的文件系统有ext4,btrfs(包括raid5格式),raid0,raid1, 明确不支持的有 raid5, lvm虚拟卷。目前lvm所谓的支持trim,只是指把虚拟卷lv删除时整体进行trim,而不能感知文件系统的文件删除操作
这些天一直在考虑一个问题, 就是一个支持trim的ext4分区,的预先擦除操作,对其他不支持trim的分区(raid5 or kvm-raw设备or lvm) 是不是有帮助,
我考虑的结果是有帮助, 因为,ssd内部的空闲空间是全局共享的,因为要进行均衡写入的需要。
所以,其它这些空闲空间会首先用于整体磁盘的写入, 然后写入的原位置数据, 会被事后擦除,放入空闲区。
对于全新的硬盘, 只要保留一块空间, 10G就够了,这10G在硬盘内部是已经擦除过的,在其他分区用过一遍了的情况下,会先写入这10G,完成写入后, 再利用空闲时间,擦除替换下来的存储块, 放入这10G空间。
但是对于已经使用过的硬盘, 最好先分出10G的空间, 格式化成ext4, 不放心的话,还可以挂载后执行fstrim程序, 手动进行trim, 做完之后, 硬盘在日常使用时, 可以不做挂载,甚至也可以删除分区, 只要ssd硬盘知道 这里有10G的空间擦除后没有写入过数据, 就可以了。