Здравствуйте, дорогие друзья! Итак, сегодня мы продолжим серию статей про построение своего домашнего сервера с нуля. Эта статья станет заключительной из чисто "теоретических", в которой я буду Вам рассказывать ключевые моменты системных требований операционной системы ТруНас Скейл. Также сделаем беглый обзор этой ОС, чтобы понять, почему её стоит выбрать в качестве хостовой (или, наоборот, почему она может Вам не подойти).
По ходу статьи буду приводить ссылки на свои предыдущие выпуски, где содержится полезная информация.
Кратко о TrueNas Scale и возможностях этой операционной системы
Не стану глубоко вдаваться во все подробности, так как в интернете полным-полно видео и обзоров на эту операционную систему. Для себя могу выделить следующие преимущества TrueNAS Scale:
- Файловая система ZFS - на мой взгляд, самая отказоустойчивая файловая система (поспорить с этим может, пожалуй, лишь btrfs). Она позволяет организовывать рейд-массивы, минимизирует фрагментацию данных, практически самостоятельно следит за целостностью данных и позволяет их восстановить. А ещё предлагает "бесплатные" снапшоты (снимки файловой системы), дедупликацию (удаление повторяющихся данных), различный уровень компрессии датасетов (сжатия данных), и... Да много чего она предлагает! (Про снапшоты и дедупликацию мы ещё поговорим дальше по тексту.)
- Удобный, красивый, а также интуитивно понятный графический интерфейс администратора, в котором есть практически всё необходимое (галерею можно листать):
- Встроенный гипервизор KDE для запуска виртуальных машин.
- Большое количество встроенных сервисов (SMB, NFS, FTP, iSCSI, мониторинг SMART, SNMP, UPS-контроль).
Системные требования TrueNAS Scale
Но за всё в этой жизни придётся платить, поэтому нельзя не отметить обратную сторону медали: сам разработчик этой ОС (компания IX-Systems), рекомендует использовать оперативную память с коррекцией ошибок ECC, а сама файловая система ZFS достаточно требовательна к объёму оперативной памяти - из коробки система заберёт под свои нужды 50% доступного объёма ОЗУ (под LARC-кэш).
Производитель установил минимальные требования к железу:\
- 64-разрядный процессор
- Минимум 8Гб оперативной памяти
- Минимум 8Гб памяти на установочном носителе - туда будет установлена операционная система.
Сразу хочу прокомментировать, что лично я не рекомендовал бы использовать эту ОС при наличии ОЗУ меньше 16Гб, чтобы потом не кусать локти от низкого быстродействия и периодических зависонов, особенно если Вы планируете использовать свой сервер не просто в качестве файлохранилища, а доустановить туда NextCloud.
Можно ли отказаться от использования оперативной памяти с коррекцией ошибок ECC? Если данные, которые Вы планируете хранить на сервере, не имеют для Вас особой важности (например, только фильмы, скачанные через торрент), тогда можно. Если же Вы предъявляете требования к надёжности хранилища, - тоже можно обойтись без ECC, но я настоятельно не рекомендую это делать. Достаточно немало количество пользователей, которые потом сталкиваются с проблемами из-за ошибок ОЗУ, в результате чего данные повреждены навсегда.
На какой носитель установить систему?
Технически, возможность установить систему есть на любой носитель. Системе требуется не менее 8Гб свободного пространства. Но компания IX-Systems предупреждает, что устанавливать эту ОС на внешнюю USB-флешку - опасно, и я с ней полностью согласен. В нашем Телеграмм-чате, который посвящён этой операционной системе, периодически всплывают любители таких экспериментов.
Можно ли установить на HDD? Не стоит, потому что это будет очень медленно работать. Кроме того, операционная система занимает весь объём доступного пространства! То есть, даже если Вы возьмёте SSD-диск на 1 Тб, система его полностью поглотит и Вы не сможете там хранить данные и файлы. Да, есть способ "откусить" часть SSD-диска под систему, а остальное отдать под хранение файлов, но так делать я тоже не рекомендую.
Самым отличным решением, на самом деле, является покупка промышленной флешки SLC, которая подключается на материнскую плату напрямую в PLS-разъём:
Но стоят они дорого, найти их в продаже не просто, к тому же легко нарваться на контрафакт.
Я предлагаю устанавливать систему на SSD-диск небольшого объёма, а для подстраховки - в зеркало: по сути, будет организован рейд-массив из двух SSD. Если даже один диск вышел из строя, весь сервер продолжит работу. Сейчас у меня трудятся 2 диска Transcend на 120Гб каждый. Хочу заметить, что эти диски часто бывают бракованные, поэтому 1 по гарантии я уже поменял)
А на что будем устанавливать приложения и виртуальные машины?
Это уже можно делать на обычные жёсткие диски, но ряд приложений могут не запуститься из-за низкой скорости работы с хранилищем. Поэтому тоже разумно выбрать SSD, и тоже поставить в зеркало.
В моей сборке имеется два Samsung 870 EVO 1 Тб. И да, за полтора года работы сервера они уже "забились" на 70%. Если же Вы уверены, что Вам хватит "буквально парочки сервисов" и не требуется несколько виртуальных машин - можно взять объёмом поменьше.
Сколько же оперативной памяти лучше установить?
Повторюсь, я бы рекомендовал устанавливать не менее 16Гб ОЗУ с коррекцией ошибок, в идеале - от 32Гб. У меня же установлено 128Гб с коррекцией ошибок, но сервисов и данных у меня не мало. Учитывая, что 50% доступного объёма "съедает" LARC-кэш, остаётся не так уж и много.
Если не вдаваться в глубокие технические тонкости, то скажу, что LARC-кэш - это специальный кэш файловой системы ZFS. В него отправляются те данные, доступ к которым осуществляется чаще всего.
Это один из достоинств и одновременно недостатков этой файловой системы. С одной стороны, мы увеличиваем производительность за счёт оперативного доступа к часто запрашиваемым данным, с другой стороны, приходится дополнительно платить за оперативную память.
Вернёмся к ZFS и поговорим про снапшоты и дедупликацию
Снапшот - это снимок файловой системы, своего рода бэкап. Только вот бэкап - это полноценная копия данных, которая занимает место. Снапшот не занимает место до тех пор, пока состояние файловой системы не изменилось. Приведу пример:
Предположим, что в первый момент времени у нас было 6 файлов разного размера и мы сделали "снимок" файловой системы - снапшот. Он занимает 0 Мб (почти).
Затем мы удалили Файл5 размером 35 Мб. И вот как только мы его удалили, снапшот начал приобретать вес: теперь он весит 35 Мб, ровно столько, сколько весил удалённый файл. Если мы удалим все файлы (общий размер 150 МБ), то снапшот будет весить 150 Мб. И да, его мы потом тоже можем удалить.
Зачем это надо? А вот представьте себе, что у Вас есть виртуальная машина, внутри которой Вы настроили своё персональное облако NextCloud и сделали снапшот этой виртуальной машины. Затем Вы решили что-то улучшить, полезли в систему и всё сломали (такое часто бывает по неопытности). Что делать? Правильно, мы восстанавливаем состояние виртуальной машины из снапшота, словно ничего не произошло. Это лишь один простой пример полезности такого функционала.
Дедупликация - это алгоритм сжатия данных, принцип которого заключается в удалении повторяющихся блоков. Давайте сразу пример:
Предположим, что есть два пользователя (муж и жена), у которых настроена автоматическая синхронизация смартфонов с сервером, и все фотографии с телефона летят в облачное хранилище. Помимо фото с камеры, синхронизируются также фотографии из WhatsApp (допустим). Допустим, супругу в WhatsApp`е прислали много семейных фотографий родители, которыми он делится со своей женой. По итогу, у каждого из них в телефоне есть одна и та же фотография, которая будет загружена на сервер.
Благодаря дедупликации, каждая копия (дубль) файла будет удалена физически из хранилища, ещё на этапе сопоставления хэш-сумм, и место на диске будет использоваться рационально. Пользователь не заметит "отсутствия" одного файла, для него всё выглядит так, будто у каждого есть свой экземпляр этого самого фото.
Но для дедупликации также требуется большой объём оперативной памяти.
Заключение
Итак, TrueNas Scale - это очень удобная и мощная операционная система для Вашего домашнего сервера, обладающая рядом достоинств, главным из которых является файловая система ZFS.
Если Вы планируете использовать свой сервер "на минималках", будет достаточно 8Гб оперативной памяти. Если же хочется применять дедупликацию, развернуть своё хранилище на 20+Тб данных, запустить NextCloud и прочие полезные сервисы, оперативной памяти должно быть не менее 64Гб.
В отношении ZFS можно утверждать, что чем больше ОЗУ - тем лучше, потому как 50% памяти будет сразу утилизировано LARC - кэшем файловой системы ZFS.
Устанавливать TrueNas Scale я рекомендую на промышленные флешки SLC, либо на зеркало из двух SSD-дисков небольшого объёма. Под приложения и виртуальные машины разумно также выделить зеркало из пары SSD объёмом от 256Гб (у меня 1Тб). Всё остальное будет храниться на жёстких дисках.
На этом у меня всё, а в следующей статье мы перейдём к установке операционной системы TrueNas Scale. Подпишитесь на канал, чтобы не пропустить новые выпуски!