LINUX.ORG.RU
ФорумAdmin

Скорость работы mdadm с RAID10 из 4 HDD

 


0

2

Всем добрый день. Прошу помочь.

Имею Proxmox 7, то есть Debian 11. Первый раз настраивал mdadm RAID10. Из 4х 8тб HDD дисков Seagate Exos 7E8 ST8000NM000A.

Делал по статье: https://recoverhdd.com/blog/creating-the-software-mdadm-raid-in-linux.html?unapproved=1777&moderation-hash=078a82a68a864092787364f3542342b8#comment-1777, то есть:

  1. Сделал на каждом диске ext4 раздел на 10Gb меньше размера каждого диска.
  2. Собрал из разделов RAID10 в mdadm
  3. Дождался инициализации массива

Далее, в Proxmox на новом RAID массиве сделал .raw виртуальный диск и подключил его в гостевую Windows Server 2019 машину. Получил непонятную мне производительность диска: https://fastpic.org/view/122/2023/0622/_bc091f982a2392e2c9494adc3b31b14d.png.html

Это запущено копирование всех файлов c диска F: (это старый RAID10 собранный на контроллере материнской платы) на диск D: (это новый RAID10 собранный в mdadm). То есть, скорость чтения с RAID на материнской плате линейная, а скорость записи на mdadm RAID нелинейная.

Нормально ли это? Почему так происходит? И не будет ли проблем в скорости чтения записи при дальнейшей работе с файлами, как проверить?

Заранее спасибо за помощь.

Перемещено hobbit из general



Последнее исправление: hobbit (всего исправлений: 6)

Далее, в Proxmox на новом RAID массиве сделал .raw виртуальный диск

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

Если хочешь нормальной производительности, то делай LVM и выдавай виртуальной машине LV из этого LVM.

А ресинка массива дождался?

Неплохая памятка по LVM http://xgu.ru/wiki/LVM

А, да, там ещё в proxmox что-то было насчёт кэширования, не вспомню точно.

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

Спасибо, можно алгоритм корректной настройки массива по шагам с момента «я купил 4 диска, хочу собрать из них RAID10 на mdadm»?

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

Я мельком посмотрел про «LVM vs RAW vs QCOW» и мне не понравилось «К минусам LVM-томов можно отнести затруднительность переноса LVM-тома между несколькими физическими машинами», в то время как mdadm мною в проекте задумывался вместо встроенного RAID именно для того, чтобы в случае отказа материнской платы можно было без проблем сунуть имеющиеся диски в новое железо и продолжить работу в минимально короткий срок.

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

Массивы делаешь как обычно. В смысле, для 4 дисков я бы сделал (одинаково для всех дисков) отдельный раздел под /boot и отдельный раздел для остального. Разделы под /boot я бы собрал в raid1. 4 одинаковых раздела собрал бы в raid10, который я бы отдал под LVM, целиком. И там уже выдал бы LV под / и прочее. Сейчас под рукой нет работающего примера, сорян.

первый раздел на каждом диске под /boot в raid1 а там просто ФС, без LVM
второй раздел на каждом диске собрать в raid10 и отдать под LVM, в котором уже выделять LV под свои нужды

И это вариант БЕЗ efi.

targitaj ★★★★★
()
Ответ на: комментарий от GiveMeAllYourLovin

«К минусам LVM-томов можно отнести затруднительность переноса LVM-тома между несколькими физическими машинами», в то время как mdadm мною в проекте задумывался вместо встроенного RAID именно для того, чтобы в случае отказа материнской платы можно было без проблем сунуть имеющиеся диски в новое железо и продолжить работу в минимально короткий срок.

у тебя здесь каша. Рейд у тебя остаётся рейдом. LVM поверх. Никаких трудностей со снятием копии с LV нет.

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

То есть, еще раз:

  1. Делаем на каждом диске ext4 раздел на 10Gb меньше размера каждого диска.
  2. Собираем из разделов RAID10 в mdadm
  3. Не форматируем массив md в ext4, а делаем на нем LVM том.
  4. Подключаем созданный LVM в Proxmox и создаем виртуальные диски RAW на этом томе, которые подключаем уже по виртуалкам. ?
GiveMeAllYourLovin
() автор топика
Ответ на: комментарий от GiveMeAllYourLovin

ext4 - это имя файловой системы, а не тип раздела

Да, типа того, только я бы сделал на каждом диске по ДВА раздела. Из первого раздела я бы сделал raid1 под /boot (или под / тоже норм) чтобы у тебя хост-ОС смогла загрузиться в любом случае.

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

Да, верно, разделы GPT на дисках.

Но разве в таком случае это не та же самая «двойная работа»? В Proxmox я не могу «выдать виртуальной машине LV из этого LVM», я могу только создать диск, RAW, QCOW или VMDK и подключить его в ВМ.

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

В Proxmox я не могу «выдать виртуальной машине LV из этого LVM»

Потому что сначала Proxmox’у надо показать, где у него «этот LVM»

MagicMirror ★★
()
Последнее исправление: MagicMirror (всего исправлений: 1)
Ответ на: комментарий от GiveMeAllYourLovin

Да, думаю что все верно подсказывают, в похожей теме на другом форуме вижу: «На md надо было LVM натянуть, а не ФС. И раздавать в виртуалку raw LV.» Первое предложение понимаю, а второе нет. Может кто-то объяснить пожалуйста?

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

Там в proxmox нужно добавить хранилище типа LVM. Файловое хранилище добавлено по-умолчанию. Ищи. У меня нет под рукой морды proxmox. Всё есть в веб-морде. Сначала добавляешь тип хранилища и потом из этого хранилища выделяешь «диски».

https://pve.proxmox.com/wiki/Storage

Ищи, где-то там у тебя в настройке хранилища есть тип Directory. Вот там должна быть кнопка добавить новый тип.

Первая картинка https://losst.pro/kak-dobavit-disk-v-proxmox

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

я могу только создать диск, RAW

И раздавать в виртуалку raw LV.

Это значит, что надо создать PV (pvcreate /dev/md2), собрать из него VG (vgcreate $vgname /dev/md2), а потом поверх этой VG создать LV (lvcreate -L 100G -n $lvname $vgname). И получившийся /dev/mapper/$vgname-$lvname (или /dev/$vgname/$lvname, они указывают на одно и то же устройство) подключить в VM, как RAW-диск.

kmeaw ★★★
()