RAID: Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
PATCH 1/1 RAID: Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
RAID: Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
The heading 'Copy%' is specific to PVMOVE volumes, but can be generalized to apply to LVM mirrors also. It is a bit awkward to use 'Copy%' for RAID 4/5/6, however - 'Sync%' would be more appropriate. This is why RAID 4/5/6 have not displayed their sync status by any means available to 'lvs' yet.
Example (old):
[root at hayes-02 lvm2]# lvs vg
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sy Convert
lv vg -wi-a---- 1.00g raid1 vg rwi-a-r-- 1.00g 100.00 raid4 vg rwi-a-r-- 1.01g raid5 vg rwi-a-r-- 1.01g raid6 vg rwi-a-r-- 1.01g
This patch changes the heading to 'Cpy%Sync' and allows RAID 4/5/6 to print their sync percent in this field.
Example (new):
[root at hayes-02 lvm2]# lvs vg
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv vg -wi-a---- 1.00g raid1 vg rwi-a-r-- 1.00g 100.00 raid4 vg rwi-a-r-- 1.01g 100.00 raid5 vg rwi-a-r-- 1.01g 100.00 raid6 vg rwi-a-r-- 1.01g 100.00
lib/report/columns.h +1 -1
@@ -78,7 +78,7 @@ FIELD(LVS, lv, NUM, "OSize", lvid, 5, or FIELD(LVS, lv, NUM, "Data%", lvid, 6, datapercent, data_percent, "For snapshot and thin pools and volumes, the percentage full if LV is active.", 0) FIELD(LVS, lv, NUM, "Snap%", lvid, 6, snpercent, snap_percent, "For snapshots, the percentage full if LV is active.", 0) FIELD(LVS, lv, NUM, "Meta%", lvid, 6, metadatapercent, metadata_percent, "For thin pools, the percentage of metadata full if LV is active.", 0) -FIELD(LVS, lv, NUM, "Copy%", lvid, 6, copypercent, copy_percent, "For mirrors and pvmove, current percentage in-sync.", 0) +FIELD(LVS, lv, NUM, "Cpy%Sync", lvid, 8, copypercent, copy_percent, "For RAID, mirrors and pvmove, current percentage in-sync.", 0) FIELD(LVS, lv, STR, "Move", lvid, 4, movepv, move_pv, "For pvmove, Source PV of temporary LV created by pvmove.", 0) FIELD(LVS, lv, STR, "Convert", lvid, 7, convertlv, convert_lv, "For lvconvert, Name of temporary LV created by lvconvert.", 0)FIELD (LVS , lv,STR ,"Log" , lvid,3 , loglv, mirror_log,"For mirrors, the LV holding the synchronisation log." ,0 )
lib/report/report.c +13 -7
@@ -899,13 +899,14 @@ static int _copypercent_disp(struct dm_rreturn 0 ; } -if ((!(lv->status &PVMOVE ) && !(lv->status &MIRRORED )) || - !lv_mirror_percent (lv->vg->cmd, lv,0 , &percent, -NULL ) || (percent ==PERCENT_INVALID )) { - *sortval =UINT64_C (0 ); -dm_report_field_set_value (field,"" , sortval); -return 1 ; - } +if (seg_is_raid (first_seg (lv))) { +if (!lv_raid_percent (lv, &percent) || + (percent ==PERCENT_INVALID )) + goto no_copypercent; + }else if ((!(lv->status &PVMOVE ) && !(lv->status &MIRRORED )) || + !lv_mirror_percent (lv->vg->cmd, lv,0 , &percent,NULL ) || + (percent ==PERCENT_INVALID )) + goto no_copypercent; percent =copy_percent (lv);
@@ -923,6 +924,11 @@ static int _copypercent_disp(struct dm_rdm_report_field_set_value (field, repstr, sortval);return 1 ; + +no_copypercent: + *sortval =UINT64_C (0 ); +dm_report_field_set_value (field,"" , sortval); +return 1 ; } static int _dtpercent_disp(int metadata, struct dm_report *rh,
PATCH 1/1 RAID: Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
Dne 11.10.2012 18:58, Jonathan Brassow napsal(a):
Quoted 36 lines
RAID: Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
The heading 'Copy%' is specific to PVMOVE volumes, but can be generalized to apply to LVM mirrors also. It is a bit awkward to use 'Copy%' for RAID 4/5/6, however - 'Sync%' would be more appropriate. This is why RAID 4/5/6 have not displayed their sync status by any means available to 'lvs' yet.
Example (old):
[root at hayes-02 lvm2]# lvs vg
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sy Convertlv vg -wi-a---- 1.00g raid1 vg rwi-a-r-- 1.00g 100.00 raid4 vg rwi-a-r-- 1.01g raid5 vg rwi-a-r-- 1.01g raid6 vg rwi-a-r-- 1.01gThis patch changes the heading to 'Cpy%Sync' and allows RAID 4/5/6 to print their sync percent in this field.
Example (new):
[root at hayes-02 lvm2]# lvs vgLV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv vg -wi-a---- 1.00g raid1 vg rwi-a-r-- 1.00g 100.00 raid4 vg rwi-a-r-- 1.01g 100.00 raid5 vg rwi-a-r-- 1.01g 100.00 raid6 vg rwi-a-r-- 1.01g 100.00Signed-off-by Jonathan Brassow <[email protected]>Index:
lvm2/lib/report/columns.h
===================================================================
lib/report/columns.h FIELD(LVS, lv, NUM, "OSize", lvid, 5, or · line 81
Quoted 5 lines
lib/report/columns.h +1
-1@@ -78,7 +78,7 @@ FIELD(LVS, lv, NUM, "OSize", lvid, 5, or FIELD(LVS, lv, NUM, "Data%", lvid, 6, datapercent, data_percent, "For snapshot and thin pools and volumes, the percentage full if LV is active.", 0) FIELD(LVS, lv, NUM, "Snap%", lvid, 6, snpercent, snap_percent, "For snapshots, the percentage full if LV is active.", 0) FIELD(LVS, lv, NUM, "Meta%", lvid, 6, metadatapercent, metadata_percent, "For thin pools, the percentage of metadata full if LV is active.", 0) -FIELD (LVS , lv,NUM ,"Copy%" , lvid,6 , copypercent, copy_percent,"For mirrors and pvmove, current percentage in-sync." ,0 ) +FIELD (LVS , lv,NUM ,"Cpy%Sync" , lvid,8 , copypercent, copy_percent,"For RAID, mirrors and pvmove, current percentage in-sync." ,0 )
Just add new one if needed - and keep the old one available for users (staying backward compatible)
You may update default columns written by lvs command and change Copy% field to something else.
Though IMHO Copy% looks better then Cpy%Sync...
Zdenek
PATCH 1/1 RAID: Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
Quoted 46 lines · Zdenek Kabelac
Dne 11.10.2012 18:58, Jonathan Brassow napsal(a):
Quoted 36 lines
RAID: Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
The heading 'Copy%' is specific to PVMOVE volumes, but can be generalized to apply to LVM mirrors also. It is a bit awkward to use 'Copy%' for RAID 4/5/6, however - 'Sync%' would be more appropriate. This is why RAID 4/5/6 have not displayed their sync status by any means available to 'lvs' yet.
Example (old):
[root at hayes-02 lvm2]# lvs vg
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sy Convertlv vg -wi-a---- 1.00g raid1 vg rwi-a-r-- 1.00g 100.00 raid4 vg rwi-a-r-- 1.01g raid5 vg rwi-a-r-- 1.01g raid6 vg rwi-a-r-- 1.01gThis patch changes the heading to 'Cpy%Sync' and allows RAID 4/5/6 to print their sync percent in this field.
Example (new):
[root at hayes-02 lvm2]# lvs vgLV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv vg -wi-a---- 1.00g raid1 vg rwi-a-r-- 1.00g 100.00 raid4 vg rwi-a-r-- 1.01g 100.00 raid5 vg rwi-a-r-- 1.01g 100.00 raid6 vg rwi-a-r-- 1.01g 100.00Signed-off-by Jonathan Brassow <[email protected]>Index:
lvm2/lib/report/columns.h
===================================================================lib/report/columns.h FIELD(LVS, lv, NUM, "OSize", lvid, 5, or · line 81
Quoted 5 lines
lib/report/columns.h +1
-1@@ -78,7 +78,7 @@ FIELD(LVS, lv, NUM, "OSize", lvid, 5, or FIELD(LVS, lv, NUM, "Data%", lvid, 6, datapercent, data_percent, "For snapshot and thin pools and volumes, the percentage full if LV is active.", 0) FIELD(LVS, lv, NUM, "Snap%", lvid, 6, snpercent, snap_percent, "For snapshots, the percentage full if LV is active.", 0) FIELD(LVS, lv, NUM, "Meta%", lvid, 6, metadatapercent, metadata_percent, "For thin pools, the percentage of metadata full if LV is active.", 0) -FIELD (LVS , lv,NUM ,"Copy%" , lvid,6 , copypercent, copy_percent,"For mirrors and pvmove, current percentage in-sync." ,0 ) +FIELD (LVS , lv,NUM ,"Cpy%Sync" , lvid,8 , copypercent, copy_percent,"For RAID, mirrors and pvmove, current percentage in-sync." ,0 )Just add new one if needed - and keep the old one available for users (staying backward compatible)
Quoted 3 lines
You may update default columns written by lvs command and change Copy% field to something else.
Though IMHO Copy% looks better then Cpy%Sync...
i had similar thoughts about whether or not to just create a new field. I've been over this with agk and this is how I arrived at the patch above.
brassow