SA>>> И как это будет выглядеть на практике? Просто обновляешь фрю и у тебя SA> сабж из SA>>> коробки? EG>> Hе случилось и не случится. Максимум что может быть в ближайшее EG>> время это альтернативная реализация ZFS в виде ядерного модуля, EG>> собираемого из портов. SA> этого еще нет?
SA>>> ЗЫ Есть ли у кого гайд по миграции ZFS->UFS? EG>> У меня есть, но я не уверен, что у нас с тобой одинаковое EG>> понимание, что есть "миграция ZFS-UFS". Консоль у тебя есть? EG>> А место, куда временно перелить данные? SA> Есть диск с ZFS, есть диск пустой под USF и даже HW raid, есть boot stick, SA> что еще нужно для миграции? :)
Просто взять и мигрировать. Сделать новый диск загружаемым: (если он не более 2TB, рекомендую старый добрый MBR):
d=ada1 # имя диска gpart destroy -F $d # стереть разметку, если есть gpart create -s MBR $d # создать пустую таблицу MBR gpart bootcode -b /boot/boot0 $d # установить BootEasy gpart add -t freebsd $d # весь диск под один слайс FreeBSD gpart set -a active -i 1 $d # слайс загрузочный gpart create -n 20 -s BSD ${d}s1 # bsdlabel до 20 разделов (от a до t) gpart bootcode -b /boot/boot ${d}s1 # установить загрузчик второго уровня # в слайс gpart add -t freebsd-swap -i 2 -s 8G # в начале слайса своп на 8G, раздел b glabel label swap /dev/${d}s1b # даём свопу имя /dev/label/swap gpart add -t freebsd-ufs -s 1G # рутовый раздел на 1GB ada1s1a gpart add -t freebsd-ufs -s 1G # для раздела /usr ada1s1d # (без /usr/local) gpart add -t freebsd-ufs -s 10G # для раздела /var ada1s1e gpart add -t freebsd-ufs -s 10G # для раздела /usr/local под # устанавливаемый софт gpart add -t freebsd-ufs # всё остальное под /home и базу MySQL
newfs -U -L root /dev/${d}s1a >/dev/null # имя /dev/ufs/root рутовому разделу newfs -U -L usr /dev/${d}s1d >/dev/null # имя /dev/ufs/usr для /usr newfs -U -L var /dev/${d}s1e >/dev/null # /dev/ufs/var для /var newfs -U -L usrl /dev/${d}s1f >/dev/null # /dev/ufs/usrl для /usr/local
Последний раздел делаем с учётом того, что на нём будет база MySQL с движком InnoDB, у которого после первоначального создания базы невозможно поменять размер блока, который по дефолту 16K и поэтому крайне желательно, чтобы блок UFS был такой же (-b). Размер фрагмента (-f) должен быть в 8 раз меньше. Длинное имя раздела /dev/ada1s1e.journal сокращается до /dev/ufs/home.
Затем всё это монтируем:
mkdir /mnt/$d mount /dev/ufs/root /mnt/$d cd /mnt/$d mkdir usr var usr/local home mount /dev/ufs/usr usr mount /dev/ufs/var var mount /dev/ufs/usrl usr/local mount -o async /dev/ufs/home home # монтирование gjournal в async
Затем тупо tar-ом копируем данные (база должна быть выключена):
tar --exclude "/mnt/$d/*" -C / -cf - | tar -C /mnt/$d -xvf -