我有一个 PHP 脚本需要检查磁盘的总大小。我已经成功使用了一段时间的 disk_total_space,并且刚刚移动到使用 LVM 的新服务器。disk_total_space 现在报告完全不同的大小。我在第二个 LVM 服务器上重新创建了它。
df -h
在第一台服务器(CentOS 6.4,PHP v5.3.27)上显示
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg-vg_root 99G 47G 47G 50% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda1 194M 65M 120M 36% /boot
/dev/mapper/vg-vg_backup 400G 33M 400G 1% /var/tmp
/dev/mapper/vg-vg_mysql 950G 81G 870G 9% /data
但是 disk_total_space('/dev/mapper/vg-vg_mysql') 返回 32G。事实上,无论我在命令中输入什么分区,它都会返回 32G。
在第二台服务器(Ubuntu 10.04.4LTS,PHP v5.3.6)上,我得到了同样的行为:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/batty-root 258G 217G 29G 89% /
none 4.0G 208K 4.0G 1% /dev
none 4.0G 0 4.0G 0% /dev/shm
none 4.0G 88K 4.0G 1% /var/run
none 4.0G 0 4.0G 0% /var/lock
none 4.0G 0 4.0G 0% /lib/init/rw
none 258G 217G 29G 89% /var/lib/ureadahead/debugfs
并且 disk_total_space('/dev/mapper/batty-root') 返回 4G。
在这两种情况下,它似乎都返回了 LVM 未处理的磁盘空间量。有没有办法使用 PHP 获取 LVM 分区的总大小?