targetcli -fb now also Apache 2.0 licensed
by Andy Grover
Hi Nick,
I just wanted to let you know that I finally received permission from
all contributors, and have matched RisingTide's relicensing of targetcli
and its dependencies to Apache 2.0, by relicensing the additional
contributions in the targetcli-fb branch under the same license.
I'm not quite sure the next steps are, except enjoying all our newly
non-viral source code, but much thanks for getting the ball rolling.
Regards -- Andy
p.s. targetcli is the userspace tool to easily configure the 'LIO'
kernel target, in case any readers were wondering.
10 years, 8 months
Problem with RAID device in python-rtslib-2.1.fb36-1.fc18
by Craig Watson
Hi,
I'm using LIO (python-rtslib 2.1.fb36-1.fc18, targetcli 2.1.fb26-1.fc18,
python-configshell.noarch 1.1.fb6-1.fc18) to export a RAID to a fiber
channel SAN and have encountered a problem. The targetcli "ls" command
blows up with the following error messages:
xxx #targetcli ls
Traceback (most recent call last):
File "/bin/targetcli", line 91, in <module>
main()
File "/bin/targetcli", line 74, in main
shell.run_cmdline(" ".join(sys.argv[1:]))
File "/usr/lib/python2.7/site-packages/configshell/shell.py", line
934, in run_cmdline
self._execute_command(path, command, pparams, kparams)
File "/usr/lib/python2.7/site-packages/configshell/shell.py", line
909, in _execute_command
result = target.execute_command(command, pparams, kparams)
File "/usr/lib/python2.7/site-packages/targetcli/ui_node.py", line
87, in execute_command
pparams, kparams)
File "/usr/lib/python2.7/site-packages/configshell/node.py", line
1413, in execute_command
result = method(*pparams, **kparams)
File "/usr/lib/python2.7/site-packages/configshell/node.py", line
714, in ui_command_ls
tree = self._render_tree(target, depth=depth)
File "/usr/lib/python2.7/site-packages/configshell/node.py", line
865, in _render_tree
+ self._render_tree(children[i], margin, depth)
File "/usr/lib/python2.7/site-packages/configshell/node.py", line
865, in _render_tree
+ self._render_tree(children[i], margin, depth)
File "/usr/lib/python2.7/site-packages/configshell/node.py", line
865, in _render_tree
+ self._render_tree(children[i], margin, depth)
File "/usr/lib/python2.7/site-packages/configshell/node.py", line
769, in _render_tree
(description, is_healthy) = root.summary()
File "/usr/lib/python2.7/site-packages/targetcli/ui_backstore.py",
line 423, in summary
return ("%s (%s) %s%s %s" % (so.udev_path, bytes_to_human(so.size),
File "/usr/lib/python2.7/site-packages/rtslib/tcm.py", line 707, in
_get_size
return get_blockdev_size(self._parse_info('device')) *
int(self._parse_info('SectorSize'))
File "/usr/lib/python2.7/site-packages/rtslib/utils.py", line 122, in
get_blockdev_size
return int(fread("/sys/block/%s/%s/size" % (m.groups()[0], m.group())))
File "/usr/lib/python2.7/site-packages/rtslib/utils.py", line 88, in
fread
with open(path, 'r') as file_fd:
IOError: [Errno 2] No such file or directory: '/sys/block/d/d0/size'
I'm pretty sure we're supposed to be looking for
'/sys/block/md_d0/size'. Not being a python programmer, I haven't
figured out where the name is getting mangled yet. It looks like
something in utils.py:get_blockdev_size(path). Maybe the "m =
re.search(r'([a-z]+)(\d+)$', name))" on line 118 of utils.py isn't
expecting a "md_d0" type device name? BTW, "/dev/md_d0" is a default
nomenclature for Linux RAID devices.
I reverted to rtslib-fb-2.1.fb35 and everything works fine.
Doing ls commands limiting the depth to 2 to avoid touching
/backstore/block/* does not throw an exception. Likewise doing ls
commands of the branches other than /backstores/block/* work fine.
Things also work fine (in version 2.1-fb36) with a standard disk device;
i.e. "/dev/sda". BTW, "/dev/md_d0" is a default nomenclature for Linux
RAID devices.
Actually, the system works with version 2.1-fb36. I can't look at or
change backstore stuff using targetcli but the RAID is published (using
a previously configured config file) and initiators can access it.
Thanks,
Craig Watson
10 years, 8 months
license update status
by Andy Grover
Hi all,
RisingTide Systems has changed the license on targetcli, rtslib, and
configshell from AGPLv3 to Apache 2.0. This is very good news.
I am in the process of relicensing the additional contributions to the
-fb branches of these projects in a similar manner. Since there have
been contributions from people besides me, I have to get their
permission as well.
I have received that permission from all contributors except one, whom I
haven't heard from. He may be on vacation. It could be a month before
he's back online, so the relicensing must wait until then.
So.. we *will* be relicensing, but some patience is required :-)
Regards -- Andy
10 years, 8 months
Avoiding ACLs for point-to-point FC SAN link
by Craig Watson
Hi,
I have been trying to determine how to get a LIO Fiber Channel SAN
target (qla2xxx) to work without making ACL initiator entries for the FC
fabric. I am trying to replace a legacy fiber channel disk with a LIO
target solution. Unfortunately, the application is such that human
interaction is not feasible when the (portable) LIO-based storage system
is attached to the legacy hardware. I need the LIO target system to be
a plug-and-play solution like old (and current) Fiber Channel drives.
Of course the FC disk drives I am trying to replace do not have any out
of band interface so they can't have ACLs on their end. This means the
legacy system has no provision for accessing the new storage system
beyond the fiber optic interface.
I basically need to map a backstore/LUN to a target port fabric without
a particular initiator WWPN being specified. There is a comment on the
LIO web site that says "If ACLs are enabled, one NodeACL is required per
authorized initiator." Maybe what I need is to _disable_ ACLs? I
haven't seen a method to accomplish this. None of the targetcli global
parameters appear to address this.
For those who think "ignoring" the security of an ACL is somehow sinful,
please understand this application is a point-to-point optical Fiber
Channel storage link in a stand-alone embedded system and the initiator
system has significant safeguards. It's not like this is hanging out on
a big enterprise SAN somewhere (or the Internet for that matter) for all
the world to hack.
I have looked through the archives and googled this. I have found a
couple similar inquiries but no answers. Is this even possible with
targetcli/rtslib/LIO? Maybe I'm just missing something somewhere?
Thanks for any suggestions,
Craig Watson
10 years, 8 months