[DRBD-user] Fwd: [Xen-users] drbd, xen and disk not accessible..

Marco Strullato marco.strullato at gmail.com
Thu Apr 24 17:25:12 CEST 2008

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


Hi all, I'm writing here after writing to the xen mailing list
xen-users at lists.xensource.com.

I'm setting up drbd working with xen following this guide:
http://www.drbd.org/users-guide/ch-xen.html

My environment is 2 server with centos 5 64 bit, with those packages:
kmod-drbd82-xen-8.2.5-1.2.6.18_53.1.14.el5
xen-libs-3.2.0-0xs
xen-3.2.0-0xs
kernel-xen-2.6.18-53.1.14.el5
drbd82-8.2.5-1.el5.centos

This is the drbd configuration:
global {
        usage-count yes;
 }
common {
        protocol C;
        disk {
                on-io-error detach;
        }
        syncer {
                verify-alg md5;
                rate 50M;
        }

}
resource r0 {
        startup {
                become-primary-on both;
        }
        net {
                allow-two-primaries;
        }
        on hyp11.infolan {
                device     /dev/drbd0;
                disk       /dev/HYP11VM/VMNAME;
                address    10.100.0.2:7788;
                meta-disk  internal;
        }
        on hyp10.infolan {
                device    /dev/drbd0;
                disk      /dev/HYP10VM/VMNAME;
                address   10.100.0.1:7788;
                meta-disk internal;
        }
}

The domU configuration file is
<domain type='xen' id='-1'>
  <name>SLSPTEST</name>
  <uuid>10147595b176607d804d0e1dc1d2103d</uuid>
  <bootloader>/usr/bin/pygrub</bootloader>
  <os>
    <type>linux</type>
  </os>
  <memory>2097152</memory>
  <vcpu>1</vcpu>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <interface type='bridge'>
      <source bridge='xenbr0'/>
      <mac address='00:16:3e:44:d3:9b'/>
    </interface>
    <disk type='block' device='disk'>
      <driver name='drbd'/>
      <source dev='r0'/>
      <target dev='xvda'/>
    </disk>
  </devices>
  <kernel>/boot/vmlinuz-2.6.9-67.0.7.ELxenU</kernel>
  <ramdisk>/boot/initrd-2.6.9-67.0.7.ELxenU.img</ramdisk>
  <root>ro root=/dev/VolGroup00/LogVol00 console=xvc0 selinux=0</root>
</domain>

I can import this configuration without errors but I can not start the
domU: I get  the error Disk isn't accessible

As suggested into the xen ml I changed the driver type for the disk
device to phy and the source dev to drbd0. With this configuration the
domain boots correctly,

The problem is that I want to migrate the domain from a hypervisor to
another hypervisor: with the last configuration the domU does not
migrate due to this error:

[2008-04-24 17:02:00 8572] ERROR (XendDomainInfo:1950)
XendDomainInfo.resume: xc.domain_resume failed on domain 13.
Traceback (most recent call last):
 File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
line 1944, in resumeDomain
   self._createDevices()
 File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
line 1506, in _createDevices
   devid = self._createDevice(devclass, config)
 File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
line 1478, in _createDevice
   return self.getDeviceController(deviceClass).createDevice(devConfig)
 File "/usr/lib64/python2.4/site-packages/xen/xend/server/DevController.py",
line 113, in createDevice
   raise VmError("Device %s is already connected." % dev_str)
VmError: Device xvda (51712, vbd) is already connected.

This is error is very similar to the error I get starting the domU
with the drbd driver.

So, following the drbd guide for xen integration I have this error and
I can not continue.
Do you have suggestions?

Thanks

Marco



Marco Strullato wrote:
 >
 > Hi all,
 > I set up two systems with centos5 64 bit, xen 3.2 (rebuit
 > from src.rpm), drbd.
 > At first I installed a centos4.5 32 bit using the device /dev/drbd0
 > (is it possible to use the drbd resource at this step?) and then I
 > dump the configuration, I changed the driver name, source dev and I
 > added the kernel, ramdisk and root parameters.
 >
 > This is my configuration xml
 >
 > <domain type='xen' id='-1'>
 >   <name>SLSPTEST</name>
 >   <uuid>10147595b176607d804d0e1dc1d2103d</uuid>
 >   <bootloader>/usr/bin/pygrub</bootloader>
 >   <os>
 >     <type>linux</type>
 >   </os>
 >   <memory>2097152</memory>
 >   <vcpu>1</vcpu>
 >   <on_poweroff>destroy</on_poweroff>
 >   <on_reboot>restart</on_reboot>
 >   <on_crash>restart</on_crash>
 >   <devices>
 >     <interface type='bridge'>
 >       <source bridge='xenbr0'/>
 >       <mac address='00:16:3e:44:d3:9b'/>
 >     </interface>
 >     <disk type='block' device='disk'>
 >       <driver name='drbd'/>
 >       <source dev='r0'/>
 >       <target dev='xvda'/>
 >     </disk>
 >   </devices>
 >   <kernel>/boot/vmlinuz-2.6.9-67.0.7.ELxenU</kernel>
 >   <ramdisk>/boot/initrd-2.6.9-67.0.7.ELxenU.img</ramdisk>
 >   <root>ro root=/dev/VolGroup00/LogVol00 console=xvc0 selinux=0</root>
 > </domain>
 >
 > The drbd configuration is:
 >
 > global {
 >         usage-count yes;
 >  }
 > common {
 >         protocol C;
 >         disk {
 >                 on-io-error detach;
 >         }
 >         syncer {
 >                 verify-alg md5;
 >                 rate 50M;
 >         }
 >
 > }
 > resource r0 {
 >         startup {
 >                 become-primary-on both;
 >         }
 >         net {
 >                 allow-two-primaries;
 >         }
 >         on hyp11.infolan {
 >                 device     /dev/drbd0;
 >                 disk       /dev/HYP11VM/VMNAME;
 >                 address    10.100.0.2:7788;
 >                 meta-disk  internal;
 >         }
 >         on hyp10.infolan {
 >                 device    /dev/drbd0;
 >                 disk      /dev/HYP10VM/VMNAME;
 >                 address   10.100.0.1:7788;
 >                 meta-disk internal;
 >         }
 > }
 >
 >
 > Everythig seems to be ready: I loaded the configuration file
 > successfully with virsh define SLSPTEST and the drbd resource is set
 > up according to the drdb guide (dual primary mode enabled).
 >
 > [root at hyp10 scripts]# cat /proc/drbd
 > version: 8.2.5 (api:88/proto:86-88)
 > GIT-hash: 9faf052fdae5ef0c61b4d03890e2d2eab550610c build by
 > buildsvn at c5-x8664-build, 2008-03-09 10:16:12
 >  0: cs:Connected st:Primary/Primary ds:UpToDate/UpToDate C r---
 >     ns:12539333 nr:0 dw:1005385 dr:11578691 al:558 bm:704
 > lo:0 pe:0 ua:0 ap:0
 >         resync: used:0/31 hits:720168 misses:704 starving:0
 > dirty:0 changed:704
 >         act_log: used:0/127 hits:272661 misses:558 starving:0 dirty:0
 > changed:558
 >
 > Unluckly when I execute xm start SLSPTEST I get
 >
 > Error: Disk isn't accessible
 >
 > The xend log is
 >
 > 2008-04-24 16:36:56 8572] ERROR (XendBootloader:43) Disk
 > isn't accessible
 > [2008-04-24 16:36:56 8572] ERROR (XendDomainInfo:440) VM start failed
 > Traceback (most recent call last):
 >   File
 > "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
 > line 420, in start
 >     XendTask.log_progress(31, 60, self._initDomain)
 >   File "/usr/lib64/python2.4/site-packages/xen/xend/XendTask.py", line
 > 209, in log_progress
 >     retval = func(*args, **kwds)
 >   File
 > "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
 > line 1694, in _initDomain
 >     self._configureBootloader()
 >   File
 > "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
 > line 2050, in _configureBootloa
 > der
 >     bootloader_args, kernel, ramdisk, args)
 >   File
 > "/usr/lib64/python2.4/site-packages/xen/xend/XendBootloader.py",
 > line 44, in bootloader
 >     raise VmError(msg)
 > VmError: Disk isn't accessible
 > [2008-04-24 16:36:56 8572] DEBUG (XendDomainInfo:1883)
 > XendDomainInfo.destroy: domid=12
 > [2008-04-24 16:36:56 8572] DEBUG (XendDomainInfo:1900)
 > XendDomainInfo.destroyDomain(12)
 > [2008-04-24 16:36:56 8572] DEBUG (XendDomainInfo:1524) No device model
 > [2008-04-24 16:36:56 8572] DEBUG (XendDomainInfo:1526)
 > Releasing devices
 >
 >
 > How could I solve this problem? I want to use the suggested
 > configuration using the drbd driver but it does't work.


Marco,

 When you do an 'rpm -qa | grep xen' does it show both
 xen-3.2.0 and xen-libs-3.2.0 as installed? They should
 be given the dependencies. If so then I would ask on
 the drbd list why their drbd type doesn't work as
 shown on their wiki. Maybe it was excluded from Xen
 and when they wrote the wiki page they were hoping it
 would have been adopted.

 It doesn't really matter anyways, because listing the
 device as phy:drbd0 would give you the exact same
 result, which is attach xenblk on the backend.



More information about the drbd-user mailing list