Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backstore attributes not documented anywhere? #32

Open
kwinz opened this issue Mar 29, 2023 · 1 comment
Open

Backstore attributes not documented anywhere? #32

kwinz opened this issue Mar 29, 2023 · 1 comment

Comments

@kwinz
Copy link

kwinz commented Mar 29, 2023

Hi,

I wanted do change the sector size that is reported for a target via iSCSI. After a long Google search I found a single Reddit thread that explained that there is a possibility to configure "set attributes block_size=4096" on a block device backstore. In the mean time I found two other secondary sources about this attribute [2],[3].

But I was very surprised that there seems to be no official documentation of those attributes.

  1. The MAN page for targetcli only mentions that attributes are backstore-specific and contain values relating to the backstore and storage object. [4] [5].
  2. https://github.com/Datera/targetcli references the http://linux-iscsi.org/ wiki. Trying to reach that website in a browser yields an ERR_CONNECTION_TIMED_OUT error.
  3. https://github.com/Datera/rtslib mentions the same broken website, and a rtslib-API-reference.pdf that I can't retrieve. And a Google search didn't find a single mirror of that file anywhere else [6].
  4. Digging through the source code I found a list of attributes for block backstores from a parser code https://github.com/Datera/rtslib/blob/6fd0bbfc20947143eb2e4c3bfd34c65bf8551468/policy/backstore_iblock.lio but this has no description of attributes.
  5. There seems to be no description or list of attributes in the RedHat doucumentation [7].
  6. The targetcli util claims when I invoke "help set" that I can "Run with no parameter nor group to list all available groups, or with just a group name to list all available parameters within that group." But then when I actually call "set" without argument in a backstore I get en empty "AVAILABLE CONFIGURATION GROUPS ===============".

If I didn't accidentally find this Reddit thread I would have had no chance of knowing how to set the block size. If I hadn't digged through the weeds for quite some time to write this email I would have never discovered on [2] that there is "emulate_tpu=1" which "exposes an UNMAP command which is functionally similar to TRIM for SSDs" and "is_nonrot specifies whether the pool is composed of HDDs or SSDs. Windows uses this to decide whether or not to make the iSCSI drive defragmentable", which would have been extremely advantagous to know!

Is the official documentation really that lacking, or did I miss something obvious?
Can we improve this situation?

Best regards
Markus

[1] https://www.reddit.com/r/homelab/comments/ror016/lio_target_w_zvol_for_esxi_vmkernellog_lvm_block/
[2] https://forum.level1techs.com/t/guide-iscsi-target-server-on-linux-with-zfs-for-windows-initiator-clients/174803
[3] https://serverfault.com/questions/818655/how-to-specify-sector-size-for-lvm-logical-volume
[4] https://linux.die.net/man/8/targetcli
[5] https://manpages.ubuntu.com/manpages/bionic/man8/targetcli.8.html
[6] https://www.google.com/search?q=%22rtslib-API-reference.pdf%22
[7] https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/online-storage-management

x-posted from https://lore.kernel.org/target-devel/trinity-7a9a1e34-4702-4c7a-8012-e540eea4447b-1680090704891@3c-app-gmx-bs24/T/#u

@kwinz
Copy link
Author

kwinz commented May 16, 2023

Apparently this project is dead but there is some documentation in the targetcli-fb fork:

https://github.com/open-iscsi/targetcli-fb/blob/80f82f1f71f0be307a3725e68e49841efc898cad/targetcli/ui_backstore.py#L678

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant