On 06/11/2014 10:10 AM, Daniel P. Berrange wrote:
On Wed, Jun 11, 2014 at 10:00:24AM -0400, John Ferlan wrote:
>
>
> On 06/11/2014 05:31 AM, Daniel P. Berrange wrote:
>> On Tue, Jun 10, 2014 at 03:03:55PM -0400, John Ferlan wrote:
>>
>> Where is the data from the 'unique_id' coming from ? Is this since that
>> Linux makes up, or is it some standard attribute from the hardware ? It
>> would be desirable to document what it is in a way that's not simply
>> refering to Linux sysfs, since sysfs itself is mostly undocumented :-)
>>
>>
>
> Using 'unique_id' was from Osier's initial design - I 'assumed'
that his
> research into this had determined using this was unique enough.
>
> A small amount of searching turns this up:
>
>
https://lkml.org/lkml/2011/8/17/274
> ...
> +What: /sys/bus/scsi/devices/host*/scsi_host/host*/unique_id
> +Date: February, 2003
> +KernelVersion: Unknown
> +Contact: James Bottomley <James.Bottomley(a)HansenPartnership.com>
> +Description:
> + Read only unsigned integer uniquely identifying the SCSI host
> + within the system. This value is assigned by the low level
> + driver.
> +
> ...
>
>
> Also from various sources, there's '/linux/include/scsi/scsi_host.h
>
> /*
> * This is a unique identifier that must be assigned so that we
> * have some way of identifying each detected host adapter properly
> * and uniquely. For hosts that do not support more than one card
> * in the system at one time, this does not need to be set. It is
> * initialized to 0 in scsi_register.
> */
> unsigned int unique_id;
Hmm, that's all rather fuzzy. I wonder how much "better" this is unique
int ID is than the current hostNN numbers. eg is this unique id stable
when you plug / unplug iSCSI targets in arbitrary order
Not sure I can answer with authority on the plug/unplug topic; however,
as I understand it the hostNN numbers can "change" what they are
pointing at after perhaps a reboot or scsi kernel module reload. I'm
not an expert in these matters, but as I do understand it hardware is
scanned and devices named in the order they are found.
Using the PCI address and unique_id in combination provides a bit more
of a chance that if the hostNN number changes, then libvirt will/could
find the same adapter that was previously used.
John