[libvirt-users] for a guest accessing host "full disk", how to prevent host vgscan

David Mansfield libvirt at dm.cobite.com
Thu Dec 22 19:00:34 UTC 2011



On 12/22/2011 12:44 PM, Daniel P. Berrange wrote:
> On Thu, Dec 22, 2011 at 09:20:01AM -0500, David Mansfield wrote:
>>
>> On 12/21/2011 05:41 PM, Daniel P. Berrange wrote:
>>> On Wed, Dec 21, 2011 at 05:23:33PM -0500, David Mansfield wrote:
>>>> Hi All.
>>>>
>>>> I have a dell system with a H700 raid.  Within the hardware RAID
>>>> config I've created a "virtual disk" which I have assigned to one of
>>>> my guests.  On the host the device is "/dev/sdb", on the guest it's
>>>> "/dev/vdb".
>>>>
>>>> This works fine.
>>>>
>>>> Within the guest, we have created lvm PV on /dev/vdb (using the
>>>> whole disk - no partitions) and created a volume group.  The guest's
>>>> hostname is "argo" and the vg is called "vg_argo_bkup".
>>>>
>>>> When I reboot the host, it does a vgscan and finds the volume group
>>>> and activates it in the _host_, which I need to prevent (I think??).
>>>>
>>>> I have successfully done this by filtering "/dev/sdb" in
>>>> /etc/lvm/lvm.conf (which does NOT work as advertised BTW), but
>>>> referencing the extremely volatile SCSI "sd*" names seems a terrible
>>>> way to do this.  If I fiddle around in the HW raid config, the
>>>> /dev/sd? may change.
>>>>
>>>> I plan on creating about 10 more VM's spread over a number of
>>>> machines over the next weeks with a very similar setup, and the
>>>> admin overhead seems like it'll be onerous and error-prone.
>>>>
>>>> I'd love to be able to filter the volume groups by VG name instead
>>>> of pv device node.  The host's hostname is "narnia" and I'd love to
>>>> say, 'vgscan --include-regex "vg_narnia.*"' or something similar, if
>>>> you get my drift.
>>>>
>>>> Does anyone have a best practice for this?  I'm sure iSCSI
>>>> enthusiasts must have the exact same issue all the time.
>>> The recommended approach is not to assign the entire disk to the
>>> guest. Partition the host disk, to contain 1 single partition
>>> consuming all space, then assign the partition to the guest. Worst
>>> case is you loose a few KB of space due to partition alignment, but
>>> this is a small price to pay to avoid the LVM problems you describe
>>> all to well.
>> I don't really understand.  The host still scans the partitions,
>> right?  And the partition "dev" names change dynamically if the
>> whole-disk changes it's "dev" name.  Won't I still have to list
>> specific volatile names in the /etc/lvm/lvm.conf on the host?
> The host will see '/dev/sda' and '/dev/sda1', you'll assign
> ' /dev/sda1' to the guest, and it will appear as /dev/vda.
> In the guest you'll create '/dev/vda1' and format it as the
> PV. So while the host will see /dev/sda1, it won't see the
> nested partition table, and thus won't see the PV

Ahhh.  Brilliant.  Thanks.  Now the only problem is getting the 
underlying stripe alignment right ;-)

David




More information about the libvirt-users mailing list