Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Организация RAID (mdadm) + виртуализация. Выбор реализации. (http://forum.oszone.net/showthread.php?t=346447)

cnyx 16-09-2020 12:37 2934209

Организация RAID (mdadm) + виртуализация. Выбор реализации.
 
Здравствуйте.
Появилась задача собрать простой сервер на обычных комплектующих, т.е. без горячей замены, RAID контроллера и т.п. Предполагается наличие 2 или 3 с организацией отказоустойчивости. Первый простой и бесплатный вариант это mdadm, он же softraid. Для виртуализации нужен гипервизор, но раньше с ними не работал, только VMWare под виндой поиграться и KVM под Linux в продакшене. Попробовал поставить Proxmox в виртуалке, он не умеет в mdadm (и вообще не разрешает делать разметку диска вручную), но умеет в RAID1 on zfs, с чем я не сталкивался и опасаюсь. ESXi, vSphere, Hyper-V пока не пробовал, но подозреваю, что там с soft raid будет все плохо.
Другой вариант вижу, это минимальный ubuntu lts с mdadm + kvm и уже в нем поднимать виртуализацию. С этим вариантом я хотя бы работал.
Что можете подсказать? Может есть еще какие-то решения?

DJ Mogarych 19-09-2020 08:31 2934388

Цитата:

Цитата cnyx
Предполагается наличие 2 или 3 с организацией отказоустойчивости. »

2 или 3 чего? Сервера? И в чём будет выражаться отказоустойчивость, если это обычные десктопы с локальными хранилищами?

cnyx 21-09-2020 09:12 2934504

2 или 3 HDD в RAID1 или RAID5. Ну и с отказоустойчивостью я тоже погорячился. Просто увеличение шансов сохранить данные + бэкапы в облако по расписанию.

James Marsh 21-09-2020 20:40 2934559

Цитата:

Цитата cnyx
RAID5 »

Ужас, если какой-то винт умрет, то при пересборе массива почти со 100% вероятностью вылетит еще один диск и данным труба.
Возьмите на "развалах" какой-то б/у рейд контроллер типа DELL PERC H310 или что-то рядом и на 4 дисках создайте RAID 10. Будет Вам прирост чтения/записи хоть.

Он одному заказчику на хетзнере взяли "сервер" на треадрипере 1950, попросили немцев поставить туда рейд-контроллер и батарейку за отдельную абонплату, поставили туда вмвару 6,7 и все нормально уже год бегает.

Jula0071 23-09-2020 12:31 2934690

Цитата:

Цитата cnyx
Предполагается наличие 2 или 3 с организацией отказоустойчивости. »

Лучше 4 в RAID 10 (быстрее как в плане работы, так и восстановления, также вылет диска практически не сказывается на скорости работы, но гарантирована работа только при вылете одного диска) иди в RAID 6 (чуть медленнее RAID 10 в работе, сильно медленнее восстанавливается из сбоя, но зато гарантирует работу при вылете двух дисков)
Цитата:

Цитата cnyx
Попробовал поставить Proxmox в виртуалке, он не умеет в mdadm »

Умеет, только надо ставить голый дебиан на mdadm и сверху накатывать проксмокс. Также можно сначала установить pve на один диск и потом преобразовать в массив. Не самые правильные решения, но они работают и гайды есть. А так соглашусь с
Цитата:

Цитата James Marsh
DELL PERC H310 »

или любой другой железный контроллер.
Цитата:

Цитата cnyx
но умеет в RAID1 on zfs, с чем я не сталкивался и опасаюсь. »

ZFS надо много памяти под кэш, очень много. Собственно, его на машинке с менее 32 GB даже не следует ставить, притом что он половину сожрёт.

Вообще рекомендую ставить небольшой RAID1 под систему (тому же проксмоксу за глаза хватит 120 гиг например на зеркале из двух ссд) и отдельный сторедж для виртуалок, а там уже можно играться. Можно даже слепить массив на тухлых SATA 7200, но ускорить его SSD кэшем.

cnyx 24-09-2020 09:33 2934837

Спасибо за ответы, товарищи. Финансы ограничены, директор жмется на деньги, потому такие извращения приходится терпеть. О 4рех дисках можно не заикаться. Но как показала практика и небольшая нагрузка, пары дисков в RAID1 хватит. Железный RAID контроллер покупать это тоже немного краеугольный камень. Нужна обязательно батарейка + могут быть проблемы, если вдруг сам железный RAID накроется. SoftRAID от железа хотя бы не зависит.
Плюс если получится, то попробую настроить выключение сервера по сигналу от ИБП при отключении питания.
Цитата:

Цитата Jula0071
Умеет, только надо ставить голый дебиан на mdadm и сверху накатывать проксмокс. »

Да, спасибо. Буквально пару дней назад попалась статья, как это провернуть. Скорее всего так и буду делать.

Jula0071 24-09-2020 09:49 2934839

Цитата:

Цитата cnyx
Нужна обязательно батарейка »

Лет уже много как в контроллерах NVRAM и батарейка не нужна. Разве что откопать совсем старое старьё лет 10+
Цитата:

Цитата cnyx
могут быть проблемы, если вдруг сам железный RAID накроется. »

Ну когда что-то накрывается это всегда проблемы, а так просто меняешь сдохший контроллер на новый, import foreign и едем дальше.

Мониторинг конечно нужен, а то 100500 раз видел случай, когда система месяцами пахала на деградировавшем массиве, потому что никто этого не заметил, а заметил только когда всё окончательно навернулось.

El Scorpio 19-10-2020 01:56 2936834

Цитата:

Цитата cnyx
Попробовал поставить Proxmox в виртуалке, он не умеет в mdadm (и вообще не разрешает делать разметку диска вручную) »

Поставить чистый debian на MDADM. При установке разделить диски на три раздела - под /boot в RAID, под LVM для debian в RAID и под LVM для виртуальных машин в RAID
Далее на debian установить proxmox

cnyx 19-10-2020 09:17 2936848

Спасибо за ответ. Почти так так и сделал, только разделов два. Один по /boot, другой полностью под pvolume, а в ней LVM для корня самого proxmox и отдельный LVM, который монтируется в папку, а эта папка выступает storage для самого proxmox и там в виде файлов будут лежать виртуалки.

El Scorpio 19-10-2020 09:35 2936852

Под хранилище виртуальных машин лучше делать именно отдельное LVM на отдельном разделе. Тогда сами образы дисков будут представлять не "файлы в папке", подверженные сбоям файловой системы хоста, а отдельные разделы LV, с которыми ничего не случится. При этом им можно будет легко увеличивать размер, делать снапшоты, переносить на другие PV и так далее.


Что могу посоветовать.
1. Вывести из RAID один раздел и разделить его на два, в каждом из которых создать новые "деградированные" RAID
2. В большем создать LVM хранилище виртуальных машин и средствами Proxmox сделать перенос дисков в новое хранилище
3. Меньшее подключить к LVM хоста и перенести в него разделы хостовой системы
4. Опустевший RAID уничтожить, и его раздел также разделить на два, которые будут введены в RAID'ы, созданные на п.1

cnyx 20-10-2020 09:22 2936939

Цитата:

Цитата El Scorpio
Тогда сами образы дисков будут представлять не "файлы в папке", подверженные сбоям файловой системы хоста, а отдельные разделы LV, с которыми ничего не случится. »

Я не то чтобы каждый день занимаюсь такими видами работ и ваша инструкция мне понятна, но довольно рискованна. Сервер уже в полупродакшене, потому не хочется все сломать и потом все с нуля восстанавливать. Да и время уже поджимает.
Так же я читал про хранилища lvm, на которых располагается виртуальная машина. Минусом этих способов является невозможность легкого бэкапа виртуалки. Когда она в виде одного файла, ее легко можно скопировать на другой хост.
Даже если виртуальная машина представляет собой отдельный файл, то proxmox позволяет увеличить размер виртуального жесткого диска, а внутри виртуалки достаточно сделать resize2fs.
У меня сейчас 2 md раздела. В первом /boot хоста, второй введен в pvgroup. В этой pvgroup введен один vgroup. В ней один lvm на 30Гб для хоста (proxmox) и второй lvm на 400Гб для proxmox-storage. Этот второй lvm монтируется в папку /pvestorage, а папка является storage для proxmox. Теоретически на все свободное место я могу расширять lmv или создать третий lvm и подключить его как еще один storage.

El Scorpio 20-10-2020 09:43 2936942

Цитата:

Цитата cnyx
Минусом этих способов является невозможность легкого бэкапа виртуалки. »

O'rly?

Цитата:

Цитата cnyx
Когда она в виде одного файла, ее легко можно скопировать на другой хост. »

Когда она внутри LVM, то её ещё легче скопировать куда надо
sudo ddrescue /dev/virtuals/image /внешний_hdd

Цитата:

Цитата cnyx
У меня сейчас 2 md раздела. В первом /boot хоста, второй введен в pvgroup. В этой pvgroup введен один vgroup. В ней один lvm на 30Гб для хоста (proxmox) и второй lvm на 400Гб для proxmox-storage. »

То есть у вас LVM внутри LVM, в котором всего один логический раздел EXT4, в котором лежат файлы образов дисков?
Тут или один LVM лишний, или лишний логический раздел с файлами.

Jula0071 20-10-2020 12:38 2936967

cnyx, чем рассказывать словами, показали бы вывод lsblk. А то сложно вникнуть, кто на ком стоял.

cnyx 02-11-2020 12:18 2938538

Что-то думал написал ответ, а по факту не написал. Вот вывод
Код:

# lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                      8:0    0 931,5G  0 disk
├─sda1                  8:1    0  3,7G  0 part
│ └─md0                  9:0    0  3,7G  0 raid1 /boot
└─sda2                  8:2    0 927,8G  0 part
  └─md1                  9:1    0 927,7G  0 raid1
    ├─vg1-pve--root    253:0    0    28G  0 lvm  /
    └─vg1-pve--storage 253:1    0 406,5G  0 lvm  /pvestorage
sdb                      8:16  0 931,5G  0 disk
├─sdb1                  8:17  0  3,7G  0 part
│ └─md0                  9:0    0  3,7G  0 raid1 /boot
└─sdb2                  8:18  0 927,8G  0 part
  └─md1                  9:1    0 927,7G  0 raid1
    ├─vg1-pve--root    253:0    0    28G  0 lvm  /
    └─vg1-pve--storage 253:1    0 406,5G  0 lvm  /pvestorage


El Scorpio 02-11-2020 14:20 2938550

Цитата:

Цитата cnyx
├─vg1-pve--root 253:0 0 28G 0 lvm / »

О, ещё и один раздел под всю систему хост-машины.
Небось ещё, swap в виде файла подкачки, работа с которым будет использовать ресурсы файловой системы этого раздела.
Активные логи вместе с неизменяемыми файлами и полная проверка всей этой красоты при аварийном отключении электропитания.

А целых 4 Гб под /boot - это пять. Планируете использовать 40 разных версий образа начальной загрузки?
Там и 500 Мб за глаза хватило бы.

Jula0071 02-11-2020 14:34 2938551

Цитата:

Цитата El Scorpio
О, ещё и один раздел под всю систему хост-машины. »

Это нормально.
Цитата:

Цитата El Scorpio
А целых 4 Гб под /boot - это пять. Планируете использовать 40 разных версий образа начальной загрузки? »

Места дофига, а иногда нужно вернуться к старым ядрам, переборчик канеш, гига хватило б, но свободного места реально дофига походу.

Цитата:

Цитата El Scorpio
Активные логи вместе с неизменяемыми файлами и полная проверка всей этой красоты при аварийном отключении электропитания. »

Ну я бы систему держал (и так делаю) на отдельном массиве, независимом от стореджа, но ТС вроде плакалася про нищету. Что делать, приходится жить с тем, что есть. UPS надеюсь там есть.

Цитата:

Цитата El Scorpio
Небось ещё, swap в виде файла подкачки, работа с которым будет использовать ресурсы файловой системы этого раздела. »

Может его вообще нет. :) Но тут соглашусь, надо в lvm его. Благо это несложно.

cnyx, насколько вижу, полно места на PV свободного, не нужна чехарда с выводом диска из массива. Просто делаете новый lvm thin pool, подключаете в качестве стореджа и переносите туда виртуалки стандартным дамп-рестором. Пошаговые команды для этого вам нужны или сами справитесь? Покажите кстати вывод команд pvs; vgs; lvs -a

Busla 02-11-2020 18:40 2938587

Jula0071, а зачем swap в lvm? - с файлом проще

Jula0071 02-11-2020 18:44 2938588

Цитата:

Цитата Busla
с файлом проще »

Не проще. Каждому своё канеш. Но зачем дополнительную нагрузку на фс, когда её можно избежать?
Использую файл для подкачки только в случае облачных решений, где нет доступа дальше своей виртуалки.

cnyx 03-11-2020 09:29 2938658

Цитата:

Цитата El Scorpio
О, ещё и один раздел под всю систему хост-машины.
Небось ещё, swap в виде файла подкачки, работа с которым будет использовать ресурсы файловой системы этого раздела.
Активные логи вместе с неизменяемыми файлами и полная проверка всей этой красоты при аварийном отключении электропитания. »

Ага.
Цитата:

Цитата El Scorpio
А целых 4 Гб под /boot - это пять. Планируете использовать 40 разных версий образа начальной загрузки?
Там и 500 Мб за глаза хватило бы. »

Места много, решил не экономить. А то уже доэкономились предыдущие админы, что старые ядра не удаляют, а под новые места не хватает.
Цитата:

Цитата Jula0071
UPS надеюсь там есть. »

Нашел старинный APC, достал через друга родной шнурок, провозился с NUT, который глючил. Поставил apcupsd. Хоть какое-то аварийное завершение будет.
Цитата:

Цитата Jula0071
Может его вообще нет. Но тут соглашусь, надо в lvm его. Благо это несложно. »

swap в файле. Да. Ну я так решил. На данный момент 2 виртуалки на 6Гб ОЗУ. Всего 16Гб ОЗУ.
Цитата:

Цитата Jula0071
насколько вижу, полно места на PV свободного, не нужна чехарда с выводом диска из массива. Просто делаете новый lvm thin pool, подключаете в качестве стореджа и переносите туда виртуалки стандартным дамп-рестором. Пошаговые команды для этого вам нужны или сами справитесь? Покажите кстати вывод команд pvs; vgs; lvs -a »

Вывод вот.
Код:

# pvs
File descriptor 7 (pipe:[10648711]) leaked on pvs invocation. Parent PID 31464: bash
  PV        VG  Fmt  Attr PSize  PFree
  /dev/md1  vg1 lvm2 a--  927,66g <493,20g
# vgs
File descriptor 7 (pipe:[10648711]) leaked on vgs invocation. Parent PID 31464: bash
  VG  #PV #LV #SN Attr  VSize  VFree
  vg1  1  2  0 wz--n- 927,66g <493,20g
# lvs -a
File descriptor 7 (pipe:[10648711]) leaked on lvs invocation. Parent PID 31464: bash
  LV          VG  Attr      LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  pve-root    vg1 -wi-ao----  <27,94g
  pve-storage vg1 -wi-ao---- <406,53g

Насколько я понял, мне надо просто создать LVM раздел, указать его как storage в proxmox и перенести туда виртулки. Сервер в продакшене. На одном samba, резервные копирования, бэкап в облака и Dropbox. На втором Zabbix + pi-hole. Раньше думал поднимать bind для управления NS записями + www + почта. Но так как сейчас NS-ами дают управлять регистраторы доменов, а хостинг с почтой в 5Гб стоит 200р/мес, что выглядит слегка надежнее, чем мой сервак, то от третьей виртуалки я пока отказался.
И вот сижу и думаю, а в чем великий смысл той переделки, что мне предлагаете? Для меня текущий подход слегка прозрачнее. Я в любой момент могу .qcow2 любой виртуалки переписать по сети на другой комп и обеспечить резервирование всей машины на другой физический комп. Лезть в продакшн совершенно не хочется. В силу определенных обстоятельств, если что-то пойдет не так, то придется на работе ночевать, чтобы все это поднять заново.

Busla 03-11-2020 11:17 2938667

Цитата:

Цитата Jula0071
зачем дополнительную нагрузку на фс »

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

ровно те же сомнения можно и в адрес lvm выдвинуть: зачем на него дополнительная нагрузка


Цитата:

Цитата cnyx
И вот сижу и думаю, а в чем великий смысл той переделки, что мне предлагаете? »

возможно у "Proxmox" своя атмосфера, но для vmware и hyper-v рекомендуют выдавать диски файлами, а не лунами

Jula0071 03-11-2020 13:46 2938674

Цитата:

Цитата cnyx
Насколько я понял, мне надо просто создать LVM раздел, указать его как storage в proxmox и перенести туда виртулки. »

Не просто LVM раздел, а LVM thin pool.
Скрытый текст

lvcreate -L300G -T --poolmetadatasize 16G vg1/pve-thin
И добавить storage через вебконсоль

Цитата:

Цитата cnyx
И вот сижу и думаю, а в чем великий смысл той переделки, что мне предлагаете? »

Быстрее работает, как raw image, но не теряется функционал снепшотов и thin provisioning. Также меньше риск повреждения образов при сбое.
Цитата:

Цитата cnyx
Я в любой момент могу .qcow2 любой виртуалки переписать по сети на другой комп и обеспечить резервирование всей машины на другой физический комп. »

Точно так же можно скопировать логический том, как любое блочное устройство. В кластере proxmox это всё делается в один клик. Но если у вас нет кластера, а в качестве резервной машины например виндотазик, то ваш подход конечно гибче (и страннее).
Цитата:

Цитата cnyx
Лезть в продакшн совершенно не хочется. »

Не лезьте.
Цитата:

Цитата cnyx
В силу определенных обстоятельств, если что-то пойдет не так, то придется на работе ночевать, чтобы все это поднять заново. »

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

Jula0071 03-11-2020 18:30 2938697

Цитата:

Цитата Busla
что за мифическая нагрузка на фс? откуда она, насколько большая?
один раз выделилось непрерывное пространство, потом примитивнейшая арифметика смещений »

Доступ к блочному девайсу всегда быстрее, чем к файлу.

Впрочем, это действительно не особо важно на тухлых дисковых подсистемах, которые тупят сами по себе. Полагаю, у ТС и близко нет той нагрузки, где бы сказалась разница. Иначе он бы уже плакал

MakaBooka 01-12-2020 14:05 2941640

Proxmox. В отказоустойчивость - умеет. Поддерживает GlusterFS и Ceph (если планируете применять, Gluster нужно сразу подключать дебиановскую репу и ставить последний минорный)
Умеет миграцию Live виртуалок (лучше всего - как раз на сетевых FS или iSCSI, пробовал и то и то).
ZFS бояться не нужно, отлично работает, zmirror умеет (вместо mdadm)
Управление кластером либо мышкой клац-клац либо нормальное из шелла - на выбор.


Время: 00:34.

Время: 00:34.
© OSzone.net 2001-