LINUX.ORG.RU

NAS самому

 , ,


1

5

Всем привет.

Планируется сборка NAS своими руками(для себя. Не интырпрайз). Объем до 10тб с возможностью расширения. Nextcloud. Предназначение - файлопомойка с редким чтением из нее. А иногда и в несколько потоков через 10gb порт. Ubuntu 18.04(если важно). Есть следующие вопросы, на которые не удалось найти ответы:

1. Имеют ли место быть ryzen в сборке? Что-то типа 2200 или подобное из низкоценового сегмента. Поидее должно быть более эффективно, чем селероны и прочие пентиумы. Но в Гугле мало информации и вообще идей собирать NAS на ryzen. Почему так? Может есть какие-то подводные камни?

2. Есть по сути 3 варианта фс:

* ex4 сделать raid1

+ Легко менять HDD в случае поломки

+ Расширяемая минимальным колвом дисков

- надо х2 дисков, хотя для 10тб хранилища это не особо много

* из ex4 сделать рейд5 или 6

+ Нужно меньше HDD, чем при raid1

- ниже скорость работы на 10%-15%

- если поломается один HDD, и при восстановлении на новый HDD ещё какой-то диск покажет ошибку (а там нагрузки максимальны при восстановлении данных, так что шанс не 0% словить ошибку другого винта и, как следствие, все данные улетают в помойку).

* zfs

Ниразу не работал, не пробовал. Но судя по интернетику, то основной плюс, что при записи чего-либо - сначала проверяет целостность. На сколько это важно, если сервер будет к бесперебойнику подключен + в том же ex4 есть журналирование? Плюс к Zfs рекомендуют ECC память, а для этого опять же серверный проц брать и т.д.

- нельзя 1 диск добавить в фс, минимум несколько.

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

3. Сколько брать GB оперативки для хранилища 10ТБ? Пишут иногда, что надо на 1TB = минимум столько же оперативки в GB. Как по мне многовато. И зачем столько? Что там висеть будет?

4. Какой размер свопа обычно ставят для NAS? Если ставить в зависимости от чего-то - то от чего?

5. Сама система будет на ssd. Никаких критических данных там не будет. Стоит ли покупать второй ssd для объединения в raid1 и восстановления системы в случае чего? Или если ssd полетит, то можно все так же raid с данными (на HDD)к новому ssd с системой прилепить без каких-либо проблем?

Повторюсь, что никогда особо не сталкивался со сборкой/настройкой NAS, поэтому некоторые вопросы мб покажутся глупыми, но хотелось бы на них получить ответы, т.к. несколько часов проведенных в Гугле не дали ничего конкретного.

Спасибо заранее

1) Не вижу никаких проблем.

2) Используй то, что знаешь.

если поломается один HDD, и при восстановлении на новый HDD ещё какой-то диск покажет ошибку (а там нагрузки максимальны при восстановлении данных, так что шанс не 0% словить ошибку другого винта и, как следствие, все данные улетают в помойку

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

3) Сколько нужно для Nextcloud. Если ZFS, то ещё 16 Гб.

4) Такой же, как не для NAS.

5) В зависимости от стоимости простоя.

anonymous ()

1) Нищебродить, так нищебродить... Intel Xeon haswell

2) IF !(1) THEN ZEN2 :-) На самом деле лучше заложиться на Штеуд, даже если нет возможности достать списываемые сервера. Поддержка и совместимость намного лучше всяких AMD Zen CPU.

3) Со Штеудом будут гарантированно работать vmware и прочие такие.

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

4. Swap используется когда оперативка кончается. Я просто не совсем понимаю, как может использоваться своп, если не открывать файлы больше, чем 3гб на сервере? (При условии что оперативы допустим 8гиг). При копировании/перемещении файлов - память не особо забивается, т.к. копируется все мелкими блоками.

Зачем такое внимание уделяют свопу в топиках о файлопомойках?

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

Swap используется когда оперативка кончается.

Нет.

Зачем такое внимание уделяют свопу в топиках о файлопомойках?

Кто? Впервые вижу такое внимание. Сделай 4 Гб и забудь.

anonymous ()

ryzen

Видеоядра для nas не нужны. Hpe Microserver на zen с ecc, без видео, вроде.

целостность

Без ecc по мелочи можно легко потерять. Но и даже ext4 раньше иногда сам портил файлы. Серверный не обязательно, есть embedded версии, а у amd больше зависит от производителя материнской платы.

Самый стабильный программный рейд, но он блочный и не очень не гибкий. LVM сильно гибче, но не так тонко настраивается и мониторится, хотя используют одни подсистемы ядра. Btrfs стабилизируется в выпусках SLES, разве что, а zfs чужероден для linux. Блочные устройства желательно заворачивать в dm-integrity, через LUKS2, иначе при простом зеркалировании не всегда можно определить какие данные повреждены, а какие нет. В этом смысле raid-5 надежней, но сильно ресурсоемкий. Правда luks2 практически новинка. Если полный ro, то модно dm-verity использовать, но инструментов нет практически.

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

Своп

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

система будет на ssd.

Смысла мало. Можно разместить в группе hdd с резервированием с помощью lvm, а ssd под кэш чтения пустить, если памяти мало. В худшем случае, если правила неправильно настроишь, надо будет загрузится с чего-то и немного перестроить.

Резервировать еще загрузчики надо будет, обычно вручную.

anonymous ()

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

1. Имеют ли место быть ryzen в сборке? Что-то типа 2200 или подобное из низкоценового сегмента. Поидее должно быть более эффективно, чем селероны и прочие пентиумы. Но в Гугле мало информации и вообще идей собирать NAS на ryzen. Почему так? Может есть какие-то подводные камни?

У текущих ЦП от AMD (Ryzen/TR, насчёт EPYC неточно) есть аппаратый баг в реализации энергосбережения (C-states). В итоге ЦП рандомно локается. В интернетах можно всё найти. Поэтому, лично я воздержался, хотя хотел TR.

Что касается ЦП, то тут нужно исходить из задач. Например, я еще видео стримлю с железки, поэтому я брал интол с QSV (Quick Sync Video), который умеет оффлоадить на iGPU. Если нужен будет транскодинг (на лету), то нужен мощный проц, особенно для 4k. Ну и так далее.

2. Есть по сути 3 варианта фс:

ZFS любит память. Ну и обычно предлагается для кровавого энтерпрайза, хотя нет никакх проблем держать его дома. Основная проблема - нельзя расширять RAID (в идеале, надо копировать все данные в другое место, добавлять диски и пересоздавать заново). Поэтому, например, я остановился на ext4 + snapraid + mergerfs. Все работает отлично, за исключением того, что mergerfs (будучи fuse), любит ЦП при I/O.

3. Сколько брать GB оперативки

Опять же зависит от задач. ZFS, как я писал, любит память (особенно если включена дедупликация, там рекомендуется либо отключать ее, либо иметь минимум 32GiB памяти, насколько я помню). Я воткнул 16, но у меня редко бывает больше 2 занято. Но я не держу, например, десяток виртуалок (а кому-то надо).

4. Какой размер свопа обычно ставят для NAS?

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

5. Сама система будет на ssd. Никаких критических данных там не будет. Стоит ли покупать второй ssd для объединения в raid1 и восстановления системы в случае чего? Или если ssd полетит, то можно все так же raid с данными (на HDD)к новому ssd с системой прилепить без каких-либо проблем?

Основная ошибка, что многие думают, что RAID == backup. Это не так. RAID это для повышения отказоусточивости, когда надо, чтобы все работало 24/7 без остановок. В домашнем применении это редко бывает нужно. Всегда можно отключить сервачок на час или сутки. Так что, вместо SSD, лучше запилить бекапы системы.

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

Нафиг райзен, когда есть энергоэффективные холодные селероны за небольшие деньги. Нафиг рейд5, нафиг-нафиг. Либо 6, либо 6+спара, либо вообще мозг рейдами не морочить, делать копию на уровне ФС силами lvm, например. Покойный @kron73 исследовал тему потери данных. Данные теряются на больших объемах. UPS не спасет.

Своп - на 2 гб оперативки почти не лезет. На 1 гб лазило регулярно. Нагрузка у меня небольшая, один клиент читает-пишет асинхронно.

heilnull ()

Короче, селерона скайлэйка мне внезапно хватило на gitlab\nextcloud\torrents\kubernetes + docker\самописные сервисы и микросервисы. Работает на ура, но качественный трах с конфигами будет 100%.

1. Почему нет?! Селерон прибавил рублей 300-400 к счёту за месяц, думаю Ryzen 3 2200GE жрал бы меньше рублей на 100.

2. У меня 3 диска по 3тб объединены в raidz и доступно под файлы 6тб. ZFS восстанавливаться из снапшотов одно удовольствие, каждый раз когда кривыми руками ломал всю систему, то через пару минут получал рабочую систему из снапшота и это божественно. Написал на коленке поделку шоб снапшоты делались каждый день и не больше N дней хранились, на качество кода не смотрите одна из первых моих прог на русте. Но вроде есть готовые и нормальные решения, где-то проскакивало, но уже не помню.

3. 8Гб рекомендую, но у меня стоит 16 и занято 10 без нагрузки. Вот мой топ:

[CMD]          [MEM]
redis-server - 18.4%
clamd        - 4%
unicorn      - 3%
sidekiq      - 3%
nginx        - 2.8%
plex         - 1%
mysqd        - 1%
Всякие там memcached настроены на redis и по этому он так жрёт, но за-то всё летает.

4. Своп спорная тема, многие не ставят, лучше ОЗУ докинуть. У меня 4гб, в основном не используется:

$ swapon -s
Filename                                Type            Size    Used    Priority
/dev/zd0                                partition       4194300 0       -2

5. raid1 на SSD не вижу смысла, можно просто сделать бэкап системы для резервного восстановления на новом SSD.

к новому ssd с системой прилепить без каких-либо проблем?

На ZFS точно без проблем, на остальных не знаю.

Повторюсь, что никогда особо не сталкивался со сборкой/настройкой NAS

Не стоит покупать дорогие корпуса у которых есть возможность горячей замены дисков, при домашнем использовании залезать внутрь корпуса надо будет очень-очень редко. И маленькие корпуса - это боль, лучше на подоконник кинуть нормальный ATX корпус в котором без траха будут влазить 4-6 дисков.

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

Кстати. По поводу бага Ryzen лучше почитать, что пишут. И у меня память не ECC, работает месяцами норм, но поставил в крон ребут ночью и вообще не знаю боли и страдания.

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

И у меня память не ECC, работает месяцами норм, но поставил в крон ребут ночью и вообще не знаю боли и страдания.

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

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

И у меня память не ECC, работает месяцами норм, но поставил в
крон ребут ночью и вообще не знаю боли и страдания.


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

Получается самый правильный вариант, если исходить из задачи чисто nextcloud на много-много лет - какой-то lga 2011 проц, типа E5-2660, память ECC и файловая система, если планируется постепенное расширение в дальнейшем - не ZFS.

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

не ZFS

Правильно, Btrfs. Потому что только она и ZFS могут в контроль целостности данных. Правда стоит подумать - а нужно ли это всё? Годы идут, а я всё не вижу ни исправленных ошибок RAM, ни отловленных bit rot. Такое вот.

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

софтрэйд с нескольких дисков, ну и платформа с ЕСС. 2011 - хз, есть ли в них смысл при наличии райзенов (2011 дорого и горячо как-никак). самый младший атлон + мамка с ЕСС + ЕСС память - дешево и сердито.

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

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

Проще делать бекапы и не трястись из-за флапнутых битов, вероятность чего, если ты не держишь стойки с серваками, загруженные 24/7 - такая себе.

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

Проще делать бекапы и не трястись из-за флапнутых битов

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

Проще переплатить немного за мать+проц+память, чтобы, в случае форс-мажора не рвать волосы на заднице. А он придёт и обязательно в самый неподходящий момент.

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

мамка с ЕСС

Есть какие-то примеры мамки с ЕСС для 8 поколения селеронов по цене меньше, чем весь NAS выйдет?

Все, что нахожу по адекватным ценам:

- Supports ECC UDIMM memory modules (operate in non-ECC mode)

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

Это проблема, только когда ты записываешь данные в первый раз (например, копируешь по сети фильм или фотки). Насколько часто это случается у ТСа и, соответственно, какова вероятность повреждения данных - решать ТСу.

P.S. Я за свою практику с таким ни разу не сталкивался.

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

Ну если это промышленные серваки (всмысле, не дома под столом), то да - там ценность данных сильно выше, и вероятность bit rot тоже выше (из-за аптаймов, обхемов данных и условий эусплуатации). В этом случае проще перестраховаться и ставить ECC, что все провайдеры обычно и делают.

В случае домашнего сервака - каждый сам решает, насколько его данные ценны и какова вероятность потери. И готов ли он платить за ECC (сама память не сильно дороже, но нужен проц с ECC и мамка, что в итоге может превысить бюджет, хоть и не очень сильно). Поэтому не убеждая ТСа в том, что ECC не нужна, я предлагаю ему самомц оценить риски и свой бюджет и решить.

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

snapraid

Не могу понять, в чем смысл этой штуки?
Разве что если у тебя dvd или блюрей-диски. Ну или ещё какие-то ro-данные.

Потому что получается, если ты редактируешь или удаляешь любой файл на любом из дисков, вся избыточность превращается в тыкву, пока не сделаешь синк. И по-хорошему, это действие (редактирование/удаление) должно быть транзакционно. Т.е. прям как в нормальном raid (или zfs)

RAID это для повышения отказоусточивости, когда надо, чтобы все работало 24/7

и это, в отличие от обычных raid и zfs, не обеспечивается. Сначала придётся восстановить данные с уцелевших дисков, и только потом продолжать работу, когда degraded raid может продолжать работу действительно 24/7

TheAnonymous ★★★★★ ()

Ryzen не советую, советую xfs поверх mdamd рейда. И не рейд-5, он коварен до жути. Ещё и систему на рейд-1 советую, гемора меньше при восстановлении из бекапов.

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

ECC же. а на взрослых дисках (SAS) - еще и сквозной контроль четности (вместе с сектором пишется КС, рассчитанная SAS контроллером), хотя как по мне то это не так критично как ЕСС

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

загруженность/незагруженность на флапы битов не влияет от слова вообще.

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

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

для соплеронов - увы и ах, только серверные на чипсетах С-серии. пушо интел с своем репертуаре - анально огораживает любую мелочь лишь бы сбрить побольше бабла (и пофиг где контроллер памяти - раз компания бобра сказала «работать ЕСС может только на серверных/воркстейшн платах», хрен кто из вендоров ослушается).

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

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

вот таки у AMD с ЕСС все исторически хорошо и дешево, можно бомж-плату с младшим камнем взять - и там будет ЕСС (хоть и от вендора зависит). а интел - да, анально огорожен, потому для ЕСС - только серверную платформу, возможно - с помойки (б/у лга1155 сейчас за копейки платы идут, а соплероны какие туда - вообще чуть ли не по цене вторсырья)

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

У меня sync запускается по крону раз в сутки (ночью), так что потерять данные можно только за день. Если прям что-то очень важное, можно одной командой запустить.

Сначала придётся восстановить данные с уцелевших дисков, и только потом продолжать работу, когда degraded raid может продолжать работу действительно 24/7

Дома для меня не критично, если вдруг NAS встанет на пару суток, так что для меня не важно. А вообще, я писал это в общем, не касаясь конкретно snapraid или zfs или чего-то еще.

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

Я читал статьи на эту тему (ECC/nonECC и что брать для NAS) перед выбором железа. Среди прочих была интересная со статистикой, в которой говорилось, что ты либо сразу покупаешь битую память, либо она работает без проблем до конца эксплуатации, и что случаев, когда память билась бы в работе - единицы.

Я не утверждаю, что ECC не нужна, лишь просто говорю, что лично я, вззвесив все за и против, купил обычную. И до этого годами работал с обычной - и если данные бились, то из сбоивших дисков. С памятью проблем не было (она либо сразу не работала и вешалась, либо всегда работала).

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

вот таки у AMD с ЕСС все исторически хорошо и дешево, можно бомж-плату с младшим камнем взять - и там будет ЕСС

Можно, но я писал, что ryzen / tr корявые и локаются всремя от времени (от нескольких дней до месяца, судя по сообщениям владельцев). Так что тут либо старый amd брать (такое себе), либо ждать новый (где не факт, что пофиксят).

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

sync запускается по крону раз в сутки (ночью), так что потерять данные можно только за день

Это если данные у тебя только дописываются. А если ещё изменяются, если какой-то файл на одном диске удалить или перезаписать, сразу теряются (т.е. остаются без избыточности) данные на всех остальных дисках, которые соответствуют тому же parity, что и этот файл. Пока не сделаешь sync.

TheAnonymous ★★★★★ ()

Не интырпрайз). Объем до 10тб с возможностью расширения.

Вот же выдумщик. Возьми rockpi за копейки (50 USD), подключи NVMe напрямую, а HDD через USB3 и наслаждайся домашним NAS.

файлопомойка с редким чтением из нее. А иногда и в несколько потоков через 10gb порт

Зачем? Думаешь HDD тебе выдаст 10Gbit? В лучшем случае 2Gbit с RAID снимешь, а если в несколько потоков, то сразу на порядок меньше.

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

1TB = минимум столько же оперативки в GB. Как по мне многовато. И зачем столько? Что там висеть будет?

Часть файлов в память отзеркалится для кеша. Но это всё глупости. Если хочешь занять 10Gbit канал, то просто возьми NVMe на 1TB (надежный, а не китайщину) и с ним работай, туда и систему воткни. Ну и не забывай с NVMe дублировать файлы в RAID. Можно предварительно их архивировать, чтобы писать на HDD на максимуме.

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

Для тех, у кого РКН уже забанил иностранные инторнеты:

- Вот баг в багтрекере ведра: https://bugzilla.kernel.org/show_bug.cgi?id=196683

- Вот еррата от AMD (1109, 1033): https://developer.amd.com/wp-content/resources/55449_1.12.pdf

Ну и куча обсуждений гуглится по запросу «ryzen cpu lockup c-states»

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

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

не, если самое важное на тазике - коллекция с порнхаба, то пофиг конено.

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

и да, вы сами-то ссылки читали?

As I mention around Comment 485 and later (starting Jan 22), for us we have nearly the same computer and after setting BIOS to current idle as you did, all of our problems disappeared. Haven't messed with it since. That's 4 months of uptime, zero hangs, zero crashes.

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

Я читал очень много сылок где-то с пол-года назад, когда занимался вопросом. В итоге выяснилось, что кому-то помогали настройки bios и отключение c-states, а кому-то нет. В итоге, насколько я понял тогда, этот WAR так и не решает проблемы окончательно. Нет, если ТС хочет сыграть в рулетку, то я лично не против. Заодно нам потом расскажет.

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

Возможно, но я за много лет никогда с этим не сталкивался. Это на означает, что это невозможно, просто, видимо, вероятность очень мала. О чень я весь тред и говорю. И все-равно какие-то люди настаивают, что такое бывает. Да разве же я спорю? Люди и в лотерею, бывают, выигрывают, только вот билетики я на этом основании не покупаю.

maverik ★★ ()