In order to ease management, the ext2 filesystem logically divides the disk
into small units called blocks. A block is the smallest unit which
can be allocated. Each block in the filesystem can be allocated or
free.
The Ext2fs source code refers to the concept of fragments, which I
believe are supposed to be sub-block allocations. As far as I know,
fragments are currently unsupported in Ext2fs.
The block size can be selected to be 1024, 2048 or 4096 bytes when creating
the filesystem.
Ext2fs groups together a fixed number of sequential blocks into a group
block. The resulting situation is that the filesystem is managed as a
series of group blocks. This is done in order to keep related information
physically close on the disk and to ease the management task. As a result,
much of the filesystem management reduces to management of a single blocks
group.