* [pve-devel] [PATCH storage 1/2] tests: add ssd sas disk
@ 2020-12-11 13:52 Dominik Csapak
2020-12-11 13:52 ` [pve-devel] [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk Dominik Csapak
2020-12-15 13:42 ` [pve-devel] applied: [PATCH storage 1/2] tests: add ssd sas disk Thomas Lamprecht
0 siblings, 2 replies; 4+ messages in thread
From: Dominik Csapak @ 2020-12-11 13:52 UTC (permalink / raw)
To: pve-devel
copied from test 'sas' with rotational set to 0
this has then the type 'ssd', rpm: 0, and health: 'OK'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
test/disk_tests/sas_ssd/disklist | 1 +
.../disk_tests/sas_ssd/disklist_expected.json | 17 ++++++++++
test/disk_tests/sas_ssd/sda/device/model | 1 +
test/disk_tests/sas_ssd/sda/device/vendor | 1 +
test/disk_tests/sas_ssd/sda/queue/rotational | 1 +
test/disk_tests/sas_ssd/sda/size | 1 +
test/disk_tests/sas_ssd/sda_smart | 20 ++++++++++++
.../sas_ssd/sda_smart_expected.json | 5 +++
test/disk_tests/sas_ssd/sda_udevadm | 31 +++++++++++++++++++
9 files changed, 78 insertions(+)
create mode 100644 test/disk_tests/sas_ssd/disklist
create mode 100644 test/disk_tests/sas_ssd/disklist_expected.json
create mode 100644 test/disk_tests/sas_ssd/sda/device/model
create mode 100644 test/disk_tests/sas_ssd/sda/device/vendor
create mode 100644 test/disk_tests/sas_ssd/sda/queue/rotational
create mode 100644 test/disk_tests/sas_ssd/sda/size
create mode 100644 test/disk_tests/sas_ssd/sda_smart
create mode 100644 test/disk_tests/sas_ssd/sda_smart_expected.json
create mode 100644 test/disk_tests/sas_ssd/sda_udevadm
diff --git a/test/disk_tests/sas_ssd/disklist b/test/disk_tests/sas_ssd/disklist
new file mode 100644
index 0000000..9191c61
--- /dev/null
+++ b/test/disk_tests/sas_ssd/disklist
@@ -0,0 +1 @@
+sda
diff --git a/test/disk_tests/sas_ssd/disklist_expected.json b/test/disk_tests/sas_ssd/disklist_expected.json
new file mode 100644
index 0000000..9e7ada3
--- /dev/null
+++ b/test/disk_tests/sas_ssd/disklist_expected.json
@@ -0,0 +1,17 @@
+{
+ "sda" : {
+ "gpt" : 1,
+ "devpath" : "/dev/sda",
+ "type" : "ssd",
+ "model" : "MODEL1",
+ "health" : "OK",
+ "osdid" : -1,
+ "wwn" : "0x0000000000000000",
+ "vendor" : "VENDOR1",
+ "rpm" : 0,
+ "size" : 5120000,
+ "serial" : "SER2",
+ "wearout" : "N/A",
+ "by_id_link" : "/dev/disk/by-id/scsi-00000000000000000"
+ }
+}
diff --git a/test/disk_tests/sas_ssd/sda/device/model b/test/disk_tests/sas_ssd/sda/device/model
new file mode 100644
index 0000000..6b69674
--- /dev/null
+++ b/test/disk_tests/sas_ssd/sda/device/model
@@ -0,0 +1 @@
+MODEL1
diff --git a/test/disk_tests/sas_ssd/sda/device/vendor b/test/disk_tests/sas_ssd/sda/device/vendor
new file mode 100644
index 0000000..a7894eb
--- /dev/null
+++ b/test/disk_tests/sas_ssd/sda/device/vendor
@@ -0,0 +1 @@
+VENDOR1
diff --git a/test/disk_tests/sas_ssd/sda/queue/rotational b/test/disk_tests/sas_ssd/sda/queue/rotational
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/disk_tests/sas_ssd/sda/queue/rotational
@@ -0,0 +1 @@
+0
diff --git a/test/disk_tests/sas_ssd/sda/size b/test/disk_tests/sas_ssd/sda/size
new file mode 100644
index 0000000..5caff40
--- /dev/null
+++ b/test/disk_tests/sas_ssd/sda/size
@@ -0,0 +1 @@
+10000
diff --git a/test/disk_tests/sas_ssd/sda_smart b/test/disk_tests/sas_ssd/sda_smart
new file mode 100644
index 0000000..856af39
--- /dev/null
+++ b/test/disk_tests/sas_ssd/sda_smart
@@ -0,0 +1,20 @@
+=== START OF READ SMART DATA SECTION ===
+SMART Health Status: OK
+
+Percentage used endurance indicator: 0%
+Current Drive Temperature: 20 C
+Drive Trip Temperature: 70 C
+
+Manufactured in week 47 of year 2012
+Specified cycle count over device lifetime: 0
+Accumulated start-stop cycles: 0
+Specified load-unload count over device lifetime: 0
+Accumulated load-unload cycles: 0
+Elements in grown defect list: 0
+
+Vendor (Seagate) cache information
+ Blocks sent to initiator = 1286675833552896
+
+Vendor (Seagate/Hitachi) factory information
+ number of hours powered up = 7127.12
+ number of minutes until next internal SMART test = 0
diff --git a/test/disk_tests/sas_ssd/sda_smart_expected.json b/test/disk_tests/sas_ssd/sda_smart_expected.json
new file mode 100644
index 0000000..e096c8b
--- /dev/null
+++ b/test/disk_tests/sas_ssd/sda_smart_expected.json
@@ -0,0 +1,5 @@
+{
+ "health" : "OK",
+ "text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature: 20 C\nDrive Trip Temperature: 70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime: 0\nAccumulated start-stop cycles: 0\nSpecified load-unload count over device lifetime: 0\nAccumulated load-unload cycles: 0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n number of hours powered up = 7127.12\n number of minutes until next internal SMART test = 0\n",
+ "type" : "text"
+}
diff --git a/test/disk_tests/sas_ssd/sda_udevadm b/test/disk_tests/sas_ssd/sda_udevadm
new file mode 100644
index 0000000..ac0744d
--- /dev/null
+++ b/test/disk_tests/sas_ssd/sda_udevadm
@@ -0,0 +1,31 @@
+P: /devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
+N: sda
+S: disk/by-id/scsi-00000000000000000
+S: disk/by-id/wwn-0x0000000000000000
+S: disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
+E: DEVLINKS=/dev/disk/by-id/scsi-00000000000000000 /dev/disk/by-id/wwn-0x0000000000000000 /dev/disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
+E: DEVNAME=/dev/sda
+E: DEVPATH=/devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
+E: DEVTYPE=disk
+E: ID_BUS=scsi
+E: ID_MODEL=MODEL1
+E: ID_MODEL_ENC=MODEL1\x20\x20\x20\x20\x20\x20
+E: ID_PART_TABLE_TYPE=gpt
+E: ID_PART_TABLE_UUID=605740f0-44a1-4dc5-9fea-bde166df963e
+E: ID_PATH=pci-0000:02:00.0-sas-0x0000000000000000-lun-0
+E: ID_PATH_TAG=pci-0000_02_00_0-sas-0x0000000000000000-lun-0
+E: ID_REVISION=ES64
+E: ID_SCSI=1
+E: ID_SCSI_SERIAL=SERIAL
+E: ID_SERIAL=SERIAL2
+E: ID_SERIAL_SHORT=SER2
+E: ID_TYPE=disk
+E: ID_VENDOR=VENDOR1
+E: ID_VENDOR_ENC=VENDOR1\x20
+E: ID_WWN=0x0000000000000000
+E: ID_WWN_WITH_EXTENSION=0x0000000000000000
+E: MAJOR=8
+E: MINOR=0
+E: SUBSYSTEM=block
+E: TAGS=:systemd:
+E: USEC_INITIALIZED=667541
--
2.20.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pve-devel] [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk
2020-12-11 13:52 [pve-devel] [PATCH storage 1/2] tests: add ssd sas disk Dominik Csapak
@ 2020-12-11 13:52 ` Dominik Csapak
2020-12-15 13:42 ` [pve-devel] applied: " Thomas Lamprecht
2020-12-15 13:42 ` [pve-devel] applied: [PATCH storage 1/2] tests: add ssd sas disk Thomas Lamprecht
1 sibling, 1 reply; 4+ messages in thread
From: Dominik Csapak @ 2020-12-11 13:52 UTC (permalink / raw)
To: pve-devel
for some controllers/disks there the line is
Percentage used endurance indicator: x%
so extend the regex for that possibilty.
We even had a test-case for SAS but did not notice we could extract
that info from there...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
PVE/Diskmanage.pm | 4 ++--
test/disk_tests/sas/sda_smart_expected.json | 3 ++-
test/disk_tests/sas_ssd/disklist_expected.json | 2 +-
test/disk_tests/sas_ssd/sda_smart_expected.json | 3 ++-
4 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index a46cc73..116a99a 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -134,8 +134,8 @@ sub get_smart_data {
} elsif (defined($type) && $type eq 'text') {
$smartdata->{text} = '' if !defined $smartdata->{text};
$smartdata->{text} .= "$line\n";
- # extract wearout from nvme text, allow for decimal values
- if ($line =~ m/Percentage Used:\s*(\d+(?:\.\d+)?)\%/i) {
+ # extract wearout from nvme/sas text, allow for decimal values
+ if ($line =~ m/Percentage Used(?: endurance indicator)?:\s*(\d+(?:\.\d+)?)\%/i) {
$smartdata->{wearout} = 100 - $1;
}
} elsif ($line =~ m/SMART Disabled/) {
diff --git a/test/disk_tests/sas/sda_smart_expected.json b/test/disk_tests/sas/sda_smart_expected.json
index e096c8b..2964372 100644
--- a/test/disk_tests/sas/sda_smart_expected.json
+++ b/test/disk_tests/sas/sda_smart_expected.json
@@ -1,5 +1,6 @@
{
"health" : "OK",
"text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature: 20 C\nDrive Trip Temperature: 70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime: 0\nAccumulated start-stop cycles: 0\nSpecified load-unload count over device lifetime: 0\nAccumulated load-unload cycles: 0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n number of hours powered up = 7127.12\n number of minutes until next internal SMART test = 0\n",
- "type" : "text"
+ "type" : "text",
+ "wearout": 100
}
diff --git a/test/disk_tests/sas_ssd/disklist_expected.json b/test/disk_tests/sas_ssd/disklist_expected.json
index 9e7ada3..dd9b748 100644
--- a/test/disk_tests/sas_ssd/disklist_expected.json
+++ b/test/disk_tests/sas_ssd/disklist_expected.json
@@ -11,7 +11,7 @@
"rpm" : 0,
"size" : 5120000,
"serial" : "SER2",
- "wearout" : "N/A",
+ "wearout" : 100,
"by_id_link" : "/dev/disk/by-id/scsi-00000000000000000"
}
}
diff --git a/test/disk_tests/sas_ssd/sda_smart_expected.json b/test/disk_tests/sas_ssd/sda_smart_expected.json
index e096c8b..2964372 100644
--- a/test/disk_tests/sas_ssd/sda_smart_expected.json
+++ b/test/disk_tests/sas_ssd/sda_smart_expected.json
@@ -1,5 +1,6 @@
{
"health" : "OK",
"text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature: 20 C\nDrive Trip Temperature: 70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime: 0\nAccumulated start-stop cycles: 0\nSpecified load-unload count over device lifetime: 0\nAccumulated load-unload cycles: 0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n number of hours powered up = 7127.12\n number of minutes until next internal SMART test = 0\n",
- "type" : "text"
+ "type" : "text",
+ "wearout": 100
}
--
2.20.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pve-devel] applied: [PATCH storage 1/2] tests: add ssd sas disk
2020-12-11 13:52 [pve-devel] [PATCH storage 1/2] tests: add ssd sas disk Dominik Csapak
2020-12-11 13:52 ` [pve-devel] [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk Dominik Csapak
@ 2020-12-15 13:42 ` Thomas Lamprecht
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2020-12-15 13:42 UTC (permalink / raw)
To: Proxmox VE development discussion, Dominik Csapak
On 11.12.20 14:52, Dominik Csapak wrote:
> copied from test 'sas' with rotational set to 0
> this has then the type 'ssd', rpm: 0, and health: 'OK'
>
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> test/disk_tests/sas_ssd/disklist | 1 +
> .../disk_tests/sas_ssd/disklist_expected.json | 17 ++++++++++
> test/disk_tests/sas_ssd/sda/device/model | 1 +
> test/disk_tests/sas_ssd/sda/device/vendor | 1 +
> test/disk_tests/sas_ssd/sda/queue/rotational | 1 +
> test/disk_tests/sas_ssd/sda/size | 1 +
> test/disk_tests/sas_ssd/sda_smart | 20 ++++++++++++
> .../sas_ssd/sda_smart_expected.json | 5 +++
> test/disk_tests/sas_ssd/sda_udevadm | 31 +++++++++++++++++++
> 9 files changed, 78 insertions(+)
> create mode 100644 test/disk_tests/sas_ssd/disklist
> create mode 100644 test/disk_tests/sas_ssd/disklist_expected.json
> create mode 100644 test/disk_tests/sas_ssd/sda/device/model
> create mode 100644 test/disk_tests/sas_ssd/sda/device/vendor
> create mode 100644 test/disk_tests/sas_ssd/sda/queue/rotational
> create mode 100644 test/disk_tests/sas_ssd/sda/size
> create mode 100644 test/disk_tests/sas_ssd/sda_smart
> create mode 100644 test/disk_tests/sas_ssd/sda_smart_expected.json
> create mode 100644 test/disk_tests/sas_ssd/sda_udevadm
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pve-devel] applied: [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk
2020-12-11 13:52 ` [pve-devel] [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk Dominik Csapak
@ 2020-12-15 13:42 ` Thomas Lamprecht
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2020-12-15 13:42 UTC (permalink / raw)
To: Proxmox VE development discussion, Dominik Csapak
On 11.12.20 14:52, Dominik Csapak wrote:
> for some controllers/disks there the line is
> Percentage used endurance indicator: x%
>
> so extend the regex for that possibilty.
> We even had a test-case for SAS but did not notice we could extract
> that info from there...
>
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> PVE/Diskmanage.pm | 4 ++--
> test/disk_tests/sas/sda_smart_expected.json | 3 ++-
> test/disk_tests/sas_ssd/disklist_expected.json | 2 +-
> test/disk_tests/sas_ssd/sda_smart_expected.json | 3 ++-
> 4 files changed, 7 insertions(+), 5 deletions(-)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-12-15 13:43 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-11 13:52 [pve-devel] [PATCH storage 1/2] tests: add ssd sas disk Dominik Csapak
2020-12-11 13:52 ` [pve-devel] [PATCH storage 2/2] Diskmanage: extend wearout detection for SAS disk Dominik Csapak
2020-12-15 13:42 ` [pve-devel] applied: " Thomas Lamprecht
2020-12-15 13:42 ` [pve-devel] applied: [PATCH storage 1/2] tests: add ssd sas disk Thomas Lamprecht
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal