mirror of
https://github.com/MariaDB/server.git
synced 2025-11-24 06:01:25 +03:00
Allow for a CI system to be almost out of space, or having so little use, that the Total space is the same as available or used. Thanks Otto Kekäläinen for the bug report and testing.
Information Schema Disks ------------------------ This is a proof-of-concept information schema plugin that allows the disk space situation to be monitored. When installed, it can be used as follows: > select * from information_schema.disks; +-----------+-----------------------+-----------+----------+-----------+ | Disk | Path | Total | Used | Available | +-----------+-----------------------+-----------+----------+-----------+ | /dev/sda3 | / | 47929956 | 30666304 | 14805864 | | /dev/sda1 | /boot/efi | 191551 | 3461 | 188090 | | /dev/sda4 | /home | 174679768 | 80335392 | 85448120 | | /dev/sdb1 | /mnt/hdd | 961301832 | 83764 | 912363644 | | /dev/sdb1 | /home/wikman/Music | 961301832 | 83764 | 912363644 | | /dev/sdb1 | /home/wikman/Videos | 961301832 | 83764 | 912363644 | | /dev/sdb1 | /home/wikman/hdd | 961301832 | 83764 | 912363644 | | /dev/sdb1 | /home/wikman/Pictures | 961301832 | 83764 | 912363644 | | /dev/sda3 | /var/lib/docker/aufs | 47929956 | 30666304 | 14805864 | +-----------+-----------------------+-----------+----------+-----------+ 9 rows in set (0.00 sec) - 'Disk' is the name of the disk itself. - 'Path' is the mount point of the disk. - 'Total' is the total space in KiB. - 'Used' is the used amount of space in KiB, and - 'Available' is the amount of space in KiB available to non-root users. Note that as the amount of space available to root may be more that what is available to non-root users, 'available' + 'used' may be less than 'total'. All paths to which a particular disk has been mounted are reported. The rationale is that someone might want to take different action e.g. depending on which disk is relevant for a particular path. This leads to the same disk being reported multiple times. An alternative to this would be to have two tables; disks and mounts. > select * from information_schema.disks; +-----------+-----------+----------+-----------+ | Disk | Total | Used | Available | +-----------+-----------+----------+-----------+ | /dev/sda3 | 47929956 | 30666304 | 14805864 | | /dev/sda1 | 191551 | 3461 | 188090 | | /dev/sda4 | 174679768 | 80335392 | 85448120 | | /dev/sdb1 | 961301832 | 83764 | 912363644 | +-----------+-----------+----------+-----------+ > select * from information_schema.mounts; +-----------------------+-----------+ | Path | Disk | +-----------------------+-----------+ | / | /dev/sda3 | | /boot/efi | /dev/sda1 | | /home | /dev/sda4 | | /mnt/hdd | /dev/sdb1 | | /home/wikman/Music | /dev/sdb1 | ... Installation ------------ - Use "install plugin" or "install soname" command: MariaDB [(none)]> install plugin disks soname 'disks.so'; or MariaDB [(none)]> install soname 'disks.so'; Usage ----- The plugin appears as the table 'disks' in 'information_schema'. MariaDB [(none)]> select * from information_schema.disks; +-----------+-----------------------+-----------+----------+-----------+ | Disk | Path | Total | Used | Available | +-----------+-----------------------+-----------+----------+-----------+ | /dev/sda3 | / | 47929956 | 30666308 | 14805860 | | /dev/sda1 | /boot/efi | 191551 | 3461 | 188090 | | /dev/sda4 | /home | 174679768 | 80348148 | 85435364 | | /dev/sdb1 | /mnt/hdd | 961301832 | 83764 | 912363644 | | /dev/sdb1 | /home/wikman/Music | 961301832 | 83764 | 912363644 | | /dev/sdb1 | /home/wikman/Videos | 961301832 | 83764 | 912363644 | ...