I haven't seen the code but have played with LVM2 LVs / device mapper myself on my own containers-based infrastructure and also seen performance issues in some situations.
Fundamentally (1) LVM2 LVs are capable of single-depth snapshots only, forcing hacks like an actual full blockstore copy if code expects duplication. (2) Docker was written primarily against aufs which provides rapid arbitrary-depth snapshots.
I suspect this is the heart of the issue... ie. Docker expects features this storage subsystem wasn't designed to support.
Fundamentally (1) LVM2 LVs are capable of single-depth snapshots only, forcing hacks like an actual full blockstore copy if code expects duplication. (2) Docker was written primarily against aufs which provides rapid arbitrary-depth snapshots.
I suspect this is the heart of the issue... ie. Docker expects features this storage subsystem wasn't designed to support.