On Jun 11, 2014, at 5:44 AM, Teng-Feng Yang <shinrairis@xxxxxxxxx> wrote: > Recently I have been working on a small project which requires data > blocks of each file to be aligned to 512KB/1MB boundary for > performance reason. As far as I know, this can be accomplished by > setting the stripe unit on XFS or enabling the "bigalloc" feature on > EXT4. However, the "bigalloc" feature has not yet been stated to be > stable in the latest release. So, this makes me wondering if I can > achieve this block allocation alignment by setting the stride-size on > EXT4. The document of mke2fs only says that this value may be used by > the block allocator, so I am not quite sure what it can offer for me > in this case. In fact, 1MB alignment is already the default behaviour for ext4 extent-mapped allocations, though it isn't enforced for small files. It is possible to specify the alignment with "-E stripe_width={blocks}" (blocks=256 for 1MB and =128 for 512KB, assuming 4KB blocksize). It might be possible to implement this alignment as required instead of optional for data blocks, but that would need a change to the code. It would still be more space efficient than bigalloc, since bigalloc will allocate a full 512KB for each metadata block or directory. Cheers, Andreas
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail