URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88163
[ Назад ]

Исходное сообщение
"Как из LVM сделать MD рейд?"

Отправлено Кирилл , 15-Фев-10 14:19 
Всем привет, может кто подскажет примерные шаги как из рабочего ЛВМ сделать МД рейд?
Поставил федору с ЛВМ на сервере с парой дисков, оба диска на данный момент используются ЛВМом но желательно сохранив рабочую систему получить МД массив. Может у кого есть советы как это сделать? Просто сервер очень далеко и ошибаться не хочется.
Заранее спасибо.

Содержание

Сообщения в этом обсуждении
"Как из LVM сделать MD рейд?"
Отправлено sHaggY_caT , 15-Фев-10 15:09 
>Всем привет, может кто подскажет примерные шаги как из рабочего ЛВМ сделать
>МД рейд?
>Поставил федору с ЛВМ на сервере с парой дисков, оба диска на
>данный момент используются ЛВМом но желательно сохранив рабочую систему получить МД
>массив. Может у кого есть советы как это сделать? Просто сервер
>очень далеко и ошибаться не хочется.
>Заранее спасибо.

Инструкций в сети куча, в том числе на Opennet, и в wiki той же CentOS, например, есть (та же платформа, по сути).

Главный совет, который Вы можете не найти в сети: я бы не взялась за такое мероприятие без подключенного IP KVM, так как ошибка более чем вероятна.


"Как из LVM сделать MD рейд?"
Отправлено sHaggY_caT , 15-Фев-10 15:33 

>Инструкций в сети куча, в том числе на Opennet, и в wiki
>той же CentOS, например, есть (та же платформа, по сути).
>
>Главный совет, который Вы можете не найти в сети: я бы не
>взялась за такое мероприятие без подключенного IP KVM, так как ошибка
>более чем вероятна.

Я _обычно_ ставлю системы кикстартом, который, если нет аппаратного массива, собирает из имеющихся дисков md-девайс, а сверху уже делает pv, vg, и lv под разные цели (/, /home, под swap, под /var/lib/mysql, в зависимости от того, что нужно)

Собственно, на мой взгляд, это правильнее всего: хотя LVM и умеет даже сам зеркалировать данные поверх двух дисков, делает он это плохо, и отдать задачу лучше либо аппаратному контроллеру, либо md, сверху которого и сделать LVM.

Кстати, в Anaconda это можно было сделать при инсталляции...


"Как из LVM сделать MD рейд?"
Отправлено sdog , 15-Фев-10 20:46 
поделитесь, плз, чем плох мирроринг LVM'ом? плюсы очевидны, а вот с минусами интересно.

"Как из LVM сделать MD рейд?"
Отправлено sHaggY_caT , 15-Фев-10 21:49 
>поделитесь, плз, чем плох мирроринг LVM'ом? плюсы очевидны, а вот с минусами
>интересно.

Плюсы совсем не очевидны, кроме меньшего числа абстракций (меньшей сложности ручной настройки), но проблемы инсталляции системы и создание этого слоеного пирога можно решить с помощью Anaconda кикстарт, AutoYast, какая-то технология есть и для Debian-based систем (для неинтерактивной автоматизированной установки)

Минусы же и так понятны: не использование, для повышения производительности на random-seek'ах (а диск так часто узкое место сервера, особенно на low-end платформах с SATA-дисками!) большого числа шпинделей, так как очень большой stripe по-умолчанию, да и дизайн решения просто не умеет.

плюсы md:

1. Настоящие уровни 10, 5, 6 (не только зеркало), со своими же настоящими плюсами и минусами.
2. Настоящее зеркало (то есть, с чередованием, и резким приростом производительности на чтении):

man 4 md:

RAID1
       A  RAID1  array  is  also  known  as  a mirrored set (though mirrors tend to provide reflected
       images, which RAID1 does not) or a plex.

       Once initialised, each device in a RAID1 array contains exactly the same  data.   Changes  are
       written to all devices in parallel.  Data is read from any one device.  The driver attempts to
       distribute read requests across all devices to maximise performance.

       All devices in a RAID1 array should be the same size.  If they are not, then only  the  amount
       of  space  available  on  the  smallest  device  is  used (any extra space on other devices is
       wasted).

       Note that the read balancing done by the driver does not make the RAID1 performance profile be
       the  same  as  for  RAID0; a single stream of sequential input will not be accelerated (e.g. a
       single dd), but multiple sequential streams or a random workload will use more than one  spin-
       dle. In theory, having an N-disk RAID1 will allow N sequential threads to read from all disks.


"Как из LVM сделать MD рейд?"
Отправлено sdog , 15-Фев-10 23:36 
про плюсы - изменение размеров LV не лету, миграция PP, LV или всей VG на лету на другой/другие диски, снапшоты.

если говорить про балансировку чтения с зеркал в LVM'e, то видел патчи, возможно они есть в дистрах - миррор LVM'a есть в RHEL, а это обязывает их ;)

сам активно юзаю обе техноловии и очень доволен MD, однако почти всегда поверх MD ставлю LVM :)


"Как из LVM сделать MD рейд?"
Отправлено sHaggY_caT , 16-Фев-10 00:02 
>про плюсы - изменение размеров LV не лету, миграция PP, LV или
>всей VG на лету на другой/другие диски, снапшоты.

Дело в том, что это не мешает использовать vg поверх md-девайса(или lun'а аппаратного рейда, lun'а SAN, и т д). Те же самые плюсы (только миграция pv не нужна, имхо)

Мне только кажется, что возможность иметь более одного pv в vg лишняя.

>если говорить про балансировку чтения с зеркал в LVM'e, то видел патчи,
>возможно они есть в дистрах - миррор LVM'a есть в RHEL,
>а это обязывает их ;)

Да ну, по возможностям именно raid сравнивать lvm и md бессмысленно, они в совершенно разных категориях! Пусть lvm выполняет, в соотвествии с KISS, свои функции менеджера томов, но не менеджера блочных девайсов, что у md (или аппаратных контроллеров) получается гораздо лучше

>сам активно юзаю обе техноловии и очень доволен MD, однако почти всегда
>поверх MD ставлю LVM :)

Вот-вот, и я поступаю аналогично!


"Как из LVM сделать MD рейд?"
Отправлено sdog , 15-Фев-10 20:43 
>Всем привет, может кто подскажет примерные шаги как из рабочего ЛВМ сделать
>МД рейд?
>Поставил федору с ЛВМ на сервере с парой дисков, оба диска на
>данный момент используются ЛВМом но желательно сохранив рабочую систему получить МД
>массив. Может у кого есть советы как это сделать? Просто сервер
>очень далеко и ошибаться не хочется.
>Заранее спасибо.

точно нужен MD? :) может миррорингом LVM'a можно обойтись?


"Как из LVM сделать MD рейд?"
Отправлено anonymous , 15-Фев-10 23:28 
>Всем привет, может кто подскажет примерные шаги как из рабочего ЛВМ сделать
>МД рейд?

лучше всего -- backup + переустановка.

однако если вы настаиваете, то опишите текущую конфигурацию lvm и желаемый результат.


"Как из LVM сделать MD рейд?"
Отправлено Кирилл , 16-Фев-10 10:19 
>>Всем привет, может кто подскажет примерные шаги как из рабочего ЛВМ сделать
>>МД рейд?
>
>лучше всего -- backup + переустановка.
>
>однако если вы настаиваете, то опишите текущую конфигурацию lvm и желаемый результат.
>

Переустановить нет возможности. То что есть:
# pvscan
  PV /dev/sda2   VG VolGroup   lvm2 [135.92 GB / 0    free]
  PV /dev/sdb1   VG VolGroup   lvm2 [136.12 GB / 0    free]
  Total: 2 [272.04 GB] / in use: 2 [272.04 GB] / in no VG: 0 [0   ]
# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_root
  VG Name                VolGroup
  LV UUID                NUa5x5-8Vmj-hkgS-Hhbk-QP16-jP7Q-2sZgpj
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                266.84 GB
  Current LE             68310
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
  
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_swap
  VG Name                VolGroup
  LV UUID                oeKhlq-0DAu-qKnu-rfkm-fY5Y-b8cT-I05meb
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                5.20 GB
  Current LE             1332
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1


Очень желательно сделать зеркало. Если это возможно сделать средствами MD с минимальным колличеством "рискованных" операций - вообще замечательно. Нет - тогда и средствами ЛВМ тоже пойдёт.
Итого, вопрос: Может ли кто-нибудь описать примерный план, которого мне стоит придерживаться для получения зеркала.


"Как из LVM сделать MD рейд?"
Отправлено ze6ra , 16-Фев-10 10:58 
>[оверквотинг удален]
>  - currently set to     256
>  Block device        
>  253:1
>
>
>Очень желательно сделать зеркало. Если это возможно сделать средствами MD с минимальным
>колличеством "рискованных" операций - вообще замечательно. Нет - тогда и средствами
>ЛВМ тоже пойдёт.
>Итого, вопрос: Может ли кто-нибудь описать примерный план, которого мне стоит придерживаться
>для получения зеркала.

Думаю примерно следующее.
1. Убедится что данные на ФС и свап  не занимают места больше размера 1 физического диска.
2. Ужать ФС до размера который позволил-бы запихать её со свапом на физический диск.
3. Ужать логический том.
4. Ужать логическую группу.
5. Убрать физический том из группы.
6. На освободившемся томе средствами md создать зеркало (пока без одного диска)
7. Из md зеркала сделать физический том (pv)
8. Ввести том в группу.
9. Вывести из группы оставшийся физический диск.
10. Добавить в md выведенный диск и дождаться окончания синхронизации.
11. Пересоздать initrd чтобы грузился корректно.
P.S. Вероятность ошибочных действий близка к 100%. Поскольку наверняка придётся ужимать корневую ФС, что при работающей ОС не возможно (покрайне мере ext3, про ext4 не в курсе). То при условии не возможности физ доступа к серверу для начала придётся установить на сервер миниммальную вторую ОС с поддержкой LVM и MD (например за счёт swap нафиг ему 5G) загрузится с неё и оттуда всё выполнять, что ещё повышает процент неудачи. Думаю лучше будет потренироваться на виртуальной машине, после того как все действия будут отлажены можно попробовать и на реальном железе.


"Как из LVM сделать MD рейд?"
Отправлено anonymous , 17-Фев-10 01:38 
>8. Ввести том в группу.

тут пропущен пункт "перенести lv с одного pv на другое"

>9. Вывести из группы оставшийся физический диск.


"Как из LVM сделать MD рейд?"
Отправлено sHaggY_caT , 16-Фев-10 11:33 

>Итого, вопрос: Может ли кто-нибудь описать примерный план, которого мне стоит придерживаться
>для получения зеркала.

Неужели так сложно воспользоваться поиском? На _этом_ сайте(opennet) есть несколько подробных статей по интересующему Вас предмету, так же десятки(или сотни) подобных инструкций есть и в сети.

Одна из лучших (имхо) статья в центосной wiki(через rescue-диск, который должны согласиться вставить в саппорте дата-центра):

http://wiki.centos.org/HowTos/CentOS5ConvertToRAID

Повторюсь, крайне рекомендую предварительно озаботится предварительным подключением IP KVM, так как риск ошибки слишком велик, а так Вы получаете сразу же доступ на уровне Bios.


"Как из LVM сделать MD рейд?"
Отправлено Кирилл , 17-Фев-10 18:40 
Всем спасибо за советы,
решил попытаться ужать фс с использованием rescue mode с диска федоры, благо в сервере есть ip kvm.
Загрузился, сделал
lvreduce
pvmove
vgreduce
После этого ребутнулся, увидел
mount: wrong fs trpe, bad option, bad supperblock on /dev/mapper/VolGroup-lv_root
и немного расстроился..
Подскажите, пожалуйста, где может быть косяк.


"Как из LVM сделать MD рейд?"
Отправлено sHaggY_caT , 17-Фев-10 18:59 
>[оверквотинг удален]
>решил попытаться ужать фс с использованием rescue mode с диска федоры, благо
>в сервере есть ip kvm.
>Загрузился, сделал
>lvreduce
>pvmove
>vgreduce
>После этого ребутнулся, увидел
>mount: wrong fs trpe, bad option, bad supperblock on /dev/mapper/VolGroup-lv_root
>и немного расстроился..
>Подскажите, пожалуйста, где может быть косяк.

Верните, если сможете, размер LV назад, нужно было уменьшать размер файловой системы перед изменением блочного устройства!


"Как из LVM сделать MD рейд?"
Отправлено ze6ra , 17-Фев-10 19:36 
>[оверквотинг удален]
>решил попытаться ужать фс с использованием rescue mode с диска федоры, благо
>в сервере есть ip kvm.
>Загрузился, сделал
>lvreduce
>pvmove
>vgreduce
>После этого ребутнулся, увидел
>mount: wrong fs trpe, bad option, bad supperblock on /dev/mapper/VolGroup-lv_root
>и немного расстроился..
>Подскажите, пожалуйста, где может быть косяк.

И зачем было спрашивать про инструкции. Наверное чтоб сделать не так как написали.
Возвращайте все размеры на место и читайте последовательность действий снова. Особенно про уменьшение размеров ФС.


"Как из LVM сделать MD рейд?"
Отправлено Кирилл , 17-Фев-10 22:49 
Вот я лох =(((
Поправьте меня пожалуйста если я где-то ошибаюсь:
Возвращать все размеры это vgcreate(???), vgextend и lvextend ?
Ужать ФС .. - это что-то типа этого http://www.howtoforge.com/linux_resizing_ext3_partitions ??

Ужать логический том это lvreduce

Ужать логическую группу - тут я теряюсь...

Убрать физический том из группы - pvmove + vgreduce

ну а далее наверное по центосовской wiki

Ещё раз всем спасибо за содействие.


"Как из LVM сделать MD рейд?"
Отправлено ze6ra , 18-Фев-10 10:59 
>Вот я лох =(((
>Поправьте меня пожалуйста если я где-то ошибаюсь:
>Возвращать все размеры это vgcreate(???), vgextend и lvextend ?

vgcreate не нужно у вас группа ещё существует.
По идее нужно выполнить ваши действия в обратном порядке
vgextend
lvextend
с теми параметрами что были до ваших действий. Тогда есть слабая надежда что ФС окажется не повреждённой. Хотя применение команды pvmove практически не оставляет такой надежды. И это теоретические советы так что гарантий нет.
>Ужать ФС .. - это что-то типа этого http://www.howtoforge.com/linux_resizing_ext3_partitions ??
>

Типа этого. Но лучше читать man resize2fs. И читать до пуска рук в дело. Загрузка с rescue диска и была нужна для выполнения этой команды. Остальное можно делать при работающей ос.
>Ужать логический том это lvreduce
>

да
>Ужать логическую группу - тут я теряюсь...
>

pvmove + vgreduce
Я имел ввиду vg (логической я её не корректно назвал)
>Убрать физический том из группы - pvmove + vgreduce

pvremove
>
>ну а далее наверное по центосовской wiki
>

Думаю что теперь придётся делать всё с нуля.
>Ещё раз всем спасибо за содействие.

Да не за что. Надеюсь ценной информации у вас там не было.


"Как из LVM сделать MD рейд?"
Отправлено Кирилл , 18-Фев-10 11:34 
>vgextend
>lvextend
>с теми параметрами что были до ваших действий. Тогда есть слабая надежда
>что ФС окажется не повреждённой. Хотя применение команды pvmove практически не
>оставляет такой надежды. И это теоретические советы так что гарантий нет.

Эх, померла моя фс,теперь надо разворачивать её из полного бэкапа.
Наврное сделаю из rescue mode md массив и попробую рсинкнуть туда бэкап.


"Как из LVM сделать MD рейд?"
Отправлено sHaggY_caT , 18-Фев-10 11:54 
>Эх, померла моя фс,теперь надо разворачивать её из полного бэкапа.

Извините, возможно нужно было действительно ответить Вам немного более развернуто, я чувствую себя перед Вами немного виноватой, что традиционно отправила в поиск.
Я надеюсь, этот downtime не привел к каким-то катастрофическим проблемам?

>Наврное сделаю из rescue mode md массив и попробую рсинкнуть туда бэкап.

Да, бэкапы очень хорошо :)


Вы тогда сразу поставьте систему как md, а сверху один pv в одной vg, например вот так: http://wiki.centos.org/HowTos/SoftwareRAIDonCentOS5

З.Ы. Про lvm, если читать официальные доки нет времени, хорошо написано в "повести о Linux и LVM", "улучшенный" вариант есть на xgu.ru

Обязательно прочитайте про то, как ресайзят в меньшую сторону файловые системы (просто на будущее)

Так же могу посоветовать тренироваться, предварительно, на виртуальных машинах перед выполнением почти любого отвественного, ранее Вам не известного, и потенциально деструктивного действия (наверное, это самый ценный совет, который я могла Вам дать, но не дала), в том же VirtualBox можно смоделировать, наверное, любую ситуацию, кроме online замены hotswap диска (для зеркала, что бы не умереть от ожидания "отлипания" системы от тормозов, крайне желательно, что бы в вокрстанции было два hdd, на которые можно и сложить виртуальные диски для тестов)