LINUX.ORG.RU

Условный RAID1 из SSD и HDD

 , , , ,


1

3

Есть желание поставить SSD в качестве rootfs, чтобы всё работало быстро. Но также хочется простую и надёжную репликацию или всегда свежий бекап.

Режим использования рабочей станции (десктопа): активная работа до нескольких часов в день, включающая интенсивное компиляние, работу с большими исходниками (git, grep, ...), веб-браузинг. Очень нужно ускорить железо в этих процессах.

Исследование документации показало, что

- штатный режим mdadm RAID1 (даже с write mostly hint) не даст ощутить скорость SSD на запись, скорость записи будет определяться таковой для HDD;

- от LVM-овского RAID1 (mirroring) не стоит ждать чего-то лучшего, чем от mdadm (?);

- DRBD - та ещё стрёмная штука если поток IO большой (перекрывает возможности HDD), то работа не будет беспроблемной; но вообще концепция очень подходящая;

- bcache, dmcache смотрел, не помню, что, но что-то не понравилось.

- банальное создание бэкапов повсеместно рекомендуется как простой и надёжный способ резервирования данных с SSD (как альтернатива всему вышеизложенному), но мне хотелось бы избежать любой ручной работы или скриптования, хотя снапшоты btrfs или lvm по идее позволяют довольно легко администрировать бэкапы (практически) без остановки рабочих процессов.

В итоге придумал такой вариант: делаем RAID1 средствами mdadm, загружаемся в штатном режиме, после чего в /etc/rc.local отключаем HDD от RAID1, то есть SSD работает как RAID1 в деградированном режиме. Таким образом, запись будет происходить только на SSD и скорость записи будет соответствовать характеристикам SSD. В периоды простоя (вручную или по cron) HDD будет обратно добавляться в RAID и синхронизироваться.

Вопросы:

- жизнеспособен ли этот вариант?

- сколько времение будет занимать такая синхронизация, на ёмкости RAID-а порядка 240 ГБ? это будет полная сверка, или оно будет «знать», что дописать?

- можно ли синхронизацию безболезненно прерывать для дальнейшей работы (или в случае аварийного отключения питания)?

Предложения более подходящих вариантов, а также критика моих концепций и выводов, приветствуются.

★★

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

Синхронизация рейда - штука небыстрая. Это к вопросу жизнеспособности.
Вообще странно, что с write-mostly у тебя все равно скорость задает hdd. Я когда-то собирал в такой же безумный рейд hdd и smb-шару по 100мбитной сети, ворочалось вполне со скоростью hdd. Правда, там не встречались большие потоки на запись, это была БД.

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

Только что выяснил, что есть опция write_behind (maximum number of outstanding writes allowed). Её значение можно поставить высоким. И это значение ненулевое (256) по умолчанию для носителей, отмеченных флагом write_mostly, так что в твоём случае эта опция тоже работала.

В общем, думаю, я остановлюсь на RAID1 в штатном режиме с параметрами --write-mostly --write-behind=100500 для HDD.

Krieger_Od ★★
() автор топика

В итоге придумал такой вариант: делаем RAID1 средствами mdadm, загружаемся в штатном режиме, после чего в /etc/rc.local отключаем HDD от RAID1, то есть SSD работает как RAID1 в деградированном режиме. Таким образом, запись будет происходить только на SSD и скорость записи будет соответствовать характеристикам SSD. В периоды простоя (вручную или по cron) HDD будет обратно добавляться в RAID и синхронизироваться.

но мне хотелось бы избежать любой ручной работы или скриптования

Что-то тут не так :)

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 2)

А не проще ли rsync для этого использовать?

rezedent12 ☆☆☆
()
19 июля 2016 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.