Gentoo.zfs

Gentoo.zfs

Сообщение tupoll » 13 фев 2015, 10:27

Установка делается на описаниях с оффсайта 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
Уважаемый участник
Уважаемый участник
 
Автор темы
Сообщений: 228
Фото: 3
Стаж: 2 года 6 месяцев 2 дня
Откуда: Vladivostok
Благодарил (а): 31 раз.
Поблагодарили: 38 раз.

Gentoo.zfs

Спонсор

Спонсор
 

Re: Gentoo.zfs

Сообщение tupoll » 05 апр 2015, 06:28

Раз читает её кто-то буду редактировать по мере изменений.
Правильный линукс-BSD.
Аватар пользователя
tupoll
Уважаемый участник
Уважаемый участник
 
Автор темы
Сообщений: 228
Фото: 3
Стаж: 2 года 6 месяцев 2 дня
Откуда: Vladivostok
Благодарил (а): 31 раз.
Поблагодарили: 38 раз.

Re: Gentoo.zfs

Сообщение ALEXX » 05 апр 2015, 10:09

Прошу вас, все что касается терминала, выделять тегом "Code"
Код: выделить все
Тогда это будет выглядеть так
Умом Россию не понять, Аршином общим не измерить.
У ней особенная стать — В Россию можно только верить.
Федор Иванович Тютчев
Аватар пользователя
ALEXX
Администратор
Администратор
 
Сообщений: 1102
Фото: 32
Стаж: 2 года 7 месяцев
Откуда: Королёв
Благодарил (а): 321 раз.
Поблагодарили: 181 раз.

Re: Gentoo.zfs

Сообщение Oleg65 » 05 апр 2015, 11:03

Согласен с hotmax, будет читабельнее. И пожелание - перевести все комменты (не все владеют английским), потому что коммент "Please don't ruin my language settings"? ,ИМХО, важен для начинающего ("Пожалуйста, не запускайте с моими языковыми настройками"). Да и с другими переведенными комментами будет яснее. И вслед еще интересующий меня вопрос: Где устанавливается частота снапшотов? Ведь каждый снимок будет в /dev, как новое блочное устройство (если не путаю) и за месяц при настройках по умолчанию) обрастем порядка 1000-ю блочных устройств. Или это установка частоты снимков делается позже? Или как-то автоматом удаляются хвосты, что бы прибалять новые снимки?
Аватар пользователя
Oleg65
Местный говорун
Местный говорун
 
Сообщений: 724
Стаж: 2 года 6 месяцев 3 дня
Откуда: г.Коломна Моск.обл.
Благодарил (а): 50 раз.
Поблагодарили: 161 раз.

Re: Gentoo.zfs

Сообщение tupoll » 06 апр 2015, 07:34

Тут пожалуй вы правы на все 100 я сам думал поменять код,хотя если кто решился повторить-труда не составит,Настройки мэйк рекомендую вообще не использовать в своем конфиге-а просмотреть как шаблон-от рабочего отличается,снапшоты отдельная история зачем их делать регулярно и автоматом тем более если рассматривать дестктоп.Про снимки,рэйд и зачем это вообще информацию брать не здесь.Перед тем как "подарить" винт,я пропатчил wine под wot и воткнул крусадер - перебрался на другой именно снапшотами -флаги ой-ё-ой.
Правильный линукс-BSD.
Аватар пользователя
tupoll
Уважаемый участник
Уважаемый участник
 
Автор темы
Сообщений: 228
Фото: 3
Стаж: 2 года 6 месяцев 2 дня
Откуда: Vladivostok
Благодарил (а): 31 раз.
Поблагодарили: 38 раз.

Re: Gentoo.zfs

Сообщение ALEXX » 06 апр 2015, 11:27

Я немного подредактировал... Вам останется только "навести марафет"
Умом Россию не понять, Аршином общим не измерить.
У ней особенная стать — В Россию можно только верить.
Федор Иванович Тютчев
Аватар пользователя
ALEXX
Администратор
Администратор
 
Сообщений: 1102
Фото: 32
Стаж: 2 года 7 месяцев
Откуда: Королёв
Благодарил (а): 321 раз.
Поблагодарили: 181 раз.

Re: Gentoo.zfs

Сообщение tupoll » 06 апр 2015, 11:43

Нормально вполне.
Правильный линукс-BSD.
Аватар пользователя
tupoll
Уважаемый участник
Уважаемый участник
 
Автор темы
Сообщений: 228
Фото: 3
Стаж: 2 года 6 месяцев 2 дня
Откуда: Vladivostok
Благодарил (а): 31 раз.
Поблагодарили: 38 раз.

Re: Gentoo.zfs

Сообщение tupoll » 06 фев 2016, 17:03

На сегодняшний день благополучный баг grub2 при использовании GPT делает невозможным подобную установку
Правильный линукс-BSD.
Аватар пользователя
tupoll
Уважаемый участник
Уважаемый участник
 
Автор темы
Сообщений: 228
Фото: 3
Стаж: 2 года 6 месяцев 2 дня
Откуда: Vladivostok
Благодарил (а): 31 раз.
Поблагодарили: 38 раз.


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

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron