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

tcmu-runner: init at unstable-2022-02-21 #189734

Closed
wants to merge 1 commit into from
Closed

tcmu-runner: init at unstable-2022-02-21 #189734

wants to merge 1 commit into from

Conversation

fogti
Copy link
Contributor

@fogti fogti commented Sep 4, 2022

Description of changes

LIO is the SCSI target in the Linux kernel. It is entirely kernel code, and allows exported SCSI logical units (LUNs) to be backed by regular files or block devices. But, if we want to get fancier with the capabilities of the device we're emulating, the kernel is not necessarily the right place. While there are userspace libraries for compression, encryption, and clustered storage solutions like Ceph or Gluster, these are not accessible from the kernel.

The TCMU userspace-passthrough backstore allows a userspace process to handle requests to a LUN. But since the kernel-user interface that TCMU provides must be fast and flexible, it is complex enough that we'd like to avoid each userspace handler having to write boilerplate code.

tcmu-runner handles the messy details of the TCMU interface -- UIO, netlink, pthreads, and DBus -- and exports a more friendly C plugin module API. Modules using this API are called "TCMU handlers". Handler authors can write code just to handle the SCSI commands as desired, and can also link with whatever userspace libraries they like.

Things done

This just adds the package. A NixOS module should be added later to integrate this package into DBUS and systemd. (it already provides a DBUS service file, and a systemd service file (although nixos prefers to setup the systemd service file themselves))

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.11 Release Notes (or backporting 22.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

pkgs/os-specific/linux/tcmu-runner/default.nix Outdated Show resolved Hide resolved
pkgs/os-specific/linux/tcmu-runner/default.nix Outdated Show resolved Hide resolved
pkgs/os-specific/linux/tcmu-runner/default.nix Outdated Show resolved Hide resolved
@fogti
Copy link
Contributor Author

fogti commented Sep 4, 2022

Created upstream PR open-iscsi/tcmu-runner#684

@AndersonTorres AndersonTorres changed the title tcmu-runner: init at 1.5.5-unstable-2022 tcmu-runner: init at unstable-2022-02-21 Sep 5, 2022
@fogti fogti requested a review from sikmir September 5, 2022 18:20
@wegank wegank added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Apr 3, 2024
@fogti fogti closed this by deleting the head repository Apr 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants