[pve-devel] [PATCH storage] add info about bluestore to disklist
Dominik Csapak
d.csapak at proxmox.com
Tue Aug 1 15:34:44 CEST 2017
this patch adds information about bluestore/db/wal to the disklist,
and we set the journal count only when we have at least one journal on
the disk
also adapt the regression tests
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
PVE/Diskmanage.pm | 32 +++++++++++++++++++----
test/disk_tests/cciss/disklist_expected.json | 1 -
test/disk_tests/hdd_smart/disklist_expected.json | 2 --
test/disk_tests/nvme_smart/disklist_expected.json | 1 -
test/disk_tests/sas/disklist_expected.json | 1 -
test/disk_tests/ssd_smart/disklist_expected.json | 7 +----
test/disk_tests/usages/disklist_expected.json | 7 +----
7 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 6dd12f7..ed40b2e 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -209,11 +209,22 @@ sub get_ceph_journals {
my $journalhash = {};
my $journal_uuid = '45b0969e-9b03-4f30-b4c6-b4b80ceff106';
+ my $db_uuid = '30cd0809-c2b2-499c-8879-2d6b78529876';
+ my $wal_uuid = '5ce17fce-4087-4169-b7ff-056cc58473f9';
+ my $block_uuid = 'cafecafe-9b03-4f30-b4c6-b4b80ceff106';
- dir_glob_foreach('/dev/disk/by-parttypeuuid', "$journal_uuid\..+", sub {
- my ($entry) = @_;
+ dir_glob_foreach('/dev/disk/by-parttypeuuid', "($journal_uuid|$db_uuid|$wal_uuid|$block_uuid)\..+", sub {
+ my ($entry, $type) = @_;
my $real_dev = abs_path("/dev/disk/by-parttypeuuid/$entry");
- $journalhash->{$real_dev} = 1;
+ if ($type eq $journal_uuid) {
+ $journalhash->{$real_dev} = 1;
+ } elsif ($type eq $db_uuid) {
+ $journalhash->{$real_dev} = 2;
+ } elsif ($type eq $wal_uuid) {
+ $journalhash->{$real_dev} = 3;
+ } elsif ($type eq $block_uuid) {
+ $journalhash->{$real_dev} = 4;
+ }
});
return $journalhash;
@@ -460,8 +471,11 @@ sub get_disks {
};
my $osdid = -1;
+ my $bluestore = 0;
my $journal_count = 0;
+ my $db_count = 0;
+ my $wal_count = 0;
my $found_partitions;
my $found_lvm;
@@ -495,7 +509,12 @@ sub get_disks {
$found_zfs = 1;
}
- $journal_count++ if $journalhash->{"$partpath/$part"};
+ if ($journalhash->{"$partpath/$part"}) {
+ $journal_count++ if $journalhash->{"$partpath/$part"} == 1;
+ $db_count++ if $journalhash->{"$partpath/$part"} == 2;
+ $wal_count++ if $journalhash->{"$partpath/$part"} == 3;
+ $bluestore = 1 if $journalhash->{"$partpath/$part"} == 4;
+ }
if (!dir_is_empty("$sysdir/$part/holders") && !$found_lvm) {
$found_dm = 1;
@@ -515,7 +534,10 @@ sub get_disks {
$disklist->{$dev}->{used} = $used if $used;
$disklist->{$dev}->{osdid} = $osdid;
- $disklist->{$dev}->{journals} = $journal_count;
+ $disklist->{$dev}->{journals} = $journal_count if $journal_count;
+ $disklist->{$dev}->{bluestore} = $bluestore if $osdid != -1;
+ $disklist->{$dev}->{db} = $db_count if $db_count;
+ $disklist->{$dev}->{wal} = $wal_count if $db_count;
});
return $disklist;
diff --git a/test/disk_tests/cciss/disklist_expected.json b/test/disk_tests/cciss/disklist_expected.json
index fb071ef..61f60bf 100644
--- a/test/disk_tests/cciss/disklist_expected.json
+++ b/test/disk_tests/cciss/disklist_expected.json
@@ -10,7 +10,6 @@
"model" : "LOGICAL_VOLUME",
"size" : 5120,
"wwn" : "0x0000000000000000",
- "journals" : 0,
"gpt" : 1,
"devpath" : "/dev/cciss/c0d0"
}
diff --git a/test/disk_tests/hdd_smart/disklist_expected.json b/test/disk_tests/hdd_smart/disklist_expected.json
index 7685f5f..02a341e 100644
--- a/test/disk_tests/hdd_smart/disklist_expected.json
+++ b/test/disk_tests/hdd_smart/disklist_expected.json
@@ -10,7 +10,6 @@
"health" : "PASSED",
"type" : "hdd",
"wwn" : "0x0000000000000000",
- "journals" : 0,
"wearout" : "N/A",
"serial" : "00000000"
},
@@ -26,7 +25,6 @@
"vendor" : "ATA",
"serial" : "00000000",
"wearout" : "N/A",
- "journals" : 0,
"wwn" : "0x0000000000000000"
}
}
diff --git a/test/disk_tests/nvme_smart/disklist_expected.json b/test/disk_tests/nvme_smart/disklist_expected.json
index ac34d0f..e50e4a3 100644
--- a/test/disk_tests/nvme_smart/disklist_expected.json
+++ b/test/disk_tests/nvme_smart/disklist_expected.json
@@ -3,7 +3,6 @@
"wearout" : "N/A",
"vendor" : "unknown",
"size" : 512000,
- "journals" : 0,
"health" : "PASSED",
"serial" : "unknown",
"model" : "NVME MODEL 1",
diff --git a/test/disk_tests/sas/disklist_expected.json b/test/disk_tests/sas/disklist_expected.json
index 77f7d33..7814765 100644
--- a/test/disk_tests/sas/disklist_expected.json
+++ b/test/disk_tests/sas/disklist_expected.json
@@ -6,7 +6,6 @@
"model" : "MODEL1",
"health" : "UNKNOWN",
"osdid" : -1,
- "journals" : 0,
"wwn" : "0x0000000000000000",
"vendor" : "VENDOR1",
"rpm" : -1,
diff --git a/test/disk_tests/ssd_smart/disklist_expected.json b/test/disk_tests/ssd_smart/disklist_expected.json
index 1a89a84..d84b9dc 100644
--- a/test/disk_tests/ssd_smart/disklist_expected.json
+++ b/test/disk_tests/ssd_smart/disklist_expected.json
@@ -5,7 +5,6 @@
"rpm" : 0,
"gpt" : 1,
"health" : "PASSED",
- "journals" : 0,
"wearout" : "100",
"osdid" : -1,
"size" : 512000,
@@ -26,7 +25,6 @@
"vendor" : "ATA",
"serial" : "000000000000000000",
"wearout" : "97",
- "journals" : 0,
"health" : "PASSED"
},
"sdc" : {
@@ -37,7 +35,6 @@
"type" : "ssd",
"size" : 512000,
"wearout" : "99",
- "journals" : 0,
"health" : "PASSED",
"gpt" : 1,
"rpm" : 0,
@@ -49,7 +46,6 @@
"gpt" : 1,
"serial" : "000000000000",
"vendor" : "ATA",
- "journals" : 0,
"wearout" : "100",
"health" : "PASSED",
"devpath" : "/dev/sdd",
@@ -71,7 +67,6 @@
"gpt" : 1,
"rpm" : 0,
"health" : "PASSED",
- "wearout" : "91",
- "journals" : 0
+ "wearout" : "91"
}
}
diff --git a/test/disk_tests/usages/disklist_expected.json b/test/disk_tests/usages/disklist_expected.json
index 3d1241c..3205bbf 100644
--- a/test/disk_tests/usages/disklist_expected.json
+++ b/test/disk_tests/usages/disklist_expected.json
@@ -5,10 +5,10 @@
"size" : 1536000,
"type" : "hdd",
"osdid" : "444",
+ "bluestore" : "0",
"health" : "UNKNOWN",
"model" : "MODEL1",
"used" : "mounted",
- "journals" : 0,
"wearout" : "N/A",
"wwn" : "0x0000000000000000",
"devpath" : "/dev/sdf",
@@ -28,7 +28,6 @@
"type" : "hdd",
"model" : "MODEL1",
"used" : "Device Mapper",
- "journals" : 0,
"wearout" : "N/A"
},
"sdb" : {
@@ -38,7 +37,6 @@
"devpath" : "/dev/sdb",
"model" : "MODEL1",
"used" : "LVM",
- "journals" : 0,
"wearout" : "N/A",
"health" : "UNKNOWN",
"gpt" : 1,
@@ -50,7 +48,6 @@
"sda" : {
"model" : "MODEL1",
"used" : "mounted",
- "journals" : 0,
"wearout" : "N/A",
"health" : "UNKNOWN",
"gpt" : 1,
@@ -69,7 +66,6 @@
"devpath" : "/dev/sdc",
"wwn" : "0x0000000000000000",
"used" : "ZFS",
- "journals" : 0,
"wearout" : "N/A",
"model" : "MODEL1",
"health" : "UNKNOWN",
@@ -81,7 +77,6 @@
},
"sdd" : {
"model" : "MODEL1",
- "journals" : 0,
"wearout" : "N/A",
"health" : "UNKNOWN",
"size" : 1536000,
--
2.11.0
More information about the pve-devel
mailing list