LINUX.ORG.RU

ZFS RAID на HDD и SSD. Повышение производительности.

 , , , ,


0

2

Привет всем!

Прошу небольшого совета по улучшению производительности RAID хранилища на ZFS.

На данный момент имеется такая конфигурация:

NAME                                  STATE     READ WRITE CKSUM
hdd-zraid                             ONLINE       0     0     0
    raidz2-0                          ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41N0A08MFAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A007FAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A00HFAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A034FAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A036FAWG  ONLINE       0     0     0

Как можно видеть, собрана на 5-ти HDD Toshiba N300 [HDWG160UZSVA], по 6 ТБ каждый. Т.е. доступного пространства имеется 18 ТБ. Жёсткие диски подключены в SATA материнской платы, которых 6 штук (один получается свободный), контроллер на м.п.:

lspci |grep SATA
06:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
07:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)

Кроме того, на материнской плате есть слоты расширения PCI Express 4.0: 1 * x16 (занят видеокартой, но I/O тут небольшой), 1 * x4, 3 * x1. Чипсет X570.

Производительности на HDD не хватает. Есть операция по сборке датасета для обучения НС (обучается на другой машине), где прочитывается около 9 ТБ картинок. Хотя на выходе получается не больше 250 - 300 ГБ, но процедура получается очень долгой. Поэтому возникла мысль заменить HDD на SSD.

SSD по 6 ТБ что-то мне не встретились, ближайший подходящий вариант (т.е. чтобы было >= 6ТБ) - Kingston DC500R на 7.6 ТБ. Соответственно, их надо 5 штук, как сейчас жёстких дисков. Выходит довольно дорого. Зато, можно заменить HDD на SSD один за другим, без остановки системы, как я думаю. Какие в этом случае могут быть подводные камни? Заработает ли TRIM после замены? Правильно ли я понимаю, что после замены всех устройств ZFS можно будет расширить на всё доступное пространство, или нет?

Другой вариант. Можно поставить SSD поменьше, но количеством побольше. По соотношению объёма и цены подходят модели на 4 ТБ. Например, Samsung 870 EVO или Western Digital WD Blue. Не суть важно, в этой категории выбор уже побольше и цены не такие страшные. Чтобы получить такой же доступный объём их надо 7 штук, т.е. будет 20 ТБ. Вообще есть мысль, что лучше 8 штук и тогда можно будет повысить уровень избыточности до RAIDZ3. Но в данном варианте горячая замена уже не получится, придётся создать новый ZFS RAID и на него скопировать всё добро. Возникает вопрос в подключении новых SSD. На материнской плате свободных портов недостаточно, поэтому надо какие-то контроллер(ы) SATA. Я вот нашёл какой-то Espada PCIe8SATAMar и есть мысль таких поставить две штуки, чтобы не нагружать на 100%. Но всё равно есть сомнения, насколько быстро в нём будут работать даже 4 устройства, не станет ли оно узким местом? Вот тут нашлось вроде бы то же самое. В отзывах пишут, что в GNU/Linux работает хорошо и из коробки, но вот на скорость жалуются. Кроме тех нашёл ещё LSI 9400-8i SGL, туда можно будет подключить сразу все 8 устройств. В принципе ради этого вполне допустимо видеокарту переставить в X4 слот, ей хватит, т.к. обмен данными небольшой, обучение не здесь. Но я вообще никогда никакие отдельные SATA контроллеры не покукал. Поэтому и хочу посоветоваться. Что лучше выбрать? Может быть кроме двух Espada или одного LSI есть что-то получше?

Какие вообще есть варианты переезда на SSD?

★★★★★

Ответ на: комментарий от Minona

Тебе mb/s важны или iops?

Скорее баланс, т.к. картинки и не маленькие, до 20 МБ, и количество у них в районе 500 000.

ls-h ★★★★★
() автор топика
Последнее исправление: ls-h (всего исправлений: 1)

Производительности на HDD не хватает. Есть операция по сборке датасета для обучения НС (обучается на другой машине), где прочитывается около 9 ТБ картинок. Хотя на выходе получается не больше 250 - 300 ГБ, но процедура получается очень долгой. Поэтому возникла мысль заменить HDD на SSD.

Как вариант, я думаю, что можно добавить раздел и скормить его пулу под кэш.

Clockwork ★★★★★
()

Есть операция по сборке датасета для обучения НС (обучается на другой машине), где прочитывается около 9 ТБ картинок. Хотя на выходе получается не больше 250 - 300 ГБ, но процедура получается очень долгой.

Во-первых, очень долго - это сколько? В минутах или часах.

Во-вторых, какая сейчас скорость чтения с массива? Сделай

tar cf /path/to/tmpfs/tmp.tar /path/to/data
и посмотри как быстро набирает объём архив в tmpfs-е.

В-третьих, если тебе нужна именно производительность, есть вариант разобрать массив, раскидать картинки по 5 дискам вручную (смонтировав их по 5 путям) и организовать в твоей программе параллельное их чтение с разных дисков - это будет быстрее даже чем raid0, особенно на маленьких файлах, поскольку отдельные диски смогут независимо друг от друга ездить головками, а на это уходит очень много времени. (соответственно на ssd разницы с raid0 уже скорее всего не будет почти)

(обучается на другой машине),

Оно ещё и по сети примонтировано? Там нет узкого места?

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

раскидать картинки по 5 дискам вручную

даже это не обязательно, есть unionfs/overlayfs/aufs. Да, придется возможно попотеть над опциями(шоб раскидывали +/- равномерно и не факт что это равномерно есть в каждой реализации)

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

Не буду я ничего уточнять. Он говорит, что на 9гб cash’ам не купить толк. Вы хоть объясните ему, что 9тб это очень мало. Как они хранят много картинок на таком маленьком объёме - мне непонятно. Так что сам пусть уточняет свой вопрос, а ЯНХНП.

Я читал вообще-то совсем данные и побольше девяти тб, чета он пользу имел.

Правда не на зфс, но нет же разницы? (хотя на зфс тоже)

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

у тебя какой-то несвязный поток мыслей.

в его задаче нужно вычитать 9 ТБ данных, причём быстро.
никакой L2ARC тут не поможет, а префетч в zfs и так хорошо работает.
так что задача решается только переводом пула на SSD.

Minona ★★☆
()

SSD по 6 ТБ что-то мне не встретились

Да полно, у самсунга есть немало моделей, с немного различающимимся ТТХ в зависимости от прошивки. Мы взяли недавно в сервер пару MZPLJ6T4HALA.

Выходит довольно дорого.

Есть такое... С бюджетом надо определиться. Потому что в идеале нужно натыкать кучу вот таких вот самсунгов или интелов p5800x, а значит надо менять и мать на серверную.
Если занедорого - надо глядеть, поддерживается ли матерью бифуркация pcie, и, если поддерживается, ставить «тройник» на 4х4 линии в х16, а туда 4 pm9a1. Это вроде выжмет максимум из текущей платформы, хотя ёмкости будет не так много.
От raidz при требованиях к производительности я бы отказался, если бэкапа будет достаточно.

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

у самсунга есть немало моделей, с немного различающимимся ТТХ в зависимости от прошивки. Мы взяли недавно в сервер пару MZPLJ6T4HALA

Можете раскрыть тему прошивок для MZPLJ6T4HALA? Тоже собираюсь его брать.

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

Это скорее догадки. Когда выбирал, смотрел на фотки разных моделей, платы были одинаковыми, ёмкость разная(ЕМНИП что-то в пределах 200-400 гигов). Сделал вывод, что прошивкой, как и в случае 980PRO VS PM9A1 главным образом выбирается объём для балансировки износа. Реально там кстати всего 5.8 нормальных Тб.

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

Сделал вывод, что прошивкой, как и в случае 980PRO VS PM9A1 главным образом выбирается объём для балансировки износа

Вроде как к MZPLJ6T4HALA (и к PM1735 вообще) это не относится.

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

шо ты несешь?

Объясняю вам зачем нужно кеширование =)

ты читал условия задачи?

Нет. А зачем? =)

нужно прочитать 9 терабайт(!) картинок.

И? Ответьте уже кто-нибудь, что на 9 ТБ кеш не работает и почему. Иначе не вижу смысла в этом напоминании. Нерду выше тоже ничего не ответили.

куда ты их кэшировать собрался и зачем?

На SSD, чтобы читались данные намного быстрее.

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

ты читал условия задачи?

Нет. А зачем?

ты в школе тоже задачи решал не читая условий?
вот поэтому ты и не понимаешь почему в этом случае кэш бесполезен.

И? Ответьте уже кто-нибудь, что на 9 ТБ кеш не работает и почему.

тебе уже ответили.

Minona ★★☆
()

Clockwork, Pinux001
У меня сейчас хранилище 18 ТБ. На данный момент надо быстро прочитывать 9 ТБ, дальше - больше. Порядок чтения от раза к разу совсем разный (там хитрые правила, что включать, что исключать и как обрабатывать). Т.е. чтобы кеш что-то давал, его надо от 9 ТБ, а это половина от всего этого добра или даже больше. Никаким свободным разделом тут не отделаешься. Ну и какой в нём смысл тогда? Лучше уж собрать новый RAID на SSD.

ls-h ★★★★★
() автор топика
Ответ на: комментарий от Minona

вот поэтому ты и не понимаешь почему в этом случае кэш бесполезен.

Ты какую-то х**ню сказал, потому что перечитывание задачи ничего не объясняет в каком случае кеш бесполезен, а в каком полезен. То же самое и в школе, если бы ответ на вопрос был в условии задачи, то не нужно было бы и решение :)

тебе уже ответили.

Кто и где мне ответил? Ты написал только: «то не поможет, а это и так работает». А кто куда полез и зачем - я бы гадал дальше, пока добрый ТС не объяснил всё по-человечески :)

Если ты такой илитный эксперт по zfs, может можешь помочь мне в этой теме? Зашифровал случайно данные, как расшифровать? Я нович :)

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

перечитывание задачи ничего не объясняет в каком случае кеш бесполезен, а в каком полезен

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

Кто и где мне ответил?

а, т.е. ты даже топик не читал, сразу начал спорить

Если ты такой илитный эксперт по zfs, может можешь помочь мне в этой теме?

🤷‍♂️я не шифрофанатик, так что - отстрелил себе яйца - пришивай сам. 😁

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

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

Я не обязан всё знать. Я говорю то, что сам знаю (и похрен, что всё это фигня). Потому что мне должны сказать, что я говорю неправильно и как на самом деле правильно, чтобы научить тех, кто плохо понимает и не дезинформировать других.

То что кто-то знает лучше меня и не пишет, это их проблемы! Великие гении профессора нос задрали и молчат, чтобы не позорится, а сами двух слов связать не могут, видали мы таких :)

а, т.е. ты даже топик не читал, сразу начал спорить

Конечно, лол. Ты имеешь в виду, что мне кто-то ответил до того, как я начал спорить? Или каким боком это относится к ответу на мой вопрос? Ты давай там, не гони, а покажи комментарий с объяснением на мой вопрос (недавний ответ ТС-а не считается).

🤷‍♂️я не шифрофанатик, так что - отстрелил себе яйца - пришивай сам. 😁

Так я и пришиваю сам, тебе ж сложно помочь

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

Тебе здесь никто ничего не должен.

Это не ответ на мой вопрос

Но хвалю, что ты превозмогая разбитый телефон и плохой инет пытаешься мне на мурчать)

Хочешь чему-то научится - учись сам.

Я, итак, уже всё умею

Не хватало еще искать учителей среди вас, двоечников

Pinux001
()