[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] xl create should refuse to share block devices RW between domains



On Tue, 2010-07-27 at 11:40 +0100, Stefano Stabellini wrote:
> On Tue, 27 Jul 2010, Ian Campbell wrote:
> > On Tue, 2010-07-27 at 01:36 +0100, Jeremy Fitzhardinge wrote:
> > > When creating a domain, "xl create" should fail if a block device is 
> > > shared RW between domains, like xm create does.
> > > 
> > > I'm not sure how this would be implemented.  Search xenstore for 
> > > references to the device when setting up a domain?
> > 
> > The hotplug scripts have locking and calls to a function called 
> > "check_device_sharing" in them, I've been wondering why that wasn't
> > kicking in for xl created domains for a little while but never got to
> > investigating.
> > 
>  
> those scripts are called by udev and theoretically should work
> exactly the same way with xend or libxl.
> I didn't test this but I believe that since libxl always uses blktap2,
> the script called is block and the codepath taken is the following:
> 
>     phys=$(xenstore_read_default "$XENBUS_PATH/physical-device" 'MISSING')
>     if [ "$phys" != 'MISSING' ]
>     then
>       # Depending upon the hotplug configuration, it is possible for this
>       # script to be called twice, so just bail.
>       exit 0
>     fi
> 
> so we never do any checks.

...and in any case physical-device would be a unique /dev/xen/tapdisk-N
path, regardless of any sharing of the files tapdisk is backing onto so
it is rather hard to check for sharing at this level anyway.

> I also think that tap_ctl_create is the right place to do these checks,
> not a script called by udev after the device has been created.

Agreed. tapdisk should be taking out a flock() or something similar on
any vhd files it is going to write to and should fail if it can't lock
the file.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.