Teradata / stacki

Linux Cluster Builder - Bare Metal Red Hat & SUSE

Home Page:http://www.stacki.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

storage controller does not support singleton wildcards

mlosapio opened this issue · comments

The scenario where you would want all available disks configured into a RAID is not supported.

Reproduce:

[root@master ~]# stack list storage controller  
SCOPE  ENCLOSURE ADAPTER SLOT RAIDLEVEL ARRAYID OPTIONS
global --------- ------- *    0         1       -------

This will not produce the expected results - which would be a RAID0 array with all available disks.

First part (skips)
https://github.com/Teradata/stacki/blob/master/common/src/stack/storage-config/bin/configure-controllers.py#L176

And this section gets skipped because it's and
https://github.com/Teradata/stacki/blob/master/common/src/stack/storage-config/bin/configure-controllers.py#L205

The default is JBOD which is what you see in the global line. All disks essentially have no RAID. What you're asking for is a stripe across all disks, no mirroring?

Correct - stripe across all disks.

This seems to have produced the desired results.

diff --git a/common/src/stack/storage-config/bin/configure-controllers.py b/common/src/stack/storage-config/bin/configure-controllers.py
index 8598b592..cd3a5aa3 100755
--- a/common/src/stack/storage-config/bin/configure-controllers.py
+++ b/common/src/stack/storage-config/bin/configure-controllers.py
@@ -85,7 +85,7 @@ else:
 #
 if attr2bool(secureerase):
        nukecontroller = 'true'
-       
+
 #
 # only run this code if 'nukecontroller' is true
 #
@@ -174,10 +174,11 @@ for arrayid in arrayids:
        slots.sort(key = sortids)
 
        if len(slots) == 1 and slots[0] == '*':
-               #
-               # skip for now, we'll do these disks at the very end
-               #
-               continue
+                allslots = []
+                for slot in freeslots[adapter]:
+                        allslots.append(slot)
+                ctrl.doRaid(raidlevel, adapter, enclosure, allslots,
+                        hotspares, options)
 
        if raidlevel == 'hotspare' and arrayid == 'global':
                ctrl.doGlobalHotSpare(adapter, enclosure, hotspares, options)

I'm happy to push a diff if this is acceptable.

Closed with commit 0be496e

Hey @mlosapio, this required a code change deeper in the current codebase of stacki.

It's fixed now, and will be available in the next release.

Thanks for the bug report.