[libvirt-users] Connect libvirt to iSCSI target
Marco
lists at homerow.info
Sun Dec 22 15:09:19 UTC 2013
On 2013–12–21 John Ferlan wrote:
> On 12/17/2013 07:13 PM, Marco wrote:
> > Hi!
> >
> > I'm new to libvirt and face problems connecting to an iSCSI target.
> > What I intend to do is to connect libvirt (I tried virt-manager and
> > virsh) to an iSCSI target and then boot from the LUNs which contain
> > the VMs.
> >
> > I followed the documentation¹ but got stuck at section 12.1.5.4.3.
> >
> > 1)
> > virsh pool-define-as \
> > --name foo \
> > --type iscsi \
> > --source-host vmhost \
> > --source-dev iqn.2013-11.vmhost:vmpool \
> > --target /dev/disk/by-path
> >
> > 2)
> > virsh pool-start foo
> > error: Failed to start pool foo
> > error: internal error: cannot find session
> >
> > virsh -c qemu:///system pool-start foo
> > error: Failed to start pool foo
> > error: internal error: cannot find session
> >
>
> I'm assuming 'vmhost' is actually some valid IP Address/Name that you're
> just using here to hide from the world your actual iSCSI tgt server.
> Don't forget that the 'source-host' may be listed as
> 'host1.example.com'; however, the iqn has 'com.example.host1'. IOW -
> reversed...
It's a test setup and I don't use a FQDN.
> Have you looked at http://libvirt.org/formatstorage.html ?
I did, indeed.
> There's an example there of output that works for me.
For me it does not.
> Use virsh pool-dumpxml <pool>
> to view the XML...
Here's my XML which is directly taken from the manual. I only
changed the host name to “freenas” and the device path.
<pool type='iscsi'>
<name>virtimages</name>
<uuid>347feb68-7e11-4f2b-ba82-ada027296fb0</uuid>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>0</available>
<source>
<host name='freenas'/>
<device path='iqn.2013-11.freenas:vmpool'/>
</source>
<target>
<path>/dev/disk/by-path</path>
<permissions>
<mode>0755</mode>
<owner>-1</owner>
<group>-1</group>
</permissions>
</target>
</pool>
> Also, do you need to authenticate to the iSCSI target?
Not yet. To rule out authentication issues for testing I turned off
authentication.
> The iscsiadm will use '/etc/iscsi/iscsid.conf'. See the
> node.session.auth.{authmethod | username | password} fields, so
> while iscsiadm may work, when libvirt goes to connect it fails.
Thanks for pointing that out, but I don't think it's the case here.
> Looking at the output in the system messages
> log may help (for my f19 /var/log/messages).
The log of a failed virsh pool-start virtimages can be found here
http://dpaste.com/1518444/
Most notable is I assume:
libvirtd[8028]: internal error: Child process (/usr/bin/iscsiadm --mode session) unexpected exit status 21
>From “man iscsiadm”:
21 ISCSI_ERR_NO_OBJS_FOUND - no records/targets/sessions/portals
found to execute operation on.
If I run “iscsiadm --mode session” in the console, I indeed get and
error:
iscsiadm: No active sessions.
Do I need to create a session or setup libvert to do that before
iSCSI is supposed to work?
The log shows that libvirt is able to connect to the target:
iscsid: Connection85:0 to [target: iqn.2013-11.freenas:vmpool, portal: 10.0.10.23,3260] through [iface: libvirt-iface-04d9ea67] is operational now
> You may also find if you have selinux enabled as Enforcing there could
> be more configuration that you need (if the iSCSI tgtd is local).
> Setting up a label on the file - something I'm not an expert at...
selinux is not used.
> Another tool to try is 'iscsi-ls' from package 'libiscsi-utils'
>
> iscsi-ls -s -i iqn.2013-11.vmhost:vmpool \
> iscsi://<username>%<password>@<ipAddr>:3260
This succeeds:
iscsi-ls -s -i iqn.2013-11.freenas:vmpool iscsi://freenas
Target:iqn.2013-11.freenas:vmpool Portal:10.0.10.23:3260,1
Lun:0 Type:DIRECT_ACCESS (Size:9G)
[…]
> If you need to authenticate, then set up a secret to the iSCSI server,
> see http://libvirt.org/formatsecret.html for an example.
If the simple setup is working I'll add authentication but for the
moment I try to keep is as simple as possible.
To rule out issues with the iSCSI target I manually tested using
“iscsiadm” and VirtualBox which both succeeded without any session
errors.
Thanks for your quick response.
Best regards
Marco
More information about the libvirt-users
mailing list