Thursday, September 13, 2007

Xen: Full Virt Solaris 10, Pt 4

Haha!!!!! I got it! And (unfortunately) it is a bug in Xen.

After significant playing with the video board, I decided that maybe it was the CD-RW. Perhaps, Linux was aquiring the CD-RW as read-write, and the Solaris VM was trying to access the locked device. To test, I pulled the cable on the CD-RW and rebooted. Without the CD-RW, the error returned. Not the the CD-RW, I thought.

After a few more hours, a couple glasses of wine, and a few minutes of falling asleep in my chair, I decided that maybe I could observe the error on the VM if I could get the console to activate at start, rather than post start. I had no luck, but I did notice something I had not seen.

On the GUI Manager, virt-manager, was a Details button. Clicking this allows a user to browse statistics and hardware for a VM. I examined the hardware, and noticed something strange: the shared CD-RW had a source path of /dev. That's not going to work.

This would be easy to fix on RHEL5, because we could edit the config file. On F7, the config is stored in a database that I had not been able to crack. Then I found a blog entry by Jim Klein where he described a command to export and import from the database. A quick XML edit fixed ten days worth of problems.
# virsh dumpxml starbuck01 > /etc/xen/starbuck01.xml
# cat /etc/xen/starbuck01.xml
--- snip ---
    <disk type='block' device='cdrom'>
        <driver name='phy'/ />
        <source dev='/dev/' />
        <target dev='hdc' />
        <readonly />
--- snip ---
Notice the source dev. Changed it to '/dev/cdrom', and imported per Klein's instructions:
virsh define /etc/xen/starbuck01.xml
Error gone.

1 comment:

  1. In correspondence with Per Hjartoy, who was having a similar problem, it seems we need to modify the XML stanza to read:

    <disk type='block' device='cdrom'>
      <driver name='phy'/>
      <source dev='/dev/scd0'/>
      <target dev='hdc'/>

    At issue is the fact that the VM can boot, but can not read from the CD-RW. I'll test tonight and create a new post.