Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Gentoo.zfs
Gentoo.zfs
# Одной командой создаем пул называем как угодно,в моем случае 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
Код: Выделить всё
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
Код: Выделить всё
zfs create -o mountpoint=/var/tmp/ccache -o compression=lz4 arch/GENTOO/ccache
Код: Выделить всё
zpool set bootfs=arch/ROOT/gentoo arch
Код: Выделить всё
wget 'ftp://gentoo.osuosl.org/pub/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-[0-9]*.tar.bz2'
Код: Выделить всё
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
Код: Выделить всё
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
Код: Выделить всё
emerge sys-kernel/genkernel
Код: Выделить всё
emerge sys-kernel/gentoo-sources
Код: Выделить всё
genkernel kernel --no-clean --no-mountboot
Код: Выделить всё
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
Код: Выделить всё
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
Код: Выделить всё
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
Код: Выделить всё
touch /boot/grub/grub.cfg
Код: Выделить всё
genkernel all --no-clean --no-mountboot --zfs --bootloader=grub2 --callback="emerge @module-rebuild"
Код: Выделить всё
sed -i -e "s/\(.*\)\/\(BOOT\|ROOT\|SWAP\)\(.*\)/\#\1\/\2\3/g" /etc/fstab
Код: Выделить всё
zfs snapshot arch/ROOT/gentoo@install
Код: Выделить всё
echo options zfs zfs_arc_max=536870912 >> /etc/modprobe.d/zfs.conf
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
Оверлей тут 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
- ALEXX
- Администратор
- Сообщения: 1350
- Зарегистрирован: 21 дек 2014, 14:59
- Откуда: Королёв
- Контактная информация:
Re: Gentoo.zfs
Код: Выделить всё
Тогда это будет выглядеть так
- Oleg65
- Местный говорун
- Сообщения: 859
- Зарегистрирован: 18 янв 2015, 10:56
- Откуда: г.Коломна Моск.обл.