- nvme: Require additional rpms for dracut
- nvme: Align HostNQN and HostID format to TP-4126 Resolves: RHEL-2855,RHEL-1254
This commit is contained in:
parent
89a23081a4
commit
fdcd46eb2d
26
0017-nvme-additional-rpms-for-dracut.patch
Normal file
26
0017-nvme-additional-rpms-for-dracut.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 9dcd32dd85f7f45c3fe6c8d7b1de3b4c322c6807 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||
Date: Mon, 11 Sep 2023 13:50:24 +0200
|
||||
Subject: [PATCH] nvme: Require additional rpms for dracut
|
||||
|
||||
The '95nvmf' dracut module needs a couple more packages
|
||||
for the NBFT (NVMe over TCP) to work - such as networking.
|
||||
Local PCIe NVMe devices have no special needs.
|
||||
---
|
||||
blivet/devices/disk.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/blivet/devices/disk.py b/blivet/devices/disk.py
|
||||
index 2b49ef685..5053f7bb8 100644
|
||||
--- a/blivet/devices/disk.py
|
||||
+++ b/blivet/devices/disk.py
|
||||
@@ -725,7 +725,8 @@ class NVMeFabricsNamespaceDevice(NVMeNamespaceDevice, NetworkStorageDevice):
|
||||
|
||||
""" NVMe fabrics namespace """
|
||||
_type = "nvme-fabrics"
|
||||
- _packages = ["nvme-cli"]
|
||||
+ # dracut '95nvmf' module dependencies
|
||||
+ _packages = ["nvme-cli", "dracut-network"]
|
||||
|
||||
def __init__(self, device, **kwargs):
|
||||
"""
|
107
0018-nvme-TP4126-fixes-1.patch
Normal file
107
0018-nvme-TP4126-fixes-1.patch
Normal file
@ -0,0 +1,107 @@
|
||||
From 06597099906be55b106c234b3bf0c87ec7d90a07 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||
Date: Thu, 17 Aug 2023 14:45:18 +0200
|
||||
Subject: [PATCH] nvme: Align HostNQN and HostID format to TP4126
|
||||
|
||||
Also don't overwrite existing files during startup() since they
|
||||
might have been supplied by early boot stages.
|
||||
---
|
||||
blivet/nvme.py | 62 +++++++++++++++++++++++++++++++-------------------
|
||||
1 file changed, 39 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/blivet/nvme.py b/blivet/nvme.py
|
||||
index 17bead15e..5ac41cffa 100644
|
||||
--- a/blivet/nvme.py
|
||||
+++ b/blivet/nvme.py
|
||||
@@ -18,16 +18,20 @@
|
||||
#
|
||||
|
||||
import os
|
||||
-import shutil
|
||||
|
||||
from . import errors
|
||||
-from . import util
|
||||
+
|
||||
+import gi
|
||||
+gi.require_version("BlockDev", "3.0")
|
||||
+
|
||||
+from gi.repository import BlockDev as blockdev
|
||||
|
||||
import logging
|
||||
log = logging.getLogger("blivet")
|
||||
|
||||
-HOSTNQN_FILE = "/etc/nvme/hostnqn"
|
||||
-HOSTID_FILE = "/etc/nvme/hostid"
|
||||
+ETC_NVME_PATH = "/etc/nvme/"
|
||||
+HOSTNQN_FILE = ETC_NVME_PATH + "hostnqn"
|
||||
+HOSTID_FILE = ETC_NVME_PATH + "hostid"
|
||||
|
||||
|
||||
class NVMe(object):
|
||||
@@ -40,6 +44,8 @@ class NVMe(object):
|
||||
|
||||
def __init__(self):
|
||||
self.started = False
|
||||
+ self._hostnqn = None
|
||||
+ self._hostid = None
|
||||
|
||||
# So that users can write nvme() to get the singleton instance
|
||||
def __call__(self):
|
||||
@@ -52,28 +58,38 @@ def startup(self):
|
||||
if self.started:
|
||||
return
|
||||
|
||||
- rc, nqn = util.run_program_and_capture_output(["nvme", "gen-hostnqn"])
|
||||
- if rc != 0:
|
||||
- raise errors.NVMeError("Failed to generate hostnqn")
|
||||
-
|
||||
- with open(HOSTNQN_FILE, "w") as f:
|
||||
- f.write(nqn)
|
||||
-
|
||||
- rc, hid = util.run_program_and_capture_output(["dmidecode", "-s", "system-uuid"])
|
||||
- if rc != 0:
|
||||
- raise errors.NVMeError("Failed to generate host ID")
|
||||
-
|
||||
- with open(HOSTID_FILE, "w") as f:
|
||||
- f.write(hid)
|
||||
+ self._hostnqn = blockdev.nvme_get_host_nqn()
|
||||
+ self._hostid = blockdev.nvme_get_host_id()
|
||||
+ if not self._hostnqn:
|
||||
+ self._hostnqn = blockdev.nvme_generate_host_nqn()
|
||||
+ if not self._hostnqn:
|
||||
+ raise errors.NVMeError("Failed to generate HostNQN")
|
||||
+ if not self._hostid:
|
||||
+ if 'uuid:' not in self._hostnqn:
|
||||
+ raise errors.NVMeError("Missing UUID part in the HostNQN string '%s'" % self._hostnqn)
|
||||
+ # derive HostID from HostNQN's UUID part
|
||||
+ self._hostid = self._hostnqn.split('uuid:')[1]
|
||||
+
|
||||
+ # do not overwrite existing files, taken e.g. from initramfs
|
||||
+ self.write("/", overwrite=False)
|
||||
|
||||
self.started = True
|
||||
|
||||
- def write(self, root): # pylint: disable=unused-argument
|
||||
- # copy the hostnqn and hostid files
|
||||
- if not os.path.isdir(root + "/etc/nvme"):
|
||||
- os.makedirs(root + "/etc/nvme", 0o755)
|
||||
- shutil.copyfile(HOSTNQN_FILE, root + HOSTNQN_FILE)
|
||||
- shutil.copyfile(HOSTID_FILE, root + HOSTID_FILE)
|
||||
+ def write(self, root, overwrite=True): # pylint: disable=unused-argument
|
||||
+ # write down the hostnqn and hostid files
|
||||
+ p = root + ETC_NVME_PATH
|
||||
+ if not os.path.isdir(p):
|
||||
+ os.makedirs(p, 0o755)
|
||||
+ p = root + HOSTNQN_FILE
|
||||
+ if overwrite or not os.path.isfile(p):
|
||||
+ with open(p, "w") as f:
|
||||
+ f.write(self._hostnqn)
|
||||
+ f.write("\n")
|
||||
+ p = root + HOSTID_FILE
|
||||
+ if overwrite or not os.path.isfile(p):
|
||||
+ with open(p, "w") as f:
|
||||
+ f.write(self._hostid)
|
||||
+ f.write("\n")
|
||||
|
||||
|
||||
# Create nvme singleton
|
@ -23,7 +23,7 @@ Version: 3.6.0
|
||||
|
||||
#%%global prerelease .b2
|
||||
# prerelease, if defined, should be something like .a1, .b1, .b2.dev1, or .c2
|
||||
Release: 9%{?prerelease}%{?dist}
|
||||
Release: 10%{?prerelease}%{?dist}
|
||||
Epoch: 1
|
||||
License: LGPLv2+
|
||||
%global realname blivet
|
||||
@ -46,6 +46,8 @@ Patch12: 0013-Fix-setting-kickstart-data.patch
|
||||
Patch13: 0014-Do-not-set-memory-limit-for-LUKS2-when-running-in-FI.patch
|
||||
Patch14: 0015-Add-support-for-filesystem-online-resize.patch
|
||||
Patch15: 0016-Backport-iSCSI-initiator-name-related-fixes.patch
|
||||
Patch16: 0017-nvme-additional-rpms-for-dracut.patch
|
||||
Patch17: 0018-nvme-TP4126-fixes-1.patch
|
||||
|
||||
# Versions of required components (done so we make sure the buildrequires
|
||||
# match the requires versions of things).
|
||||
@ -210,6 +212,12 @@ configuration.
|
||||
|
||||
%changelog
|
||||
|
||||
* Tue Sep 26 2023 Tomas Bzatek <tbzatek@redhat.com> - 3.6.0-10
|
||||
- nvme: Require additional rpms for dracut
|
||||
Resolves: RHEL-2855
|
||||
- nvme: Align HostNQN and HostID format to TP-4126
|
||||
Resolves: RHEL-1254
|
||||
|
||||
* Mon Jul 24 2023 Jan Pokorny <japokorn@redhat.com> - 3.6.0-9
|
||||
Backport iSCSI initiator name related fixes:
|
||||
- Allow changing iSCSI initiator name after setting it
|
||||
|
Loading…
Reference in New Issue
Block a user