First off, read through what I wrote here about the balancing of chunks to get an idea of how that actually works. TL;DR version is that no, the balancer will not care how full a shard is, it only cares about making the chunk counts on each shard the same.
To answer the headline question: when one shard runs out of space, inserts to the chunk ranges that live on that shard will fail. It will probably get into a bad state too, and might eventually crash (though MongoDB has gotten better at handling this type of problem).
Basically my advice is: don't let this happen - you can't truly predict what state the database might end up in when you run out of space, so it is better to just not get to that point than try to deal with it afterward (more on this later).
Regarding the moveChunk
files: yes, it is safe to remove them once the shards are balanced.
Next, you should read up on how space is used/reused in MongoDB - when you sharded and documents started moving to the new shard, they were deleted on the old one. But that does not mean that space on disk was reclaimed, and that shard will continue to see new documents added usually (depending on your chosen shard key). Hence, even after you clean up you may still see data growth.
What I am getting at is that you may eventually run out of space, and you want to avoid that. You mention that you are running a single node which means that you will essentially need to take down time to reclaim your disk space. Therefore I see two possible paths:
- Convert the standalone to a replica set (see guide) and then rotate through the nodes reclaiming space (minimal down time for the conversion)
- Take the shard down and run a repair (lengthy down time, usually bounded by your disk speed)
I would take the first path. Once you have done the necessary work, you can even go back to a single node if you wish (single node replica set = no down time, standalone mongod
= some down time to convert back from a replica set)