Задача: Установка сервера с операционной системой FreeBSD 11.00 Release на ZFS для сервера резервного копирования.
Решил попробовать ZFS на реальном сервере. В 11 версии FreeBSD уже содержится встроенная поддержка установки на ZFS.
ОЗУ 4 GB. 2 жестких диска SATA 2 штуки по 1Tb. Систему решил поставить используя зеркалирование.
Содержание
Подготовка к установке FreeBSD 11.0
Сначала необходимо подготовить загрузочный носитель. Это может быть флэшка, CD-диск или DVD-диск. Также можно установить операционную систему FreeBSD через сетевую установку, но для этого придется сначала создать сервер для загрузки по сети.
Скачиваем необходимый дистрибутив с официального сайта проекта Анонс релиза FreeBSD 11.0.
Сервер для загрузки дистрибутива ОС. Вам необходимо скачать нужный файл. Учтите, что если у вас сервер не поддерживает 64х битную архитектуру, то скачиваете файл содержащий i386 в названии, например FreeBSD-11.0-RELEASE-i386-bootonly.iso. Если ваш сервер более менее современный, то рекомендуется устанавливать дистрибутив содержащий в названии amd64 (слово amd не говорит, что это процессор AMD, т.е. устанавливается и на процессоры INTEL), также есть дистрибутивы для других архитектур, но они используются очень редко. Если вы ничего не поняли про архитектуры и процессоры, то выбирайте выделенный жирным шрифтом файл, скорее всего он вам и нужен :-)
Для установки на флэшку скачиваем файл: FreeBSD-11.0-RELEASE-amd64-memstick.img
Для установки с CD-диска: FreeBSD-11.0-RELEASE-amd64-disc1.iso
Для установки с DVD-диска: FreeBSD-11.0-RELEASE-amd64-dvd1.iso
Если вы используете Windows, то записать можно щелкнув на скачанном файле правой кнопкой мышки и вызвав контекстное меню выбрать в нем пункт меню «Записать образ диска».
Для записи образа на флэшку, придется скачать специальную программу и записать с помощью нее этот образ на диск. Это необходимо, чтобы флэшка стала загрузочной. Наиболее популярная программа Win32 Disk Imager: бесплатная, без лишних наворотов и не требует установки. Запускаем ее выбираем скачанный образ, выбираем имя диска с вставленной флэшкой и нажимаем Write. Все готово!
Кстати после того, как вы установили FreeBSD с флэшки, вставив ее обратно в компьютер с Windows, вы не сможете ни отформатировать ее средствами Windows, ни нормально ее использовать. Для того, чтобы ее переоформатировать придется использовать специальную программу, например RUFUS. Ничего страшного в этом нет, просто имейте ввиду.
На моем сервере не пошла загрузка с флэшки, хотя версия FreeBSD 9.3 загружается. Пришлось записывать DVD-диск и подсоединять внешний DVD-привод, т.к. в сервере не было DVD-ROMa. Естественно в BIOS необходимо выбрать первым устройством то устройство, с которого вы будете производить установку системы. Вход в BIOS у всех компьютеров по разному, на моем сервере через клавишу F2 (у вас может быть F1, F10, Del)
Если загрузка с диска или флэшки благополучно пошла, то после того как пробегут разные буковки, вы увидите следующее меню.
Установка FreeBSD 11.0
Рекомендую для серверов использовать статические адреса. Например как на этой картинке. Обычно 192.168.0.1 или что нибудь в таком же духе. У меня немного по другому, суть не меняется. Не забудьте прописать ваш шлюз по умолчанию.
Затем Россию, а еще говорят Россия не входит в Европу :-) Еще как входит.
Здесь есть различные параметры:
- Скрывать запущенные процессы других пользователей
- Скрывать запущенные процессы других групп пользователей
- Запретить чтение сообщений ядра непривилегированным пользователям
- Запрещать отладку непривилегированным пользователям
- Случайный PID новым процессам (номер процесса случайным образом)
- Вставлять защищенную страницу памяти в расширяемых сегментах
- Удалять временные файлы при старте системы
- Запретить Syslog
- Запретить запуск почтового сервиса
Ну вот и все, поздравляю! У меня прошло где то 18 мин, с учетом того, что мне приходилось еще все это дело фотографировать.
Вы установили FreeBSD 11.0. Теперь начинается самое интересное, вы узнаете много нового и полезного — эта бесплатная надежная операционная система сначала украдет у вас много времени на ее изучение, зато потом сэкономит много времени на ее администрирование!
Вам очень пригодится подробная документация по FreeBSD на английском языке, также есть на русском, но она не всегда поспевает за новыми версиями. Настоятельно рекомендую читать английскую :-)
Конфигурация моего сервера
Настройка Legacy в BIOS (это скриншот с аналогичного сервера с другими жесткими, суть та же)
Начальная подготовка к работе с системой FreeBSD
Дальше несколько манипуляций, объяснение здесь : https://www.andrewblog.ru/freebsd-10-3-ustanovka-shlyuza-na-staryj-server-hp-proliant-g3/
# portsnap fetch (обновляем порты) # portsnap extract (распаковываем их) # cd /usr/ports/ports-mgmt/portmaster && make install clean (устанавливаем portmaster для работы с портами) # portmaster -PP ru-freebsd-doc (документация по умолчанию в каталог /usr/share/doc, не обязательно) # portmaster /usr/ports/misc/mc (устанавливаем Midnight Commander) # drill ya.ru (проверяем DNS)
Русификация консоли во FreeBSD 11.0 Release
Добавляем следующую строку в файл /boot/loader.conf
Не нашел файл boot/loader.conf при разбиение диска под ZFS и вообще каталога /boot , выполнив следующую команду
# zpool import -f bootpool
# ee /boot/loader.conf
Добавляем следующую строку:
kern.vty=vt
Добавляем в файл /etc/rc.conf способ переключения раскладки в консоли клавишами CTRL+SHIFT
# ee /etc/rc.conf
Добавляем строку:
keymap="ru.win"
Локализуем shell, я использую tcsh, для него редактируем файл ~/.cshrc, добавив в него две следующие строки:
setenv LANG ru_RU.UTF—8 setenv MM_CHARSET UTF—8
Заодно сразу поправим строку
setenv EDITOR vi
изменяем на
setenv EDITOR ee
Устанавливаем по умолчанию редактор ee.
Пользователю необходимо прописать класс russian, командой:
# pw user mod user_name —L russian
Где user_name — имя пользователя
При создании нового пользователя можно сразу прописать нужный нам класс командой
# pw useradd user_name —L russian
Вот и все, заново войдите в shell, для локализации терминала, консоль русифицируется после перезагрузки системы.
Заметки по работе с ZFS
Это было сделано на этом сервере, но немного с другой конфигурацией жестких дисков. Потом оказалось, что третий жесткий диск оказался сбойным, пришлось его убрать.
# gpart show
=> 63 488397105 ada0 MBR (233G)
63 1 - free - (512B)
64 488397096 1 freebsd [active] (233G)
488397160 8 - free - (4.0K)
=> 0 488397096 ada0s1 BSD (233G)
0 4194304 1 freebsd-zfs (2.0G)
4194304 4194304 2 freebsd-swap (2.0G)
8388608 480008480 4 freebsd-zfs (229G)
488397088 8 - free - (4.0K)
=> 63 488397105 ada1 MBR (233G)
63 1 - free - (512B)
64 488397096 1 freebsd [active] (233G)
488397160 8 - free - (4.0K)
=> 34 3907029101 ada2 GPT (1.8T)
34 3907029101 - free - (1.8T)
=> 0 488397096 ada1s1 BSD (233G)
0 4194304 1 freebsd-zfs (2.0G)
4194304 4194304 2 freebsd-swap (2.0G)
8388608 480008480 4 freebsd-zfs (229G)
488397088 8 - free - (4.0K)
# zpool create pool ada2
root@srv01:/usr/home/andrew # zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
pool 1.81T 408K 1.81T - 0% 0% 1.00x ONLINE -
zroot 228G 2.10G 226G - 0% 0% 1.00x ONLINE -
root@srv01:/usr/home/andrew # zpool destroy pool
root@srv01:/usr/home/andrew # zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
zroot 228G 2.10G 226G - 0% 0% 1.00x ONLINE -
root@srv01:/usr/home/andrew # zpool create data ada2
root@srv01:/usr/home/andrew # zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
data 1.81T 284K 1.81T - 0% 0% 1.00x ONLINE -
zroot 228G 2.10G 226G - 0% 0% 1.00x ONLINE -
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 372K 1.76T 96K /data
zroot 2.10G 219G 96K /zroot
zroot/ROOT 803M 219G 96K none
zroot/ROOT/default 803M 219G 803M /
zroot/tmp 136K 219G 136K /tmp
zroot/usr 1.31G 219G 96K /usr
zroot/usr/home 136K 219G 136K /usr/home
zroot/usr/ports 738M 219G 738M /usr/ports
zroot/usr/src 608M 219G 608M /usr/src
zroot/var 692K 219G 96K /var
zroot/var/audit 96K 219G 96K /var/audit
zroot/var/crash 96K 219G 96K /var/crash
zroot/var/log 204K 219G 204K /var/log
zroot/var/mail 104K 219G 104K /var/mail
zroot/var/tmp 96K 219G 96K /var/tmp
Ошибка сервера с ZFS
# gpart show
=> 63 488397105 ada0 MBR (233G)
63 1 - free - (512B)
64 488397096 1 freebsd [active] (233G)
488397160 8 - free - (4.0K)
=> 0 488397096 ada0s1 BSD (233G)
0 4194304 1 freebsd-zfs (2.0G)
4194304 4194304 2 freebsd-swap (2.0G)
8388608 480008480 4 freebsd-zfs (229G)
488397088 8 - free - (4.0K)
=> 63 488397105 ada1 MBR (233G)
63 1 - free - (512B)
64 488397096 1 freebsd [active] (233G)
488397160 8 - free - (4.0K)
=> 34 3907029101 ada2 GPT (1.8T) [CORRUPT]
34 3907029101 - free - (1.8T)
=> 0 488397096 ada1s1 BSD (233G)
0 4194304 1 freebsd-zfs (2.0G)
4194304 4194304 2 freebsd-swap (2.0G)
8388608 480008480 4 freebsd-zfs (229G)
488397088 8 - free - (4.0K)
# zpool create data ada2 invalid vdev specification use '-f' to override the following errors: /dev/ada2 is part of potentially active pool 'data'
# zpool create -f data ada2
# zpool status -v pool: bootpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM bootpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ada0s1a ONLINE 0 0 0 ada1s1a ONLINE 0 0 0 errors: No known data errors pool: data state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM data ONLINE 0 0 0 ada2 ONLINE 0 0 0 errors: No known data errors pool: zroot state: ONLINE status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://illumos.org/msg/ZFS-8000-9P scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ada0s1d ONLINE 0 0 8 ada1s1d ONLINE 0 0 0 errors: No known data errors
# zfs create data/ftp # zfs create data/backup # zfs list NAME USED AVAIL REFER MOUNTPOINT bootpool 121M 1,80G 121M /bootpool data 604K 1,76T 100K /data data/backup 96K 1,76T 96K /data/backup data/ftp 96K 1,76T 96K /data/ftp zroot 2,10G 219G 96K /zroot zroot/ROOT 803M 219G 96K none zroot/ROOT/default 803M 219G 803M / zroot/tmp 136K 219G 136K /tmp zroot/usr 1,31G 219G 96K /usr zroot/usr/home 136K 219G 136K /usr/home zroot/usr/ports 738M 219G 738M /usr/ports zroot/usr/src 608M 219G 608M /usr/src zroot/var 696K 219G 96K /var zroot/var/audit 96K 219G 96K /var/audit zroot/var/crash 96K 219G 96K /var/crash zroot/var/log 208K 219G 208K /var/log zroot/var/mail 104K 219G 104K /var/mail zroot/var/tmp 96K 219G 96K /var/tmp
# zfs set sharenfs=on data # zfs set sharenfs=rw=@192.168.146.0/8 data
В общем по итогу этот жесткий диск опять вылетел с той же ошибкой, похоже накрылся контроллер жесткого диска. Не стал заморачиваться, просто его выкинул.
Полезные ссылки:
Руководство по администрированию файловых систем ZFS Solaris
Пошаговая установка freebsd 11 для чайников
Большое, быстрое, стабильное и недорогое хранилище данных +++