10 октября 2016 года на официальном сайте был анонсирован релиз очередной (11-й) версии популярной unix системы. Я решил написать подробную инструкцию с видео по двум вариантам установки Freebsd 11 — на одиночный диск и raid1 в виде mirror пула zfs. Давно внимательно не смотрел на эту систему, решил подробно все описать и посмотреть, что в ней изменилось за последнее время.
Введение
Я рассмотрю 2 варианта установки:
- Обычный, на одиночный жесткий диск. Такая конфигурация подойдет для виртуальной машины, где резервирование обеспечивается на уровне бэкапа всей виртуальной машины, без необходимости резервирования на уровне жесткого диска.
- Второй вариант — установка на программный raid1, который реализован в виде зеркального пула на zfs. Freebsd уже давно дружит с zfs. Я ставил на нее систему, если не ошибаюсь, 8-й версии. В то время приходилось все делать вручную, сейчас же я увидел, что есть возможность установить freebsd на zfs с помощью стандартного установщика в автоматическом режиме. Такая установка подойдет для разворачивания системе на реальном железе.
Принципиальных изменений в установке, по сравнению с предыдущей 10-й версией я не увидел, поэтому не буду подробно разбирать все этапы, как я это делал в статье про установку freebsd 10. Постараюсь более кратко написать, акцентируя внимание только в ключевых местах. Тем не менее, это руководство по установке с нуля подойдет для новичков, или, как говорится, чайников. Все рассказано простым и доступным языком.
Скачать нужный образ freebsd
Перед установкой надо определиться, какой образ скачать. Я составил кратенькую таблицу с описанием всех типов образов Freebsd 11 для платформы x64, которые можно скачать. Ссылки привел на Yandex.Mirror, предпочитаю с него все качать, так как быстро и удобно.
Имя образа | Описание | Скачать образ |
---|---|---|
bootonly | Минимальный образ по размеру. Чтобы установить с него систему, необходимо подключение к интернету во время установки. | bootonly.iso 285M |
disc1 | Основная система и базовый набор программ есть на диске. Можно установить без подключения к сети. Я пользуюсь обычно этим образом. | disc1.iso 656M |
dvd1 | Максимальный образ. В него входят помимо системы, пакеты программ. Что за пакеты и какой их список я не знаю, никогда не пользовался этим образом. Все, что необходимо, после установки ставлю через интернет. | dvd1.iso 3G |
memstick | Стандартный образ для установки с флешки, аналог disc1. | memstick.img 700M |
В дальнейшем повествовании я буду использовать образ disc1 как наиболее удобный и универсальный.
Стандартная установка
Начнем с нуля установку Freebsd 11 на одиночный жесткий диск. Вставляем iso образ в автозагрузку и загружаемся с диска. Нас встречает традиционное окно приветствия с тремя вариантами продолжения:
- Install — начать установку системы.
- Shell — перейти в консоль.
- Live CD — загрузиться в режиме Live CD.
Выбираем установку. На следующем этапе будет предложено выбрать раскладку. Чаще всего достаточно стандартной, так что ничего не меняем, а идем дальше со стандартной раскладкой.
Дальше нужно будет указать имя новой freebsd системы. Назвать можете как угодно, это не принципиально. В случае необходимости, это имя можно будет сменить после установки.
Теперь выбираем компоненты, которые будут установлены. Я обычно ничего не ставлю, кроме lib32. Все, что нужно, можно потом установить последней версии из интернета.
На следующем этапе выбираем разбивку жесткого диска. Можно вручную указать все необходимые разделы, выбрать размер и т.д. Я обычно этого не делаю и все устанавливаю на одном корневом разделе. Давно уже так поступаю на всех системах и не вижу в этом никаких проблем. Наиболее частая рекомендация — вынести в отдельный раздел все логи, чтобы случайно заполнив все свободное место они не повесили сервер. На практике у меня такого ни разу не было, поэтому считаю лишним каждый раз возиться с разделами ради очень условного удобства. Правда есть нюанс — у меня на всех серверах всегда настроен мониторинг свободного места на жестком диске. Так что я успеваю оперативно среагировать на проблемы со свободным местом. Ну и слежу за ротацией логов само собой, не оставляю их расти до больших размеров.
Так что выбираем первый пункт — Auto (UFS). Установку freebsd 11 на zfs мы рассмотрим позже.
Дальше у вас спросят, хотите ли вы занять все свободное место жесткого диска под систему. Если это так, а обычно это так, то соглашайтесь. На следующем этапе указываем таблицу разделов. Я выбираю GPT:
Проверяйте предложенную схему разбивки диска. Если все устраивает, то жмите Finish и согласитесь с применением изменений, начнется установка базовой системы.
Длится она буквально несколько минут. Чистая система ставится очень быстро. По ходу дела будет предложено указать пароль для root. Сделайте это. Далее нужно будет выбрать сетевой интерфейс для настройки.
Если у вас их несколько, то выберите тот, который вы хотите настроить для доступа к сети. После выбора интерфейса нужно будет согласиться с настройкой ip адреса на нем. Дальше я выбираю получить настройки по DHCP. Так проще всего. Если вам нужно вручную указать ip адрес, то откажитесь от dhcp и введите сетевые параметры вручную.
После этого нужно будет указать адрес dns сервера, предварительно отказавшись от ipv6. Если вы получили настройки по dhcp, то адрес уже будет заполнен, нужно будет только подтвердить его. Если настройки вручную указывали, введи сами dns сервер.
Теперь выбираем часовой пояс, дату и время. Ничего сложного нет, скриншоты приводить не буду. Если дата и время указаны верно, то просто выбирайте Skip, если есть расхождения, вручную укажите правильные. Это, кстати, нововведение в 11-й версии. Раньше такого календаря и часов не было.
Установка движется к завершению. Нужно указать, какие службы вы хотите запускать автоматически при загрузке системы. Обязательно укажите sshd, чтобы подключаться к серверу удаленно, еще ntpd не помешает. Остальное на ваше усмотрение, я больше ничего не указываю. dumped стоит по-умолчанию, пусть останется.
На следующем этапе нам предлагается выбрать некоторые параметры безопасности. Я не знаком подробно с этой темой, не разбирался, но по названиям вижу, что вещи весьма полезные. Можно и включить. Тут на ваше усмотрение. Хуже не будет, но и чего-то особенно тоже не ждите. Все эти настройки можно и позже сделать.
На заключительном этапе вам будет предложено добавить пользователей в систему. Если вы этого не сделаете, то не сможете подключиться по ssh к серверу. По-умолчанию в freebsd пользователю root запрещено подключаться по ssh. Это можно исправить только зайдя локально рутом и отредактировав настройки ssh. Так что создайте хотя бы одного пользователя и добавьте его в группу wheel, чтобы можно было подключиться по ssh и сделать su для получения root доступа.
Дальше выбирайте Exit, перезагружайте систему и вынимайте загрузочный диск.
Вы должны загрузиться в свежеустановленной системе Freebsd 11. На этом базовая установка закончена.
Установка на raid1
Выполним ту же самую установку, только на программный raid1. У вас должен быть сервер с минимум 2-мя жесткими дисками. Доходим до пункта, где нужно выбрать разбивку диска и выбираем Auto (ZFS).
В строке Pool Type/Disks выбираем mirror.
И указывайте оба ваших диска:
Дальше выбираете первый пункт Install и продолжаете стандартную установку. Система встала на zfs pool в виде зеркала.
Проверка отказоустойчивости zpool
После завершения установки можно проверить как работает отказоустойчивость. Давайте посмотрим статус пула, когда все в порядке и работают оба диска:
# zpool status -v pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 da0p3 ONLINE 0 0 0 da1p3 ONLINE 0 0 0 errors: No known data errors
Оба диска на месте. Теперь выключим сервер и вынем один из дисков. Посмотрим, как поведет себя сервер.
# zpool status -v pool: zroot state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://illumos.org/msg/ZFS-8000-2Q scan: none requested config: NAME STATE READ WRITE CKSUM zroot DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 2081140553640658652 UNAVAIL 0 0 0 was /dev/da0p3 da0p3 ONLINE 0 0 0 errors: No known data errors
Как видно, диска нет, но система благополучно загрузилась и нормально работает. Если мы вернем этот же диск на место и перезагрузимся, то все станет в порядке, никаких лишних движений делать не надо. Но представим, что у нас диск вышел из строя и нам надо установить новый. Вставляем новый чистый диск в сервер и загружаемся. Новый диск получил то же название, что и вышедший из строя — /dev/da0. Разделов на нем нет.
Первым делом отправляем сбойный диск в offline:
# zpool offline zroot da0p3
Пул теперь в таком состоянии:
# zpool status -v pool: zroot state: DEGRADED status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: none requested config: NAME STATE READ WRITE CKSUM zroot DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 2081140553640658652 OFFLINE 0 0 0 was /dev/da0p3 da1p3 ONLINE 0 0 0 errors: No known data errors
Скопируем таблицу разделов с живого диска на новый. Посмотрим для начала на нее:
# gpart show => 40 20971440 da1 GPT (10G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 16773120 3 freebsd-zfs (8.0G) 20969472 2008 - free - (1.0M)
Создаем такую же таблицу на новом диске, скопировав ее со старого:
# gpart backup da1 > /root/da1.backup # gpart restore da0 < /root/da1.backup
Смотрим, что получилось:
# gpart show => 40 20971440 da1 GPT (10G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 16773120 3 freebsd-zfs (8.0G) 20969472 2008 - free - (1.0M) => 40 20971440 da0 GPT (10G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 16773120 3 freebsd-zfs (8.0G) 20969472 2008 - free - (1.0M)
То, что надо. Запишем на новый диск загрузчик:
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0 partcode written to da0p1 bootcode written to da0
Говорим пулу, что мы меняем жесткий диск:
# zpool replace zroot /dev/da0p3 Make sure to wait until resilver is done before rebooting. If you boot from pool 'zroot', you may need to update boot code on newly attached disk '/dev/da0p3'. Assuming you use GPT partitioning and 'da0' is your new boot disk you may use the following command: gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
Умный zpool сам нам напомнил, чтобы мы не забыли про загрузчик. После замены диска быстро прошел resilver (синхронизация) и пул перешел в состояние ONLINE
# zpool status -v pool: zroot state: ONLINE scan: resilvered 532M in 0h0m with 0 errors on Sat Oct 15 01:29:49 2016 config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 da0p3 ONLINE 0 0 0 da1p3 ONLINE 0 0 0 errors: No known data errors
При желании можно теперь вынуть старый диск и убедиться, что с нового система нормально загружается. Я это сделал и убедился.
Заключение
Закончили установку. Можно сделать базовую настройку freebsd. Вся информация в статье актуальна для 11-й версии.
Получилось не только про установку, но и про zfs немного, о том, как заменить сбойный диск в случае выхода из строя. Я всегда обращаю внимание на такие вещи, как отказоустойчивость на уровне дисков. Без этого систему не ставлю. Обязательно должен быть рейд либо программный, либо аппаратный. Я в своей работе постоянно сталкиваюсь с поломками жестких дисков, так что для меня это будни 🙂 Даже бэкапа не достаточно в таком случае. Даже если есть бэкап, то работы по замене системы занимают слишком много времени, а если ты в основном работаешь удаленно, тебе еще и ехать придется, чтобы что-то заменить. Это не мой вариант.
Freebsd 11 понравилась простой и быстрой установкой на raid1. Думаю, эта возможность появилась раньше, я просто не проверял. Решил посмотреть на 11-й версии. В целом, все понравилась. В отличие от Debian, голая система ставится на глаз раз в 5-7 быстрее и раза в 3 быстрее CentOS. Надеюсь, что система и дальше будет развиваться и радовать нас новыми версиями и возможностями.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.
Дополнительные материалы по Freebsd
Рекомендую полезные материалы по Freebsd: |
Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик.
Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности.
Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления.
Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop.
Подробная настройка на Freebsd прокси сервера squid + sams2 — панели управления для удобного администрирования.
Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache.
Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента.
|