Документация по ОС FreeBSD Среда, 08.05.2024, 22:38
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

От sysinstall к ZFS [2011]
Я хотел бы участвовать в процессе инсталляции серверов в моей компании.
 
Как вы знаете, sysinstall в настоящий момент не поддерживает ZFS или GEOM, но я хотел бы показать вам, как преобразовать систему, установленную с помощью sysinstall на работу только с ZFS. Даже если вы не хотите следовать всем указанным шагам, пожалуйста, посмотрите на dataset ZFS, который, после некоторых модификаций, я считаю довольно оптимальным для FreeBSD.
 
После выполнения нижеуказанных действий вы получите зеркалируемый и зашифрованный файл подкачки, GPT разделы и зеркалируемый системный пул ZFS.
 
Я предполагаю, что ваш сервер содержит два идентичных диска (ada0 и ada1).
 
Запустите процесс установки FreeBSD на первом диске, используя обычный установочный CD/DVD. Установите систему, используя тольуо один слайс и один раздел, после чего перезагрузите компьютер.
 
Ваша система теперь установлена и работает с файловой системой UFS. Внесите следующие исправления в /boot/loader.conf:
 
geom_eli_load="YES"
geom_label_load="YES"
geom_mirror_load="YES"
geom_part_gpt_load="YES"
zfs_load="YES"
vm.kmem_size="6G" # This should be 150% of your RAM.
vfs.zfs.arc_max="3G" # This should be a little less than the amount of your RAM.
 
Создадим разделы на втором диске:
 
# gpart create -s GPT ada1
# gpart add -b 34 -s 128 -t freebsd-boot ada1
# gpart add -s 2g -t freebsd-swap -l swap1 ada1
# gpart add -t freebsd-zfs -l system1 ada1
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1

Создадим файл подкачки и системный пул ZFS на втором и третьем разделе соответственно:
 
# gmirror label -F -h -b round-robin swap /dev/gpt/swap1
# zpool create -O mountpoint=/mnt -O atime=off -O setuid=off -O canmount=off system /dev/gpt/system1
 
Создадим корневую файловую систему и внесем изменения в /etc/fstab:
 
# cat > /etc/fstab
system/root / zfs rw,noatime 0 0
/dev/mirror/swap.eli none swap sw 0 0
^D
# zfs create -o mountpoint=legacy -o setuid=on system/root
# zpool set bootfs=system/root system
# mount -t zfs system/root /mnt
 
 Создайте остальные файловые системы (все должно быть смонтировано ниже /mnt/):
 
# zfs create -o compress=lzjb system/tmp
# chmod 1777 /mnt/tmp
# zfs create -o canmount=off system/usr
# zfs create -o setuid=on system/usr/local
# zfs create -o compress=gzip system/usr/src
# zfs create -o compress=lzjb system/usr/obj
# zfs create -o compress=gzip system/usr/ports
# zfs create -o compress=off system/usr/ports/distfiles
# zfs create -o canmount=off system/var
# zfs create -o compress=gzip system/var/log
# zfs create -o compress=lzjb system/var/audit
# zfs create -o compress=lzjb system/var/tmp
# chmod 1777 /mnt/var/tmp
# zfs create -o canmount=off system/usr/home
# zfs create system/usr/home/pjd
 (create file systems for all your users)
 
Включаем ZFS в /etc/rc.conf:
 
# echo 'zfs_enable="YES"' >> /etc/rc.conf
 
Я рекомендую установить в качестве рабочего каталога для системы портов /usr/obj:
 
# echo WRKDIRPREFIX=/usr/obj >> /etc/make.conf
 
 Скопируйте всю систему во второй диск (примечание перед one-file-system есть два тире!!):
 
# cd /
# tar -c --one-file-system -f - . | tar xpf - -C /mnt/
 
Отмонтируйте файловую систему ZFS и измените точку монтирования на /. Данное изменение будет унаследовано всеми файловыми системами:
 
# zfs umount -a
# umount /mnt
# zfs set mountpoint=/ system
 
Перезагружаемся. Если машина загрузилась нормально (я на это надеюсь, но…), то вы увидите следующее:
 
# mount
 system/root on / (zfs, local, noatime)
 devfs on /dev (devfs, local)
 system/tmp on /tmp (zfs, local, noatime, nosuid)
 system/usr/home/pjd on /usr/home/pjd (zfs, local, noatime, nosuid)
 system/usr/obj on /usr/obj (zfs, local, noatime, nosuid)
 system/usr/ports on /usr/ports (zfs, local, noatime, nosuid)
 system/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, noatime, nosuid)
 system/usr/src on /usr/src (zfs, local, noatime, nosuid)
 system/var/audit on /var/audit (zfs, local, noatime, nosuid)
 system/var/log on /var/log (zfs, local, noatime, nosuid)
 system/var/tmp on /var/tmp (zfs, local, noatime, nosuid)
 
# swapctl -l
 Device: 1024-blocks Used:
 /dev/mirror/swap.eli 4194300 4888

Теперь нам необходимо добавить первый диск (ada0):
 
# dd if=/dev/zero of=/dev/ada0 count=79
# gpart create -s GPT ada0
# gpart add -b 34 -s 128 -t freebsd-boot ada0
# gpart add -s 2g -t freebsd-swap -l swap0 ada0
# gpart add -t freebsd-zfs -l system0 ada0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
 
# gmirror insert -h -p 1 swap /dev/gpt/swap0
 (wait for gmirror to synchronize swap)
 # gmirror status
 Name Status Components
 mirror/swap COMPLETE gpt/swap1
 gpt/swap0
 
# zpool attach system /dev/gpt/system1 /dev/gpt/system0
 (wait for pool to resilver)
# zpool status
 pool: system
 state: ONLINE
 scrub: resilver completed after 0h2m with 0 errors on Mon Aug 2 11:28:45 2010
 config:
 
NAME STATE READ WRITE CKSUM
 system ONLINE 0 0 0
 mirror ONLINE 0 0 0
 gpt/system1 ONLINE 0 0 0 55,5M resilvered
 gpt/system0 ONLINE 0 0 0 1,67G resilvered
 
errors: No known data errors

Ну, собственно, и всё. 

BTW. Поскольку ваш /var/log/ сжат ZFS, вы можете отключить сжатие журналов при ротации в /etc/newsyslog.conf.
 
Ниже я указываю причины, по которым использую именно такой dataset:
  • Нет никаких манипуляций со свойствами точек монтирования, за исключением корневой. Когда вы работаете с ZFS, может смущать то, что место каталога в ZFS не соответствует точке монтирования. Свойства точки монтирования всегда наследуются, поэтому при ее изменении вы будете знать, что вся структура каталогов, расположенная ниже наследует ее должным образом и нет необходимости в других изменениях.
  • Обратите внимание на то, что system/usr и system/var не подмонтированы. /usr/bin, /usr/sbin, /var/named и т.д. принадлежат dataset system/root. Это позволяет при обновлении системы создавать снимок только system/root и в случае неудачи откатить его обратно.
  • Вы можете отключить setuid для всех datasets, за исключением system/root и system/usr/local.
  • Вы можете использовать сжатие для /usr/src, /usr/obj, /tmp, /var/tmp, /var/log и /var/audit.
  • Наличие Ос в одном dataset облегчает создание jail. Таким образом, мне для создания jail необходимо клонировать system/root в system/jails/<name> и, при желании, создать дополнительные dataset: 
    • system/jails/<name>/etc
    • system/jails/<name>/tmp
    • system/jails/<name>/var
    • system/jails/<name>/usr (set canmount to off)
    • system/jails/<name>/usr/local
    • system/jails/<name>/usr/work (I build ports here)
    • system/jails/<name>/root (jailed root home directory)
Таким образом, вы можете сделать datasec system/jails/<name> только для чтения и при обновлении основной системы выполнить следующие шаги для обновления jail: 
    • Остановить jail
    • Переименовать system/jails/<name> в system/jails/<name>_old
    • Снова клонировать system/jails/<name> из system/root
    • Переименовать все dataset, располагающиеся ниже system/jails/<name>_old в созданный system/jails/<name>
    • Обновить system/jails/<name>/etc
    • Обновить system/jails/<name>/var


Источник: http://dreamcatcher.ru/2011/08/02/%d0%9e%d1%82-sysinstall-%d0%ba-zfs/
Категория: Установка и настройка | Добавил: oleg (03.08.2011) | Автор: Mixa
Просмотров: 810 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024