The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Настройка загрузки с ZFS раздела во FreeBSD и создание зеркала"
Отправлено auto_tips, 23-Ноя-08 22:58 
Во FreeBSD 8-CURRENT недавно появилась поддержка загрузки ядра с ZFS, а сама файловая система
была обновлена до версии 13.  Процесс развертывания ZFS с возможностью загрузки с нее очень простой:

1. Компилируете систему с опцией "-DLOADER_ZFS_SUPPORT" или добавляете в /etc/make.conf

   LOADER_ZFS_SUPPORT=yes

2. Размечаете первый диск командой gpart на несколько разделов, из которых
обязательны только freebsd-boot и freebsd-zfs:

   # создаем таблицу разделов типа GPT на диске ad0
   gpart create -s GPT ad0

   # добавляем загрузочный код позволяющий загружаться GPT разделов
   gpart bootcode -b /boot/pmbr ad0

   # создаем раздел для кода загрузки loader(8)'а с раздела GPT
   gpart add -b 34 -s 256 -t freebsd-boot ad0

   # записываем загрузочный код на него
   gpart bootcode -p /boot/gptzfsboot -i 1 ad0

   # создаем swap-раздел для возможности делать kernel
   # dump'ы в случае panic или deadlock'ов, чтобы иметь
   # возможность анализировать неисправности. А также он
   # может пригодиться в случае не хватки оперативной
   # памяти.
   gpart add -b 290 -s 2097152 -t freebsd-swap ad0

   # создаем основной раздел для ZFS
   gpart add -b 2097442 -s 232344173 -t freebsd-zfs ad0

   # смотрим на результат
   gpart show
   =>       34  234441581  ad1  GPT  (112G)
            34        256    1  freebsd-boot  (128K)
           290    2097152    2  freebsd-swap  (1.0G)
       2097442  232344173    3  freebsd-zfs  (111G)

3. Создаете pool для ZFS на первом разделе и загружаетесь с него:

   # создаем pool с именем 'h', выключенном поддержкой
   # времени последнего доступа и включенным сжатием данных
   zpool create -O atime=off -O compression=on h ad0p3

   # создаем необходимые dataset'ы
   zfs create -p -o setuid=off -o utf8only=on h/usr/home
   zfs create -o sharenfs='-alldirs -webnfs' h/usr/ports
   zfs create -o atime=on h/var
   zfs create -o readonly=on h/var/empty

   # населяем pool[1]
   rsync -aHS --del --fileflags --filter '. migrate.rsync' / /h/

   # перезагружаемся
   shutdown -r now

   # загружаемся *не* с ZFS в single-user режим (loader prompt)
   boot -s

   # меняем точку монтирования pool'а на корень
   /etc/rc.d/hostid restart
   /sbin/zfs set mountpoint=/ h

   # перезагружаемся
   /sbin/reboot

   # загружаемся с ZFS (loader prompt)
   set vfs.root.mountfrom=zfs:h
   boot


4. Повторяете шаг 1 для второго диска и подсоединяете его к "зеркалу":

   # Размечаем диск с учетом того, что количество блоков
   # у freebsd-zfs должно быть такое же, как и на первом диске.
   # В даннном примере - 484200428.
   =>       34  488394988  ad0  GPT  (233G)
        34        256    1  freebsd-boot  (128K)
       290    4194304    2  freebsd-swap  (2.0G)
       4194594  484200428    3  freebsd-zfs  (231G)

   =>       34  488397101  ad1  GPT  (233G)
            34        256    1  freebsd-boot  (128K)
           290    4196417    2  freebsd-swap  (2.0G)
       4196707  484200428    3  freebsd-zfs  (231G)

   # подсоединяем его к pool'у как элемент зеркала
   # (не перепутайте с *add*)
   zpool attach h ad0p3 ad1p3

Примечание: Тест проводился на 14 версии и с использованием
вот этого патча - http://pastebin.com/f3d2089f3
Если будут проблемы с компиляцей loader'а или gptzfsboot на
amd64,
то просто скопируйте их с уже работающей машины на i386.

[1] пример migrate.rsync:

    - .ccache
    - /h
    - /nfs
    - /dev
    - /tmp
    - /var/emtpy
    - /var/run

Стоит не забыть потом создать эти директории в /h с соответствующими правами
на них. В частности без /dev система не загрузится.


URL:
Обсуждается: https://www.opennet.ru/tips/info/1844.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру