Page 1 of 1

Perc H730 Mini RAID Controller smarttest

Posted: Sun Jul 12, 2026 7:06 pm
by proxmoxer
a good copypaste, I have tried this and it seems to work well, of course the raid control software changes over time, and over machines. This is for Perc H730 Mini Raid

# Checking a Dell PERC H730 Mini RAID Controller on Proxmox VE

## System covered

This guide is specifically for:

* Proxmox VE
* Dell PERC H730 Mini
* Broadcom/LSI MegaRAID SAS-3 3108
* `megaraid_sas` Linux driver
* RAID managed through Dell PERCCLI

Your current configuration contains one RAID 1 virtual disk and two SATA SSDs. The controller, RAID virtual disk, battery and both physical drives currently report an optimal state.

---

## 1. Identify the RAID controller

Run on the Proxmox host as `root`:

```bash
lspci -nnk | grep -A5 -Ei 'raid|sas|scsi|storage'
```

Expected output includes:

```text
Broadcom / LSI MegaRAID SAS-3 3108
Dell PERC H730 Mini
Kernel driver in use: megaraid_sas
```

Confirm the driver is loaded:

```bash
lsmod | grep megaraid_sas
```

---

## 2. Locate PERCCLI

The normal installation path is:

```text
/opt/MegaRAID/perccli/perccli64
```

Check it:

```bash
find /opt/MegaRAID/perccli -maxdepth 1 \
-type f -executable -ls
```

Create a convenient shell variable:

```bash
PERC=/opt/MegaRAID/perccli/perccli64
```

Confirm the program works:

```bash
$PERC show
```

Expected output should show one controller:

```text
Number of Controllers = 1
Ctl 0
Model PERCH730Mini
Health Opt
```

---

## 3. Check the overall controller state

Run:

```bash
$PERC /c0 show
```

Important fields:

```text
Controller Status
Health
BBU
Drive Groups
Virtual Drives
Physical Drives
```

Healthy values include:

```text
Controller Status = Optimal
Health = Opt
BBU = Opt
```

Your controller currently reports an optimal controller and battery state.

---

## 4. Display the full controller report

Save the complete controller report:

```bash
$PERC /c0 show all \
| tee /root/perc-controller.txt
```

This report includes:

* controller firmware version;
* driver version;
* controller temperature;
* cache configuration;
* battery status;
* RAID topology;
* scheduled patrol reads;
* consistency-check settings;
* rebuild policy.

Review the most important fields:

```bash
grep -Ei \
'Controller Status|Firmware Version|Driver Version|BBU|Battery|Cache|temperature|Patrol|Consistency|Rebuild' \
/root/perc-controller.txt
```

---

## 5. Check the RAID virtual disk

List all virtual disks:

```bash
$PERC /c0/vall show
```

For this server, the expected healthy result is similar to:

```text
DG/VD TYPE State Access Consist Cache
0/0 RAID1 Optl RW Yes RWBD
```

Meaning:

* `RAID1` — mirrored RAID
* `Optl` — optimal
* `RW` — read/write
* `Yes` — consistent
* `RWBD` — read ahead, write-back cache, direct I/O

Save the detailed virtual-disk report:

```bash
$PERC /c0/vall show all \
| tee /root/perc-virtual-disks.txt
```

Important fields:

```text
State
Access
Consist
Cache
Active Operations
Exposed to OS
OS Drive Name
```

Healthy values include:

```text
State = Optl
Access = RW
Consist = Yes
Active Operations = None
```

Your virtual disk currently reports `Optimal`, `Consistent`, and write-back cache is active.

---

## 6. Check physical-drive status through the controller

List all physical drives:

```bash
$PERC /c0/eall/sall show
```

Expected healthy values:

```text
State = Onln
```

On this server the two drives are:

```text
/c0/e32/s0
/c0/e32/s1
```

Save the detailed report:

```bash
$PERC /c0/e32/sall show all \
| tee /root/perc-physical-disks.txt
```

Extract the health counters:

```bash
grep -Ei \
'Drive /|State|Media Error Count|Other Error Count|Predictive Failure Count|S.M.A.R.T|Firmware Revision|Link Speed' \
/root/perc-physical-disks.txt
```

Healthy results are:

```text
Media Error Count = 0
Other Error Count = 0
Predictive Failure Count = 0
S.M.A.R.T alert flagged by drive = No
```

Both current SSDs report zero controller-recorded media errors, zero other errors, zero predictive failures and no SMART alert.

---

## 7. Check cache and battery health

Run:

```bash
$PERC /c0 show all |
grep -Ei 'BBU|Battery|CacheVault|Cache|Retention|temperature'
```

Important fields include:

```text
BBU = Present
BBU Status
Battery temperature
CacheVault Flash Size
Current Size of FW Cache
```

Healthy values include:

```text
BBU = Present
BBU Status = 0
State = Optimal
```

The RAID virtual disk should normally use write-back cache:

```text
Write Cache(initial setting) = WriteBack
```

If the battery or CacheVault protection fails, the controller may switch to write-through cache, which can cause a major performance reduction.

---

## 8. Check controller temperatures

Run:

```bash
$PERC /c0 show all |
grep -Ei 'ROC temperature|Ctrl temperature|Battery.*Temp'
```

On this server, the controller temperature was approximately:

```text
ROC temperature = 52°C
Controller temperature = 52°C
Battery temperature = 36°C
```

These values were not accompanied by controller warnings.

---

## 9. Export the RAID event log

Save all controller events, including deleted historical configurations:

```bash
$PERC /c0 show events type=includedeleted \
file=/root/perc-events.txt
```

Search for serious events:

```bash
grep -Ei \
'command timeout|reset|failed|degraded|offline|media|medium|uncorrect|predictive|cache data|battery|rebuild|consistency|patrol' \
/root/perc-events.txt
```

Important warning messages include:

```text
Command timeout on PD
PD reset
VD is now DEGRADED
VD is now OFFLINE
Cache data recovered
Predictive failure
Media error
```

Be careful when using:

```text
type=includedeleted
```

This includes events from previous disks and deleted RAID configurations.

For example, an event referring to:

```text
VD 01/1
PD 04
```

does not necessarily refer to the current RAID, which contains only virtual disk `00/0` and physical disks `0` and `1`.

---

## 10. Display event context and timestamps

A simple `grep` may hide the event date and sequence number.

Show surrounding lines:

```bash
grep -n -B15 -A10 -E \
'Command timeout on PD|reset \(Type|now DEGRADED|now OFFLINE' \
/root/perc-events.txt
```

For battery-learning events:

```bash
grep -n -B12 -A8 -E \
'Battery relearn started|Battery relearn in progress|Battery is discharging|Battery relearn completed' \
/root/perc-events.txt
```

Compare the event identity with the current disks before concluding that a current drive is failing.

---

## 11. Check scheduled controller tasks

Run:

```bash
$PERC /c0 show all |
grep -Ei \
'Consistency Check Reoccurrence|Next Consistency|Patrol Read Reoccurrence|Next Patrol|Battery learn'
```

Typical settings on this controller are:

```text
Consistency Check Reoccurrence = 168 hrs
Patrol Read Reoccurrence = 168 hrs
Battery learn Reoccurrence = 2160 hrs
```

Check whether a patrol read, consistency check or battery relearn occurred close to a performance incident.

---

## 12. Quick health-check command set

Use this for a fast controller review:

```bash
PERC=/opt/MegaRAID/perccli/perccli64

echo "=== CONTROLLER ==="
$PERC /c0 show

echo "=== VIRTUAL DISK ==="
$PERC /c0/vall show

echo "=== PHYSICAL DRIVES ==="
$PERC /c0/eall/sall show

echo "=== DRIVE ERROR COUNTERS ==="
$PERC /c0/e32/sall show all |
grep -Ei \
'Drive /|Media Error Count|Other Error Count|Predictive Failure Count|S.M.A.R.T'

echo "=== CACHE AND BATTERY ==="
$PERC /c0 show all |
grep -Ei \
'Controller Status|BBU|Battery|Write Policy|CacheVault|ROC temperature|Ctrl temperature'
```

---

## 13. Healthy result checklist

A healthy PERC H730 Mini should show:

```text
Controller Status = Optimal
Health = Opt
BBU = Optimal
RAID virtual disk = Optl
Virtual disk consistency = Yes
Physical drives = Onln
Media Error Count = 0
Other Error Count = 0
Predictive Failure Count = 0
SMART alert = No
Write cache = WriteBack
Active Operations = None
```

---

## 14. Commands to avoid during diagnosis

Do not run PERCCLI commands containing these actions unless you fully understand the effect:

```text
delete
clear
set
offline
missing
good
start rebuild
start init
start erase
foreign import
foreign clear
```

The inspection commands used in this guide are based on `show`, log export and text filtering and do not intentionally modify the RAID configuration.

---

## Current conclusion for this controller

The current Dell PERC H730 Mini configuration reports:

* controller optimal;
* RAID 1 optimal and consistent;
* both physical SSDs online;
* zero media errors;
* zero other errors;
* zero predictive failures;
* no SMART alerts;
* battery optimal;
* write-back cache active;
* no active rebuild.

Historical event entries must be matched by timestamp, virtual-disk number, physical-disk number and path before associating them with a current fault.

Re: Perc H730 Mini RAID Controller smarttest

Posted: Sun Jul 12, 2026 7:14 pm
by proxmoxer
Check if drive is failing with
/opt/MegaRAID/perccli/perccli64 /c0/eall/sall show all | grep -E "Predictive|Failed"