Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  mount_nullfs
  badsect
  clri
  bsdlabel
  dump (rdump)
  dumpfs
  ffsinfo
  fsirand
  mount_nfs
  mount_smbfs
  swapon
  tunefs
  umount
  recovery files
  growfs
  Pax
  clonehdd
  Мониторинг RAID
  gstripe
  fusefs-ntfs
  UFS->ZFS
  RAID5
  freebsd lvm
  root ZFS, GPT
  FreeBSD on flash
  Восстановление ZFS
  Лечим FFS
  gmirror
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Файловая система —> root ZFS, GPT

Установка FreeBSD с использованием ZFS в качестве основной

Автор: Fomalhaut.


ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

  • 1. Разметка диска
  • 2. Создание файловых систем
  • 3. Установка системы
  • 4. Завершение установки
  • 5. Выделение памяти для ZFS
  • 6. Параметры монтирования
  • 7. Обновление ZFS
  • 8. Решение мелких проблем
    Заключение
    Спасибы
    Дополнительная информация

    ВВЕДЕНИЕ

    Потихоньку созрел и для таких экспериментов. :D Много тонкостей, которые постарался охватить в этом описании.
    Задача: установить систему целиком (в том числе и root) на раздел с ZFS используя для разбивки не MBR, а GPT.
    Согласно рекомендациям, если планируется использовать ZFS, то 64-битная версия системы предпочтительней, поэтому в качестве установочного диска использован официальный DVD FreeBSD-8.1-RELEASE-amd64-dvd1.iso. Для выхода в консоль выбран пункт "Fixit..." в меню sysinstall-а с монтированием CD/DVD.
    Не смотря на "Fixit$" для всех действий требуется права root (изменено для корректной обработки парсером сайта). Без метки "Fixit$" будет представляться результат работы команды, выводимый на консоль. И так, приступим...

    1. Разметка диска

    На сервере, куда будет устанавливать FreeBSD 8.1-RELEASE установлено 2 SCSI жёстких диска по 72Гб, объединённых в "зеркало" на RAID-контроллере. В системе RAID виден, как устройство /dev/ipsd0.
    Если до этого момента на жёстком диске были созданы разделы - необходимо их удалить. В первую очередь это, скорее всего была таблица разделов на основе MBR, а во вторых мы будем со всем разбираться с самого начала.
    Для работы с разбивкой GPT используется утилита gpart. Её же можно использовать и для работы с MBR.

    1.1. Просматриваем, что есть на жёстком диске:
    Fixit$ gpart show ipsd0
    => 63 312581745 ipsd0 MBR (149G)
     63 11293632 1 !12 [active] (5.4G)
     11293695 301288113 - free - (144G)
    

    1.2. Удаляем раздел[ы]:
    Fixit$ gpart delete -i 1 ipsd0
    ipsd0s1 deleted
    

    1.3. Уничтожаем существующую таблицу разделов (в данном случае - MBR):
    Fixit$ gpart destroy ipsd0
    ipsd0 destroyed
    

    1.4. Создаём таблицу GPT:
    Fixit$ gpart create -s GPT ipsd0
    ad4 created
    Fixit$ gpart show ipsd0
    => 34 312581741 ipsd0 GPT (149G)
     34 312581741 - free — (149G)
    

    1.5. Создаём разделы. Создаваемый раздел характеризуется тремя параметрами: смещение начального блока LBA, размер и тип. Доступный для использования блок LBA можно определить по выводу команды gpart show ad4. В первом столбце строки с записью "- free -" выводится номер блока, с которого начинается неиспользуемое пространство.
    Для упрощения манипулирования разделами стоит присваивать GPT разделам метки. Например, если в дальнейшем будет необходимость создавать RAID-массивы средствами ZFS (RAIDZ).
    Так же обращаю внимание, что с появлением новых жёстких дисков, имеющих размер кластера 4кБ необходимо следить, чтобы начальный и конечный сектора (блоки) были выравнены по 4кБ. При этом не стоит забывать, что для внешних (относительно жёсткого диска) систем контроллер последнего эмулирует размер сектора всё таким же 512 байтным. В случае не выравненности разделов возникает проблема сильного снижения скорости передачи данных с активным использованием жёсткого диска в процессе работы.
    1.5.а. Создаём раздел для загрузчика. Тут есть несколько тонкостей.
    Первое: размер раздела для загрузчика не должен быть больше 545 кБ, иначе при загрузке появится сообщение "Boot loader too large" и загрузка остановится.
    Второе: по умолчанию началом первого раздела за GPT является 34 блок, но если в качестве целевого жёсткого диска будет использоваться жёсткий диск с 4кБ секторами, то в качестве первого блока для раздела freebsd-boot необходимо использовать не 34, а 40 блок (т.е. сделать необходимое выравнивание).


    Необходимо сделать выравнивание начала раздела, чтобы было кратно 4кБ. Контроллер жёсткого диска для системы всё равно представляется "винтом" с 512 кБайтным блоком, и сам осуществляет трансляцию 4кБ <-> 512Б. Поэтому, например, по умолчанию, за GPT начинается раздел с 34 блока, т.е. с 17 кБайта (напомню, что блок для системы выглядит всё равно как 512 б), а кратным 4кБ будет 40 блок или 20-й кБайт.
    В приницпе, для UFS такого выравнивания было бы достаточно (у неё фиксированный разбмер собственного блока, равный 16кБ), а вот с ZFS, имеющей переменный (не фиксированный) размер блока - несколько сложнее. Поэтому ей лучше, чтобы жёсткий диск представлялся реальными (в данном случае - 4кБ) блоками, а ведь современные HDD с 4кБ блоками для системы представляются всё так же с 512Б блоками - трансляция осуществляется контроллером "винта".
    Для такой обратной трансляции используется специальный GEOM класс NOP, управляемый через утилиту gnop. Вот как это сделано у levsha: в /etc/rc.d/ создаётся скрипт gnop:
    # cat /etc/rc.d/gnop 
    #!/bin/sh
    #
    # PROVIDE: gnop
    # REQUIRE: mountcritlocal
    # BEFORE: zfs
    # KEYWORD: nojail
    . /etc/rc.subr
    name="gnop"
    rcvar=`set_rcvar`
    start_cmd="do_gnop"
    stop_cmd=":"
    do_gnop()
    {
     for d in $gnop_disks
     do
     if [ -e /dev/$d.nop ]
     then
     echo "gnop: device $d already configured"
     else
     echo -n "gnop: configuring device $d ..."
     gnop create -v $gnop_flags $d
     fi
     done
    }
    load_rc_config $name
    run_rc_command "$1"
    

    Данному скрипту даются соответствующие права:
    $ chmod 555 /etc/rc.d/gnop # -r-xr-xr-x
    

    Для использования этого скрипта используется /etc/rc.conf:
    gnop_enable="YES" # загрузка gnop
    gnop_disks="ada0 ada1 ada2 ada3" # какие диски обрабатывать
    gnop_flags="-S 4096" # в какого размера сектор транслировать
    

    Этот "велосипед" требуется для того, чтобы ZFS вся система (ОС и компьютер) работала оптимально: у ZFS размер собственного блока не фиксирован и ориентируется на размер блока "винта", т.е. в любом случае на 512 байт (т.к. "винт" всегда это рапортует).
    Между тем попалась информация, что в Windows 7 сделано выравнивание первого разддела в 2048 блоков, т.е. в 1МБ. Но сам это не проверял: нету у меня Вантуза. :)



    Загрузочный раздел начинается по смещению 34 блока от начала диска - сразу после таблицы GPT. Его размер задаём в 256 блоков, это составляет 128кБайт (). В принципе для моих целей достаточно и 32кБайт, но я сделал с запасом. Тип раздела "freebsd-boot" означает, что этот раздел выделен специально под загрузчик FreeBSD:
    Fixit$ gpart add -b 34 -s 256 -t freebsd-boot ipsd0
    ipsd0p1 added
    

    Параметр -b указывает смещение начального блока создаваемого раздела, а -s - его размер (дополнения к цифрам k, m, g означают, что размер задан не в блоках, а в кило-, мега-, гигабайтах). Уже начиная с версии 8.0-BETA1 в параметрах утилиты gpart можно опускать эти параметры, а так же использовать суффиксы для указания размера создаваемого раздела.
    По-умолчанию, смещение начального блока берётся минимальным возможным. И если в случае жёсткого диска с 512 Б секторами в этом случае можно не указывать «-b 34», то в случае 4кБ секторов необходимо указать в обязательном порядке «-b 40». При создании остальных разделов тоже надо помнить о выравнивании. Здесь же в дальнейшем будет всё приводиться для обычных (пока ещё) жёстких дисков с 512Б секторами.
    Размер, если не указан - всё оставшееся свободное пространство. Например, та же команда для создания загрузочного раздела выглядела бы вот так:
    Fixit$ gpart add -s 128k -t freebsd-boot -l boot0 ipsd0
    

    Где «boot0» - фиксированная «метка» GPT-раздела, по которой он так же будет доступен, как и по обычному идентификатору (в моём случае /dev/ipsd0p1). Такая же метка может быть дана любым другим разделам. Доступен данный идентификатор будет после перезагрузки в каталоге /dev/gpt:
    Fixit$ ls /dev/gpt
    boot0
    

    1.5.б. Создаём раздел для swap-а.
    Можно создать swap и на ZFS, но тогда не будет возможности записи дампа ядра при kernel panic. Размер раздела будет 4 ГБ, в блоках это = 1024*1024*2*4 (в 1кБ два блока). Тип раздела — freebsd-swap:
    Fixit$ gpart add -b 290 -s 8388608 -t freebsd-swap -l swap0 ipsd0
    ipsd0p2 added
    

    1.5.в. Создаём раздел для ZFS пула, отведя ему остатки. Тип раздела — freebsd-zfs. Начало и конец раздела можно не указывать, если под него выделяется всё оставшееся место на жёстких дисках, как в моём случае.
    Fixit$ gpart add -t freebsd-zfs -l disk0 ipsd0
    ipsd0p3 added
    

    Итоговая таблица GPT будет такой:
    Fixit$ gpart show ipsd0
    => 34 312581741 ipsd0 GPT (68G)
     34 256 1 freebsd-boot (128K)
     290 8388608 2 freebsd-swap (4.0G)
     8388608 134983357 3 freebsd-zfs (64G)
    

    Можно вывести и по указанным идентификаторам:
    Fixit$ gpart show -l ipsd0
    => 34 312581741 ipsd0 GPT (68G)
     34 256 1 boot0 (128K)
     290 8388608 2 swap0 (4.0G)
     8388608 134983357 3 disk0 (64G)
    

    Недавно в утилиту gpart была добавлена новая функциональность: возможность резервного копирования и восстановления таблицы разделов: gpart backup/restore.

    2. Создание файловых систем

    Сразу отмечу, что «файловой системой» и «dataset-ом» в контексте ZFS в разных источниках называют одно и тоже.

    2.1. Для работы с разделами с ZFS необходимо подгрузить соответствующие модули ядра.
    Fixit$ kldload /mnt2/boot/kernel/opensolaris.ko
    Fixit$ kldload /mnt2/boot/kernel/zfs.ko
    

    Каталог /mnt2/ является симлинком на /dist/, поэтому здесь и далее вместо /mnt2/ можно напрямую указывать /dist/.

    2.2. Созданные на этапе "Разметка диска" разделы для системы представляются следующим образом:
    Fixit$ ls -l /dev/ipsd0*
    crw-r----- 1 root operator 0, 63 29 июл 11:57 /dev/ipsd0
    crw-r----- 1 root operator 0, 79 29 июл 12:42 /dev/ipsd0p1
    crw-r----- 1 root operator 0, 86 29 июл 13:00 /dev/ipsd0p2
    crw-r----- 1 root operator 0, 88 29 июл 13:03 /dev/ipsd0p3
    

    Третий раздел - созданный нами freebsd-zfs. На нём и создадим пул командой zpool:
    Fixit$ zpool create -m /mnt systor /dev/ipsd0p3
    


    Если понадобится создавать пул на "зеркале", то это можно сделать либо сразу объединив диски/разделы (три варианта):
    1. Fixit$ zpool create systor mirror ipsd0 ipsd1 #объединение дисков
    2. Fixit$ zpool create systor mirror ipsd0p3 ipsd1p3 #объединение разделов
    3. Fixit$ zpool create systor mirror gpt/disk0 gpt/disk1 #через метку
    

    либо создав как обычно, на одном диске/разделе, и потом присоединив второй (три соответствующих варианта):
    1. Fixit$ zpool attach systor ipsd0 ipsd1 #объединение с диском ipsd1
    2. Fixit$ zpool attach systor ipsd0p3 ipsd1p3 #объединение с разделом ipsd1p3
    3. Fixit$ zpool attach systor gpt/disk0 gpt/disk1 #через метку
    



    После создания пула его корень будет смонтирован в /mnt. Осталось указать, что этот пул будет загрузочным (через свойство bootfs):
    Fixit$ zpool set bootfs=systor systor
    


    Если ранее на этом разделе был ZFS-пул (назовём его oldzpool) и его надо пересоздать, то предварительно удалим. Если пул был root-овым, то простой импорт
    Fixit$ zpool import
    

    или принудительный
    Fixit$ zpool import -f oldzpool
    

    приведёт к «поломке» загруженной системы. В этом случае на ввод любой команды выведется следующее (в общем виде):
    ---//--- Shared object ---//--- not found, required by ---//---
    

    Поэтому "старые" пулы необходимо монтировать принудительно в отдельную директорию, например, в /mnt_old/:
    Fixit$ zpool import -R /mnt_old/ -f oldzpool
    

    Стоит уточнить, что надо обязательно указывать для монтирования каталог, причём отличный от того, куда смонтирован активный пул (если он есть).
    Остаётся удалить пул:
    Fixit$ zpool destroy -f oldzpool
    

    Определённые в пуле файловые системы будут так же утеряны (удалены).



    Дальнейшие действия по созданию файловый систем производятся командой zfs.

    2.3. Укажем алгоритм подсчёта контрольных сумм:
    Fixit$ zfs set checksum=fletcher4 systor
    

    В ZFS поддерживается три алгоритма для подсчёта контрольных сумм: fletcher2, fletcher4, sha256.

    2.4. Теперь можно создать дополнительные разделы. Предварительно я устанавливаю свойство atime=off для корневой системы, чтобы оно унаследовалось всеми вновь создаваемыми файловыми системами:
    Fixit$ zfs set atime=off systor
    Fixit$ zfs create systor/var
    Fixit$ zfs create systor/usr
    Fixit$ zfs create systor/tmp
    Fixit$ zfs create systor/var/tmp
    Fixit$ zfs create systor/var/empty
    Fixit$ zfs create -o compression=gzip systor/var/crash
    Fixit$ zfs create -o compression=gzip -o mountpoint=/mnt/usr/src systor/src
    Fixit$ zfs create -o compression=gzip -o mountpoint=/mnt/usr/ports systor/ports
    Fixit$ zfs create -o mountpoint=/mnt/usr/ports/distfiles systor/distfiles
    Fixit$ zfs create -o mountpoint=/mnt/usr/home systor/home
    Fixit$ zfs create -o mountpoint=/mnt/usr/local systor/local
    Fixit$ zfs create -o mountpoint=/mnt/usr/obj systor/obj
    Fixit$ zfs create systor/var/db
    Fixit$ chmod 1777 /mnt/tmp /mnt/var/tmp
    


    Для информации:
    a) сжатие может быть установлено в состояние on, off, lzjb, gzip, gzip-N (где N представляет целое от 1 (быстрое сжатие) до 9 (лучшее сжатие, по умолчанию gzip значит gzip-6);
    b) сжатие вызывает некоторую задержку при доступе к файлам (как при записи, так и при чтении), поэтому режим сжатия рекомендуется использовать для файловых систем нечастого использования.


    Если swap создавать не в виде отдельного GPT-раздела, а внутри ZFS пула: то сделать это можно таким образом:
    zfs create -V 1gb systor/swap
    zfs set org.freebsd:swap=on systor/swap
    zfs set checksum=off systor/swap
    

    При этом стоит не забывать, что при этом не будет возможности получить crash dump ядра в случае необходимости.
    Посмотрим результат (мы не делали swap на ZFS):
    Fixit$ zfs list
    NAME USED AVAIL REFER MOUNTPOINT
    systor 342K 62.0G 22K /mnt
    systor/distfiles 18K 62.0G 18K /mnt/usr/ports/distfiles
    systor/home 18K 62.0G 18K /mnt/usr/home
    systor/local 18K 62.0G 18K /mnt/usr/local
    systor/obj 18K 62.0G 18K /mnt/usr/obj
    systor/ports 37K 62.0G 19K /mnt/usr/ports
    systor/src 18K 62.0G 18K /mnt/usr/src
    systor/tmp 18K 62.0G 18K /mnt/tmp
    systor/usr 95K 62.0G 22K /mnt/usr
    systor/var 76K 62.0G 22K /mnt/var
    systor/var/crash 18K 62.0G 18K /mnt/var/crash
    systor/var/db 18K 62.0G 18K /mnt/var/db
    systor/var/empty 18K 62.0G 18K /mnt/var/empty
    systor/var/tmp 18K 62.0G 18K /mnt/var/tmp
    

    Для чего создано так много отдельных файловых систем:
      - различные свойства для файловых систем, например, компрессия для /usr/src, /usr/ports и /var/crash;
      - большая гибкость при планировании резервного копирования, например, для /var/db, /usr/home и /usr/local можно создавать снэпшоты по отдельному расписанию;
    иногда возникает необходимость смонтировать /usr/obj в другое место (например, в chroot другой системы).
    Для просмотра свойств созданных файловых систем можно воспользоваться командой:
    Fixit$ zfs get -r -s local all
    

    А если необходимо глянуть все свойства, в том числе и наследуемые:
    Fixit$ zfs get -r -s local,inherited all
    

    Свойства dataset-а (например, compression), наследуются вложенными dataset-ами.
    Свойства можно посмотреть и по другому:
    Fixit$ zfs list -o name,mountpoint,exec,compression -r zdata
    

    3. Установка системы

    3.1. Устанавливаем защитный Protected MBR (pmbr) от программ, не знающих GPT, и GPART загрузчик gptzfsboot:
    Fixit$ gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ipsd0
    

    3.2. Установим систему в созданный пул systor:
    Fixit$ cd /dist/8.1-RELEASE
    Fixit$ export DESTDIR=/mnt
    Fixit$ for dir in base catpages dict doc games info lib32 manpages ports; \
     do (cd $dir ; ./install.sh) ; done
    Fixit$ cd src ; ./install.sh all
    Fixit$ cd ../kernels ; ./install.sh generic
    Fixit$ cd /mnt/boot ; cp -Rlp GENERIC/* /mnt/boot/kernel/
    

    ВАЖНО ДЛЯ i386 СБОРКИ: В этой версии FreeBSD в строке цикла for не надо указывать lib32. Так же было зачемено, что почему-то при отработке ./install.sh на ports система замирает секунд на 15 (хотя по "Num lock", например, реагирует) и вываливается с трапом. Поэтому при установке i386 версии системы лучше не указывать ports для установки: потом легко можно поставить с того же диска или через portsnap, например.

    3.3. Для датасета systor/var/empty установим режим "только чтение":
    Fixit$ zfs set readonly=on systor/var/empty
    

    3.4. Переключимся в режим (chroot) для ZFS-пула /systor:
    Fixit$ chroot /mnt
    

    3.5. Создадим /etc/rc.conf:
    Fixit$ echo 'zfs_enable="YES"' > /etc/rc.conf
    Fixit$ echo 'hostname="stalker.mydomain.local"' >> /etc/rc.conf
    Fixit$ echo 'defaultrouter="192.168.1.4"' >> /etc/rc.conf
    Fixit$ echo 'ifconfig_re0="192.168.1.3 netmask 0xffffff00"' >> /etc/rc.conf
    Fixit$ echo 'ifconfig_re1="DHCP"' >> /etc/rc.conf
    Fixit$ echo 'sshd_enable="YES"' >> /etc/rc.conf
    

    В данном примере re0, re1 — сетевые интерфейсы в новой системе.

    3.6. Создадим /boot/loader.conf:
    Fixit$ echo 'zfs_load="YES"' > /boot/loader.conf
    Fixit$ echo 'vfs.root.mountfrom="zfs:systor"' >> /boot/loader.conf
    

    3.7. Установим системный загрузчик с поддержкой ZFS.
    "В состав базовой системы добавлен zfsloader, который позволяет загружать систему с ZFS-разделов (для использования загрузчика zfsloader необходимо установить загрузочный код zfsboot или gptzfsboot);" (выдержка из описания к 8.1-RELEASE). Т.е. загрузчик в комплекте 8.1-RELEASE уже поддерживает ZFS в полном объёме.
    В для более старых версий системы необходимо скомпилировать загрузчик с поддержкой ZFS:
    Fixit$ echo 'LOADER_ZFS_SUPPORT=YES' > /etc/src.conf
    Fixit$ mount -t devfs devfs /dev
    Fixit$ export DESTDIR=""
    Fixit$ cd /usr/src/sys/boot/
    Fixit$ make obj
    Fixit$ make depend
    Fixit$ make
    Fixit$ cd i386/loader
    Fixit$ make install
    

    3.8. Зададим пароль root-а:
    Fixit$ passwd
    

    3.9. Установим локальную временную зону:
    Fixit$ tzsetup
    

    3.10. Создадим бинарную базу почтовых алиасов /etc/mail/aliases.db:
    Fixit$ cd /etc/mail
    Fixit$ make aliases
    

    3.11. Создадим для новых пользователей профиль "по умолчанию":
    Fixit$ adduser -C
    

    3.12. Выйдем из режима chroot:
    Fixit$ umount /dev
    Fixit$ exit
    

    3.13. Создадим zpool.cache, в котором содержится информация о созданном пуле ZFS. Он нужен для того, чтобы свежеустановленная система сразу нашла ZFS пул без предварительного его импорта командой zpool import:
    Fixit$ zpool set cachefile=/mnt/boot/zfs/zpool.cache systor
    

    4. Завершение установки

    4.1. Создадим файл /etc/fstab:
    Fixit$ cat << EOF > /mnt/etc/fstab
    # Device Mountpoint FStype Options Dump Pass#
    proc /proc procfs rw 0 0
    EOF
    Fixit$ mkdir /proc
    

    Для подключения swap-партиции можно воспользоваться прямым указанием номера партиции на устройстве:
    Fixit$ echo '/dev/ipsd0p2 none swap sw 0 0' >> /systor/etc/fstab
    

    А можно воспользоваться возможностями GPT:
    Fixit$ glabel list | grep gpt
    1. Name: gpt/boot0
    1. Name: gptid/6a992733-a9f5-11df-8040-0011258e011c
    1. Name: gpt/swap0
    1. Name: gptid/99e63961-a9f5-11df-8040-0011258e011
    

    Т.е. можно воспользоваться созданной ранее GPT-меткой:
    Fixit$ echo '/dev/gpt/swap0 none swap sw 0 0' >> /systor/etc/fstab
    

    Или же воспользоваться GPT-идентификатором, что позволит в дальнейшем забыть о необходимости редактирования /etc/fstab при изменении именования диска (при подключении "винчестера" к другому SAS/SCSI/SATA/PATA-порту или при использовании, например, экспериментального AHCI-драйвера):
    Fixit$ glabel status | grep ipsd0p2 | grep -v swap0 >> /systor/etc/fstab
    Fixit$ vi /systor/etc/fstab
    Fixit$ cat /systor/etc/fstab | grep gptid
    /dev/gptid/99e63961-a9f5-11df-8040-0011258e011 none swap sw 0 0
    

    4.2. Отмонтируем все ZFS файловые системы:
    Fixit$ export LD_LIBRARY_PATH=/mnt2/lib
    Fixit$ cd /
    Fixit$ zfs unmount -a
    

    4.3. Сменим точки монтирования файловых систем:
    Fixit$ zfs set mountpoint=legacy systor
    Fixit$ zfs set mountpoint=/var systor/var
    Fixit$ zfs set mountpoint=/var/db systor/var/db
    Fixit$ zfs set mountpoint=/var/tmp systor/var/tmp
    Fixit$ zfs set mountpoint=/var/empty systor/var/empty
    Fixit$ zfs set mountpoint=/var/crash systor/var/crash
    Fixit$ zfs set mountpoint=/usr systor/usr
    Fixit$ zfs set mountpoint=/usr/src systor/src
    Fixit$ zfs set mountpoint=/usr/ports systor/ports
    Fixit$ zfs set mountpoint=/usr/ports/distfiles systor/distfiles
    Fixit$ zfs set mountpoint=/usr/home systor/home
    Fixit$ zfs set mountpoint=/usr/local systor/local
    Fixit$ zfs set mountpoint=/usr/obj systor/obj
    Fixit$ zfs set mountpoint=/tmp systor/tmp
    

    4.4. Выйдем из Fixit режима, возвратившись в sysinstall. Удалим установочный DVD с FreeBSD и произведём загрузку установленной системы.

    5. Выделение памяти для ZFS

    При загрузке ядро будет выводить предупреждения, что необходимо сконфигурировать переменными ядра распределение памяти для работы ZFS.
    Мои настройки /boot/loader.conf для машины с 2 ГБ памяти:
    vm.kmem_size="1024M"
    vm.kmem_size_max="1024M"
    vfs.zfs.arc="512M"
    vfs.zfs.arc_max="512M"
    vfs.zfs.vdev.cache.size="10M"
    vfs.zfs.prefetch_disable=1
    

    Если всё таки устанавливается версия i386, то для более правильной настройки стоит получше изучить ZFS, в особенности в части тюнинга.
    Например, для домашнего сервера (Pentium 4 2.66GHz / 1280 MB), куда amd64 не устанавливалась в виду отсутствия поддержки 64битных расширений, пришлось ставить i386 сборку, а для ZFS задать такие параметры памяти:
    vm.kmem_size="512M"
    vm.kmem_size_max="512M"
    vfs.zfs.arc="80M"
    vfs.zfs.arc_max="80M"
    vfs.zfs.vdev.cache.size="30M"
    vfs.zfs.prefetch_disable=1
    

    Есть важное уточнение (опять же - для i386): если выставляется kmem более 512 Мб, то система падает в "кернел паник" с "руганью" на kmem_suballoc. Суть в том, что по умолчанию указать можно не более 512 Мб, а для бОльших значений (до 1Гб) необходимо пересобрать ядро с параметром:
    options KVA_PAGES=512
    

    По умочанию KVA_PAGES=256, что и является причиной ограничения.

    6. Параметры монтирования

    В процессе эксплуатации система, где установлена FreeBSD, так или иначе будет подвергаться различным воздействиям: положительным (например, настройка, обработка информации) и отрицательным (какие-либо ошибки, попытки взлома (особенно, если система будет иметь выход в сеть Интернет) или что-то ещё).
    Для защиты от негативных воздействий (тем более - умышленных) на уровне файловой системы (идея и для UFS и для ZFS едина) можно воспользоваться таким свойством, как "read only" (только чтение).
    В следующей таблице для всех датасетов ZFS, из ранее созданных по данной статье, указаны режимы монтирования, рекомендованные для использования FreeBSD в активном режиме:
    Датасет
    Точка монтирования
    Режим
    systor / RO Ex
    systor/var /var RW
    systor/var/db /var/db RO
    systor/var/tmp /var/tmp RW
    systor/var/empty /var/empty RW
    systor/var/crash /var/crash RW
    systor/usr /usr RO Ex
    systor/src /usr/src RO
    systor/ports /usr/ports RO
    systor/distfiles /usr/ports/distfiles RO
    systor/home /usr/home RW
    systor/local /usr/local RO Ex
    systor/obj /usr/obj RO
    systor/tmp /tmp RW

    RO - только чтение, RW - чтение и запись, Ex - запуск

    7. Обновление ZFS

    15 сентября 2010 г. в восьмую ветку FreeBSD был добавлен исходный код 15-й версии ZFS (точнее: 15-й версии пул и 4-й версии датасетов).
    Просмотреть текущие версии пула и датасетов можно так:
    $ zpool upgrade # с -v - кратная информация по версиям
    $ zfs upgrade # с -v - кратная информация по версиям
    

    Если ставить изначально систему с ZFS более ранней версией и затем обновиться, то необходимо будет обновить версии пула и датасетов:
    $ zpool upgrade -a # обновление пула
    $ zfs upgrade -a # обновление датасетов
    

    Обновление произойдёт без каких-либо дополнительных действий в процессе работы системы.
    В дополнении к этому: в 15-й версии используется библиотека python для поддержки подкоманд утилиты zfs (zfs allow, zfs unallow, zfs groupspace, zfs userspace), поэтому требуется её установить:
    $ cd /usr/ports/sysutils/py-zfs/
    $ make install clean
    

    Возможно в будущих релизах системы эту библиотеку интегрируют в дистрибутив, но пока - ручками. :)

    8. Решение мелких проблем

    ПРОБЛЕМА №1:
    При загрузке с диска (LiveFS или установочного) возможно появление ошибки на этапе загрузки ядра (у меня проявилось на сервере IBM x346, когда к нему подключил DVD-дисковод):
    SMP: AP CPU#1 Launched!
    acd0: TIMEOUT - READ_BIG retrying (1 retry left)
    acd0: TIMEOUT - READ_BIG retrying (0 retries left)
    acd0: FAILURE - READ_BIG timed out
    

    Данная проблема может быть решена установкой параметра DMA в загрузчике (loader prompt):
    set hw.ata.atapi_dma=0
    boot
    

    Для постоянного применения данного параметра его необходимо прописать в файл /etc/sysctl.conf.

    ПРОБЛЕМА №2:
    Если по какой-либо причине (например, для корректировки /boot/loder.conf, иначе система не загружается - как раз мой случай) для доступа к данный на ZFS пуле пришлось его монтировать с ключём -R (принудительное монтирование пула в заданный каталог)
    Fixit$ zpool import -R /mnt_new -f systor
    

    , то потребуется восстановить файл /boot/zfs/zpool.cache, т.к. сбросилось свойство пула cachefile, что видно при просмотре свойств пула:
    Fixit$ zpool get all systor
    

    Но это не самая простая (и не очевидная) задача. Надо сделать:
    первое: смонтировать корень данного пула (его точка монтирования изменилась на none и поэтому при импорте он стал недоступен):
    Fixit$ zfs umount -a
    Fixit$ zfs set mountpoint=/ systor
    Fixit$ zfs mount
    

    второе: обновить файл zpool.cache инициализацией соотв.значения свойства cachefile:
    Fixit$ zpool set cachefile=/mnt_new/boot/zfs/zpool.cache systor
    

    Всё: после перезагрузки восстановленный пул будет испортирован корректно.

    ПРОБЛЕМА №3:
    Был момент, когда SATA кабель одного из "винтов" выскочил из материнки, а я не заметил. В итоге всё загрузилось нормально и работало (два диска gpt/disk0 и gpt/disk1 в зеркале (домашний сервер), но при просмотре статуса zpool status заметил, что один "винт" не доступен.
    Вернув кабель назад в разъём после загрузки увидел, что ZFS зафиксировала несовпадение контрольных сумм:
    $ zpool status
    pool: systor
    state: ONLINE
    status: One or more devices has experienced an unrecoverable error. An
    attempt was made to correct the error. Applications are unaffected.
    action: Determine if the device needs to be replaced, and clear the errors
    using 'zpool clear' or replace the device with 'zpool replace'.
    see: http://www.sun.com/msg/ZFS-8000-9P
    scrub: none requested
    config:
     NAME STATE READ WRITE CKSUM
     systor ONLINE 0 0 0
     mirror ONLINE 0 0 0
     gpt/disk0 ONLINE 0 0 11
     gpt/disk1 ONLINE 0 0 0
    errors: No known data errors
    

    Для коррекции зафиксированных несовпадений контрольных сумм CKSUM сделал проверку (в нотации ZFS - очистку (scrubbing)) изменений:
    $ zpool scrub systor # явная очистка данных ZFS в пуле systor
    $ zpool clear systor gpt/disk0 # очистка списка ошибок для диска gpt/disk0
    

    Если же возникла необходимость извлечь, например, сбойный диск, то в указанном варианте это можно было бы сделать так:
    $ zpool detach systor gpt/disk0
    

    Это можно делать как при работе системы (а после выключения удалить "винт" физически из системы), так и после физического отключения/удаления диска.

    Заключение

    Сервер установлен, можно продолжать настройку и установку ПО.
    Если у читателей есть предложения/вопросы/конструктивная_критика - прошу их высказать в комментариях. :)   В данной статье использованы ранее найденные по этой теме материалы, но постарался учесть изменения, присущие последним изменениям в системе.
    P.S. Уже после установки нашёл ссылку, где предложен скрипт для установки и настройки ZFS.
    P.P.S. Ещё прислали ссылку на переработанный специально дистрибутив, "заточенный" для установки системы: mfsBSD. Туда интегрирован патч для ZFS v.15 (был и с интегрированным v.28, но по какой-то причине его убрали).

    Спасибы

    Огромное спасибо Andrey V.Elsukov aka bu7cher за терпеливые ответы на множество вопросов. :)
    А так же участникам freebsd@conference.jabber.ru.

    Дополнительная информация

    1. Руководство FreeBSD. Глава 19. Поддержка файловых систем;
    2. Использование gpart;
    3. Изучаем ZFS;
    4. ZFS — новый взгляд на файловые системы;
    5. ZFS-Only FreeBSD;
    6. ZFS и FreeBSD: советы и подсказки;
    7. Тестируем ZFS, моделируем отказы дисков;
    8. Увеличичения размера ZFS пула;
    9. Тестирование поведения RAID-Z массива во FreeBSD при полном отказе одного из дисков;
    10. Руководство по администрированию файловых систем ZFS Solaris (PDF, рус);
    11. Solaris ZFS Administration Guide (PDF, eng);
    12. Архитектура ZFS (PDF);
    13. "Дневник" Jeff Bonwick - одного из разработчиков ZFS;
    14. Шпаргалка по ZFS.
    Примечание: [11] новее, чем [10], но на английском.



    Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=14&t=30060.

    размещено: 2010-12-05,
    последнее обновление: 2012-08-12,
    автор: Fomalhaut

    оценить статью:

    gonzo111, 2010-12-05 в 1:11:41

    вроде неплохое хауту :)
    1 ссылку на форум сделай для обсуждения
    в "разделе про сайт"
    2 не понял зачем это
     Укажем алгоритм подсчёта контрольных сумм
    # zfs set checksum=fletcher4 systor ?????

    gonzo111, 2010-12-05 в 1:21:28

    3) я вот читаю статьи и везде все одно и тоже делают -ставят сжатие на ports,у меня это вызывает улыбку - нахрена сжимать несчастные 300мб какой профит??? да еще и получить лишние тормоза при установке из портов...:)

    Fomalhaut, 2010-12-05 в 13:28:42

    gonzo111: Ссылку на форум добавил. Там же и ответ на остальное. :)

    gx, 2010-12-05 в 17:44:47

    Нужно добавить линк на оф. вики - это я так понял первоисточник.

    Так посмотриш на это, аж страшно станет - столько команд...
    Есть ради чего мучаться?

    Fomalhaut, 2010-12-05 в 18:16:30

    gx: Нет, первоисточником была статья всё того же bu7cher на opennet-ом ВиКи, с чьего разрешения я и использовал её для написания своего обновлённого варианта. Конечно, читалось много другим материалов, в том числе и с официальных ВиКи. Перечислять всё - много, да и всего прочитанного не вспомню, хотя в черновиках собирал ссылки: с десятка два набралось. :)
    А "мучаться" есть ради чего (по крайней мере для меня): разобраться в GPT и gpart, деталях создания и обслуживания ZFS и пр. Т.к. в будущем хочу домашнюю систему целиком перевести на FreeBSD, а домашний архив - на ZFS и GLI (такая вот паранойя :D ).

    Ludenus, 2010-12-07 в 22:00:46

    Большое спасибо.

    Сделано полное исследование: постановка задачи, даны ссылки и успешно установленная система. Важно, что задача заключаласть не просто в написании непроходимого скрипта, но в полном "разборе полетов" и обобщении существующих рекомендаций.

    Я бы эту работу отнес не к HOWTO, а к рекомендациям best practice.

    Fomalhaut, 2010-12-08 в 9:52:20

    Ludenus: Спасибо. Но всё равно уже немного подправил от первоначального варианта: были исправления/уточнения/дополнения. :)

    Nirnroot, 2010-12-21 в 12:03:32

    Лучше подождать девятки. По моим тестам, там повысилась скорость и вдвое упало потребление памяти. А 8ку нужно обновить, чтобы приплыл патч на металинк - ускорит систему, особенно загруженную.

    Fomalhaut, 2010-12-22 в 3:13:30

    Nirnroot: Лучше, наверное, будет обновиться с 8.2 до 9.0 по выходу последней. :)
    Систему я уже обновил до 8.2-PRERELEASE, а вод до 9.0-CURRENT - не охота: CURRENT он и есть CURRENT - для разработчиков, а не для активного использования.

    i, 2010-12-28 в 8:47:37

    >установлено 2 SCSI жёстких диска по 72Гб, объединённых в \"зеркало\" на RAID-контроллере

    а зачем, если через zfs собирать зеркало правильнее?

    >zpool create systor mirror ipsd0p3 ipds1p3

    хотя эта строка намекает, что таки нет железного зеркала и оно делается ZFS-ом.
    Не понятно как у тебя на самом деле сделно...

    Fomalhaut, 2010-12-28 в 10:32:48

    i: Ну можно почитать внимательней: по поводу этой строки написано буквально следующее: "...Если понадобится создавать пул на "зеркале", то это можно сделать...". Ключевое слово: ""если": кому-то понадобится сделать именно такой вариант.
    По поводу аппаратного RAID-а уже обмусоливалось на форуме, где эта статья обсуждалась: вот ссылка.

    i, 2010-12-28 в 15:24:19

    читать до просветления:
    http://blogs.sun.com/bonwick/ru/

    Fomalhaut, 2010-12-29 в 11:07:24

    i: Давайте обсуждение данного вопроса перенесём всё таки на форум.

    Серёжа, 2011-02-07 в 17:53:16

    http://mfsbsd.vx.sk/

    Fomalhaut, 2011-02-07 в 19:48:53

    Серёжа:
    Я знаю про эту сборку: ссылка есть в статье.

    ttys, 2011-02-22 в 11:59:57

    10. Руководство по администрированиюфайловых систем ZFS Solaris (PDF);
    сцылка битая

    Fomalhaut, 2011-02-22 в 14:17:51

    ttys: Ораклясты (эти... нехорошие люди) закрывают доступ то к одному, то к другому. :(
    Все ссылки на момент написания/редактирования статьи были рабочими.
    P.S. Надо будет выложить этот документ куда-нибудь.

    ttys, 2011-02-22 в 14:20:28

    ложи в ftp://ftp.lissyara.su/
    =)

    reva, 2011-03-06 в 11:53:38

    Добрый день, хочу обратить на возможные проблемы с которыми столкнулся при реализации выше описанного:

    1. Описанная выше схема не работает для FreeBSD 8.2 p0 - перепробовал все варианты установки из раздела http://wiki.freebsd.org/ZFS но загрузить систему не получается.
    2. FreeBSD 8.1 работает великолепно, однако есть проблема с zfs mirror boot (Если физически отключить первый диск из mirror пула zfs, то со второго нельзя загрузиться). Описание проблемы и решения можно найти тут http://forums.freebsd.org/showthread.php?t=16535

    Fomalhaut, 2011-03-06 в 19:19:31

    reva: Очень странно: я ставил с 8.2-RC3 - проблем не видел. Причём ставил на zfs mirror: на этой системе сейчас и работаю.
    Дёргал (случайно) винт, о чём написал в "ПРОБЛЕМА №3". Причём отключался именно первый (у меня disk0), но заметил это не сразу: система загрузилась и работала.
    Но сигнал принял: проверю после праздников на работе: мне как раз надо в виртуалке поставить систему. Зеркало там не надо, но для эксперимента сделать не мешает. :)

    Boba, 2011-03-10 в 18:35:22

    В пункте 3.1 наверно все таки не ad0, а для рассматриваемого примера ipsd0?

    Fomalhaut, 2011-03-17 в 8:28:53

    Boba: Исправил - спасибо за сообщение. :)

    5chme1, 2011-11-05 в 17:21:46

    Сейчас можно с диска PC-BSD поставить FreeBSD, в том числе и с ZFS

    link, 2012-05-05 в 9:31:43

    _http://blogs.sun.com/bonwick/ru/
    переехал на
    https://blogs.oracle.com/bonwick/ru/

    ttys, 2012-05-05 в 13:35:32

    404 Not Found!

    Sorry, that page does not exist. Please try another location or you can search...

    linx, 2013-04-29 в 13:06:03

    Root On ZFS @ FreeBSD 9

    LOLO, 2013-10-03 в 23:44:10

    АФТАР ЕБЛАН

    salimk, 2013-10-23 в 15:43:23

    Здравствуйте товарищщи!
    Для Sun Fire (sparc64):

    1. Разметка диска
    sunlabel -B da0
    gpart destroy -F da0
    gpart create -s vtoc8 da0
    gpart add -s 512M -t freebsd-ufs /dev/da0
    gpart add -s 4G -t freebsd-swap /dev/da0
    gpart add -t freebsd-zfs /dev/da0

    ##2.2
    zpool create -f -m /mnt zroot /dev/da0d
    Далее делаем все также



    3. Установка системы
    пункт 3.1 не делаем

    mkdir /mnt/bootdir
    newfs -m 0 /dev/da0a
    mount /dev/da0a /mnt/bootdir

    далее делаем все также


    ##3.5
    echo 'zfs_enable="YES"' > /etc/rc.conf

    echo 'zfs_load="YES"' > /boot/loader.conf
    echo 'vfs.root.mountfrom="zfs:zroot"' >> /boot/loader.conf
    echo 'vfs.zfs.prefetch_disable="1"' >> /boot/loader.conf
    echo 'console="ofw"' >> /boot/loader.conf

    mv boot bootdir/
    ln -s bootdir/boot /boot
    chflags -h sunlink /boot

    работает 100%
    gpart show da0
    =>       0  71087625  da0  VTOC8  (33G)
            0   1044225    1  freebsd-ufs  (509M)
      1044225   4192965    2  freebsd-swap  (2G)
      5237190  65850435    4  freebsd-zfs  (31G)


    Оставьте свой комментарий:
    Ваше имя:   *
    e-mail:  
    жирный
    наклонный
    подчёркнутый
    ссылка
    цвет
    Нынешний год:   *
     


  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    2011-11-20, BlackCat
    Разъём на WiFi-карту

    Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
    2011-09-14, manefesto
    Настройка git+gitosis

    Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
    2011-08-14, zentarim
    Wi-FI роутер + DHCP + DNS

    Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
    2011-06-15, -ZG-
    Охранная система на FreeBSD+LPT

    В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
    2011-03-13, terminus
    ng_nat

    Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
    2011-02-20, Капитан
    Nagios+Digitemp

    Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
    2011-02-17, Le1
    Zyxel Configuration

    Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
    2011-02-16, fox
    hast carp zfs ucarp cluster

    HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
    2011-02-04, BlackCat
    Восстановление ZFS

    История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
    2011-02-03, Капитан
    1-Wire

    Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
    2011-01-28, Капитан
    Температура в серверной

    Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
    2011-01-21, m4rkell
    Syslog server

    Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
    2011-01-11, Fomalhaut
    cvs, svn, portsnap

    Обновление сорцов системы через CVS и SVN, портов - CVS и portsnap. Обновление через Proxy-сервер.
    2011-01-07, lissyara
    Canon/gphotofs

    Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
    2010-12-13, Al
    IPSec

    Описание принципов работы IPSEC и способов аутентификации.
    2010-12-07, manefesto
    FreeBSD on flash

    Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
    2010-12-05, Fomalhaut
    root ZFS, GPT

    Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
    2010-09-05, Cancer
    Настройка аудиоплеера на ximp3

    Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
    2010-08-31, Cancer
    Установка и настройка OpenVPN

    На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
    2010-08-25, manefesto
    freebsd lvm

    Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
    2010-04-30, gonzo111
    proftpd file auth&quota

    Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
    2010-04-22, lissyara
    tw_cli

    Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
    2010-04-14, fox
    MySQL Master+Master

    MySQL (Master Master) and (Master Slave) Как настроить репликацию…
    2010-03-22, Mufanu
    named 9.7.0

    Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
    2010-03-09, terminus
    DNS zones

    Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
    2010-03-09, aspera
    Squid+AD (group access)

    Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
    2010-03-02, BlackCat
    Шлюз: Часть 4

    Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
    2010-03-01, BlackCat
    Шлюз: Часть 3

    Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
    2010-03-01, BlackCat
    Шлюз: Часть 2

    Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
    2010-03-01, BlackCat
    Шлюз: Часть 1

    Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
    2010-02-23, Morty
    darkstat

    Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
    2010-01-23, gonzo111
    squid+sams+sqstat

    Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
    2009-12-19, schizoid
    mpd5 + radius + ng_car + Abills

    Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
    2009-11-16, lissyara
    UFS->ZFS

    Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
    2009-11-13, gx_ua
    fusefs-ntfs

    Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
    2009-11-12, Morty
    LiveCD

    Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
    2009-09-27, lissyara
    Samba как PDC

    Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
    2009-08-30, terminus
    ipfw nat

    Подробное руководство по ipfw nat, сложные случаи конфигурации.
    2009-08-24, levantuev
    HotSpot

    Установка Hotspot системы в общественное заведение.
    2009-08-18, lissyara
    diskless

    Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
    2009-07-29, BAV_Lug
    Видеонаблюдение

    Настройка бюджетного варианта видеонаблюдения на удаленном объекте
    2009-07-22, Cancer
    OpenLDAP адресная книга

    Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
    2009-06-30, SergeySL
    AimSniff

    Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
    2009-06-25, atrium
    Управление правами доступа

    Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
    2009-06-16, DNK
    Exim+PgSQL

    Установка почтовой системы exim+pgsql на FreeBSD 7.1
    2009-05-30, mvalery
    HDD(mbr) -> HDD(gpt)

    Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
    2009-05-22, Cancer
    SendXMPP

    Отправка сообщений на Джаббер сервер по средствам SendXMPP
    2009-05-11, Raven2000
    Network UPS Tools

    Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
    2009-04-29, m0ps
    IPSEC over GRE with RIP

    Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
    2009-04-24, WhiteBear777
    qemu network

    Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
    2009-04-22, vp
    freebsd + huawei 162 gsm modem

    В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
    2009-04-12, mvalery
    Мониторинг RAID

    Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
    2009-04-09, texnotronic
    RAID1 via LAN

    Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
    2009-04-03, Raven2000
    Оптимизация хоста для CMS

    В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
    2009-04-01, atrium
    VSFTPD + AD && MySQL

    Настройка самого безопасного сервера FTP - vsftpd.
    2009-03-31, Dron
    Peoplenet + C-motech (3G)

    Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
    2009-03-25, lissyara
    mod_auth_external

    mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
    2009-03-24, gx_ua
    Lightsquid

    Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
    2009-03-18, LHC
    Установка Zabbix-1.6

    Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
    2009-03-16, Cancer
    Принт-Сервер Samba+LPD & AD

    Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
    2009-03-04, Mad_caterpillar
    ipsec_vpnc

    Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
    2009-02-18, Andy
    Free-SA

    Программа анализирует log файлы Squid'а и формирует по ним отчет.
    2009-02-02, Cancer
    Openfire Jabber Server

    Установка Jabber сервера на примере Openfire
    2009-01-28, Cancer
    mpd5 + сжатие и шифрование

    Установка VPN сервера mpd5 + сжатие и шифрование
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 13 чел.
    За последние 30 мин было: 73 человек
    За сегодня было
    12620 показов,
    1677 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    веселые картинки развлекательные гифки интресные факты смешные видео смешные истории из соцсетей

    Время генерации страницы 2.1405 секунд
    Из них PHP: 99%; SQL: 1%; Число SQL-запросов: 77 шт.
    У Вас отключено GZIP-сжатие в браузере. Размер страницы 201607