Рейтинг:1

Как создать LVM RAID 1 с 4 дисками 2 разных размеров?

флаг it

У меня есть система с

2 x 1 ТБ (твердотельные накопители NVMe)
2 x 2 ТБ (SATA SSD)

дисков и хотел бы создать систему RAID 1, используя все доступные диски (поэтому в конце у меня есть система RAID1 емкостью 3 ТБ). К сожалению, большинство примеров того, как это настроить, относятся только к двум дискам.

Какой рекомендуемый подход здесь?

  • Создать RAID1 для каждого размера диска, т.е. зеркально отразить диски одного типа, а затем создать поверх них один большой логический том?
  • Или есть какой-то другой, более разумный подход?

Если у кого-то есть пошаговый рецепт (или хорошая ссылка на него), это было бы очень признательно.

Кроме того, нужен ли мне отдельный системный или загрузочный раздел?

Спасибо.

Рейтинг:2
флаг np

Это сильно зависит от того, к чему вы стремитесь, потому что скорость и задержка NVMe и SATA SSD имеют огромную разницу.

Лично я бы создал два разных набора групп томов LVM (VG). Один для NVMe, а другой для SSD и вручную назначая их для разных задач. т.е. NVMe для тяжелых задач ввода-вывода, таких как базы данных и твердотельные накопители для более универсального хранилища. Конечно, вы можете просто объединить их в одну VG, но таким образом вы фактически «замедляете» NVMe до скорости SATA. Ну... не совсем, но почти.

Что касается загрузки - если у вас система в режиме EFI и современный загрузчик (например, GRUB2), вам понадобится отдельный раздел небольшого размера (256-512 МБ) для файла EFI типа FAT32. Но, по крайней мере, система EFI может загружаться напрямую с NVMe, а GRUB2 может загружаться напрямую с Linux RAID + LVM.

  1. Создайте 1-й раздел (т.е. с fdisk) на обоих дисках NVMe размером около 256-512 МБ. Установите тип загрузки EFI.
  2. Создайте 2-й раздел для оставшегося места для 100% распределения. Установите его тип на Linux RAID.
  3. Отформатируйте каждый из 1-го раздела EFI в FAT32 (т.е. mkfs.vfat -F32 /dev/nvme0n1p1).
  4. Вы можете сделать то же самое для SSD-накопителей, если хотите сделать их загрузочными в случае отказа обоих NVMe или только одного раздела Linux RAID для данных.
  5. Создайте первый массив RAID для NVMe: mdadm --create /dev/md1 -l 1 -n 2 -b внутренний /dev/nvme0n1p2 /dev/nvme1n1p2.
  6. Создайте второй массив RAID для членов SSD: mdadm --create /dev/md2 -l 1 -n 2 /dev/sda2 /dev/sdb2 (если вы создали там разделы EFI или просто sda1/sdb1, если нет).
  7. Создайте PV LVM из вновь созданных массивов: pvcreate /dev/md1 && pvcreate /dev/md2.
  8. Создайте VG и LV поверх PV. Если вы все еще хотите объединить их, вы создаете 2 PV, а затем добавляете их в одну и ту же VG.
  9. Обязательно смонтируйте разделы EFI и установите правильный загрузчик на каждый из дисков. Как это для 1-го диска NVMe: смонтировать /dev/nvme0n1p1 /boot/efi && grub-install /dev/nvme0n1.

Обратите внимание, что у вас не может быть массива RAID для разделов EFI. Ну... не совсем, есть какие-то хитрости, но я не думаю, что они того стоят, потому что на них нет ничего невосстановимого хранилища. Это просто небольшой двоичный файл, чтобы «биос» EFI мог загрузить ваш загрузчик. Даже в случае сбоя вы все равно можете загрузить свою систему с какого-либо Live-образа (например, SuperGRUBdisk) и снова переустановить его с помощью grub-install.

флаг it
Спасибо за исчерпывающий ответ. Вы рекомендуете использовать `mdadm` для RAID. Это как-то лучше, чем использование LVM для RAID? То есть есть ли причина такого выбора?
флаг np
LVM - это инструмент логического тома, а не RAID. Хотя LVM может создавать зеркало LV, оно все еще не считается полноценным RAID-массивом. Он менее гибкий и зрелый, чем mdadm, с точки зрения создания зеркальных массивов.
флаг np
Кроме того, из этого вопроса https://serverfault.com/questions/741103/lvm-raid-1-ssd-caching?rq=1: «_Sidenote: быстрый поиск показывает, что зеркалирование LVM обычно считается намного медленнее, чем Linux программный RAID. Но я думаю, что вы можете восстановить часть этой потерянной производительности с помощью некоторой настройки._"
Mike Andrews avatar
флаг ng
Это правильный ответ. Настоятельно рекомендуем мнение @NStorm о том, чтобы не объединять твердотельные накопители SATA и NVMe в один и тот же пул. Весьма вероятно, что ваши устройства NVMe имеют пропускную способность и возможности ввода-вывода в секунду, которые во много раз превышают возможности ваших твердотельных накопителей SATA. Если вы сделаете из них единый том, ваша производительность будет иметь наименьший общий знаменатель. Это было бы похоже на размещение SSD и спиннеров в одном пуле.
Nikita Kipriyanov avatar
флаг za
Наоборот, часто *желательно* объединить их в единый пул.Например, когда вы настраиваете кеширование, и кеш, и серверные тома должны находиться в одной и той же виртуальной группе, очевидно, что один из них — это какой-то быстрый SSD, а другой — более медленный. Или вы создаете тонкий пул и хотите поместить метаданные на более быстрое устройство, оставив данные на более медленном устройстве. В любом случае, даже когда PV объединены в VG, вы все равно можете полностью контролировать фактическое размещение LV, поэтому, если вы будете тщательно управлять ими впоследствии, у вас не будет снижения производительности, но у вас будет гибкость.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.