TL;DR:
to switch the drive into the JBOD mode:
0) make sure you have megaraid_sas kernel module loaded; and libncurses5 installed (is is safe to symlink libncurses.so.6 or libncursessw.so.6 to libncurses.so.5)
1) download and unpack the RPM file from inside this ZIP archive: https://docs.broadcom.com/docs-and-...-controllers-common-files/8-07-14_MegaCLI.zip to /opt/ directory
2)
to update the drive firmware through the PERC card:
0) disconnect the drive from the PERC card and connect directly to the SAS/SATA port on the motherboard.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
( Samsung 870 EVO - Beware, certain batches prone to failure! | Careful: Samsung EVO 4TB SSD (high failure rates) | https://www.reddit.com/r/synology/comments/tueopq )
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 hardware RAID array?
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 drive, 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.
> Link to Samsung update?
full page: Samsung Magician & SSD Tools & Software Update | Samsung Semiconductor Global
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:
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.
> 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.
# copy of this thread on Dell forum: [Linux] [perccli?] How to expose drives in a Hardware RAID to the operating system?
to switch the drive into the JBOD mode:
0) make sure you have megaraid_sas kernel module loaded; and libncurses5 installed (is is safe to symlink libncurses.so.6 or libncursessw.so.6 to libncurses.so.5)
1) download and unpack the RPM file from inside this ZIP archive: https://docs.broadcom.com/docs-and-...-controllers-common-files/8-07-14_MegaCLI.zip to /opt/ directory
2)
Code:
cd /opt/MegaRAID/MegaCli/
./MegaCli64 -PDList -aALL #### note the IDs of enclosure, target drive, and controller
./MegaCli64 -PDOffline -PhysDrv[EEE:DDD] -aCCC #### where "EEE" is "enclosure ID", "DDD" is "drive ID", "CCC" is "controller ID"
./MegaCli64 -PDMarkMissing -PhysDrv [EEE:DDD] -aCCC
./MegaCli64 -AdpSetProp -EnableJBOD -1 -aCCC
./MegaCli64 -PDMakeJBOD -PhysDrv[EEE:DDD] -aCCC
./MegaCli64 -AdpAutoRbld -Dsbl -aCCC
to update the drive firmware through the PERC card:
0) disconnect the drive from the PERC card and connect directly to the SAS/SATA port on the motherboard.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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.
( Samsung 870 EVO - Beware, certain batches prone to failure! | Careful: Samsung EVO 4TB SSD (high failure rates) | https://www.reddit.com/r/synology/comments/tueopq )
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 hardware RAID array?
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 drive, 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.
> Link to Samsung update?
full page: Samsung Magician & SSD Tools & Software Update | Samsung Semiconductor Global
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:
Code:
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
As I use a hardware RAID the "fumagician" program tells that it could not detect the drives.
> 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.
# copy of this thread on Dell forum: [Linux] [perccli?] How to expose drives in a Hardware RAID to the operating system?
Last edited: