storage
という論理ボリュームがあります。 /dev/sdc
と/dev/sdd
の2つの〜1TBの物理ボリュームが含まれています。 smartctl -a /dev/sdd
は、/dev/sdd
が失敗していることを通知します。それでもデータを読み取ることができ、LVからすべてのコンテンツをバックアップしました。
私は約200GBの実際のデータを持っています—PVの1つがすべてを保持できるほど十分ではありません。論理ボリュームから/dev/sdd
を削除し、そのすべてのデータをこのLV上の他のPV(/dev/sdc
)に転送したいと思います。
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のサイズは2TBです。物理的なスペースの半分を損傷せずに削除することはできません。
できることは、ファイルシステムのサイズを縮小し、次に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