Perc H730 Mini RAID Controller smarttest

Hosting an Evernode involves setting up and maintaining a linux machine which runs the evernode software and participates in network consensus. By participating, you help maintain the network's decentralized infrastructure while potentially earning rewards. Detailed tutorials and community support are available to assist node operators.
Forum rules
Welcome to the Hosting An Evernode Forum! To ensure a positive and productive environment, please adhere to the following guidelines.

Treat all members with respect and courtesy. Post content relevant to hosting an Evernode, avoiding spamming, self-promotion, or irrelevant topics. Aim to provide clear, informative, and constructive contributions. Discussions of illegal illicit activities are strictly prohibited. Protect your privacy and that of others by not sharing personal information publicly and reporting any suspicious activity to moderators. Failure to adhere to these rules may result in warnings, post deletions, or account suspension. Let’s work together to build a supportive and knowledgeable Evernode community!
Post Reply
proxmoxer
Posts: 21
Joined: Sun Apr 06, 2025 9:31 pm

Perc H730 Mini RAID Controller smarttest

Post 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.
proxmoxer
Posts: 21
Joined: Sun Apr 06, 2025 9:31 pm

Re: Perc H730 Mini RAID Controller smarttest

Post by proxmoxer »

Check if drive is failing with
/opt/MegaRAID/perccli/perccli64 /c0/eall/sall show all | grep -E "Predictive|Failed"
Post Reply