Am Mittwoch, 15. Januar 2014, 19:05:41 schrieb Duncan: > But just as my already allocated mixed-mode chunks were just about full > and I needed another one allocated to complete the job, so your data > chunks are full or very close, according to btrfs fi df, and you need a > new one allocated (and if the file is greater than a gig in size, likely > more than one) to finish the job. > > And in both our cases, there's plenty of unallocated space in the pool, > but for whatever reason, btrfs isn't allocating that new chunk when it > should! Why, I can't say, but as I mentioned, I was able to work around > the problem here by trying the remaining files in a different order, and > at some point, btrfs figured out it needed that new chunk allocated, and > everything went fine after that. > > So... why btrfs is failing to allocate a new chunk when it needs to I > can't say, but I *CAN* say you're not the only one to have run into the > problem recently; I did too. > > And just as I did, here, with a bit of monkeying around, you can > /probably/ get btrfs to allocate that new data chunk and get on with > things. But the trouble is, since I don't know what the exact problem is > or what exactly I did to persuade btrfs to do that new chunk allocation, > I can't tell you exactly what to do to get it to happen, all I can do is > suggest you try copying smaller files or files of different sizes around > a bit, hoping to trigger that allocation. > > Once that chunk allocation happens, you should be good for at least a > gig, since that's the data-chunk size, but if your file is over a gig in > size, you may run into the problem again. In that case... Well, you > could try copying several gigs of smaller files, then once it allocates > what you need, delete them, leaving the data chunks allocated but with > enough unused space to copy the original multi-gig file over. I think you can cause BTRFS to allocate a chunk or more by creating a file with the fallocate command. Unless BTRFS doesn´t do it due to a bug and errors out with no space left. fallocate gives also an easy way to find out how much it might still allocate and at what point it fails – and that without writing tons of data first. fallocate just triggers allocation and does not write any actual data. -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
