У меня есть логический том под названием storage
. Он содержит два физических тома размером ~ 1 ТБ: /dev/sdc
и /dev/sdd
. smartctl -a /dev/sdd
сообщает мне, что /dev/sdd
не работает. Я все еще могу считывать данные с него, и я только что сделал резервную копию всего содержимого LV.
У меня около 200 ГБ реальных данных - достаточно мало, чтобы один из PV мог вместить их все. я хочу удалить /dev/sdd
с логического тома и передать все его данные другим PV (/dev/sdc
) на этом LV.
pvmove
не выполняется, потому что все экстенты выделены.
# pvmove /dev/sdd /dev/sdc
WARNING: No free extents on physical volume "/dev/sdc".
No specified PVs have space available.
Проблема: Как убедиться, что нет "реальных" данных о /dev/sdd
и безопасно удалить?
Я исключил другую организацию LVM, не имеющую отношения к этому вопросу, из вывода ниже.
# lvdisplay --maps
--- Logical volume ---
LV Path /dev/spinny/storage
LV Name storage
VG Name spinny
LV UUID LeJEIR-0Zvf-YBLD-GrCT-Kvv0-mcvz-4a66Ib
LV Write Access read/write
LV Creation host, time archiso, 2020-01-01 12:32:05 -0500
LV Status available
# open 0
LV Size <1.82 TiB
Current LE 476934
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:1
--- Segments ---
Logical extents 0 to 238466:
Type linear
Physical volume /dev/sdc
Physical extents 0 to 238466
Logical extents 238467 to 476933:
Type linear
Physical volume /dev/sdd
Physical extents 0 to 238466
# pvdisplay --maps
--- Physical volume ---
PV Name /dev/sdc
VG Name spinny
PV Size 931.51 GiB / not usable 1.71 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238467
Free PE 0
Allocated PE 238467
PV UUID fMOJ38-TiZZ-DspR-hOy3-4aGn-lKXo-4mYSrU
--- Physical Segments ---
Physical extent 0 to 238466:
Logical volume /dev/spinny/storage
Logical extents 0 to 238466
--- Physical volume ---
PV Name /dev/sdd
VG Name spinny
PV Size 931.51 GiB / not usable 1.71 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238467
Free PE 0
Allocated PE 238467
PV UUID XJ2D5p-l3iP-VBlR-peXB-up1y-ZpNh-UDkcfB
--- Physical Segments ---
Physical extent 0 to 238466:
Logical volume /dev/spinny/storage
Logical extents 238467 to 476933
# blkid
/dev/sdc: UUID="fMOJ38-TiZZ-DspR-hOy3-4aGn-lKXo-4mYSrU" TYPE="LVM2_member"
/dev/sdd: UUID="XJ2D5p-l3iP-VBlR-peXB-up1y-ZpNh-UDkcfB" TYPE="LVM2_member"
/dev/mapper/spinny-storage: UUID="108a53d4-dc5a-48b7-971f-b62c617fdb15" BLOCK_SIZE="4096" TYPE="ext4"
# smartctl -a /dev/sdd
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.6.11-arch1-1] (local build)
# ... clipped ...
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 001 001 051 Pre-fail Always FAILING_NOW 14946
3 Spin_Up_Time 0x0027 170 169 021 Pre-fail Always - 2466
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 80
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 3728
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 80
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 19
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 66
194 Temperature_Celsius 0x0022 103 096 000 Old_age Always - 40
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 183 183 000 Old_age Always - 2919
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: unknown failure 90% 3680 -
# 2 Extended offline Completed: read failure 90% 3663 2064
Размер LV "хранилища" составляет 2 ТБ. Вы не можете удалить половину физического пространства, не повредив его.
Что вы можете сделать, так это уменьшить размер файловой системы, затем изменить размер LV, а затем вы можете безопасно удалить PV из группы томов.
umount /dev/spinny/storage
fsck -C0 -f /dev/spinny/storage && resize2fs /dev/spinny/storage 800G
.lvresize -L900G spinny/storage
pvs
на этом этапе должно быть показано, что на SDD нет данных и вы можете безопасно удалить их с помощью vgreduce spinny /dev/sdd
.Теперь вы можете увеличить LV и файловую систему, чтобы заполнить SDC, если хотите:
lvresize -l 100%PV spinny/storage
resize2fs /dev/spinny/storage