(LVM) Перемещение данных на другой физический том в том же логическом том

У меня есть логический том, называемый хранилище . Он содержит два физических тома размером ~ 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
1
задан 16 May 2020 в 16:49
1 ответ

Ваш «хранилище» LV имеет размер 2 ТБ. Вы не можете удалить половину физического пространства, не повредив его.

Что вы можете сделать, так это уменьшить размер файловой системы, затем изменить размер LV, после чего вы можете безопасно удалить PV из группы томов.

  1. Размонтировать "storage": umount /dev/spinny/storage
  2. Уменьшить файловую систему, чтобы она помещалась только на sdc. Поскольку у вас есть только 200G, вы можете уменьшить до 900G для безопасности. В зависимости от типа вашей файловой системы вам понадобится разный инструмент, и если ваша файловая система не поддерживает сжатие, вам не повезло. Если вы используете ext4, вам может повезти: fsck -C0 -f /dev/spinny/storage && resize2fs /dev/spinny/storage 800G.
  3. Уменьшить логический том так, чтобы он был не меньше размера файловой системы (выше) и не больше размера sdc.: lvresize -L900G spinny/storage
  4. Поскольку sdd является вторым диском, шансы к настоящему времени у вас не будет расширений. pvs в этот момент должно показать, что на sdd нет данных и вы можете безопасно извлечь их с помощью vgreduce spinny /dev/sdd.

Теперь вы можете увеличить LV и файловую систему, чтобы заполнить sdc, если хотите:

  1. lvresize -l 100%PV spinny/storage
  2. resize2fs /dev/spinny/storage
1
ответ дан 16 May 2020 в 14:50

Теги

Похожие вопросы