table of contents
other sections
CTL(4) | Device Drivers Manual | CTL(4) |
NAME¶
ctl
—
CAM Target Layer / iSCSI target
SYNOPSIS¶
To compile this driver into the kernel, place the following line in your kernel configuration file:device iscsi
device ctl
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
ctl_load="YES"
DESCRIPTION¶
Thectl
subsystem provides SCSI disk and processor
emulation. It supports features such as:
- Disk, processor and cdrom device emulation
- Tagged queueing
- SCSI task attribute support (ordered, head of queue, simple tags)
- SCSI implicit command ordering support
- Full task management support (abort, LUN reset, target reset, etc.)
- Support for multiple ports
- Support for multiple simultaneous initiators
- Support for multiple simultaneous backing stores
- Support for VMWare VAAI: COMPARE AND WRITE, XCOPY, WRITE SAME, and UNMAP commands
- Support for Microsoft ODX: POPULATE TOKEN/WRITE USING TOKEN, WRITE SAME, and UNMAP commands
- Persistent reservation support
- Mode sense/select support
- Error injection support
- High Availability clustering support with ALUA
- All I/O handled in-kernel, no userland context switch overhead
It also serves as a kernel component of the native iSCSI target.
SYSCTL VARIABLES¶
The following variables are available as both sysctl(8) variables and loader(8) tunables:- kern.cam.ctl.debug
- Bit mask of enabled CTL log levels:
- 1
- log commands with errors;
- 2
- log all commands;
- 4
- log data for commands other then READ/WRITE.
- kern.cam.ctl.ha_id
- Specifies unique position of this node within High Availability cluster. Default is 0 -- no HA, 1 and 2 -- HA enabled at specified position.
- kern.cam.ctl.ha_mode
- Specifies High Availability cluster operation mode:
- 0
- Active/Standby -- primary node has backend access and processes requests, while secondary can only do basic LUN discovery and reservation;
- 1
- Active/Active -- both nodes have backend access and process requests, while secondary node synchronizes processing with primary one;
- 2
- Active/Active -- primary node has backend access and processes requests, while secondary node forwards all requests and data to primary one;
- kern.cam.ctl.ha_peer
- String value, specifying method to establish connection to peer HA node. Can be "listen IP:port", "connect IP:port" or empty.
- kern.cam.ctl.ha_link
- Reports present state of connection between HA cluster nodes:
- 0
- not configured;
- 1
- configured but not established;
- 2
- established.
- kern.cam.ctl.ha_role
- Specifies default role of this node:
- 0
- primary;
- 1
- secondary.
- kern.cam.ctl.iscsi.debug
- Verbosity level for log messages from the kernel part of iSCSI target. Set to 0 to disable logging or 1 to warn about potential problems. Larger values enable debugging output. Defaults to 1.
- kern.cam.ctl.iscsi.maxcmdsn_delta
- The number of outstanding commands to advertise to the iSCSI initiator. Technically, it is the difference between ExpCmdSN and MaxCmdSN fields in the iSCSI PDU. Defaults to 256.
- kern.cam.ctl.iscsi.ping_timeout
- The number of seconds to wait for the iSCSI initiator to respond to a NOP-In PDU. In the event that there is no response within that time the session gets forcibly terminated. Set to 0 to disable sending NOP-In PDUs. Defaults to 5.
SEE ALSO¶
ctladm(8), ctld(8), ctlstat(8)HISTORY¶
Thectl
subsystem first appeared in
FreeBSD 9.1.
AUTHORS¶
Thectl
subsystem was originally written by
Kenneth Merry
<ken@FreeBSD.org>. Later
work was done by
Alexander Motin <mav@FreeBSD.org>.
September 27, 2015 | Linux 4.9.0-9-amd64 |