Start a Conversation

Solved!

Go to Solution

1 Rookie

 • 

32 Posts

2054

May 25th, 2022 03:00

[Linux] [perccli?] How to expose drives in a Hardware RAID to the operating system?

Hello,

As you might already know, the Samsung 870 EVO drives have a critical flaw that destroys data on the SSD after several months of usage.
( https://www.techpowerup.com/forums/threads/samsung-870-evo-beware-certain-batches-prone-to-failure.291504/ | https://vi-control.net/community/threads/careful-samsung-evo-4tb-ssd-high-failure-rates.119596/ | https://www.reddit.com/r/synology/comments/tueopq/samsung_ssd_evo_870_failed_after_6months/ )

I have these drives in a hardware RAID made with the H330 RAID controller, so the drives are not listed as a separate entities like "/dev/sda", "/dev/sdb", sdc, sdd, etc in the operating system, but as a single device "/dev/sda". And, for example, to see the S.M.A.R.T report I have to pass a "-d megaraid,N" option to the smartctl, where N is the drive number, like "smartctl -a /dev/sda -d megaraid,5".
And as a result - the Samsung firmware updater program does not detect these drives.

Is there any way to make the controller "pass" the devices to the operating system as a separate entities, rather then the single entity?
Something like switching the controller into the HBA mode but without destroying the RAID?
Maybe there are some perccli commands to achieve this? For example, I've found these commands in the perccli manual:


"perccli /cX set expose" "Enables device drivers to expose enclosure devices"
"perccli /cX set exposeencldevice" "Enables/disables device drivers to expose enclosure devices; for example, expanders, SEPs.

- are these options what I am looking for? Will they expose the drives to the operating system as a separate devices?


At first I thought that I could simply reboot the server, enter the RAID controller configuration utility, and set the HBA mode to all drives rather than the RAID mode, then boot from Samsung's LiveCD to update the firmware, then reboot again and turn the RAID mode back. But I've googled a bit and it seems that switching the drive from the RAID mode into the HBA mode will destroy the data on the drives, even if I turn the RAID mode back later. Is that right?

Unfortunately taking the drives out from the server and updating the firmware by connecting them to another PC is not an option because the server is hosted in a datacenter in a different city, so everything has to be done via iDRAC.

1 Rookie

 • 

32 Posts

May 27th, 2022 00:00

I'm sorry but Dell's rich text editor (this one) is the most idiotic one among all I've ever used.
I've spent less time writing the whole message than editing that message by stripping all the "dangerous symbols" or "HTML entities" or whatever else to make the forum accept it.


But still "Sorry, unable to complete the action you requested." without any explanation, LOL.

I have saved that post here, for the history: https://paste.opensuse.org/view/raw/11877117

Also I've asked for help on another forum. You, my future selves, should seek for solutions there too:

https://forums.servethehome.com/index.php?threads/linux-perccli-dell-h330-how-to-expose-drives-in-a-hardware-raid-to-the-operating-system.36544/

 

1 Rookie

 • 

32 Posts

May 28th, 2022 06:00

Another update.

I've found out what is a "FeatException" error - this error appears when "fumagician" tries to read the Virtual Media drive file in the /dev/ directory. After I renamed the Virtual Media device file in /dev/ the "fumagician" stopped throwing the FeatException error and found the SSD drive successfully, however it still showed the error about not finding the firmware files.

Also I've found out that setting JBOD mode with MegaCli works only while the OS is running, and rebooting the OS makes the RAID controller change the drive mode back to "Rebuilding".
Also I could not change the drive to JBOD in the RAID controller BIOS - the "Make Non-Raid" option is grayed out, regardless of the current drive state - ether "Rebuilding" or "Offline".

I have goodled for another guide on making the JBOD mode with MegaCli program, and that guide advised to set the drive to "Unconfigured Good" instead of "Missing" as I have decided first. So I have tried following that guide:
# ./MegaCli64 -PDMakeGood -PhysDrv[32:2] -Force -a0
# ./MegaCli64 -PDMakeJBOD -PhysDrv[32:2] -a0
# ./MegaCli64 -PDList -a0 2>&1 | grep JBOD
> Firmware state: JBOD

Then I have rebooted the server, but the drive state changed to "Rebuilding" again after the reboot, and MegaCli showed "Firmware state: Offline" instead of JBOD.

And now I realized that the RAID controller is set to automatically rebuild the array, that's why it messes with my drive settings.

So I have disabled the auto rebuild:

# ./MegaCli64 -AdpAutoRbld -Dsply -a0
# ./MegaCli64 -AdpAutoRbld -Dsbl -a0
#### (to enable it back run: "./MegaCli64 -AdpAutoRbld -Enbl -a0")
# ./MegaCli64 -PDMarkMissing -PhysDrv [32:2] -a0
# ./MegaCli64 -PDMakeJBOD -PhysDrv[32:2] -a0

Then I've rebooted the server and, at last, saw the "1 Non-Raid disk handled by BIOS" line at the RAID controller initialization stage.

Booted the Samsung LiveCD ISO again, pressed D after it failed to find the drive and asked to press any key to reboot the server, renamed the Virtual Media file (mv /dev/sdd /dev/Xdd) and ran the "fumagician" program again, agreed with updating the firmware, and got "ERROR (21) Firmware Files Required For the Firmware Update Process are Not Located in the Correct Path!!!"

So now it is really officially a fail.

 

Moderator

 • 

3.7K Posts

May 25th, 2022 10:00

Hello vovanxxx,

 

Our firmware update packages are written to be able to apply updates without breaking them out of an array.

It sounds like these may be third party drives. Have you worked with Samsung on the issue?

I don't think we have any Samsung 870 EVO validated for Enterprise servers, only client systems.

 

This may help you Dell EMC PowerEdge RAID Controller Command Line Interface

Reference Guide

https://dell.to/3PIi0gh

Drive commands page 21

 

 

I can try to find more information if you could provide me this information:

Link to Samsung update?

Samsung 870 EVO Dell part number or picture of label on the drive?

Server model?

Operating system and version?

 

1 Rookie

 • 

32 Posts

May 26th, 2022 00:00

Hello Charles,

these drives are indeed not validated/certified by Dell, I have purchased them separately in a generic computer store.

> Link to Samsung update?

full page: https://semiconductor.samsung.com/consumer-storage/support/tools/
direct link: https://semiconductor.samsung.com/resources/software-resources/Samsung_SSD_870_EVO_SVT02B6Q_Win.iso

It is a LiveCD ISO - requires rebooting the server in order to update the firmware. However it is possible to extract the actual firmware update and the updater program to update the firmware from the running operating system:

mkdir -p /dev/shm/iso 
mount -o loop /path/to/Samsung_SSD_870_EVO_SVT02B6Q_Win.iso /dev/shm/iso/
mkdir -p /dev/shm/extract;
cd /dev/shm/extract
cp /dev/shm/iso/initrd /dev/shm/extract/initrd.gz
gzip -d initrd.gz
cpio -i --make-directories --no-absolute-filenames < ./initrd
cp -r root/fumagician/ /dev/shm/
ls /dev/shm/fumagician/
# DSRD.enc  fumagician  fumagician.sh  SVT02B6Q.enc

Where "fumagician" is the Samsung firmware updater program.

As I use a hardware RAID the "fumagician" program tells that it could not detect the drives.

 

> Server model?

R330

 

> Operating system and version?

Linux - Debian 10

 

> This may help you Dell EMC PowerEdge RAID Controller Command Line Interface Reference Guide

 

As far as I understand, I need to do the following:

1) "perccli ... set good force" to make one of the drives "unconfigured good"

2) "perccli ... set jbod" to convert that drive to "JBOD" / "HBA mode" which will expose the drive to the operating system

3) update the firmware with the "fumagician" program

4) "perccli ... set good" to convert the "JBOD mode" drive back to "RAID mode"

5) "perccli ... start rebuild" to rebuild the RAID array

6) wait until RAID rebuilds, then repeat the sequence for all remaining drives.

Is that right? 

 

Most importantly - will setting the JBOD mode destroy the data on the drive?

Repeating the RAID rebuild after updating the firmware on each of the drives will take an extremely large amount of time, so I would prefer to set the JBOD mode to all drives at once, update the firmware on all drives at the same time, set the RAID mode for all drives back, and rebuild the RAID only once.

But if setting the JBOD mode will destroy the RAID array header on the drive then this will not work - I will have to update the firmware for each of the drives separately and wait until RAID rebuilds each time.

Moderator

 • 

3.7K Posts

May 26th, 2022 10:00

Hello  vovanxxx,

 

You may need to work with manufacturer on this. I would follow their direction. If they say boot to the utility then that should be recommended procedure.  If it does not see the drives then you may need to supply the controller driver but check with Samsung on use of their utility.

H330 Linux driver

https://dell.to/3lNR8hq

 

I would not change the controller mode to JBOD. It should tell you, if you do, that it will result in data loss.

 

There may be other forum members that have used this client class drive in a server and can share their experience.

1 Rookie

 • 

32 Posts

May 28th, 2022 01:00

Well, it is officially a fail.

After (changing boot mode from UEFI to BIOS and) rebooting to the Samsung LiveCD I've got the same error message as that only result from the google - "terminate called after throwing an instance of 'FeatException'". And that guy from google results "fixed" it by physically disconnecting the drive and connecting it to the different PC, which is impossible in my case (I am way too far away from the server).

 

And a side note: after getting that error for the first time I've rebooted the server and checked BIOS settings - Device settings - PERC H330 configuration - Physical Disk Management - and found out that the drive 32:2 is in "Rebuilding 0%" state. I have pressed "stop operation", rebooted the server, verified that now the drive is in "Offline" state, booted the Samsung firmware updater iso again, but got the same "featexception" error.

 

I think I will have to hire the datacenter staff to manually update the firmware by physically removing the drives from the server.

 

samsung.png

 

No Events found!

Top