Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dirkmueller:acdc:as_python3_module
nvme-cli.11415
0100-nvme_fc-auto-connect-scripts.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0100-nvme_fc-auto-connect-scripts.patch of Package nvme-cli.11415
From 6d827f7848212033ba2e560922a4b55bc323a1ef Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <hare@suse.de> Date: Mon, 14 Jan 2019 10:15:16 +0100 Subject: [PATCH] nvme_fc auto-connect scripts References: bsc#1103354 Here's a set of script to enable FC-NVMe autoconnect, based on the initial posting from James Smart. FC-NVMe already generates an uevent whenever a new FC-NVMe remote port is registered, so we can create an udev rule to parse this event and start connecting to it. The problem here is that the 'nvme connect' call might be taking some time or might even stall altogether, so we cannot call it directly from the udev rule. Rather, the udev rule starts a systemd service, which then calls 'nvme connect' as a 'oneshot' program. With this approach we are insulated from any stalls in udev rules. Additionally we can implement a boot service to restart any missed connections attempts. Cc: James Smart <james.smart@broadcom.com> Signed-off-by: Hannes Reinecke <hare@suse.com> --- nvme-fc-autoconnect/70-nvmefc-autoconnect.conf | 1 + nvme-fc-autoconnect/70-nvmefc-autoconnect.rules | 8 ++++++++ nvme-fc-autoconnect/nvmefc-boot-connections.service | 9 +++++++++ nvme-fc-autoconnect/nvmefc-connect@.service | 14 ++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 nvme-fc-autoconnect/70-nvmefc-autoconnect.conf create mode 100644 nvme-fc-autoconnect/70-nvmefc-autoconnect.rules create mode 100644 nvme-fc-autoconnect/nvmefc-boot-connections.service create mode 100644 nvme-fc-autoconnect/nvmefc-connect@.service diff --git a/nvme-fc-autoconnect/70-nvmefc-autoconnect.conf b/nvme-fc-autoconnect/70-nvmefc-autoconnect.conf new file mode 100644 index 0000000..b92d94f --- /dev/null +++ b/nvme-fc-autoconnect/70-nvmefc-autoconnect.conf @@ -0,0 +1 @@ +install_items+="/usr/lib/udev/rules.d/70-nvmefc-autoconnect.rules" diff --git a/nvme-fc-autoconnect/70-nvmefc-autoconnect.rules b/nvme-fc-autoconnect/70-nvmefc-autoconnect.rules new file mode 100644 index 0000000..aa4f9bf --- /dev/null +++ b/nvme-fc-autoconnect/70-nvmefc-autoconnect.rules @@ -0,0 +1,8 @@ +# +# nvme_fc: udev event to automatically scan (via discovery controller) +# new FC nvme remote ports and auto-connect to the subsystems they report. +# + +ACTION=="change", SUBSYSTEM=="fc", ENV{FC_EVENT}=="nvmediscovery", \ + ENV{NVMEFC_HOST_TRADDR}=="*", ENV{NVMEFC_TRADDR}=="*", \ + RUN+="/usr/bin/systemctl --no-block start nvmefc-connect@--host-traddr=$env{NVMEFC_HOST_TRADDR}\\x20--traddr=$env{NVMEFC_TRADDR}.service" diff --git a/nvme-fc-autoconnect/nvmefc-boot-connections.service b/nvme-fc-autoconnect/nvmefc-boot-connections.service new file mode 100644 index 0000000..aa35c15 --- /dev/null +++ b/nvme-fc-autoconnect/nvmefc-boot-connections.service @@ -0,0 +1,9 @@ +[Unit] +Description=Auto-connect to subsystems on FC-NVME devices during boot + +[Service] +Type=oneshot +ExecStart=/bin/sh -c "echo add > /sys/class/fc/fc_udev_device/nvme_discovery" + +[Install] +WantedBy=default.target diff --git a/nvme-fc-autoconnect/nvmefc-connect@.service b/nvme-fc-autoconnect/nvmefc-connect@.service new file mode 100644 index 0000000..c2370d6 --- /dev/null +++ b/nvme-fc-autoconnect/nvmefc-connect@.service @@ -0,0 +1,14 @@ +# +# Unit file used by 70-nvmefc-autoconnect.rules. +# + +[Unit] +Description=Auto-connect to subsystems on FC-NVME devices +After=syslog.target + +[Service] +Type=oneshot +ExecStart=/bin/sh -c "/usr/sbin/nvme connect-all --transport=fc `/usr/bin/echo -e '%i'`" + +[Install] +WantedBy=default.target -- 2.13.7
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor