Часть 1 - Операционная система
Часть 2 - Преимущества
Часть 3 - Преимущества (+)
Часть 4 - Установка
Часть 5 - Настройка
Часть 6 - Установка дополнительного ПО
Часть 2. - Преимущества FreeBSD
Небольшой комментарий к тому, что будет написано ниже:
1. FreeBSD, ведёт историю из unix - это вариант unix ветки BSD, а Linux же разрабатывалась, как unix-подобная ОС - с чистого листа и не имеет в себе кода изначальной unix. Многое, что говорится о преимуществах FreeBSD перед Windows, присуще и Linux, так как они в общем имеют одинаковые подходы к работе и работе в ней пользователя, но, и ниже я об этом скажу, FreeBSD имеет и преимущества и перед Linux.
2. Linux и FreeBSD для пользователя скорее союзники, чем конкуренты и совместно должны противостоять Windows в борьбе за место на наших "рабочих столах"... :)
Итак...
0. FreeBSD - полностью бесплатна и не имеет ограничений для использования и количеств инсталляций одного дистрибутива. Не имеет никаких серийных номеров и "лицензионных ключей", как в самой ОС, так и в ПО, которое распространяется для этой ОС в официальных репозиториях. Вам ничего не нужно оплатить за использование FreeBSD (кроме доступа в Интернет) или ПО, (кроме добровольных пожертвований авторам ОС или ПО). И, никто вам не скажет "фи", если вы не делаете пожертвований и не наложит никаких ограничений. При этом вы всегда можете обратиться за помощью к разработчикам или комюнити на форумах и других ресурсах и вам наверняка ответят и помогут, если, конечно, у адресата будет время на ответ... всё-таки пользователей значительно больше, чем разработчиков ПО и ОС. Ну это понятно... Тем более, что сейчас есть Интернет и всегда можно сделать соответствующий запрос на интересующую тему в поисковиках...
1. Нетребовательность к ресурсам - ОС может, реально может (а не как у MS - запуститься и тупить, и показывать картинку и бесконечно перебирать что-то на HDD) работать, даже на минимальных техсредствах: она установится и на 256Мб ОЗУ и на диск 1Гб... Конечно, комфорта для работы будет мало, но она будет полностью работоспособна и всегда можно будет подобрать ПО, которое позволит работать - выбор очень большой, а иногда для определённых задач, большего и не надо. Например, ваш старенький валяющийся на балконе "Пентиум4 с 512Мб ОЗУ и диском на (страшно подумать!) на 2Гб" c FreeBSD настроенной соответствующим образом, вполне справится с ролью wi-fi роутера или маршрутизатора домашней сети... В отличие от Windows 10, работа которой с обычного HDD уже имеет существенные ограничения по скорости, а Windows 11 прямо требует наличие SSD, как системного. Установка Windows 11 на обычный HDD и вовсе запрещена.
2. FreeBSD практически, если "железо" исправно, не подвержена падениям: FreeBSD может работать годами без перезагрузок. Правда при условии, что вы не хотите и не будете вносить обновления в ядро ОС, хотя, если у вас части ядра загружены, как модули, то и тут можно обойтись без перезагрузки. Правда это не совсем хорошая практика - так или иначе, а ошибки в ПО бывают, их исправляют и без обновлений трудно иметь гарантированную непробиваемость и устойчивость, но иногда бывают задачи, когда работа годами вполне возможна... Например, файловый сервер в локальной сети без выхода в Интернет - это вполне задача на годы - было бы дисковое пространство в нужном количестве... (хотя применяя zfs и hot-plug HDD можно добавить дисковое пространство без проблем на любое количество без остановки ОС).
3. Отсутствие потерь в файловой системе, если диск не имеет физических проблем, даже при наличии их и использовании файловой системы zfs + raid - вы будете иметь ваши данные в сохранности. На файловой системе ufs так же сохранность данных гарантирована при разумном подходе, при неразумном (выдернули шнур питания из розетки) потери будут минимальны (на Linux с ext4, к примеру, подобное при определённых условиях может привести к фатальным результатам), а при наличии зеркалирования или "железного" (в виде отдельной платы расширения или отдельного устройства интегрированного в материнскую плату не входящего в чипсет) raid массива, потерь не будет. Кстати, о Windows, что есть удачного в Windows - это файловая система ntfs - это действительно надёжная файловая система - потерь данных практически не бывает, но... это даётся не так просто с точки зрения потребляемых ресурсов - ntfs один из источников медленной работы этой ОС, но об этом как-нибудь в следующий раз.
4. Файловая система zfs. Относительно новая и сейчас является основной файловой системой FreeBSD, по умолчанию. Она пришла в мир BSD из Solaris (из проекта OpenSolaris - сейчас проект закрыт). Оригинальная Solaris перешла в руки Oracle. Очень хорошая ОС со своей героической историей, когда-то, она была ещё SunOS, имеет частично своё происхождение из BSD. Начиная с Solaris 8.0 была переведена на код в стиле system5.
zfs - это бриллиант в мире файловых систем. На мой взгляд zfs - это гениальное изобретение! Даже краткое перечисление достоинств впечатляет:
- размер самой файловой системы 256 ZB (зеттабайт) или 256,000,000,000 TB - 256 триллионов терабайт)
- максимальный размер файла 18.446 EB (эксабайт) или 18,446,700 TB - 18 миллионов терабайт.
Много, что ещё самое самое, но остальное не так интересно.
Что дают эти заложенные параметры? А собственно вот что: в ОДИН файл на этой файловой системе можно записать ВСЮ имеющуюся у человечества информацию на данный момент! И ещё останется место! И если попытаться сделать на современных, существующих технологиях, устройство, позволяющее полностью реализовать возможности этой файловой системы, то (ещё раз: на самых современных на сегодня 20-х годов XXI века технологиях) получится устройство размером с АФРИКУ. Зачем такие возможности, если они никогда не могут быть достигнуты в обозримом будущем? Всё развивается довольно быстро, кто знает, как будет дальше? Когда-то один известный в IT человек сказал, что "640Кб хватит всем и надолго...". Как оказалось на практике: и мало, и ненадолго. Когда-то, к примеру в середине 70-х XX века, суперкомпьютеры имели 16кб (не гигабайт и даже не мегабайт!) ОЗУ, а жёсткий диск компьютера в 40Мб (повторяю: не 40Гигабайт, а именно 40Мегабайт) казался практически бесконечным! Так, что ничего избыточного в этом вопросе нет и на второй, и даже на третий взгляд - это скорее предусмотрительность. Тем более сколько раз натыкались на различные ограничения в технологиях, которые получили широкое распространение, но в которые были заложены некие ограничения, казавшиеся на тот момент совершенно избыточными? Есть очень характерный пример (один про 640кб выше привёл). Вот такой пример таких ограничений...
Как закладывались основы Интернет (вернее IP-сетей на основе, которых построен Интернет): максимальное количество адресов IP 2^32 = 4 294 967 296. Более 4-х миллиардов адресов. Много? Немало: 4 миллиарда с лишним устройств в 70-х каждому человеку по устройству, включая младенцев. Тогда в далёких 70-х годах - это число адресов казалось совершенно избыточным. Тем более, что такие сети собирались строить объединяя по-сути суперкомпьютеры и различные большие дата-центры - никто тогда не предполагал, что по-сути любая "кофемолка" будет содержать процессор, который, тогда даже не все суперкомпьютеры могли себе позволить. А сейчас? Вот уже много лет мы имеем полностью исчерпанное адресное пространство IPv4. Все адреса распределены и имеют своих владельцев и новых адресов в IPv4 уже не будет! Пришлось искать выход и разрабатывать новый стандарт: IPv6, где количество адресов, кажется сейчас очень огромным и составляет 2^128≈3,4•10^38. Хватит надолго?.. Наверное... Пока не подойдём к освоению всей обозреваемой Вселенной - нам точно (точно?) хватит надолго. На Земле хватит. А потом, видимо придётся вводить другой протокол, а может быть это случиться и раньше... А вот, если бы сразу в 70-х ввели IP-протокол аналогичный IPv6, то не имели бы сейчас проблем с его внедрением, а это оказалось совсем не так просто - переход на IPv6 идёт уже 27 лет (на 2023) (разработан в 1996-м) и сейчас только около 30% трафика Интернет идёт в IPv6... Так, что не всё так просто (по-правде сказать не настолько этот новый стандарт оказался хорошим. Недостатки у него есть и они не в последнюю очередь сказываются на внедрении). Тогда в 1970-х вычислительные средства были не так уж и большими, упор, как я говорил выше, делался на майнфреймы о персональных компьютерах даже особых разговоров не было и максимум, что планировалось для дома - это личный терминал подключённый к майнфрейму. Про телефоны, что у каждого теперь в кармане - а это 10-ть тогдашних майнфреймов по суммарной мощности, вообще даже не мечтали и ни в какой интернет их пускать не собирались (какие ещё телефоны в интернет? зачем?). Да и собственно по вычислительным затратам IPv6 был бы, тогда непростым, как минимум на тогдашних маломощных устройствах... Это сейчас не проблема для этого есть специальные DSP шуршат по-тихому в роутерах никто их натуг не замечает, а тогда расчёт тех же таблиц маршрутизации был не такой уж и быстрой задачей даже для IPv4. К примеру, математические вычисления системы уравнений не очень сложной студенческой работы могло занимать несколько часов... Или вот пример из сегодняшнего дня: восстановление одного кадра видео MPEG4 не очень качественного видео, размером 1920х1080, на типичной супер-ЭВМ 70-х заняло бы несколько минут, если не десятки... а сейчас вы задумываетесь, как это делает ваш смартфон? Ваш смартфон в сотни тысячи раз быстрее майнфрейма 70-х и даже 90-х. А, где бы хранились бы эти 5-9Гб или 30Гб фильма в 4к? Тогда супер-ЭВМ, в лучшем случае имели HDD, страшно подумать, гигантский размер 200-300Mb и это на целый университет! Самый мощный (ну может не самый, но один из) на 1976 год, если мне не изменяет склероз, супер-компьютер Cray-1 имел такие характеристики:
- CPU 64-bit processor @ 80 MHz,
- ОЗУ 8Mb,
- "HDD" (ну не совсем в нашем понимании - скорее долговременное устройство хранения данных) как раз те самые 300Mb !
Это суперкомпьютер, стоивший примерно 10 миллионов долларов! (учтите ещё и инфляцию! на сегодня это, примерно 50)
Так, что если бы было другое решение для IP сетей, то даже для маршрутизаторов вычислительная работа по обеспечению работы сетей была бы существенной. А у нас сегодня в кофе-машине или микроволновке стоит по-сути супер-компьютер 70-х... И это теперь понятно, "как надо было". Никто не думал тогда, что устройств в сети будет такое огромное количество: от персональных компьютеров, телефонов, микроволновок и холодильников, телевизоров, ошейников для собак, органайзеров, электрических книг, умных часов и автомобилей, навигаторов, камер наблюдения и чёрте_знает_чего_ещё... Так, что количество устройств возможных в IPv6 уже не кажется таким большим... А ведь на носу и непросто микроэлектроника, а уже и наноэлектроника - осталось совсем не так много времени на самом деле. Скоро и нынешние супер-компьютеры будут казаться огромными...
Так, что запредельные, по нашим современным меркам, параметры zfs - это очень про запас. Помимо этого у zfs есть много интересных свойств. Как вам, например, такое свойство, как свободное присоединение дискового пространства другого устройства к существующему? Это безусловно понравится и обычным пользователям. Создаётся пул файловой системы, типа stripe - объединение, из одного диска и, как только вы поняли, что в системе стало мало свободного места на диске, то покупаете новый и добавляете его к существующему пулу и ваш пул увеличится на размер купленного диска. Как? А примерно так: у вас в системе один HDD - предварительно был создан пул типа stripe (работаем в командной строке):
# zpool create mypool stripe /dev/ada0p3
Какое-то время компьютер работает, потом ощутили нехватку свободного пространства. Покупаете новый диск. Устанавливаете его в системный блок и этот второй HDD (или его раздел), добавляете к существующему пулу:
# zpool add mypool /dev/ada2p3
И всё! К вашему, например 512Gb пулу из двух дисков добавится объём нового 1Tb третьего диска. Удобно? Конечно.
Можно поступить и иначе... в примере выше создаётся тип stripe (объединение) - вы получаете максимум пространства... но (как всегда) поломка даже одного физического диска приведёт к потере всех данных и восстановить будет невозможно. Поэтому для критических данных или важного архива разумнее немного пожертвовать свободным объёмом на резервирование информации - и авария одного или даже двух дисков не приведёт к потере данных... Что для этого предлагается? Организовать дисковый массив с избыточным резервированием, тот самый raid - массив.
Самый простой это mirror - зеркало: по-сути дублирование данных одного диска на другом.
Создание пула:
# zpool create mypool mirror /dev/ada0 /dev/ada1
создаст из двух дисков зеркальный массив, то есть раздел ada0 будет полностью повторяться на ada1 и выход одного диска из строя например ada1 совершенно не затронет данные на ada0. Да, вы при такой организации два диска по 512Гб и один из них полностью теряете: размер одного диска будет потрачен на резервирование, но нужно выбирать: или потеря данных или большой размер хранимых данных.
В zfs типы пулов могут быть:
- stripe - любое количество дисков. stripe (объединение) используется всё пространство дисков; увеличение производительности аналогично RAID0 - но низкая надежность - до уровня надёжности любого физического диска, вся информация теряется при аварии любого из дисков.
- mirror - высокая производительность - не хуже чем один диск и надежность, но половина объема уходит на резервирование, при потере одного диска вы не теряете информацию.
- raidz1 - требуется минимум 3 диска. Экономное использование дискового пространства при обеспечении избыточности, некоторое снижение производительности по сравнению с mirror, но снижение всего на 2-4% и то, если будете записывать большое количество мелких файлов, при работе с большими файлами производительность практически не снижается и даже может быть выше, чем скорость одного диска - данные могут распараллеливаться на разные диски, что повысит скорость обмена данными. При аварии одного из дисков и его извлечении - вы сможете продолжить работу с данными, как ни в чём не бывало на оставшихся двух (скорость снизится). После замены аварийного диска - полностью восстановится вся структура данных.
- raidz2 - минимум 5 дисков. Высокая надежность, расчёты показывают, что более высокая, чем у зеркала - и если вы и потеряете данные, то не из-за выхода дисков из строя, а например если кто-то прострелит ваш системный блок из пулемёта :). 2 диска уходят на избыточность. Потеря любых двух дисков не приведёт к потере информации. (аналог RAID6)
- raidz3 - минимум 7 дисков. Параноидальная надежность, излишняя практически всегда. Повреждение маловероятно - разве, что опять же по причине пулемётной очереди. 3 диска на избыточность. Соответственно потеря любых трёх не приводит к фатальным последствиям.
Вообще zfs оперирует всегда с фактически виртуальным, если можно так сказать диском, который называется пул (pool). Пул может состоять из физических дисков, либо его разделов, просто из файлов в другой файловой системе - zfs всё равно какое это устройство - файловая система существует как пул, то есть достигается полная абстракция от физического носителя, что очень хорошо - данной файловой системе не принципиально, как организован физически элемент файловой системы - операционная система будет видеть только пул, который и будет восприниматься, как физический носитель.
Далее в следующей части о командах и действиях для создания этой файловой системы.