一、devmapper满了
当使用/dev/mapper创建虚拟块设备时,可能会出现/dev/mapper满了的情况。这是因为虚拟块设备会预留空间,导致/dev/mapper分区的可用空间减少。解决方法是清理虚拟块设备或者增加/dev/mapper的分配空间。
# 清理虚拟块设备
$ dmsetup ls
$ dmsetup remove [device-name]
# 增加/dev/mapper的分配空间
$ lvextend -l +100%FREE /dev/mapper/vg01-lv01
二、devmappercentos-root满了
当/dev/mapper/centos-root满了,会导致系统无法启动或无法正常工作。此时可以使用如下命令来排查磁盘空间占用情况。
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 48G 48G 0 100% /
如果是由于日志文件过多导致的磁盘空间不足,可以通过清空日志文件来释放磁盘空间。
# 查看日志文件大小
$ sudo du -sh /var/log/
# 清空日志文件
$ sudo truncate -s 0 /var/log/*
三、devmapperr shm
当使用内存共享或IPC时,可以创建/devmapperr shm设备来实现高效的内存共享。
# 创建/devmapperr shm设备
$ sudo ipcmk -M 512000 -Q -name my_shared_memory
这样就会在/dev/mapper目录下创建名为my_shared_memory的设备。
四、devmapperroot满了
如果/dev/mapper/root满了,那么可能是由于日志文件或者系统更新文件导致的。
# 查找最大的文件
$ sudo find / -size +1G
# 清理不需要的文件
$ sudo rm -rf /path/to/unneeded/file
五、devmapper thin pool
Thin pool是指一种可以节省磁盘空间的LVM,其原理是在thin pool创建时,只占用少量空间,随着数据的写入需要,再分配磁盘空间。
# 创建thin pool
$ lvcreate -L 100G -T vgpool/thinpool
# 创建逻辑卷
$ lvcreate -n lv1 -V 10G vgpool/thinpool
# 卸载逻辑卷
$ umount /dev/mapper/vgpool-lv1
# 删除逻辑卷
$ lvremove /dev/mapper/vgpool-lv1
# 删除thin pool
$ lvremove /dev/mapper/vgpool-thinpool
六、devmapper not config
当/dev/mapper未配置时,无法使用虚拟块设备。
# 查看未配置的虚拟块设备
$ dmsetup ls
# 配置虚拟块设备
$ vgscan
$ lvscan
七、devmappear not configured
当/dev/mapper未配置的虚拟块设备被删除后,需要重新配置。
# 查看未配置的虚拟块设备
$ dmsetup ls
# 配置虚拟块设备
$ vgscan
$ lvscan
八、devmappercentosroot满了
当/dev/mapper/centos-root满了,可能是由于log和cache文件过多,可以通过清理log和cache文件来解决。
# 查看log和cache文件
$ sudo du -sh /var/log/
$ sudo du -sh /var/cache/
# 清理log和cache文件
$ sudo rm -rf /var/log/*
$ sudo rm -rf /var/cache/*