I want to modify the code of Xen to do some experiments about virtual disk. I know the disk access of domU is implemented through the communication between frontend driver and backend driver. But there are some problems for me to understand the virtual disk of Xen.
1. When the dom0 create a domU, how does it distribute disk space to the domU? Is the space sequential in the physical disk address?
2. After distributing the disk space for the domU, how is the virtual disk implemented? The virtual disk has its own logical address like virtual memory? As I know, the domU could not access the physical disk directly, is its file system built on 'virtual disk'?
3. In some documents about Xen, I found that I could add the disk scheduling algorithm in dom0. I think I could add the algorithm in backend driver of dom0 using the event channels, then in this way I could avoid modifying the disk scheduling algorithm in linux kernel. Do I understand correctly?
I would appreciate it if anyone could give me some help.