FreeBSD на RAIDZ ZFS
Материал из Xgu.ru
Краткая действующая инструкция по созданию ZFS на трех дисках и объединение в RAID-Z
К сожалению установщик не умеет работать с ZFS. А потому рассматриваем случай, когда уже имеем диск с установленной FreeBSD.
Имеем: Диск с установленной минимальной конфигурацией FreeBSD; 3 диска по 1 TB каждый, которые и необходимо объединить в массив (небольшое уточнение: общая ёмкость дисков будет всего 2 TB).
Поехали:
Содержание |
[править] Этап I. Разметка
В системе диски определились как ad4, ad6 и ad7
Разбиваем каждый диск на 3 раздела: загрузочный, подкачка и основное пространство
[править] Создаем GPT разделы на всех дисках
gpart create -s GPT ad4 gpart add -b 34 -s 256 -t freebsd-boot -l boot0 ad4 gpart add -s 2g -t freebsd-swap -l swap0 ad4 gpart add -t freebsd-zfs -l disk0 ad4 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad4 gpart create -s GPT ad6 gpart add -b 34 -s 256 -t freebsd-boot -l boot1 ad6 gpart add -s 2g -t freebsd-swap -l swap1 ad6 gpart add -t freebsd-zfs -l disk1 ad6 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad6 gpart create -s GPT ad7 gpart add -b 34 -s 256 -t freebsd-boot -l boot2 ad7 gpart add -s 2g -t freebsd-swap -l swap2 ad7 gpart add -t freebsd-zfs -l disk2 ad7 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad7
Как Вы заметили что каждому разделу мы установили индивидуальную метку. Зачем это нужно? Это нужно для того, чтобы не потерять диски в случае к примеру физического переноса дисков на другой компьютер. Ведь при переносе у нас изменятся точки монтирования дисков. А метки останутся.
[править] Создаем пул
Имя пула zfssystem. Объединяем дисковые разделы в RAID-Z и подключаем к точке монтирования /mnt
zpool create -m /mnt zfssystem raidz /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2 zfs set checksum=fletcher4 zfssystem zfs set atime=off zfssystem
[править] Создаем структуру папок с указанием параметров
Сжатие папки /usr/ports и /usr/src - т.к. в ней текстовые файлы идеально подходящие для сжатия
zfs create zfssystem/var zfs create zfssystem/var/db zfs create zfssystem/var/tmp zfs create zfssystem/var/empty zfs create -o compression=gzip zfssystem/var/crash zfs create zfssystem/tmp zfs create zfssystem/usr zfs create -o compression=gzip -o mountpoint=/mnt/usr/src zfssystem/src zfs create -o compression=gzip -o mountpoint=/mnt/usr/ports zfssystem/ports zfs create -o mountpoint=/mnt/usr/ports/distfiles zfssystem/distfiles zfs create -o mountpoint=/mnt/usr/home zfssystem/home zfs create -o mountpoint=/mnt/usr/local zfssystem/local zfs create -o mountpoint=/mnt/usr/obj zfssystem/obj zfs create zfssystem/data chmod 1777 /mnt/tmp /mnt/var/tmp
[править] Этап II. Установка системы
Устанавливаем систему, указав каталог /mnt в качестве корневого
cd /usr/src make buildworld make buildkernel make installworld DESTDIR=/mnt make installkernel DESTDIR=/mnt mergemaster -D /mnt
[править] Устанавливаем необходимые параметры в файлы конфигурации
echo 'zfs_enable="YES"' > /mnt/etc/rc.conf echo 'hostname="server.nkfkis.ru"' >> /mnt/etc/rc.conf echo 'sshd_enable="YES"' >> /mnt/etc/rc.conf echo 'zfs_load="YES"' > /mnt/boot/loader.conf echo 'vfs.root.mountfrom="zfs:zfssystem"' >> /mnt/boot/loader.conf echo 'vm.kmem_size="1024M"' >> /mnt/boot/loader.conf echo 'vm.kmem_size_max="1024M"' >> /mnt/boot/loader.conf echo 'vfs.zfs.arc="512M"' >> /mnt/boot/loader.conf echo 'vfs.zfs.arc_max="512M"' >> /mnt/boot/loader.conf echo 'vfs.zfs.vdev.cache.size="10M"' >> /mnt/boot/loader.conf echo 'vfs.zfs.prefetch_disable=1' >> /mnt/boot/loader.conf echo 'LOADER_ZFS_SUPPORT=YES' >> /mnt/etc/src.conf
[править] Ядро для загрузки системы
cd /mnt/boot/ rm -r kernel mv GENERIC kernel mkdir /mnt/boot/zfs
[править] Сменим точки монтирования файловых систем
zfs unmount -a zfs set mountpoint=legacy zfssystem zfs set mountpoint=/var zfssystem/var zfs set mountpoint=/var/db zfssystem/var/db zfs set mountpoint=/var/tmp zfssystem/var/tmp zfs set mountpoint=/var/empty zfssystem/var/empty zfs set mountpoint=/var/crash zfssystem/var/crash zfs set mountpoint=/usr zfssystem/usr zfs set mountpoint=/usr/src zfssystem/src zfs set mountpoint=/usr/ports zfssystem/ports zfs set mountpoint=/usr/ports/distfiles zfssystem/distfiles zfs set mountpoint=/usr/home zfssystem/home zfs set mountpoint=/usr/local zfssystem/local zfs set mountpoint=/usr/obj zfssystem/obj zfs set mountpoint=/tmp zfssystem/tmp zfs set mountpoint=/data zfssystem/data
[править] Импорт из существующей в будущую
zpool export zfssystem && zpool import zfssystem zfs unmount -a zfs set mountpoint=/mnt zfssystem cp /boot/zfs/zpool.cache /mnt/boot/zfs
[править] Подключаем своп
echo '# Device Mountpoint FStype Options Dump Pass#' >> /mnt/etc/fstab echo 'proc /proc procfs rw 0 0' >> /mnt/etc/fstab echo '/dev/gpt/swap0 none swap sw 0 0' >> /mnt/etc/fstab echo '/dev/gpt/swap1 none swap sw 0 0' >> /mnt/etc/fstab echo '/dev/gpt/swap2 none swap sw 0 0' >>; /mnt/etc/fstab
Перезагружаемся и наслаждаемся
ОС FreeBSD | |||||
---|---|---|---|---|---|
Печать | CUPS • IPP • LPR • LPD | ||||
Сеть | ipfw • NAT • mpd5 • squid • netgraph | ||||
| |||||
|