Fujitsu ServerView RAID Manager 7.2.6 for Ubuntu

I have created ServerView RAID Manager 7.2.6 package for Ubuntu (serverview-raid-manager_7.2-6_amd64.deb). This is primarily for my Ubuntu 16.04 and 18.04 servers, but I believe it will work in Ubuntu 20.04 too.


If you need it, please open a support case with your regional Fujitsu support, and ask for the package.

As you may have heard, Fujitsu America will cease the datacenter hardware product business (PRIMERGY/PRIMEQUEST servers, ETERNUS storage, and Fujitsu PSwitch Ethernet switches) including platform product related solutions business like PRIMEFLEX. My job will also be terminated, so this will probably be the last update for ServerView RAID Manager for Ubuntu I create.
Fujitsu will continue to support Fujitsu servers/storage arrays/switches for North American customers, so the remaining support group may create ServerView packages for Ubuntu in the future. Please ask your Fujitsu support to see if they have updated packages when you need them.

openSUSE Leap 15.1 on Fujitsu PRIMERGY RX2540 M4/M5

I heard a customer who would like to use openSUSE Leap on PRIMERGY RX2540 M4/M5. Although it's not officially supported, since SUSE Linux Enterprise Server (SLE or SLES) 15 is supported, openSUSE Leap should work.

I quickly tested openSUSE Leap 15.1 on RX2540 M4 with ServerView Suite (ServerView Agent for Linux and ServerView RAID Manager), and everything seems to work ok.
One thing to check is the onboard X722 network port driver (i40e). Fujitsu provides the OEM driver (i40e 2.10.19.30) for SLES 15 SP1 and this is required to use the latest firmware for X722, but this driver cannot be used for openSUSE Leap 15.1 as the driver is not built for the openSUSE kernel. That means you need to build the i40e driver 2.10.19.30 from the source code. You can obtain the source code from the Intel download site, or from Sourceforge (https://sourceforge.net/projects/e1000/files/i40e%20stable/2.10.19.30/).

When compiling the i40e driver, you probably see the following errors:

$ make
expr: non-integer argument
make[1]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48'
make[2]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_main.o
In file included from /home/mmurayama/i40e-2.10.19.30/src/i40e.h:33:0,
                 from /home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8:
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:881:31: error: operator '&&' has no right operand
         SLE_LOCALVERSION_CODE >= KERNEL_VERSION(92,0,0) && \
                               ^~
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:892:31: error: operator '==' has no left operand
        (SLE_LOCALVERSION_CODE == KERNEL_VERSION(6,33,0) || \
                               ^~
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:905:31: error: operator '==' has no left operand
        (SLE_LOCALVERSION_CODE == KERNEL_VERSION(94,41,0) || \
                               ^~
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:911:31: error: operator '==' has no left operand
        (SLE_LOCALVERSION_CODE == KERNEL_VERSION(23,0,0) || \
                               ^~
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:924:30: error: operator '&&' has no right operand
        SLE_LOCALVERSION_CODE >= KERNEL_VERSION(25,23,0))
                              ^~
In file included from /home/mmurayama/i40e-2.10.19.30/src/i40e.h:33:0,
                 from /home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8:
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h: In function ‘_kc_macvlan_accel_priv’:
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:6370:18: error: ‘struct macvlan_dev’ has no member named ‘fwd_priv’; did you mean ‘accel_priv’?
  return macvlan->fwd_priv;
                  ^~~~~~~~
                  accel_priv
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h: In function ‘_kc_macvlan_release_l2fw_offload’:
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:6380:11: error: ‘struct macvlan_dev’ has no member named ‘fwd_priv’; did you mean ‘accel_priv’?
  macvlan->fwd_priv = NULL;
           ^~~~~~~~
           accel_priv
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c: In function ‘i40e_setup_tc’:
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:7565:6: error: ‘tc’ undeclared (first use in this function); did you mean ‘tm’?
  if (tc > i40e_pf_get_num_tc(pf)) {
      ^~
      tm
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:7565:6: note: each undeclared identifier is reported only once for each function it appears in
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c: At top level:
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8150:14: warning: ‘struct tc_to_netdev’ declared inside parameter list will not be visible outside of this definition or declaration
       struct tc_to_netdev *tc)
              ^~~~~~~~~~~~
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c: In function ‘__i40e_setup_tc’:
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8162:36: error: dereferencing pointer to incomplete type ‘struct tc_to_netdev’
  struct tc_mqprio_qopt *mqprio = tc->mqprio;
                                    ^~
In file included from /home/mmurayama/i40e-2.10.19.30/src/i40e.h:33:0,
                 from /home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8:
/home/mmurayama/i40e-2.10.19.30/src/kcompat.h:6258:31: error: ‘TC_SETUP_MQPRIO’ undeclared (first use in this function); did you mean ‘TC_SETUP_QDISC_PRIO’?
 #define TC_SETUP_QDISC_MQPRIO TC_SETUP_MQPRIO
                               ^
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8168:7: note: in expansion of macro ‘TC_SETUP_QDISC_MQPRIO’
  case TC_SETUP_QDISC_MQPRIO:
       ^~~~~~~~~~~~~~~~~~~~~
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8169:32: error: ‘type_data’ undeclared (first use in this function); did you mean ‘node_data’?
   return i40e_setup_tc(netdev, type_data);
                                ^~~~~~~~~
                                node_data
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8171:10: error: implicit declaration of function ‘flow_block_cb_setup_simple’; did you mean ‘flow_block_binder_type’? [-Werror=implicit-function-declaration]
   return flow_block_cb_setup_simple(type_data,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~
          flow_block_binder_type
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:8162:25: warning: unused variable ‘mqprio’ [-Wunused-variable]
  struct tc_mqprio_qopt *mqprio = tc->mqprio;
                         ^~~~~~
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c: At top level:
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:13024:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .ndo_setup_tc  = __i40e_setup_tc,
                   ^~~~~~~~~~~~~~~
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:13024:19: note: (near initialization for ‘i40e_netdev_ops.ndo_setup_tc’)
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:16322:3: error: ‘const struct pci_error_handlers’ has no member named ‘reset_notify’; did you mean ‘reset_done’?
  .reset_notify = i40e_pci_error_reset_notify,
   ^~~~~~~~~~~~
   reset_done
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:16322:18: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .reset_notify = i40e_pci_error_reset_notify,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mmurayama/i40e-2.10.19.30/src/i40e_main.c:16322:18: note: (near initialization for ‘i40e_err_handler.reset_prepare’)
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-4.12.14-lp151.28.48/scripts/Makefile.build:325: /home/mmurayama/i40e-2.10.19.30/src/i40e_main.o] Error 1
make[2]: *** [/usr/src/linux-4.12.14-lp151.28.48/Makefile:1569: _module_/home/mmurayama/i40e-2.10.19.30/src] Error 2
make[2]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
make[1]: *** [Makefile:152: sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48'
make: *** [Makefile:69: default] Error 2

To avoid this error, add an openSUSE Leap support to common.mk like this:

$ diff -Naur i40e-2.10.19.30.orig/ i40e-2.10.19.30/
diff -Naur i40e-2.10.19.30.orig/src/common.mk i40e-2.10.19.30/src/common.mk
--- i40e-2.10.19.30.orig/src/common.mk  2019-09-19 08:11:08.000000000 -0700
+++ i40e-2.10.19.30/src/common.mk       2020-07-07 12:40:49.211185781 -0700
@@ -176,6 +176,19 @@
 ifeq (1,$(shell ${CC} -E -dM ${CONFIG_FILE} 2> /dev/null |\
           grep -m 1 CONFIG_SUSE_KERNEL | awk '{ print $$3 }'))

+ifeq (1,$(shell ${CC} -E -dM ${CONFIG_FILE} 2> /dev/null |\
+          grep -m 1 CONFIG_SUSE_PRODUCT_OPENSUSE_LEAP | awk '{ print $$3 }'))
+
+  LOCALVERSION := $(shell ${CC} -E -dM ${CONFIG_FILE} 2> /dev/null |\
+                    grep -m 1 CONFIG_LOCALVERSION | awk '{ print $$3 }' |\
+                    cut -d'-' -f2 | sed 's/\.g[[:xdigit:]]\{7\}//')
+  LOCALVER_A := $(shell echo ${LOCALVERSION} | sed 's/^lp//' | cut -d'.' -f1)
+  LOCALVER_B := $(shell echo ${LOCALVERSION} | cut -s -d'.' -f2)
+  LOCALVER_C := $(shell echo ${LOCALVERSION} | cut -s -d'.' -f3)
+  SLE_LOCALVERSION_CODE := $(shell expr ${LOCALVER_A} \* 65536 + \
+                                        0${LOCALVER_B} \* 256 + 0${LOCALVER_C})
+  EXTRA_CFLAGS += -DSLE_LOCALVERSION_CODE=${SLE_LOCALVERSION_CODE}
+else
 ifneq (10,$(shell ${CC} -E -dM ${CONFIG_FILE} 2> /dev/null |\
          grep -m 1 CONFIG_SLE_VERSION | awk '{ print $$3 }'))

@@ -190,6 +203,7 @@
   EXTRA_CFLAGS += -DSLE_LOCALVERSION_CODE=${SLE_LOCALVERSION_CODE}
 endif
 endif
+endif

 EXTRA_CFLAGS += ${CFLAGS_EXTRA}

Then run "make".

$ make
make[1]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48'
make[2]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_main.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_ethtool.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_adminq.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_common.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_hmc.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_lan_hmc.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_nvm.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_debugfs.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_diag.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_txrx.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_ptp.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_filters.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_ddp.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_client.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_virtchnl_pf.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_dcb.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e_dcb_nl.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/kcompat.o
  CC [M]  /home/mmurayama/i40e-2.10.19.30/src/kcompat_vfd.o
  LD [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/mmurayama/i40e-2.10.19.30/src/i40e.mod.o
  LD [M]  /home/mmurayama/i40e-2.10.19.30/src/i40e.ko
make[2]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
make[1]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48'
This time, it finishes without errors. You can then install the driver with "make install".
$ sudo make install
make[1]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48'
make[2]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
  Building modules, stage 2.
  MODPOST 1 modules
make[2]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
make[1]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48'
Installing modules...
make[1]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48'
make[2]: Entering directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
  INSTALL /home/mmurayama/i40e-2.10.19.30/src/i40e.ko
  DEPMOD  4.12.14-lp151.28.48-default
make[2]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48-obj/x86_64/default'
make[1]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.48'
/sbin/depmod -e -F /boot/System.map-4.12.14-lp151.28.48-default  -a 4.12.14-lp151.28.48-default
Updating initramfs...
dracut: Executing: /usr/bin/dracut --force
dracut: *** Including module: bash ***
dracut: *** Including module: systemd ***
dracut: *** Including module: warpclock ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: i18n ***
dracut: Could not find FONT_MAP none!
dracut: *** Including module: drm ***
dracut: *** Including module: plymouth ***
dracut: *** Including module: dm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 60-persistent-storage-dm.rules
dracut: Skipping udev rule: 55-dm.rules
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: lvm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 56-lvm.rules
dracut: Skipping udev rule: 60-persistent-storage-lvm.rules
dracut: *** Including module: resume ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: suse-btrfs ***
dracut: *** Including module: suse-xfs ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: haveged ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: shutdown ***
dracut: *** Including module: suse ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies and firmware ***
dracut: *** Installing kernel module dependencies and firmware done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done***
dracut: *** Hardlinking files ***
dracut: *** Hardlinking files done ***
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing GenuineIntel.bin ****
dracut: *** Store current command line parameters ***
dracut: Stored kernel commandline:
dracut:  rd.lvm.lv=system/swap
 rd.lvm.lv=system/root
dracut:  resume=/dev/mapper/system-swap
dracut:  root=/dev/mapper/system-root rootfstype=xfs rootflags=rw,relatime,attr2,inode64,noquota
dracut: *** Creating image file '/boot/initrd-4.12.14-lp151.28.48-default' ***
dracut: *** Creating initramfs image file '/boot/initrd-4.12.14-lp151.28.48-default' done ***
make mandocs_install
make[1]: Entering directory '/home/mmurayama/i40e-2.10.19.30/src'
Copying manpages...
make[1]: Leaving directory '/home/mmurayama/i40e-2.10.19.30/src'
Check if the i40e driver is updated.
$ modinfo i40e
filename:       /lib/modules/4.12.14-lp151.28.48-default/updates/drivers/net/ethernet/intel/i40e/i40e.ko
version:        2.10.19.30
license:        GPL
description:    Intel(R) 40-10 Gigabit Ethernet Connection Network Driver
author:         Intel Corporation, 
suserelease:    openSUSE Leap 15.1
srcversion:     9EB781BDF574D047F098566
alias:          pci:v00008086d0000158Bsv*sd*bc*sc*i*
alias:          pci:v00008086d0000158Asv*sd*bc*sc*i*
alias:          pci:v00008086d000037D3sv*sd*bc*sc*i*
alias:          pci:v00008086d000037D2sv*sd*bc*sc*i*
alias:          pci:v00008086d000037D1sv*sd*bc*sc*i*
alias:          pci:v00008086d000037D0sv*sd*bc*sc*i*
alias:          pci:v00008086d000037CFsv*sd*bc*sc*i*
alias:          pci:v00008086d000037CEsv*sd*bc*sc*i*
alias:          pci:v00008086d00000D58sv*sd*bc*sc*i*
alias:          pci:v00008086d00000CF8sv*sd*bc*sc*i*
alias:          pci:v00008086d00001588sv*sd*bc*sc*i*
alias:          pci:v00008086d00001587sv*sd*bc*sc*i*
alias:          pci:v00008086d0000104Fsv*sd*bc*sc*i*
alias:          pci:v00008086d0000104Esv*sd*bc*sc*i*
alias:          pci:v00008086d000015FFsv*sd*bc*sc*i*
alias:          pci:v00008086d00001589sv*sd*bc*sc*i*
alias:          pci:v00008086d00001586sv*sd*bc*sc*i*
alias:          pci:v00008086d00001585sv*sd*bc*sc*i*
alias:          pci:v00008086d00001584sv*sd*bc*sc*i*
alias:          pci:v00008086d00001583sv*sd*bc*sc*i*
alias:          pci:v00008086d00001581sv*sd*bc*sc*i*
alias:          pci:v00008086d00001580sv*sd*bc*sc*i*
alias:          pci:v00008086d00001574sv*sd*bc*sc*i*
alias:          pci:v00008086d00001572sv*sd*bc*sc*i*
depends:        ptp
retpoline:      Y
vermagic:       4.12.14-lp151.28.48-default SMP mod_unload modversions
parm:           debug:Debug level (0=none,...,16=all) (int)
$ sudo ethtool -i eth0
driver: i40e
version: 2.10.19.30
firmware-version: 4.11 0x80001dd7 1.2527.0
expansion-rom-version:
bus-info: 0000:3d:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ sudo lspci -s 0000:3d:00.0
3d:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GbE SFP+ (rev 09)

Fujitsu ServerView RAID Manager 7.1.3 for Ubuntu

I have created ServerView RAID Manager 7.1.3 package for Ubuntu (serverview-raid-manager_7.1-3_amd64.deb). This is mainly for my Ubuntu 16.04 servers, but probably works on 18.04 as well.


I can't distribute the package. If you need it, please ask your regional Fujitsu support. They may have an official one for Ubuntu.
If you are a Fujitsu customer in North America (US or Canada), please open a case with Fujitsu America and request the package. I may be able to provide it. Please understand that Fujitsu does not officially support ServerView for Ubuntu, so this will be provided as-is. Support is on a best-effort basis. If that is fine with you, I will provide the package via your Fujitsu America Service Request.

VMware Horizon View Composer Installation Failure (Error Code: 1603)

If you see a VMware Horizon 7.x View Composer installation failure with the error code 1603 when you install it on a Windows Server VM, you should check if an audit failure event is logged with the following message in the Windows Security log:

Code integrity determined that the image hash of a file is not valid.  The file could be corrupt due to unauthorized modification or the invalid hash could indicate a potential disk device error.

File Name: \Device\HarddiskVolume4\Program Files (x86)\Common Files\VMware\VMware Universal File Access\vstor2-ufa.sys 

Also check the View Composer installation log to see if the following error is shown in the log:

CustomAction InstallVstor2Driver.5ACA97E0_7C64_4970_A763_840E81DAAF0B returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)

If yes, disable the secure boot option in the VM.

  1. Shut down the VM
  2. Go to Edit Settings -> VM Option -> Boot Option
  3. Uncheck the Secure Boot option
  4. Save the setting, and power on the VM.
  5. Install View Composer.

This time, there should be no issue with the Composer installation. Secure Boot can be enabled after a reboot, and check if the View Composer service is still running with Secure Boot enabled.

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

Fujitsu ServerView Agents 8.40.12 for Ubuntu

I have ported ServerView Agents 8.40.12 for Linux to Ubuntu.

Here are the packages. eecd and eecd_mods_src are combined into serverveiw-eecd, so it has both.

  • serverview-connectorservice_2.22.00-01_amd64.deb
  • serverview-eecd_8.40-12_amd64.deb
  • serverview-agents_8.40-12_amd64.deb
  • serverview-ssmwebui_8.40-12_all.deb

Below are some screenshots.

As always. I can't distribute the packages. If you need them, please ask your regional Fujitsu support. They may have an official one for Ubuntu.

If you are a North American Fujitsu customer, please open a case with Fujitsu America and request the packages. I may be able to provide them. Please understand that Fujitsu does not officially support ServerView for Ubuntu, so they will be provided as-is. Support is on a best-effort basis. If that is fine with you, I will provide the packages via your Fujitsu America Service Request.

Fujitsu ServerView RAID Manager 6.6.11 for Ubuntu

I have created ServerView RAID Manager 6.6.11 package for Ubuntu (serverview-raid-manager_6.6-11_amd64.deb). This is mainly for my Ubuntu 16.04 servers, but it works on 14.04 and 18.04.

I can't distribute the package. If you need it, please ask your regional Fujitsu support. They may have an official one for Ubuntu.

If you are a North American Fujitsu customer, please open a case with Fujitsu America and request the package. I may be able to provide it. Please understand that Fujitsu does not officially support ServerView for Ubuntu, so this will be provided as-is. Support is on a best-effort basis. If that is fine with you, I will provide the package via your Fujitsu America Service Request.

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. ...