====== Thin LVM and badblock ======
Kernel reports problems with
[5528686.859719] blk_update_request: I/O error, dev sda, sector 85981696 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
Filter out sector numbers from journal:
journalctl | grep 'dev sda, sector' | cut -d ' ' -f 12 | sort | uniq
82053408
85981440
85981536
85981544
85981552
85981560
85981568
85981696
85981704
85981712
85981720
85981728
85981736
85981744
85981752
85984832
85984840
85984848
85984856
85984864
85984872
85984880
85984888
85984896
85984904
85984928
smartctl -a /dev/sda | grep UNC
40 51 08 b8 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006b8 = 85984952
40 51 08 b0 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006b0 = 85984944
40 51 08 a8 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006a8 = 85984936
40 51 08 a0 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006a0 = 85984928
40 51 80 80 06 20 e5 Error: UNC 128 sectors at LBA = 0x05200680 = 85984896
Disk /dev/sda: 111,79 GiB, 120034123776 bytes, 234441648 sectors
Disk model: KINGSTON SA400S3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 711FEF16-FBD0-45BB-BA56-52B93B733D8E
Device Start End Sectors Size Type
/dev/sda1 34 2047 2014 1007K BIOS boot
/dev/sda2 2048 1050623 1048576 512M EFI System
/dev/sda3 1050624 234441614 233390991 111,3G Linux LVM
Calculate LVM position for bad sector ''85984896'' by substract Start section
85984896 - 1050624 = 84934272
Get PE size pvdisplay /dev/sda3
, it is 4M, so 4096.
LBA block (secotr) size is 512, so each PE takes 8192 sectors.
The same information you can found in:
# cat /etc/lvm/backup/pve | grep extent_size
extent_size = 8192 # 4 Megabytes
# cat /etc/lvm/backup/pve | grep pe_start
pe_start = 2048
echo 84934272 / 8192 | bc
10367
Region is used by thin provisioning:
pvdisplay -v -m
Physical extent 8128 to 24425:
Logical volume /dev/pve/data_tdata
Logical extents 0 to 16297
!!! DONT KNOW HOW TO REMAP LVM SECTORS
lvcreate -l1 pve -n bb85984896 /dev/sda3:10367
===== Zeroing sectors =====
Confirm that sector read fails:
dd if=/dev/sda of=/tmp/dump.raw bs=512 count=1 skip=85981696
hdparm --read-sector 85981696 /dev/sda
hdparm --write-sector 85981696 --yes-i-know-what-i-am-doing /dev/sda
40 51 08 b8 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006b8 = 85984952..85984959
40 51 08 b0 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006b0 = 85984944..85984951
40 51 08 a8 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006a8 = 85984936..85984943
40 51 08 a0 06 20 e5 Error: UNC 8 sectors at LBA = 0x052006a0 = 85984928..85984935
40 51 80 80 06 20 e5 Error: UNC 128 sectors at LBA = 0x05200680 = 85984896 to 85985023
for i in {85984896..85985023}; do echo $i; hdparm --write-sector $i --yes-i-know-what-i-am-doing /dev/sda; don