VDO – Virtual Data Optimizer 重复数据删除和压缩存储TRIM信息
Centos安装hdparm
yum install hdparm -y
[root@localhost ~]# ls -alrt /dev/mapper/vdo0
lrwxrwxrwx. 1 root root 7 Oct 12 20:02 /dev/mapper/vdo0 -> ../dm-3
[root@localhost ~]#
[root@localhost ~]# cat /sys/block/dm-3/queue/discard_granularity
4096
[root@localhost ~]# lsblk --discard
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 0B 0B 0
tqsda1 0 0B 0B 0
mqsda2 0 0B 0B 0
tqcentos-root 0 0B 0B 0
mqcentos-swap 0 0B 0B 0
sdb 0 0B 0B 0
mqvdovg-vdolv 0 0B 0B 0
mqvdo0 0 4K 4K 1
sdc 0 0B 0B 0
mqvdovg-vdolv 0 0B 0B 0
mqvdo0 0 4K 4K 1
sr0 0 0B 0B 0
[root@localhost ~]#
[root@localhost ~]# hdparm -I /dev/mapper/vdo0 | grep TRIM
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
[root@localhost ~]#
在使用 systemd 的 Linux 发行版中,一般都自带了 fstrim.timer 和 fstrim.service,启用后会定期一周执行一次 fstrim。以下是 CentOS 7 中的 service 文件。
# systemctl enable fstrim.timer
# systemctl start fstrim.timer
# cat /usr/lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
[Install]
WantedBy=multi-user.target
# cat /usr/lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks
[Service]
Type=oneshot
ExecStart=/usr/sbin/fstrim -a