History log of /freebsd-10-stable/usr.sbin/ctladm/ctladm.8
Revision Date Author Comments
# 313371 07-Feb-2017 mav

MFC r312694: Make CTL ramdisk backend a real RAM disk.

If "capacity" LU option is set, ramdisk backend now implements featured
thin provisioned disk, storing data in malloc(9) allocated memory blocks
of pblocksize bytes (default PAGE_SIZE or 4KB). Additionally ~0.2% of LU
size is used for indirection tree (bigger pblocksize reduce the overhead).
Backend supports all unmap and anchor operations. If configured capacity
is overflowed, proper error conditions are reported.

If "capacity" LU option is not set, the backend operates mostly the same
as before without allocating real storage: writes go to nowhere, reads
return zeroes, reporting that all LBAs are unmapped.

This backend is still mostly oriented on testing and benchmarking (it is
still a volatile RAM disk), but now it should allow to run real FS tests,
not only simple dumb dd.


# 311423 05-Jan-2017 mav

MFC r310356: Add support for locally assigned RFC 4122 UUID LUN identifiers.


# 308079 29-Oct-2016 mav

MFC r307374: Add LU option to control reported provisioning type.


# 308078 29-Oct-2016 mav

MFC r307350: Add LUN options to limit UNMAP and WRITE SAME sizes.

CTL itself has no limits on on UNMAP and WRITE SAME sizes. But depending
on backends large requests may take too much time. To avoid that new
configuration options allow to hint initiator maximal sizes it should not
exceed.


# 288810 05-Oct-2015 mav

MFC r288310: Add to CTL initial support for CDROMs and removable devices.

Relnotes: yes


# 288805 05-Oct-2015 mav

MFC r288259: Remove some duplicate, legacy, dead and questionable code.


# 288736 05-Oct-2015 mav

MFC r287707: CTL documentation update, mostly for HA.


# 288731 05-Oct-2015 mav

MFC r287620: Remove unused target and initiator IDs.


# 288728 05-Oct-2015 mav

MFC r287500: Allow LUN options modification via CTL_LUNREQ_MODIFY.

Not all changes take effect, but that is a different question.


# 288719 05-Oct-2015 mav

MFC r286806: Drop "internal" CTL frontend.

Its idea was to be a simple initiator and execute several commands from
kernel level, but FreeBSD never had consumer for that functionality,
while its implementation polluted many unrelated places.


# 284671 21-Jun-2015 trasz

MFC r283285:

Advertise ctlstat(8) a little better.

Sponsored by: The FreeBSD Foundation


# 279002 19-Feb-2015 mav

MFC r278037: CTL LUN mapping rewrite.

Replace iSCSI-specific LUN mapping mechanism with new one, working for any
ports. By default all ports are created without LUN mapping, exposing all
CTL LUNs as before. But, if needed, LUN mapping can be manually set on
per-port basis via ctladm. For its iSCSI ports ctld does it via ioctl(2).
The next step will be to teach ctld to work with FibreChannel ports also.

Respecting additional flexibility of the new mechanism, ctl.conf now allows
alternative syntax for LUN definition. LUNs can now be defined in global
context, and then referenced from targets by unique name, as needed. It
allows same LUN to be exposed several times via multiple targets.

While there, increase limit for LUNs per target in ctld from 256 to 1024.
Some initiators do not support LUNs above 255, but that is not our problem.

Relnotes: yes
Sponsored by: iXsystems, Inc.


# 278793 15-Feb-2015 mav

MFC r278621: Fix man page to match real option names.


# 276179 24-Dec-2014 mav

MFC r275865:
Add configuration options to override physical and UNMAP blocks geometry.

While in most cases CTL should correctly fetch those values from backing
storages, there are some initiators (like MS SQL), that may not like large
physical block sizes, even if they are true. For such cases allow override
fetched values with supported ones (like 4K).


# 275896 18-Dec-2014 mav

MFC r275482: Document r275481 changes.


# 275895 18-Dec-2014 mav

MFC r275568:
Count consecutive read requests as blocking in CTL for files and ZVOLs.

Technically read requests can be executed in any order or simultaneously
since they are not changing any data. But ZFS prefetcher goes crasy when
it receives consecutive requests from different threads. Since prefetcher
works on level of separate blocks, instead of two consecutive 128K requests
it may receive 32 8K requests in mixed order.

This patch is more workaround then a real fix, and it does not fix all of
prefetcher problems, but it improves sequential read speed by 3-4x times
in some configurations. On the other side it may hurt performance if
some backing store has no prefetch, that is why it is disabled by default
for raw devices.


# 274732 20-Nov-2014 mav

MFC r274154, r274163:
Add to CTL support for logical block provisioning threshold notifications.

For ZVOL-backed LUNs this allows to inform initiators if storage's used or
available spaces get above/below the configured thresholds.

Sponsored by: iXsystems, Inc.


# 273980 02-Nov-2014 mav

MFC r273687:
Add "rpm" and "formfactor" LUN options to match istgt functionality.


# 273320 20-Oct-2014 mav

MFC r272978: Improve and document `ctladm portlist` subcommand.

Make this subcommand less FC-specific, reporting target and port addresses
in more generic way. Also make it report list of connected initiators in
unified way, working for both FC and iSCSI, and potentially others.


# 273312 20-Oct-2014 mav

MFC r272748:
Implement software (mode page) and hardware (config) write protection.


# 272630 06-Oct-2014 mav

MFC r271507:
Implement control over command reordering via options and control mode page.

It allows to bypass range checks between UNMAP and READ/WRITE commands,
which may introduce additional delays while waiting for UNMAP parameters.
READ and WRITE commands are always processed in safe order since their
range checks are almost free.


# 272629 06-Oct-2014 mav

MFC r271505:
Add "readcache" and "writecache" LUN options to control default behavior.

Default values are "on". Disabling requires backend to support IO_DIRECT
and IO_SYNC flags respectively, or some alternatives.


# 269296 30-Jul-2014 mav

MFC r268767:
Add support for VMWare dialect of EXTENDED COPY command, aka VAAI Clone.

This allows to clone VMs and move them between LUNs inside one storage
host without generating extra network traffic to the initiator and back,
and without being limited by network bandwidth.

LUNs participating in copy operation should have UNIQUE NAA or EUI IDs set.
For LUNs without these IDs VMWare will use traditional copy operations.

Beware: the above LUN IDs explicitly set to values non-unique from the VM
cluster point of view may cause data corruption if wrong LUN is addressed!

Sponsored by: iXsystems, Inc.


# 269071 24-Jul-2014 mav

MFC r268457 (by pluknet):
Fix typos.


# 268699 15-Jul-2014 mav

MFC r268447:
Add LUN options to specify 64-bit EUI and NAA identifiers.


# 268683 15-Jul-2014 mav

MFC r268293:
Burry devid port method, which was a gross hack.

Instead make ports provide wanted port and target IDs, and LUNs provide
wanted LUN IDs. After that core Device ID VPD code only had to link all
of them together and add relative port and port group numbers.

LUN ID for iSCSI LUNs no longer created by CTL, but by ctld, and passed
to CTL as "scsiname" LUN option. This makes LUNs to report the same set
of IDs, independently from the port through which it is accessed, as
required by SCSI specifications.


# 268153 02-Jul-2014 mav

MFC r267516i (by joel):
mdoc: add missing width to Bl -tag.


# 268152 02-Jul-2014 mav

MFC r267506:
Document additional LUN/backend options.


# 257540 02-Nov-2013 trasz

MFC r257379:

Rename '-h' option to '-p', and use "portal" instead of "host" or "address",
in order to be consistent with iSCSI terminology. Besides, calling the
option '-h' was just wrong.

This changes usage for newly added iscsictl(8), and two newly added
subcommands to ctladm(8). This breaks POLA between CURRENT and 10,
but since 10.0 has not been released yet, it's still ok to do.

MFC r257380:

Bump .Dd after r257379.

Approved by: re (glebius)
Sponsored by: The FreeBSD Foundation


# 288810 05-Oct-2015 mav

MFC r288310: Add to CTL initial support for CDROMs and removable devices.

Relnotes: yes


# 288805 05-Oct-2015 mav

MFC r288259: Remove some duplicate, legacy, dead and questionable code.


# 288736 05-Oct-2015 mav

MFC r287707: CTL documentation update, mostly for HA.


# 288731 05-Oct-2015 mav

MFC r287620: Remove unused target and initiator IDs.


# 288728 05-Oct-2015 mav

MFC r287500: Allow LUN options modification via CTL_LUNREQ_MODIFY.

Not all changes take effect, but that is a different question.


# 288719 05-Oct-2015 mav

MFC r286806: Drop "internal" CTL frontend.

Its idea was to be a simple initiator and execute several commands from
kernel level, but FreeBSD never had consumer for that functionality,
while its implementation polluted many unrelated places.


# 284671 21-Jun-2015 trasz

MFC r283285:

Advertise ctlstat(8) a little better.

Sponsored by: The FreeBSD Foundation


# 279002 19-Feb-2015 mav

MFC r278037: CTL LUN mapping rewrite.

Replace iSCSI-specific LUN mapping mechanism with new one, working for any
ports. By default all ports are created without LUN mapping, exposing all
CTL LUNs as before. But, if needed, LUN mapping can be manually set on
per-port basis via ctladm. For its iSCSI ports ctld does it via ioctl(2).
The next step will be to teach ctld to work with FibreChannel ports also.

Respecting additional flexibility of the new mechanism, ctl.conf now allows
alternative syntax for LUN definition. LUNs can now be defined in global
context, and then referenced from targets by unique name, as needed. It
allows same LUN to be exposed several times via multiple targets.

While there, increase limit for LUNs per target in ctld from 256 to 1024.
Some initiators do not support LUNs above 255, but that is not our problem.

Relnotes: yes
Sponsored by: iXsystems, Inc.


# 278793 15-Feb-2015 mav

MFC r278621: Fix man page to match real option names.


# 276179 24-Dec-2014 mav

MFC r275865:
Add configuration options to override physical and UNMAP blocks geometry.

While in most cases CTL should correctly fetch those values from backing
storages, there are some initiators (like MS SQL), that may not like large
physical block sizes, even if they are true. For such cases allow override
fetched values with supported ones (like 4K).


# 275896 18-Dec-2014 mav

MFC r275482: Document r275481 changes.


# 275895 18-Dec-2014 mav

MFC r275568:
Count consecutive read requests as blocking in CTL for files and ZVOLs.

Technically read requests can be executed in any order or simultaneously
since they are not changing any data. But ZFS prefetcher goes crasy when
it receives consecutive requests from different threads. Since prefetcher
works on level of separate blocks, instead of two consecutive 128K requests
it may receive 32 8K requests in mixed order.

This patch is more workaround then a real fix, and it does not fix all of
prefetcher problems, but it improves sequential read speed by 3-4x times
in some configurations. On the other side it may hurt performance if
some backing store has no prefetch, that is why it is disabled by default
for raw devices.


# 274732 20-Nov-2014 mav

MFC r274154, r274163:
Add to CTL support for logical block provisioning threshold notifications.

For ZVOL-backed LUNs this allows to inform initiators if storage's used or
available spaces get above/below the configured thresholds.

Sponsored by: iXsystems, Inc.


# 273980 02-Nov-2014 mav

MFC r273687:
Add "rpm" and "formfactor" LUN options to match istgt functionality.


# 273320 20-Oct-2014 mav

MFC r272978: Improve and document `ctladm portlist` subcommand.

Make this subcommand less FC-specific, reporting target and port addresses
in more generic way. Also make it report list of connected initiators in
unified way, working for both FC and iSCSI, and potentially others.


# 273312 20-Oct-2014 mav

MFC r272748:
Implement software (mode page) and hardware (config) write protection.


# 272630 06-Oct-2014 mav

MFC r271507:
Implement control over command reordering via options and control mode page.

It allows to bypass range checks between UNMAP and READ/WRITE commands,
which may introduce additional delays while waiting for UNMAP parameters.
READ and WRITE commands are always processed in safe order since their
range checks are almost free.


# 272629 06-Oct-2014 mav

MFC r271505:
Add "readcache" and "writecache" LUN options to control default behavior.

Default values are "on". Disabling requires backend to support IO_DIRECT
and IO_SYNC flags respectively, or some alternatives.


# 269296 30-Jul-2014 mav

MFC r268767:
Add support for VMWare dialect of EXTENDED COPY command, aka VAAI Clone.

This allows to clone VMs and move them between LUNs inside one storage
host without generating extra network traffic to the initiator and back,
and without being limited by network bandwidth.

LUNs participating in copy operation should have UNIQUE NAA or EUI IDs set.
For LUNs without these IDs VMWare will use traditional copy operations.

Beware: the above LUN IDs explicitly set to values non-unique from the VM
cluster point of view may cause data corruption if wrong LUN is addressed!

Sponsored by: iXsystems, Inc.


# 269071 24-Jul-2014 mav

MFC r268457 (by pluknet):
Fix typos.


# 268699 15-Jul-2014 mav

MFC r268447:
Add LUN options to specify 64-bit EUI and NAA identifiers.


# 268683 15-Jul-2014 mav

MFC r268293:
Burry devid port method, which was a gross hack.

Instead make ports provide wanted port and target IDs, and LUNs provide
wanted LUN IDs. After that core Device ID VPD code only had to link all
of them together and add relative port and port group numbers.

LUN ID for iSCSI LUNs no longer created by CTL, but by ctld, and passed
to CTL as "scsiname" LUN option. This makes LUNs to report the same set
of IDs, independently from the port through which it is accessed, as
required by SCSI specifications.


# 268153 02-Jul-2014 mav

MFC r267516i (by joel):
mdoc: add missing width to Bl -tag.


# 268152 02-Jul-2014 mav

MFC r267506:
Document additional LUN/backend options.


# 257540 02-Nov-2013 trasz

MFC r257379:

Rename '-h' option to '-p', and use "portal" instead of "host" or "address",
in order to be consistent with iSCSI terminology. Besides, calling the
option '-h' was just wrong.

This changes usage for newly added iscsictl(8), and two newly added
subcommands to ctladm(8). This breaks POLA between CURRENT and 10,
but since 10.0 has not been released yet, it's still ok to do.

MFC r257380:

Bump .Dd after r257379.

Approved by: re (glebius)
Sponsored by: The FreeBSD Foundation