Such a difference between your output of
du -sh and df -h
This will happen only if some large file has been deleted, but is still opened by some process. Check with your command lsof | grep deleted to see which processes have opened descriptors to deleted files. You need to restart the process and the space will be freed.
To know about Linux join the Linux training