Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
ZFSonlinux-загрузчик .
ZFSonlinux-загрузчик .
Пул ZFS c Funtoo linux был создан с целью размещения на нём файловой помойки обычного рабочего домашнего окружения и естественно мультимедии,одной из задач было спокойное монтирование с любыми правами bsd системы расположенной на соседнем диске для двухстороннего обмена файлами.Получить сразу готовый образ с предустановленными глобальными флагами оптимизации под нужный процессор и окружение,и при этом с минимальными затратами на время сборки и кое-какими доработками под свои задачи можно только на funtoo http://www.funtoo.org/Subarches .Собрано всё было по вполне понятному описанию http://www.funtoo.org/ZFS_Install_Guide с некоторыми изменениями:
1.Для оптимизации времени загрузки и облегчения ядра убрана поддержка всех существующих в ядре gentoo-sources модулей файловых систем,кроме прослойки spl солярис.
2.Наличие первого пункта исключает раздел /boot на ext2,все в пуле.
Был выбран старый потрепанный жесткий диск с небольшим размером для установки без всякого предубеждения о нехватке места в будущем-всегда можно спокойно переехать снапшотом не заморачиваясь новой установкой на другой диск,имея точную копию рабочей системы.
Версии пула ZFS и версии самой файловой системы естественно меняются добавляются,новые опции и рано или поздно это начинает сказываться на работе существующей уже системы.Груб просто перестал узнавать файловую систему и не может просто загрузить имидж с обновленной версии пула,например 5000 в которой добавились новые опции управления файловой системой.Не знаю кто из этих авторов «глядел в воду» один предлагает создать рэйд с пулом с включенными опциями для понятия загрузчиком файловой системы чудесной командой:
http://www.funtoo.org/Install_ZFS_root% ... ile_System -всё вполне толково и может быть
работает и grub узнает zfs .Опережая немного своей идеей второй предлагает все опции неизвестные грубу отключить :
https://habrahabr.ru/post/268807/
Всё это совсем не радует,никакой нет гарантии,что при очередной смене версии пула не появятся новые плюшки что приведет опять же к проблеме с загрузчиком,и снова начинаю задумываться о отдельном разделе /boot всегда понятном грубу.Раз речь идёт о raid причем в любом виде /boot на ext просто невозможен: при выходе из строя диска с загрузчиком на ext другой просто не загрузится.
Можно конечно не обновлять версию пула и zfs,но freebsd ждать не будет -монтирование будет невозможным.Приятной неожиданностью стало то,что sysresccd-4.5.4_zfs_0.6.5.4.iso позволяет в окружении chroot работать с zfs.
Пример.
Создаем пул для системы :
Импортирую пул с рабочей системой или в ней самой делаю снапшот всего пула ,без разницы и отправляю на созданный пул.
Всё это описано уже и в подробности не нужно,смысл в том что новый пул получил рабочую систему монтируем его в /mnt/funtoo и чрутимся,ничего нового:
Удаляем полностью директорию /boot c бэкапом
создаём в чруте новый пул boot версии 28 на разметке be00 solaris-boot
возвращаем на место всё что было в /boot,устанавливаем загрузчик на оба диска,конфигурим.
Остался последний камень-проверяем что нам выдал grub.cfg и выясняется нет названия пула в корне
теперь спокойно можно грузиться с нового пула -выходим с chroot .
дописываем
Разметка дисков:
Отключаем питание с одного из дисков нового пула и проверим и загрузку с оставшегося-всё грузится данные на месте.Подключаем обратно-пул в порядке -всё online. zfs list
1.Для оптимизации времени загрузки и облегчения ядра убрана поддержка всех существующих в ядре gentoo-sources модулей файловых систем,кроме прослойки spl солярис.
2.Наличие первого пункта исключает раздел /boot на ext2,все в пуле.
Был выбран старый потрепанный жесткий диск с небольшим размером для установки без всякого предубеждения о нехватке места в будущем-всегда можно спокойно переехать снапшотом не заморачиваясь новой установкой на другой диск,имея точную копию рабочей системы.
Версии пула ZFS и версии самой файловой системы естественно меняются добавляются,новые опции и рано или поздно это начинает сказываться на работе существующей уже системы.Груб просто перестал узнавать файловую систему и не может просто загрузить имидж с обновленной версии пула,например 5000 в которой добавились новые опции управления файловой системой.Не знаю кто из этих авторов «глядел в воду» один предлагает создать рэйд с пулом с включенными опциями для понятия загрузчиком файловой системы чудесной командой:
Код: Выделить всё
zpool create \
-d -o feature@async_destroy=enabled \
-o feature@empty_bpobj=enabled \
-o feature@lz4_compress=enabled \
-o feature@spacemap_histogram=enabled \
-o feature@enabled_txg=enabled \
-o feature@extensible_dataset=enabled \
-o feature@bookmarks=enabled \
-f -O compression=lz4 -o ashift=12 -m none tank mirror /dev/sda /dev/sdb
работает и grub узнает zfs .Опережая немного своей идеей второй предлагает все опции неизвестные грубу отключить :
Код: Выделить всё
zpool create -o ashift=12 -o listsnapshots=on \ -о feature@spacemap_histogram=disabled\ -о feature@enabled_txg=disabled\ -о feature@hole_birth=disabled\ -о feature@extensible_dataset=disabled\ -о feature@embedded_data=disabled\ -о feature@bookmarks=disabled\ -о feature@filesystem_limits=disabled\ -о feature@large_blocks=disabled\ diskpool raidz /dev/sda2 /dev/sdb2
Всё это совсем не радует,никакой нет гарантии,что при очередной смене версии пула не появятся новые плюшки что приведет опять же к проблеме с загрузчиком,и снова начинаю задумываться о отдельном разделе /boot всегда понятном грубу.Раз речь идёт о raid причем в любом виде /boot на ext просто невозможен: при выходе из строя диска с загрузчиком на ext другой просто не загрузится.
Можно конечно не обновлять версию пула и zfs,но freebsd ждать не будет -монтирование будет невозможным.Приятной неожиданностью стало то,что sysresccd-4.5.4_zfs_0.6.5.4.iso позволяет в окружении chroot работать с zfs.
Пример.
Создаем пул для системы :
Код: Выделить всё
zpool create -f -o ashift=12 tank mirror /dev/sda3 /dev/sdb4
Код: Выделить всё
zfs snapshot -r fun@20160210
zfs send -vR fun@20160210 | zfs receive -vFd tank
Код: Выделить всё
zpool import -o altroot=/mnt/funtoo -o cachefile=/etc/zfs/zpool.cache -f tank
cd /mnt/funtoo
mount -t proc none proc
mount --rbind /dev dev
mount --rbind /sys sys
env -i HOME=/root TERM=$TERM chroot . bash -l
export PS1="(chroot) $PS1"
Код: Выделить всё
mkdir -p /home/boot #например
mv /boot /home/boot
Код: Выделить всё
zpool create -f -o version=28 boot mirror /dev/sda2 /dev/sdb2
Код: Выделить всё
grub-install /dev/sda
grub-install /dev/sdb
grub-mkconfig -o /boot/grub/grub.cfg
Код: Выделить всё
linux /@/kernel-genkernel-x86_64-4.5.0-gentoo root=ZFS=/funtoo/root ro
дописываем
Код: Выделить всё
linux /@/kernel-genkernel-x86_64-4.5.0-gentoo root=ZFS=tank/funtoo/root ro
Код: Выделить всё
Disk Drive: /dev/sda
Size: 976773168, 465.8 GiB
Part. # Size Partition Type Partition Name
----------------------------------------------------------------
1007.0 KiB free space
1 1000.0 KiB BIOS boot partition --ef02
24.0 KiB free space
2 171.0 MiB Solaris boot --be00
3 465.6 GiB Solaris root --bf00
Disk Drive: /dev/sdb
Size: 1250263728, 596.2 GiB
Part. # Size Partition Type Partition Name
----------------------------------------------------------------
3.0 KiB free space
1 1000.0 KiB BIOS boot partition
2 170.9 MiB Solaris boot
4 465.6 GiB Solaris root
3 130.4 GiB Solaris root disk2
Код: Выделить всё
shell tupoll # zpool status
pool: boot
state: ONLINE
status: The pool is formatted using a legacy on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'. Once this is done, the
pool will no longer be accessible on software that does not support
feature flags.
scan: resilvered 24K in 0h0m with 0 errors on Wed Apr 20 16:40:50 2016
config:
NAME STATE READ WRITE CKSUM
boot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda2 ONLINE 0 0 0
sdb2 ONLINE 0 0 0
errors: No known data errors
pool: tank
state: ONLINE
scan: resilvered 5,42M in 0h0m with 0 errors on Wed Apr 20 16:40:51 2016
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 0
sdb4 ONLINE 0 0 0
errors: No known data errors
Код: Выделить всё
shell tupoll # zfs list
NAME USED AVAIL REFER MOUNTPOINT
boot 18,7M 109M 18,2M /boot
tank 89,4G 360G 96K none
tank/HOME 82,0G 360G 96K none
tank/HOME/home 168K 360G 96K /home
tank/HOME/tupoll 82,0G 360G 81,9G /home/tupoll
tank/funtoo 4,80G 360G 96K none
tank/funtoo/portage 2,67G 360G 1,21G /usr/portage
tank/funtoo/portage/distfiles 1,26G 360G 1,26G /usr/portage/distfiles
tank/funtoo/portage/packages 104K 360G 96K /usr/portage/packages
tank/funtoo/root 1,53G 360G 1,49G /
tank/funtoo/src 608M 360G 607M /usr/src
tank/prog 554M 360G 96K none
tank/prog/share 554M 360G 541M /usr/share
tank/swap 2,13G 362G 64K -
Правильный линукс-BSD.