Hello, I'm at the beginning to use LVM in my machine.   Could you give any information on the implementation details of LVM and device mapper?? More specifically, I want to change the "mapping between PE and LE" for some purposes, however I'm just finished to read the manual of LVM-HowTO. This means that I'm totally a newbie in LVM and device-mapper. I just read some codes on data structures in LVM2/lib/metadata/metadata.h, but I can't get more information anymore on how they are mapped.   I was hanging around the codes in LVM2 source to find the part related with the "mapping", I just got to know the mapping information is stored in device mapper, not in the LVM.   I'll use LVM for this purpose - I would like to make a program to change the mapping relationship between PE and LE in my own. In fact, the program's goal is to move an extent in a bad disk to a disk with good performance. The movement is done by the extent. In order to do it, I definitely, have to know how I can modify the mapping and maybe, the entire structure of LVM and device mapper.   Could you give me some information on LVM & device-mapper details that help me?? - exactly all about the mapping between LE & PE.. I'm totally at the beginning, I'm well prepared to dig in the codes from now on, does anyone can help me to run faster??