Configuring logical drives under PRAID CP400i remotely via Fujitsu iRMC REST API

My blog entry, Fujitsu PRIMERGY: Configuring RAID via iRMC REST API, explains how to use iRMC REST API to configure logical drives with the supported RAID cards. The JSON file I showed in my blog post as an example should work for all supported Fujitsu RAID cards. However, in my experience, it may not work with PRAID CP400i.

When I performed a RAID 0 logical drive creation with four HDDs under PRAID CP400i on RX4770 M2 or RX2530 M4 using the following JSON file, it failed with an error ("input parameters are invalid") even though it worked fine with other RAID cards like PRAID EP400i:

{
  "Server":{
    "HWConfigurationIrmc":{
      "@Processing":"execute",
      "Adapters":{
        "RAIDAdapter":[
          {
            "@AdapterId":"RAIDAdapter0",
            "@ConfigurationType":"Addressing",
            "Arrays":{
              "Array":[
                {
                  "@Number":0,
                  "@ConfigurationType":"Setting",
                  "PhysicalDiskRefs":{
                    "PhysicalDiskRef":[
                      {
                        "@Number":"0"
                      },
                      {
                        "@Number":"1"
                      },
                      {
                        "@Number":"2"
                      },
                      {
                        "@Number":"3"
                      }
                    ]
                  }
                }
              ]
            },
            "LogicalDrives":{
              "LogicalDrive":[
                {
                  "@Number":0,
                  "@Action":"Create",
                  "RaidLevel":"0",
                  "ArrayRefs":{
                    "ArrayRef":[
                      {
                        "@Number":0
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      },
      "@Version":"1.00"
    },
    "@Version":"1.01"
  }
}

Here is the session log with the error.

{
  "SessionLog":{
    "Id":2,
    "Tag":"",
    "WorkSequence":"applyProfile",
    "Entries":{
      "Entry":[
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"CreateSession: Session 'applyProfile' created with id 2"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"AttachWorkSequence: Attached work sequence 'applyProfile' to session 2"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"LCMScheduler: Launch ApplyProfileParameters"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"ValidateProfile: Profile successfully validated"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"ApplyProfileParameters: Sub profile 'BiosConfig' not found"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"ApplyProfileParameters: Sub profile 'IrmcConfig' not found"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"ApplyProfileParameters: Sub profile 'AdapterConfigIrmc' not found"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"ApplyProfileParameters: Sub profile 'OSInstallation' not found"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"ApplyProfileParameters: Sub profile 'HWConfiguration' not found"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"FindSubProfile: Sub profile 'HWConfigurationIrmc' found"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"LOG-1-HWConfigurationIrmc: Start processing of Sub profile 'HWConfigurationIrmc'"
        },
        {
          "@date":"2018\/11\/26 18:07:20",
          "#text":"createRaidDatabase: System PowerOn by OOB Raid Config"
        },
        {
          "@date":"2018\/11\/26 18:07:25",
          "#text":"createRaidDatabase: PowerOn delay 176 sec"
        },
        {
          "@date":"2018\/11\/26 18:10:21",
          "#text":"createRaidDatabase: Wait for BIOS POST in Progress"
        },
        {
          "@date":"2018\/11\/26 18:10:26",
          "#text":"createRaidDatabase: BIOS POST operation is completed"
        },
        {
          "@date":"2018\/11\/26 18:10:26",
          "#text":"createRaidDatabase: RAID Controller check start"
        },
        {
          "@date":"2018\/11\/26 18:10:46",
          "#text":"createRaidDatabase: Get RAID controller information start [RAID controller count = 1 ]"
        },
        {
          "@date":"2018\/11\/26 18:10:56",
          "#text":"createRaidDatabase: Get RAID controller information complete"
        },
        {
          "@date":"2018\/11\/26 18:10:56",
          "#text":"createLogicalDrive: drv[0] Create Drive [RAID Level = 0]"
        },
        {
          "@date":"2018\/11\/26 18:10:58",
          "#text":"createLogicalDrive: drv[0] Create Drive failed: code = 0x3 : input parameters are invalid"
        },
        {
          "@date":"2018\/11\/26 18:10:58",
          "#text":"LOG-2-HWConfigurationIrmc-Error: Finished processing of Sub profile 'HWConfigurationIrmc' with status 'Error'"
        },
        {
          "@date":"2018\/11\/26 18:10:58",
          "#text":"LCMScheduler: Terminated processing of linked activity list due to execution error"
        },
        {
          "@date":"2018\/11\/26 18:10:58",
          "#text":"LCMScheduler: LCM object is being destroyed as automatic termination was configured"
        },
        {
          "@date":"2018\/11\/26 18:10:58",
          "#text":"TerminateSession: 'applyProfile' is being terminated"
        }
      ]
    }
  }
}

With some trial-and-error experiments, I found out that the Stripe parameter was needed in order for the above mentioned JSON file to work with PRAID CP400i. Below is the one that worked for PRAID CP400i.

{
  "Server":{
    "HWConfigurationIrmc":{
      "@Processing":"execute",
      "Adapters":{
        "RAIDAdapter":[
          {
            "@AdapterId":"RAIDAdapter0",
            "@ConfigurationType":"Addressing",
            "Arrays":{
              "Array":[
                {
                  "@Number":0,
                  "@ConfigurationType":"Setting",
                  "PhysicalDiskRefs":{
                    "PhysicalDiskRef":[
                      {
                        "@Number":"0"
                      },
                      {
                        "@Number":"1"
                      },
                      {
                        "@Number":"2"
                      },
                      {
                        "@Number":"3"
                      }
                    ]
                  }
                }
              ]
            },
            "LogicalDrives":{
              "LogicalDrive":[
                {
                  "@Number":0,
                  "@Action":"Create",
                  "RaidLevel":"0",
                  "ArrayRefs":{
                    "ArrayRef":[
                      {
                        "@Number":0
                      }
                    ]
                  },
                  "Stripe":{
                    "@Unit":"KB",
                    "#text":64
                  }
                }
              ]
            }
          }
        ]
      },
      "@Version":"1.00"
    },
    "@Version":"1.01"
  }
}

As you can see, the only different is the Stripe parameter for the logical drive.

$ diff raid0.json raid0_not_work_with_praid_cp400i.json
46,49d45
<                   },
<                   "Stripe":{
<                     "@Unit":"KB",
<                     "#text":64

No comments:

Good Bye, Folks!

As you may have heard, Fujitsu has completely discontinued Data Center Products and Solutions business in North America on April 1st, 2021. ...