Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

Gentoo.zfs

Ответить
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Gentoo.zfs

Сообщение tupoll »

Установка делается на описаниях с оффсайта funtoo и оверлея gentoo (ссылки ниже).Даже если собрать команды скриптом-все получится сразу-не советую это делать сборка все-таки не быстрая,а скорость зависит от железа.

# Одной командой создаем пул называем как угодно,в моем случае arch и монтируем его в /mnt

Код: Выделить всё

zpool create -f -o ashift=12 -o cachefile=/tmp/zpool.cache -O normalization=formD -m none -R /mnt/gentoo arch /dev/sda
#Примонтировать пул со всеми файловыми системами после перезагрузки вслучае неудачи.

Код: Выделить всё

zpool import -o altroot=/mnt/gentoo -o cachefile=/etc/zfs/zpool.cache -f arch
# Создаем коренную директорию с файловой системой

Код: Выделить всё

zfs create -o mountpoint=none arch/ROOT
zfs create -o mountpoint=/ arch/ROOT/gentoo
# Хомяк содаем и монтируем

Код: Выделить всё

zfs create -o mountpoint=/home arch/HOME
#Все для portage

Код: Выделить всё

zfs create -o mountpoint=none -o setuid=off arch/GENTOO
zfs create -o mountpoint=/usr/portage -o atime=off arch/GENTOO/portage
zfs create -o mountpoint=/usr/portage/distfiles arch/GENTOO/distfiles
#С компрессеей на сборке-зачем раздувать размер

Код: Выделить всё

zfs create -o mountpoint=/var/tmp/portage -o compression=lz4 -o sync=disabled arch/GENTOO/build-dir
# Тоже надо

Код: Выделить всё

zfs create -o mountpoint=/usr/portage/packages arch/GENTOO/packages
#Нет clang и больших сборок,не обязательно

Код: Выделить всё

zfs create -o mountpoint=/var/tmp/ccache -o compression=lz4 arch/GENTOO/ccache
# Корень zfs-bootfs

Код: Выделить всё

zpool set bootfs=arch/ROOT/gentoo arch
# Грузим stage3

Код: Выделить всё

wget 'ftp://gentoo.osuosl.org/pub/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-[0-9]*.tar.bz2'
# Разархивируем в место сборки stage3

Код: Выделить всё

tar -xvjpf stage3-amd64-*.tar.bz2 -C /mnt/gentoo
#Создаем кэш и копируем

Код: Выделить всё

mkdir -p /mnt/gentoo/etc/zfs
cp /tmp/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache
# Копируем resolv.conf до chroot

Код: Выделить всё

cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
# Монтируем систему особым видом

Код: Выделить всё

mount -t proc none /mnt/gentoo/proc
mount --rbind /dev /mnt/gentoo/dev
mount --rbind /sys /mnt/gentoo/sys
# Чрутимся

Код: Выделить всё

chroot /mnt/gentoo /bin/bash
env-update; source /etc/profile; export PS1="(chroot) $PS1"; cd
# Синхронизируемся

Код: Выделить всё

env GENTOO_MIRRORS="http://gentoo.osuosl.org" emerge-webrsync
# Устанавливаем genkernel, я бы взял 9999

Код: Выделить всё

emerge sys-kernel/genkernel
# Ядро подойдет любое на сегодняшний день до 3.19.3

Код: Выделить всё

emerge sys-kernel/gentoo-sources
# Нужна предварительная сборка ядра для установки модуля zfs

Код: Выделить всё

genkernel kernel --no-clean --no-mountboot
# Устанавливаем модуль ZFS(опять же лучше 9999)

Код: Выделить всё

echo "sys-kernel/spl ~amd64" >> /etc/portage/package.accept_keywords
echo "sys-fs/zfs-kmod ~amd64" >> /etc/portage/package.accept_keywords
echo "sys-fs/zfs ~amd64" >> /etc/portage/package.accept_keywords
emerge sys-fs/zfs
# Добавляем демон zfs в загрузку(openrc)

Код: Выделить всё

rc-update add zfs boot
# Загрузочной записи груба нужен раздел(если сразу не создали)

Код: Выделить всё

emerge sys-apps/gptfdisk

sgdisk --new=2:48:2047 --typecode=2:EF02 --change-name=2:"BIOS boot partition" /dev/sda


echo 1 > /proc/sys/vm/drop_caches
# GRUB2

Код: Выделить всё

echo "sys-boot/grub:2 libzfs" >> /etc/portage/package.use/grub:2
echo "sys-boot/grub:2 ~amd64" >> /etc/portage/package.accept_keywords
emerge sys-boot/grub:2
touch /etc/mtab
grub2-install /dev/sda
# Genkernel попросит это-сразу дадим

Код: Выделить всё

touch /boot/grub/grub.cfg
# Собираем автоматом корень и initramfs(потом переделает каждый индивидуально себе если надо)

Код: Выделить всё

genkernel all --no-clean --no-mountboot --zfs --bootloader=grub2 --callback="emerge @module-rebuild"
# Пишем если хотим в /etc/fstab(не обязательно здесь)

Код: Выделить всё

sed -i -e "s/\(.*\)\/\(BOOT\|ROOT\|SWAP\)\(.*\)/\#\1\/\2\3/g" /etc/fstab
#Снимок для восстановления после загрузки и установки

Код: Выделить всё

zfs snapshot arch/ROOT/gentoo@install
# Позаботимся об ARC cache-ограничим размер использования оперативной памяти,если у вас больше 8 гигов -увеличиваем.

Код: Выделить всё

echo options zfs zfs_arc_max=536870912 >> /etc/modprobe.d/zfs.conf
# Для portage настройки
echo PORTAGE_NICENESS=19 >> /etc/make.conf

cat << END > /usr/local/sbin/portage-cgroup
#!/bin/sh
# $1 must be the portage PID

cgroup=$(mktemp -d --tmpdir=/sys/fs/cgroup/cpu portage-XXXX) &&
echo $1 > "${cgroup}/tasks" &&
echo 1 > "${cgroup}/notify_on_release"
echo 256 > "${cgroup}/cpu.shares"
END
chmod u+x /usr/local/sbin/portage-cgroup
echo 'PORTAGE_IONICE_COMMAND="/usr/local/sbin/portage-cgroup \${PID}"' >> /etc/make.conf

# На данном этапе необязательно,всегда можно создать и выкинуть(я не делаю:zram-init)

Код: Выделить всё

zfs create -o sync=always -o primarycache=metadata -o secondarycache=none -b 4K -V 8G arch/swap
mkswap -f /dev/zvol/arch/swap
#По желанию

Код: Выделить всё

zfs snapshot arch/swap@install
Образ берем здесь http://ftp.osuosl.org/pub/funtoo/distfiles/sysresccd/
Оверлей тут layman -o https://raw.github.com/ryao/zfs-overlay ... verlay.xml -f -a zfs#не особо надо.
------------------------------------------------------------------------------------------

Если есть сильно любопытные мой мэйк:
----/etc/portage/make.conf------
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.

Код: Выделить всё

# Experimental: Allow testing
ACCEPT_KEYWORDS="amd64"

# Experimental: Parallel GHC
I_DEMAND_MY_CORES_LOADED=yes

# Clang
CC=clang
CXX=clang++
#CFLAGS="-march=core-avx-i -O3"

# GCC
#CFLAGS="-march=native -O2 -pipe"
CFLAGS="-march=k8 -O2 -pipe"


CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"

# Lots of dependency conflicts
#PYTHON_TARGETS="python2_7 python3_4" # pypy2_0

LDFLAGS="${LDFLAGS} -Wl,-z,now"

# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"

# Include english language support where possible
LINGUAS="en ru"


USE="	3dnow 3dnowext
        -alsa abi_x86_32
	aac amr a52 apng awesome
	-aqua aqualung app-foo/bar app-bar/baz
	binary bindist 
	-bluetooth
	clang cleartype cmake c++0x cairo
	-cups consolekit crypt 
	dbus -dolphin development
	-dso -doc -default-term
	-development -dhclient
	dhcpcd deluge 
	-emacs egl
	firmware flac ffmpeg
	-fbcondecor flaggie
	git g3dvl gstreamer -gnome-keyring
	gtk gtk3 -gnome -gnome-online-accounts gtkstyle
	grilo geany -graphite gudev
	-ghcbootstrap -gcrypt -geoloc 
	highlight hscolour heather
	-handbook -hoogle -hpn
	icu icq irc
	i18n -introspection
	jpeg jpeg2k
	kmod 
	-kerberos -kde
	lodgeit-default llvm ladspa -libav 
	-ldap lua libsamplerate librsync-bundled
	minizip mmx mp3 mpeg mms -modemmanager
     mhash multilib minimal nls  
	-networkmanager -nautilus
	openssl openvg oss opengl
	osmesa openrc optimization ogg
	perl -pulseaudio pypy2_0 png playlist pcre16
	-plasma pcre pango python
    ristretto
	qt5 qemu
	 -qt3 -qt4
	strong-optimization spell scrobbler
	symlink sse sse2 sse3 ssse3 sse4_1
	steamruntime spamassassin sdl ssl
	-spice -systemd
	-subversion -startup-notification
        tools  threads
	truetype traker thunar
	udev udisks unicode
	-virt-network
	-vala vorbis
	wavpack wallpapers
	-webkit 
	xft xvmc xa xorg  xvid x264 xkb
	xinerama X
	-yahoo
     zfs zlib
	zsh-completion"


# Hardware devices

INPUT_DEVICES="keyboard mouse evdev"
#VIDEO_CARDS="nvidia"
#VIDEO_CARDS="radeon radeonsi"
VIDEO_CARDS="nouveau"

OSS_CARDS="cmi878x  hdaudio ich imux midiloop midimix userdev"

# Please don't ruin my language settings
CONFIG_PROTECT="${CONFIG_PROTECT} /usr/share/i18n/locales /usr/lib/oss/soundon.user"



# Make emerge sane!
#EMERGE_DEFAULT_OPTS="--ask --ask-enter-invalid --with-bdeps=y --keep-going=y --quiet-unmerge-warn --quiet-build=y --jobs=3 --ignore-built-slot-operator-deps=y"

# Fix niceness
PORTAGE_NICENESS=15

# Store distfiles on faster drive
PORTDIR="/usr/portage"
DISTDIR="/var/cache/distfiles"

# Store elogs for future parsing
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_ELOG_CLASSES="warn error info log qa"

# Source the gentoo overlays
source /var/lib/layman/make.conf

# Add a backup mirror for hackage
# GENTOO_MIRRORS="${GENTOO_MIRRORS} http://hdiff.luite.com/packages/archive"

# Add my local overlay
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/"

# Set PORTDIR for backward compatibility with various tools:
#   gentoo-bashcomp - bug #478444
#   euse - bug #474574
#   euses and ufed - bug #478318
PORTDIR="/usr/portage"

# Incompatible with pypy
FEATURES="-userpriv -userfetch splitdebug compressdebug"

# Enable testing to make sure clang stuff doesn't break horribly
#FEATURES="${FEATURES} test"

# Binary packages
PKGDIR="/usr/portage/packages"

export I_PROMISE_TO_SUPPLY_PATCHES_WITH_BUGS=1
-----------------------------------------------------------------------------------------------------------------------------------------
Если имеется желание выиграть в скорости работы на этой файловой системе хочешь не хочешь прийдётся изучать описание работы и настройки на сайте солярис,
благо русский там имеется,отключать компрессию и если совсем не жалко лишние диски SSD делать L2ARC cache.
Дополнительные файловые системы в в общем никак не помешают работе:
Если посмотреть на /usr/share-размер раздут довольно сожмем его:
zfs create -p arch/GENTOO/share -создаем ф.с
zfs set compession=on arch/GENTOO/share -включаем компреcию
zfs set compession=gzip-9 arch/GENTOO/share -сожмем по полной (по ману 1-9 степень сжатия)
zfs set mountpoint=/mnt arch/GENTOO/share -примонтируем ф.с в /mnt например
ср /usr/share /mnt -скопируем
Проверить что все получилось zfs list и df -h.
Удаляем все из /usr/share.
zfs set mountpoint=/usr/share arch/GENTOO/share -монтируем на место
reboot
Что-нибудь подобное можно сделать и с домашним каталогом не забывая про права -это просто примеры.
/etc/modprobe.d/zfs.conf

Код: Выделить всё

options zfs zfs_arc_max=536870912
options zfs zfs_prefetch_disable=1

options zfs zfs_vdev_cache_size=1310720
options zfs zfs_vdev_cache_max=131072
options zfs zfs_vdev_cache_bshift=30

options zfs zfs_read_chunk_size=1310720

options zfs zfs_vdev_async_read_max_active=12
options zfs zfs_vdev_async_read_min_active=12
options zfs zfs_vdev_async_write_max_active=12
options zfs zfs_vdev_async_write_min_active=12
options zfs zfs_vdev_sync_read_max_active=12
options zfs zfs_vdev_sync_read_min_active=12
options zfs zfs_vdev_sync_write_max_active=12
options zfs zfs_vdev_sync_write_min_active=12

#options zfs zfs_vdev_cache_size=53687091
#options zfs zfs_vdev_cache_max=5368709
#options zfs zfs_vdev_cache_bshift=17

#options zfs zfs_read_chunk_size=2380720
Последний раз редактировалось tupoll 04 июл 2015, 16:03, всего редактировалось 9 раз.
Правильный линукс-BSD.
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Re: Gentoo.zfs

Сообщение tupoll »

Раз читает её кто-то буду редактировать по мере изменений.
Правильный линукс-BSD.
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1327
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

Re: Gentoo.zfs

Сообщение ALEXX »

Прошу вас, все что касается терминала, выделять тегом "Code"

Код: Выделить всё

Тогда это будет выглядеть так
Аватара пользователя
Oleg65
Местный говорун
Местный говорун
Сообщения: 859
Зарегистрирован: 18 янв 2015, 10:56
Откуда: г.Коломна Моск.обл.

Re: Gentoo.zfs

Сообщение Oleg65 »

Согласен с hotmax, будет читабельнее. И пожелание - перевести все комменты (не все владеют английским), потому что коммент "Please don't ruin my language settings"? ,ИМХО, важен для начинающего ("Пожалуйста, не запускайте с моими языковыми настройками"). Да и с другими переведенными комментами будет яснее. И вслед еще интересующий меня вопрос: Где устанавливается частота снапшотов? Ведь каждый снимок будет в /dev, как новое блочное устройство (если не путаю) и за месяц при настройках по умолчанию) обрастем порядка 1000-ю блочных устройств. Или это установка частоты снимков делается позже? Или как-то автоматом удаляются хвосты, что бы прибалять новые снимки?
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Re: Gentoo.zfs

Сообщение tupoll »

Тут пожалуй вы правы на все 100 я сам думал поменять код,хотя если кто решился повторить-труда не составит,Настройки мэйк рекомендую вообще не использовать в своем конфиге-а просмотреть как шаблон-от рабочего отличается,снапшоты отдельная история зачем их делать регулярно и автоматом тем более если рассматривать дестктоп.Про снимки,рэйд и зачем это вообще информацию брать не здесь.Перед тем как "подарить" винт,я пропатчил wine под wot и воткнул крусадер - перебрался на другой именно снапшотами -флаги ой-ё-ой.
Правильный линукс-BSD.
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1327
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

Re: Gentoo.zfs

Сообщение ALEXX »

Я немного подредактировал... Вам останется только "навести марафет"
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Re: Gentoo.zfs

Сообщение tupoll »

Нормально вполне.
Правильный линукс-BSD.
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Re: Gentoo.zfs

Сообщение tupoll »

На сегодняшний день благополучный баг grub2 при использовании GPT делает невозможным подобную установку
Правильный линукс-BSD.
Ответить

Вернуться в «ОСТАЛЬНЫЕ ДИСТРИБУТИВЫ»