Fujitsu ServerView RAID Manager 6.4.11 for Ubuntu
Fujitsu PRIMERGY: Configuring RAID via iRMC REST API
Fujitsu published iRMC S4 REST API. With the latest firmware (version 8.4x), you can configure RAID via API. That means you don't need to bring up the RAID configuration utility to create logical drives on a new machine, or you can manage the RAID card and logical drives even though ServerView RAID does not support the OS you are using. This feature is good to have so you can replicate the same configuration to multiple servers at the same time.
I will explain how to create/delete logical drive(s) via iRMC REST API. As a prerequisite, iRMC firmware must be at 8.4x or later.
In the following example, I will use iRMC user ID: admin, iRMC user password: admin, and iRMC IP address: 192.168.10.80.
- Check if the RAID profile is already there.
- Review the current configuration. The following example shows that there is one RAID card, and six physical SATA hard drives in slot 0, 1, 2, 4, 5, and 6 which are all 465GB drives. There is no logical drive configured.
- Create logical drive(s). I will create one RAID1 volume with two HDDs, and one RAID5 volume with the remaining four HDDs. To do this, you need to create a configuration file to send to iRMC. Then send a request to iRMC to create volumes.
If you want to specify drive slots for each logical volume, you can do that. Read the API manual for details. - Wait for the request to be completed. Check the current session status.
- Check if the logical drives are configured. You can see the status on iRMC Web GUI, or rescan the profile. Delete the current profile.
$ curl -u admin:admin -H"Accept: application/json" -X GET -i http://192.168.10.80/rest/v1/Oem/eLCM/ProfileManagement/
HTTP/1.1 200 OK
Date: Fri, 28 Oct 2016 23:15:29 GMT
Server: iRMC S4 Webserver
Expires: Thu, 27 Oct 2016 23:15:29 GMT
Content-Length: 145
Content-Type: application/json; charset=UTF-8
{
"Links":{
"profileStore":[
{
"@odata.id":"rest\/v1\/Oem\/eLCM\/ProfileManagement\/HWConfigurationIrmc"
}
]
}
}
If the profile is not created yet, run the following to create it:
$ curl -u admin:admin -H"Accept: application/json" -X POST -i http://192.168.10.80/rest/v1/Oem/eLCM/ProfileManagement/get?PARAM_PATH=Server/HWConfigurationIrmc
HTTP/1.1 202 Accepted
Date: Fri, 28 Oct 2016 22:57:05 GMT
Server: iRMC S4 Webserver
Expires: Thu, 27 Oct 2016 22:57:05 GMT
Content-Length: 154
Content-Type: application/json; charset=UTF-8
Location: rest/v1/Oem/eLCM/ProfileManagement/HWConfigurationIrmc
{
"Session":{
"Id":16,
"Tag":"",
"WorkSequence":"obtainProfileParameters",
"Start":"",
"Duration":0,
"Status":"activated"
}
}
$ curl -u admin:admin -H"Accept: application/json" -X GET -i http://192.168.10.80/rest/v1/Oem/eLCM/ProfileManagement/HWConfigurationIrmc
HTTP/1.1 200 OK
Date: Fri, 28 Oct 2016 23:00:40 GMT
Server: iRMC S4 Webserver
Expires: Thu, 27 Oct 2016 23:00:40 GMT
Content-Length: 3881
Content-Type: application/json; charset=UTF-8
Content-disposition: attachment; filename="rest/v1/Oem/eLCM/ProfileManagement/HWConfigurationIrmc";
{
"Server":{
"HWConfigurationIrmc":{
"Adapters":{
"RAIDAdapter":[
{
"@AdapterId":"RAIDAdapter0",
"@ConfigurationType":"Addressing",
"PCIId":{
"Vendor":"1000",
"Device":"005B",
"ControllerIndex":0
},
"Features":{
"RaidLevel":"0,1,5,6,10,50,60",
"Stripe":{
"@Unit":"KB",
"#text":"8,16,32,64,128,256,512,1024"
},
"InitMode":"no,fast,slow",
"WriteMode":"WriteBack,WriteThrough,AlwaysWriteBack",
"ReadMode":"NoReadAhead,ReadAhead",
"CacheMode":"Direct,Cached",
"DiskCacheMode":"Enabled,Disabled,Unchanged"
},
"BGIRate":30,
"MDCRate":30,
"RebuildRate":30,
"EnableCopyback":"Enabled",
"EnableCopybackOnSMART":"Enabled",
"EnableCopybackOnSSDSMART":"Enabled",
"AutoRebuild":"Enabled",
"PhysicalDisks":{
"PhysicalDisk":[
{
"@Number":"0",
"@Action":"None",
"Slot":0,
"PDStatus":"Available",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"1",
"@Action":"None",
"Slot":1,
"PDStatus":"Available",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"2",
"@Action":"None",
"Slot":2,
"PDStatus":"Available",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"4",
"@Action":"None",
"Slot":4,
"PDStatus":"Available",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"5",
"@Action":"None",
"Slot":5,
"PDStatus":"Available",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"6",
"@Action":"None",
"Slot":6,
"PDStatus":"Available",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
}
]
},
"Arrays":null,
"LogicalDrives":null
}
]
}
}
}
}
$ cat create_logical_drives.json
{
"Server":{
"HWConfigurationIrmc":{
"@Processing":"execute",
"Adapters":{
"RAIDAdapter":[
{
"@AdapterId":"RAIDAdapter0",
"@ConfigurationType":"Addressing",
"LogicalDrives":{
"LogicalDrive":[
{
"@Number":0,
"@Action":"Create",
"RaidLevel":"1"
},
{
"@Number":1,
"@Action":"Create",
"RaidLevel":"5"
}
]
},
}
]
},
"@Version":"1.00"
},
"@Version":"1.01"
}
}
$ curl -u admin:admin -H"Accept: application/json" -X POST -i http://192.168.10.80/rest/v1/Oem/eLCM/ProfileManagement/set --data @create_logical_drives.json
HTTP/1.1 202 Accepted
Date: Fri, 28 Oct 2016 23:29:20 GMT
Server: iRMC S4 Webserver
Expires: Thu, 27 Oct 2016 23:29:20 GMT
Content-Length: 143
Content-Type: application/json; charset=UTF-8
{
"Session":{
"Id":17,
"Tag":"",
"WorkSequence":"applyProfile",
"Start":"",
"Duration":0,
"Status":"activated"
}
}
$ curl -u admin:admin -H"Accept: application/json" -X GET -i http://192.168.10.80/sessionInformation/17/status
HTTP/1.1 200 OK
Date: Fri, 28 Oct 2016 23:36:16 GMT
Server: iRMC S4 Webserver
Expires: Thu, 27 Oct 2016 23:36:16 GMT
Content-Length: 177
Content-Type: application/json; charset=UTF-8
{
"Session":{
"Id":17,
"Tag":"",
"WorkSequence":"applyProfile",
"Start":"2016\/10\/28 16:30:00",
"Duration":145,
"Status":"terminated regularly"
}
}
Check the current log.
$ curl -u admin:admin -H"Accept: application/json" -X GET -i http://192.168.10.80/sessionInformation/17/log
HTTP/1.1 200 OK
Date: Fri, 28 Oct 2016 23:36:20 GMT
Server: iRMC S4 Webserver
Expires: Thu, 27 Oct 2016 23:36:20 GMT
Content-Length: 2510
Content-Type: application/json; charset=UTF-8
Content-disposition: attachment; filename="sessionInformation/17/log";
{
"SessionLog":{
"Id":17,
"Tag":"",
"WorkSequence":"applyProfile",
"Entries":{
"Entry":[
{
"@date":"2016\/10\/28 16:29:20",
"#text":"CreateSession: Session 'applyProfile' created with id 17"
},
{
"@date":"2016\/10\/28 16:29:20",
"#text":"AttachWorkSequence: Attached work sequence 'applyProfile' to session 17"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"LCMScheduler: Launch ApplyProfileParameters"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"ValidateProfile: Profile successfully validated"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"ApplyProfileParameters: Sub profile 'BiosConfig' not found"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"ApplyProfileParameters: Sub profile 'IrmcConfig' not found"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"ApplyProfileParameters: Sub profile 'AdapterConfigIrmc' not found"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"ApplyProfileParameters: Sub profile 'OSInstallation' not found"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"ApplyProfileParameters: Sub profile 'HWConfiguration' not found"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"FindSubProfile: Sub profile 'HWConfigurationIrmc' found"
},
{
"@date":"2016\/10\/28 16:30:00",
"#text":"LOG-1-HWConfigurationIrmc: Start processing of Sub profile 'HWConfigurationIrmc'"
},
{
"@date":"2016\/10\/28 16:32:14",
"#text":"createLogicalDrive: drv[0] Create Drive [RAID Level = 1]"
},
{
"@date":"2016\/10\/28 16:32:22",
"#text":"createLogicalDrive: drv[1] Create Drive [RAID Level = 5]"
},
{
"@date":"2016\/10\/28 16:32:25",
"#text":"LOG-2-HWConfigurationIrmc-Success: Finished processing of Sub profile 'HWConfigurationIrmc' with status 'Success'"
},
{
"@date":"2016\/10\/28 16:32:25",
"#text":"LCMScheduler: LCM object is being destroyed as automatic termination was configured"
},
{
"@date":"2016\/10\/28 16:32:25",
"#text":"TerminateSession: 'applyProfile' is being terminated"
}
]
}
}
}
$ curl -u admin:admin -H"Accept: application/json" -X DELETE -i http://192.168.10.80/rest/v1/Oem/eLCM/ProfileManagement/HWConfigurationIrmcRescan the configuration.
$ curl -u admin:admin -H"Accept: application/json" -X POST -i http://192.168.10.80/rest/v1/Oem/eLCM/ProfileManagement/get?PARAM_PATH=Server/HWConfigurationIrmcView the latest profile. As you can see, logical drive 0 (RAID 1) and logical drive 1 (RAID 5) are newly created.
$ curl -u admin:admin -H"Accept: application/json" -X GET -i http://192.168.10.80/rest/v1/Oem/eLCM/ProfileManagement/HWConfigurationIrmc
HTTP/1.1 200 OK
Date: Fri, 28 Oct 2016 23:51:08 GMT
Server: iRMC S4 Webserver
Expires: Thu, 27 Oct 2016 23:51:08 GMT
Content-Length: 6625
Content-Type: application/json; charset=UTF-8
Content-disposition: attachment; filename="rest/v1/Oem/eLCM/ProfileManagement/HWConfigurationIrmc";
{
"Server":{
"HWConfigurationIrmc":{
"Adapters":{
"RAIDAdapter":[
{
"@AdapterId":"RAIDAdapter0",
"@ConfigurationType":"Addressing",
"PCIId":{
"Vendor":"1000",
"Device":"005B",
"ControllerIndex":0
},
"Features":{
"RaidLevel":"0,1,5,6,10,50,60",
"Stripe":{
"@Unit":"KB",
"#text":"8,16,32,64,128,256,512,1024"
},
"InitMode":"no,fast,slow",
"WriteMode":"WriteBack,WriteThrough,AlwaysWriteBack",
"ReadMode":"NoReadAhead,ReadAhead",
"CacheMode":"Direct,Cached",
"DiskCacheMode":"Enabled,Disabled,Unchanged"
},
"BGIRate":30,
"MDCRate":30,
"RebuildRate":30,
"EnableCopyback":"Enabled",
"EnableCopybackOnSMART":"Enabled",
"EnableCopybackOnSSDSMART":"Enabled",
"AutoRebuild":"Enabled",
"Arrays":{
"Array":[
{
"@Number":0,
"@ConfigurationType":"Addressing",
"PhysicalDiskRefs":{
"PhysicalDiskRef":[
{
"@Number":"0"
},
{
"@Number":"1"
}
]
}
},
{
"@Number":1,
"@ConfigurationType":"Addressing",
"PhysicalDiskRefs":{
"PhysicalDiskRef":[
{
"@Number":"2"
},
{
"@Number":"4"
},
{
"@Number":"5"
}
]
}
}
]
},
"LogicalDrives":{
"LogicalDrive":[
{
"@Number":0,
"@Action":"None",
"RaidLevel":"1",
"ArrayRefs":{
"ArrayRef":[
{
"@Number":0
}
]
},
"WriteMode":"WriteThrough",
"ReadMode":"ReadAhead",
"CacheMode":"Direct",
"DiskCacheMode":"Disabled",
"Stripe":{
"@Unit":"KB",
"#text":64
},
"InitMode":"no",
"LDStatus":"Operational",
"Name":"LogicalDrive_0",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":1,
"@Action":"None",
"RaidLevel":"5",
"ArrayRefs":{
"ArrayRef":[
{
"@Number":1
}
]
},
"WriteMode":"WriteThrough",
"ReadMode":"ReadAhead",
"CacheMode":"Direct",
"DiskCacheMode":"Disabled",
"Stripe":{
"@Unit":"KB",
"#text":64
},
"InitMode":"no",
"LDStatus":"Operational",
"Name":"LogicalDrive_1",
"Size":{
"@Unit":"GB",
"#text":930
}
}
]
},
"PhysicalDisks":{
"PhysicalDisk":[
{
"@Number":"0",
"@Action":"None",
"Slot":0,
"PDStatus":"Operational",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"1",
"@Action":"None",
"Slot":1,
"PDStatus":"Operational",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"2",
"@Action":"None",
"Slot":2,
"PDStatus":"Operational",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"4",
"@Action":"None",
"Slot":4,
"PDStatus":"Operational",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"5",
"@Action":"None",
"Slot":5,
"PDStatus":"Operational",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
},
{
"@Number":"6",
"@Action":"None",
"Slot":6,
"PDStatus":"Available",
"Interface":"SATA",
"Type":"HDD",
"Vendor":"ATA",
"Product":"WDC WD5003ABYX-",
"Size":{
"@Unit":"GB",
"#text":465
}
}
]
}
}
]
}
}
}
}
Enabling the serial console for ESXi on Fujitsu PRIMERGY
If you can't boot ESXi for some reason, or have some firmware/driver issues when booting ESXi, you can enable the serial line output via iRMC on Fujitsu PRIMERGY servers.
Here is how to enable the serial output through iRMC, and capture ESXi boot logs.
- Enable BIOS Console Redirection under Console Redirection. You can do this in the BIOS setup menu (hit the F2 key during BIOS POST), or on the iRMC Web GUI.
- Enable IPMI over LAN under Network Settings if it is not enabled.
- Activate Serial-Over-LAN through iRMC. In this example, I use the ipmitool command, but you can use ipmiutil or other IPMI utilities which support SOL.
- Boot the ESXi with the console options enabled. You can see how to enable the console options for ESXi on VMware KB 1033888. In the following screenshot, I added the options to the boot options during startup (SHIFT+O).
Here is the example of iRMC. Check the Console Redirection Enabled option, and change the Serial 1 Multiplexer option from System to iRMC.
$ ipmitool -I lanplus -H <iRMC IP address> -U <iRMC User> -P <iRMC Password> sol activateExample)
$ ipmitool -I lanplus -H 192.168.10.77 -U admin -P admin sol activate
Now you can see the ESXi boot log on your IPMI SOL session.
Fujitsu PRIMERGY: How to update BIOS and iRMC firmware remotely
There is a HTTP interface in iRMC for system BIOS and iRMC firmware updates. That means you can send firmware images to iRMC remotely to flash BIOS and iRMC. What you need is just to do a HTTP POST to /irmcupdate or /biosupdate with an update image.
Here are some examples using curl or PowerShell. In the examples, I used PRIMERGY BX2580 M1 BIOS and iRMC images for my PRIMERGY BX2580 M1 server. You can download BIOS and iRMC firmware files from Fujitsu download site
- BIOS update using curl
$ curl -k --digest -u <iRMC username>:<iRMC password> -F "file=@<BIOS file>" http://<iRMC IP address>/biosupdateexample)
$ curl -k --digest -u admin:admin -F "file=@D3321-A1.UPC" http://192.168.10.21/biosupdate
The above command stages the BIOS file to iRMC. If the server is powered off, then iRMC powers it on and starts BIOS flash. If it is not powered off, BIOS flash will be started after you shut down the OS.
To check the update status, you can do a HTTP GET to /biosprogress. It will return the status in XML.
example)$ curl -k --digest -u admin:admin http://192.168.10.21/biosprogress <?xml version="1.0" encoding="UTF-8"?> <Status> <Value>8</Value> <Severity>Information</Severity> <Message>FLASH programming in progress 33 Percent</Message> </Status>
PS> $username="<iRMC username>" PS> $password=ConvertTo-SecureString "<iRMC password>" -AsPlainText -Force PS> $credential = New-Object System.Management.Automation.PSCredential $username, $password PS> Invoke-WebRequest -Uri "http://<iRMC IP address>/irmcupdate?flashSelect=255" -Method Post -Credential $credential -InFile "<iRMC firmware image>" -Verboseexample)
PS> $username="admin" PS> $password=ConvertTo-SecureString "admin" -AsPlainText -Force PS> $credential = New-Object System.Management.Automation.PSCredential $username, $password PS> Invoke-WebRequest -Uri "http://192.168.10.21/irmcupdate?flashSelect=255" -Method Post -Credential $credential -InFile "C:\FW\BX2580M1_0824F.BIN" -Verbose
An iRMC firmware update does not require a system reboot. It will be updated while the OS is running.
To check the update status, send a HTTP GET request to /irmcprogress. It will return the status in XML.
example)PS> $username="admin" PS> $password=ConvertTo-SecureString "admin" -AsPlainText -Force PS> $credential = New-Object System.Management.Automation.PSCredential $username, $password PS> [xml]$response = Invoke-WebRequest -Uri "http://192.168.10.21/irmcprogress" -Method Get -Credential $credential -Verbose PS> $response.status |fl Value : 8 Severity : Information Message : FLASH programming in progress 48 Percent
Fujitsu PRIMERGY: How to change BIOS settings remotely
If you have multiple servers and you need to change BIOS settings, it is not wise to bring up BIOS setup screen on each server and change the values. It's time consuming. Also you easily make a mistake like forget to change a value on one of the servers.
To avoid this, we normally automate a process with a tool or a script to replicate the changes on all target servers, but is there an interface to do this on Fujitsu PRIMERGY servers? Yes, there is. You can change BIOS settings through iRMC (integraded Remote Management Controller) which is similar to DELL iDRAC or HP iLO. iRMC accepts an XML file as a BIOS configuration file, and it will enable the changes after a reboot.
Here is an example. I will change the CPU Hyper-Threading setting from "Enable" to "Disable" through iRMC on PRIMERGY BX2580 M2.
- Create a BIOS configuration change XML file. To disable Hyper-Threading, create a file like this:
- Send the XML file to the iRMC BIOS restore interface. I use the curl command to do an HTTP POST to iRMC.
- Reboot the server. You can see the value is changed to Disabled in BIOS after the reboot.
$ cat input.xml
<?xml version="1.0" encoding="utf-8"?>
<config>
<sysId>BX2580M2</sysId>
<configuration>
<token api="BSPBR"></token>
<supportedSetting>
<id>HyperThreading</id>
<name>Hyper-Threading</name>
<setupItemID>0x0057</setupItemID>
<value>Disabled</value>
</supportedSetting>
</configuration>
</config>
$ curl --basic -u <iRMC username>:<iRMC password> --data @<XML file> http://<iRMC IP address>/biosrestoreexample)
$ curl --basic -u admin:admin --data @input.xml http://192.168.10.21/biosrestore
If you need to change multiple settings, you just need to add "<supportedSetting>(BIOS setting you want to change)</supportedSetting>" to the XML file like the following (change both "HT" and "Hardware Prefetcher" to "Disabled":
$ cat input.xml
<?xml version="1.0" encoding="utf-8"?>
<config>
<sysId>BX2580M2</sysId>
<configuration>
<token api="BSPBR"></token>
<supportedSetting>
<id>HyperThreading</id>
<name>Hyper-Threading</name>
<setupItemID>0x0057</setupItemID>
<value>Disabled</value>
</supportedSetting>
<supportedSetting>
<id>HardwarePrefetcher</id>
<name>Hardware Prefetcher</name>
<setupItemID>0x012E</setupItemID>
<value>Disabled</value>
</supportedSetting>
</configuration>
</config>
If you need to change multiple servers, you can create a script to send the same XML file to iRMC.
Fujitsu BX900: How to save MMB System Event Log remotely
I know MMB SEL can be saved using Web GUI, or log in to MMB via SSH and follow the menu. These methods require several mouse clicks or keyboard interactions. It would be nice to automate this process using a script or one-liner commands, wouldn't it?
Here are some examples.
- CIM (This method requires WS-MAN enabled in MMB)
$ wbemcli ei 'http://<mmb user name>:<password>@<mmb IP address>:5988/root/cimv2:Linux_MgmtBladeLog' |awk -F[,\"] '{print sprintf("%04d", $30), $27,$24}'
Example)
$ wbemcli ei 'http://admin:admin@192.168.10.10:5988/root/cimv2:Linux_MgmtBladeLog' | awk -F[,\"] '{print sprintf("%04d", $30), $27,$24}'
0001 2016-07-19 10:44:44 The IPv4 NTP server 2 is recovered.
0002 2016-07-19 10:19:09 The IPv4 NTP server 2 is inaccessible.
0003 2016-06-09 15:07:27 The IPv4 NTP server 2 is recovered.
0004 2016-06-09 15:01:57 The IPv4 NTP server 2 is inaccessible.
0005 2016-06-06 15:08:17 Server Blade-10 was removed.
0006 2016-06-06 15:06:55 Server Blade-10 power on.
0007 2016-06-06 15:06:04 Server Blade-10 power off.
0008 2016-06-06 15:01:49 Server Blade-10 power on.
0009 2016-06-06 15:01:01 Server Blade-10 power on.
0010 2016-06-06 15:00:53 Server Blade-10 was added.
...
- Create a file containing the following:
- Execute SSH using the file created as input. plink can be downloaded from PuTTY download page.
- If needed, you can redirect the output to a file to save the contents.
7 2 0 0 5Or just run
$ echo -e "7\n2\n0\n0\n5" > input_file
$ ssh -T <mmb user name>@<mmb IP address> < input_fileor
$ plink -ssh -T -l <mmb user name> -pw <password> <mmb IP address> < input_fileExample)
$ plink -ssh -T -l admin -pw admin 192.168.10.10 < input_file ... SEL entry number:511, Free space of SEL entry:0 2016-07-19 10:44:44 Info/Normal The IPv4 NTP server 2 is recovered. 2016-07-19 10:19:09 Minor The IPv4 NTP server 2 is inaccessible. 2016-06-09 15:07:27 Info/Normal The IPv4 NTP server 2 is recovered. 2016-06-09 15:01:57 Minor The IPv4 NTP server 2 is inaccessible. 2016-06-06 15:08:17 Info/Normal Server Blade-10 was removed. 2016-06-06 15:06:55 Info/Normal Server Blade-10 power on. 2016-06-06 15:06:04 Info/Normal Server Blade-10 power off. ...
Also you can use the above SSH method to save MMB System Information Dump remotely.The difference is that the input file needs to contain the following:
7 5 0 0 5Or just run
$ echo -e "7\n5\n0\n0\n5" > input_file
Then execute ssh or plink against MMB.
Example)$ plink -ssh -T -l admin -pw admin 192.168.10.10 < input_file ... +----------------------------------------------+ + System Control Information +----------------------------------------------+ System Name : BX900-2 Housing Type : BX900S1 System Location : Data Center System Contact : dc-admin@example.com Chassis Part Number: A3C40119934 +----------------------------------------------+ + MMB +----------------------------------------------+ Management Blade Run Mode : master Management Blade Status : ok Management Blade Manufacture : FUJITSU Management Blade Manufacture Date : 04/02/2010 10:17:00 ...
EFI Shell on Fujitsu PRIMERGY servers
For example, if the OS boot entry is somehow lost, without EFI Shell, you probably need to boot off of a Linux live CD or something to recreate a boot entry. If EFI shell is available, you don't need to do that. You just simple bring up the shell, and mount the EFI partition to execute the OS boot image.
Another example is that if you want to update PCIe card firmware image such as RAID card firmware before installing an OS, you have to use Fujitsu's Update Manager Express to do the update. It will take long time as it will update the whole system (BIOS, iRMC FW, PCIe FW, etc.). If you have EFI Shell, you can run EFI utilities to update firmware, and it will take less time.
Although Fujitsu disabled EFI Shell, there is still a way to use EFI shell on PRIMERGY servers.
Here are the instructions.
- Download the EFI shell binary from tianocore.
- Format your USB flash drive in FAT32.
- Create the \efi\boot folder.
- Copy the downloaded binary to \efi\boot, and rename the file to bootx64.efi.
- Boot the PRIMERGY server off of the USB device in UEFI mode.
You can extract the USB EFI shell environment as a HDD image, and mount it via iRMC Remote Storage. It's handy.
I put EFI utilities like LSI's storcli, Intel's bootutil, etc. to this, and created a HDD image as "efitools.img", so I can flash Fujitsu RAID firmware (ROM file), or change the boot mode (PXE or iSCSI) for Intel-based network cards on any PRIMERGY servers.
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. ...
-
For some reason, the iRMC admin user password is lost, and you need to recover it to access the iRMC on your PRIMERGY server. The official w...
-
As you probably know, iRMC S5 supports auto discovery. Fujitsu has management software like Infrastructure Manager (ISM) that supports iRMC...
-
There is a HTTP interface in iRMC for system BIOS and iRMC firmware updates. That means you can send firmware images to iRMC remotely to fla...








