eKitStor Xtreme Enterprise SSD 1.1.1 Upgrade Guide
Upgrading the PCIe SSD Firmware Using nvme-cli
Operation Scenario
After Huawei releases a new controller firmware version, you can upgrade the firmware based on service requirements. For Linux, you can use the nvme-cli tool to upgrade the PCIe SSD firmware. You can run the nvme version command to check the version number of nvme-cli. In the following example, the version number of nvme-cli is 1.6.
nvme version 1.6
Preparations
Before upgrading the firmware, perform the following operations:
- Ensure that the NVMe driver has been installed in the system.
- Stop or exit the applications or services that are using the eKitStor Xtreme 300P/300S, and run the umount command to unmount the file system that is using the SSD.
- The firmware upgrade does not damage data on SSDs. However, you are advised to back up important data before upgrading the firmware.
- You have performed the pre-upgrade check, obtained the tool package of the new version, and verified the tool package integrity as instructed in Preparing for the Upgrade.
- Use WinSCP or other software to upload the controller firmware to the server where the SSD needs to be upgraded.
Procedure
- Log in to the OS as an administrator.
- Run the following command to check the name of the SSD to be upgraded: Confirm the SN of the disk to be upgraded.
nvme list
The following is an example of the command output:Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------- --------- ------------------------ -------------- -------- /dev/nvme0n1 0503023HDCN107C80013 1 512.0GB / 512.0GB 4 KiB + 0 B 1011 /dev/nvme1n1 0503023HDCN107C80013 1 512.0GB / 512.0GB 4 KiB + 0 B 1011
- Run the following command to check the SSD controller firmware version. In this example, the SSD name is nvme0. If the system has multiple PCIe SSDs, repeat Step 3 to Step 7.
nvme fw-log /dev/nvme0
The command output contains information similar to the following:Firmware Log for device:nvme0 afi : 0x1 frs1 : 1011 frs2 : 1011
The value of afi is in the format of 0xAB. The value of A is 0/1/2. The value 0 indicates that no slot ID takes effect after a reset. The value 1/2 indicates that the slot ID 1/2will take effect after the next reset. The value of B is 1/2, indicating that the current slot ID of the firmware is 1/2. The firmware version number of slot 1 is the value of frs1, and the firmware version number of slot 2 is the value of frs2. In the preceding command output, the value of afi is 0x1 (0x01, A=0, B=1), indicating that the slot ID 1 will take effect after the next reset, and the firmware version of slot 1 is the value of frs1, that is, 1011.
- Optional: Go to the directory where the controller firmware is stored, for example, /home.
You can use an absolute path or a relative path when upgrading the firmware. If you do not perform this step, you must enter an absolute path in the command in the next step.
- Upgrade the controller firmware. In this example, the firmware upgrade file is SSD_V2_FW_SHNN_1016.bin.
Select an upgrade mode based on the current SSD firmware version. For details, see Version Requirements Before the Upgrade.
- Activating the upgraded firmware after the next reset:
Run the following commands in sequence:
nvme fw-download /dev/nvme0 -f SSD_V2_FW_SHNN_1016.bin
nvme fw-commit /dev/nvme0 -a 1 -s 2
- Activating the upgraded firmware immediately:
Run the following commands in sequence:
nvme fw-download /dev/nvme0 -f SSD_V2_FW_SHNN_1016.bin
nvme fw-commit /dev/nvme0 -a 3 -s 2
Then, go to Step 7.
- Activating the upgraded firmware after the next reset:
- After the upgrade is complete, restart the OS if the upgraded firmware is activated after the next reset. You do not need to restart the OS if the upgraded firmware is activated immediately.
- Run the following command to check the controller firmware version of the SSD. If the version has been updated to the new version, the upgrade is successful. Note that the drive letter may change after the restart. For example, nvme0 may change to nvme1. In this case, you need to run the preceding nvme list command to query the SN for differentiation.
nvme fw-log /dev/nvme0