LINUX.ORG.RU
решено ФорумAdmin

Помогите выбрать ФС на несколько дисков в условный raid0

 


1

1

Собрал наконец то хлам с полки в многодисковый NAS из Raspberry Pi 1B, юсб-хаба и переходиков и старых дисков 20...80Гб, пока 3 штуки. Которые по отдельности абсолютно бесполезны, но все вместе с какой то натяжкой сойдут за трёхкилограмовую флешку длинной 550мм для чего нибудь второстепенного.

Теперь вопрос - мне не очень нравится как работает LVM при отвале одного из дисков, но ходят слухи что есть ФС (btrfs?), которые не только могут располагаться на нескольких устройствах сразу, но ещё и лучше распределяют файлы по ним так, что когда (в данном случае не если) что то отвалится - довольно много можно будет вытащить. Что можете посоветовать?

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

★★★★★

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

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

Разве оно не зависит от структуры массива? На raid0, кажется, будет сложно что-то восстановить. Хотя бы зеркало сделать и тогда будет надёжно (данные будут записываться в два диска/группы одновременно).

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

Классичского зеркалирования на разнородной солянке не добиться. у меня вероятно будут диски 19, 74, 75, ~250, ~250 и возможно какая нибудь флешка ~59 гб. Да и тут бы объём по максимуму нарастить, надёжности всё равно ждать нет смысла. А так хоть торренты потаскать.

Я как то читал, что есть гибкие конфиги, которые в первую очередь кидают файлы целиком на 1 диск и держат в уме что один из томов отваливается и часть файлов сохраняется.

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

Я не эксперт, просто поставил себе из-за репутации. Проект постарше btrfs и протестирован в полевых условиях.

По памяти может и влезет, но повлияет на производительность.

Я себе сделал зеркало. Одна и та же часть данных записывается в две группы, в каждой группе по два диска. Типа такого:

disk1 disk2 disk3 disk4
A     B     A     B
C     D     C     D

То есть избыточность не внутри группы, а между.

kaldeon
()
Ответ на: комментарий от kirill_rrr

Для надёжности могут помочь чексуммы. Если любой файл повредится, то можно будет об этом узнать, запуская zfs scrub раз в месяц. Хороший способ как можно раньше заменить диск. Но если диск успеет прям полностью развалиться — хз.

Ну и бесплатная компрессия будет плюсом.

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

При прочих равных я бы предпочёл изучать btrfs. Она не требует сторонних модулей на ядро и уже включена в распбиан. Хотя сложная в управлении и понимании. Но кажется zfs не проще.

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

Да, про это я забыл.

Но можно, например, разбить 4TB диск на 4 части и сделать зеркало на каждую часть с другим диском. Типа такого:

disk1     disk2   disk3   disk4   disk5
1GB part  mirror
1GB part          mirror
1GB part                  mirror
1GB part                          mirror
kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 2)
Ответ на: комментарий от cobold

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

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

Ещё надёжность на raid0 можно попробовать достичь за счёт copies=n. То есть кажется, что в случае первой ошибки чтения можно будет восстановить данные и выкинуть диск (только не на авито, пожалуйста).

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

Про copies= я бы ещё этот блог почитал и эту дискуссию. У самого куча хранилища, которое ни на что не годится и в случае флешек всё равно сдохнет через какое-то время. Кажется, что флешки можно организовать в зеркала, а на диски повесить copies=3.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 6)
Ответ на: комментарий от cobold

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

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

Я не девопс, но такое чувство, будто ceph — это скорее про ямл-программирование, оправданное в сценарии «нам нужно хранилище с таким-то объёмом, такой-то масштабируемостью, такой-то пропускной способностью и т.д., дай нам его, ничего не говоря о внутренней структуре». Для целей разделения труда в больших корпорациях это оправдано, а вот сидеть подбирать старые диски и флешки под абстрактные критерии, которые ещё неизвестно как в итоге стрельнут — это прям идеальный пример протекающей абстракции.

Вижу, что это шутка, но всё равно интересно.

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

Во первых что то новое и интересное. Во вторых на хабре утверждают что он простой в простейшем случае.

нам нужно хранилище с таким-то объёмом, такой-то масштабируемостью, такой-то пропускной способностью и т.д.

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

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

как раз пропрыгался с нераскруткой одного диска в пуле 1Т+1Т

Ну вообще надо помнить, что у каждого решения есть своя цена и ограничения. Например, нельзя просто брать и собирать RAID1 без одного участника в автоматическом режиме при загрузке (чревато потерей данных) - человеку «не в теме» это трудно понять, ведь у него же «два диска в зеркале, что может пойти не так».

Канонические энтерпрайзные методики на таком говне не работают. Модные хипстерские цефы тоже - сорян, но на 512 мегабайтах цеф даже не запустится. Особенно с учетом 3 дисков.

LVM с его рейдом позволит на этом говне поднять зеркало которое переживает отказ любого одного диска и даст максимум из возможного объема, типа если у тебя три диска 20-40-80 то вполне можно будет построить 60GB зеркалированных.

no-dashi-v2 ★★★
()

Я сам, если что, использую диски без всяких RAID, синхронизирую реплику rsync’ом в рамках одной ноды - 2ТБ реплицированного объема и 6ТБ так, без реплики под торренты. Не потому, что памяти мало, а потому, что накушался всей этой хрени.

no-dashi-v2 ★★★
()
Ответ на: комментарий от no-dashi-v2

Ну, будь тут диски хотя бы по 500Гб, я и руками не обломался бы балансировать... А тут я просто затрахаюсь на ровном месте. Короче похоже надо выбирать между lvm raid0 и btrfs, ну после того как дочитаю про всё что тут посоветовали.

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

Если остановишься на btrfs, выбирай для данных профиль single, из него потом есть шанс мелочь восстановить, в отличие от raid0. Да и в последнем данные пишутся 1 к 1 на все диски, то есть по началу будет равномерно всё ложиться, пока меньший диск не забьётся целиком. А вот raid0 в zfs раскладывает равномерно в зависимости от размеров дисков.

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

Я себе сделал зеркало. Одна и та же часть данных записывается в две группы, в каждой группе по два диска. Типа такого:

disk1 disk2 disk3 disk4
A B A B
C D C D

Это raid10 называется.

firkax ★★★★★
()

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

ext4
()
Ответ на: комментарий от kirill_rrr

Классичского зеркалирования на разнородной солянке не добиться

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

anonymous
()
Ответ на: комментарий от kirill_rrr

А зачем там «балансировать». Грубо говоря у тебя диски 20, 40 и 80ГБ (например) и зовутс они sda, sdb и sdc.

Создаешь на всех трех дисках раздел размером во весь диск с типом LVM PV.

Создаешь на все три диска VG (vgcreate test /dev/sda1 /dev/sdb1 /dev/sdc1)

Затем создаешь LV:

lvcreate –type raid1 -m 1 -n lvname -L 20G /dev/sda1 /dev/sdc1

И потом его расширяешь

lvchange /dev/test/mylv -L +40G /dev/sdb1 /dev/sdc1

Собсно всё, вот тебе 60GB в зеркале, отказ одного диска переживет легко. И ничего «балансировать» не надо. И еще 20GB останется без зеркала. LVM тем и хорош что он кастомизируется хорошо.

no-dashi-v2 ★★★
()
Ответ на: комментарий от no-dashi-v2

Создаешь на все три диска VG (vgcreate test /dev/sda1 /dev/sdb1 /dev/sdc1)

теоретически, надо упомянуть, что диски в группе должны быть с одинаковым размером логического сектора (512 или 4K), иначе могут быть подводные камни. (вряд ли на старых дисках есть 4K, но вдруг.)

anonymous
()

Пока что попробую ехт4+mergerfs как самый примитивный вариант общей свалки.

Когда пойму что мне надо запихнуть 1 файл на все диски или когда докину портов с 3 до 5-6-7 дисков - тогда попробую snapraid или многодисковую btrfs, в зависимости от того сколько места потеряю на диске чётности.

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

На всякий случай, у RAID0 фича не в размере, это просто побочный эффект такой.

Да-да, так и есть, эт потом его всякие нерды по незнанию стали пользовать только для увеличения размера.

anc ★★★★★
()