LINUX.ORG.RU
решено ФорумAdmin

LVM «вынуть» конкретное PV (диск) из зеркала

 ,


0

2

Всем привет!

Имею LVM зеркало в режиме RAID1 из 3х дисков. Точнее был диск с LVM, потом он стал помирать, я почесал репу и воткнул в системник 2 одинаковых винта, и сконвертировал имеющееся LVM в lvm mirror raid1 на эти 2 винта в том числе. вот так:

lvconvert -m2 lvm-vg/root /dev/sda2 /dev/sdb2

и получилось следующее:
lvs -a -o name,copy_percent,devices lvm-vg
  LV              Cpy%Sync Devices
  root            100,00   root_rimage_0(0),root_rimage_1(0),root_rimage_2(0)
  [root_rimage_0]          /dev/sdc5(0)
  [root_rimage_1]          /dev/sda2(1)
  [root_rimage_2]          /dev/sdb2(1)
  [root_rmeta_0]           /dev/sdc5(37135)
  [root_rmeta_1]           /dev/sda2(0)
  [root_rmeta_2]           /dev/sdb2(0)

Как теперь вынуть «старый» диск - sdc из этого mirror?
Есть мысль, отключить его от системника, lvm заругается что что-то не так, а потом сделать vgreduce --removemissing

А до выниманя диска это реально как-то сделать?

Я не уверен, но посмотри в сторону утилиты hdparm. Что-нибудь типа hdparm -S 1 /dev/sda

BackDoorLover
()
Ответ на: комментарий от anonymous

Я так понял, что их 3 в зеркале, а надо 2. Не подходит.

lvconvert -m 1 (1+1) или -m -1 (3-1). Надо нужные pv приписать, наверно. И потом vgreduce. Зараннее лучше pvchange --allocatable n на ненужный. Для полного разбора предпочтительней lvchange, splitmirror, trackchanges.

boowai ★★★★
()

lvconvert -m2

--mirrors N - это 1+N копий. Чтобы получить raid1 на 2 диска надо ‘–mirrors 1’ (один)

anonymous
()
Ответ на: комментарий от anonymous

Этот вариант не канает с зеркалами.

Spider55
() автор топика
Ответ на: комментарий от boowai

lvconvert -m1 да, но удаляет «последний», а в моем случае /dev/sdb2. Не могу найти как указать ему, что надо уменьшить путем удаления sdc.

Spider55
() автор топика
Ответ на: комментарий от anonymous

Как ни странно не помогает :(

spider$ lvconvert -m1 lvm-vg/root /dev/sda2 /dev/sdb2
Are you sure you want to convert raid1 LV lvm-vg/root to 2 images reducing resilience? [y/n]: y
  Logical volume lvm-vg/root successfully converted.
spider$ lvs -a -o name,copy_percent,devices lvm-vg
  LV              Cpy%Sync Devices
  root            100,00   root_rimage_0(0),root_rimage_1(0)
  [root_rimage_0]          /dev/sdc5(0)
  [root_rimage_1]          /dev/sda2(1)
  [root_rmeta_0]           /dev/sdc5(37135)
  [root_rmeta_1]           /dev/sda2(0)

Spider55
() автор топика
Ответ на: комментарий от boowai

Вот хочу попробовать «разделить» зеркала splitmirror, а потом не нужное просто удалить. Щас вот только синхронизация закончится после последних опытов....

Spider55
() автор топика
Ответ на: комментарий от Spider55

Значит, у тебя на было sdb2 в райде.

Теперь, когда у тебя на двух дисках sda2 и sdc5, можно попробовать заменить sdc5

lvconvert --replace /dev/sdc5 vg/lv /dev/sdb2

anonymous
()
Ответ на: комментарий от Spider55

Песец, ты экспериментатор. Надеюсь, что у тебя там нет важных данных. Нет бы сперва попробовать на тестовых дисках. :)

anonymous
()
Ответ на: комментарий от anonymous

Ну как нет как есть. Не работает оно так как в первом варианте.

вон же оно на первом «скриншоте» всё есть.

Spider55
() автор топика
Ответ на: комментарий от anonymous

А вот с реплейсом идея хороша. Всё получилось. СПАСИБО!

Любопытный эффект возник. Вроде как всё - sdc нигде не участвует. Но удалить диск не даёт - говорит используется.

# lsblk
NAME                                    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                                       8:0    0 465,8G  0 disk
├─sda1                                    8:1    0   243M  0 part /boot
└─sda2                                    8:2    0 465,5G  0 part
  ├─lvm--vg-root_rmeta_1                254:3    0     4M  0 lvm
  │ └─lvm--vg-root                      254:1    0 145,1G  0 lvm  /
  └─lvm--vg-root_rimage_1               254:4    0 145,1G  0 lvm
    └─lvm--vg-root                      254:1    0 145,1G  0 lvm  /
sdb                                       8:16   0 465,8G  0 disk
├─sdb1                                    8:17   0   243M  0 part
└─sdb2                                    8:18   0 465,5G  0 part
  ├─lvm--vg-root_rmeta_0                254:5    0     4M  0 lvm
  │ └─lvm--vg-root                      254:1    0 145,1G  0 lvm  /
  └─lvm--vg-root_rimage_0               254:6    0 145,1G  0 lvm
    └─lvm--vg-root                      254:1    0 145,1G  0 lvm  /
sdc                                       8:32   0 149,1G  0 disk
├─sdc2                                    8:34   0     1K  0 part
└─sdc5                                    8:37   0 148,8G  0 part

spider$ lvs -a -o name,copy_percent,devices
  LV              Cpy%Sync Devices
  root            100,100  root_rimage_0(0),root_rimage_1(0)
  [root_rimage_0]          /dev/sdb2(1)
  [root_rimage_1]          /dev/sda2(1)
  [root_rmeta_0]           /dev/sdb2(0)
  [root_rmeta_1]           /dev/sda2(0)

spider$ pvs -o+pv_used
  PV         VG                  Fmt  Attr PSize    PFree Used
  /dev/sda2  lvm-vg              lvm2 a--  <465,52g 3,50g <465,52g
  /dev/sdb2  lvm-vg              lvm2 a--  <465,52g 3,50g <462,02g

spider$ pvremove /dev/sdc5
  PV /dev/sdc5 is used by VG lvm-vg so please use vgreduce first.
  (If you are certain you need pvremove, then confirm by using --force twice.)
  /dev/sdc5: physical volume label not removed.

Spider55
() автор топика
Последнее исправление: Spider55 (всего исправлений: 3)
Ответ на: комментарий от Spider55

И правда. Надо указывать те диски, которые удаляются! Логика, как при добавлении или удалении

lvconvert --mirrors +/-1 vg/lv <добавляемый/удаляемый pv>
anonymous
()
Ответ на: комментарий от Spider55

PV /dev/sdc5 is used by VG lvm-vg so please use vgreduce first.

anonymous
()
Ответ на: комментарий от Spider55

pvremove просто чистит заголовок, что он является pv-разделом. Ну и убирает из списка доступных для LVM.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.