При заполнении пула почти на 90% (вообще-то у всех по-разному: у кого-то и в 70%, а у кого-то только при 98%) Zfs начинает сильно притормаживать, точнее искать свободное место в пуле, куда-бы записать. Связано это с тем, что по умолчанию установлено слишком большое значение параметра metaslab_min_alloc_size.
Категорія: FreeBSD
Если вам критичен простой и вы не хотите разбираться с дампом при kernel panic, то можно облегчить себе жизнь, выставив авторебут при kernel panic. Вот как это делается в каждой из ОС.
Внимание
Перезагрузка после Kernel panic имеет и очень серьёзный недостаток, особенно если это изменение не пропадает после первой перезагрузки. В случае, если перезагрузка не устраняет ту ошибку, которая вызывает Kernel panic, система будет останавливаться и перезапускаться вновь и вновь, что может привести к аппаратным ошибкам или потерям данных
Ниже будет приведён скрипт, который позволяет перехватить удаление файла и вывести сообщение на консоль. При этом, на место блока /* INSERT HERE */ можно вставить свои обработчики, которые будут выполняться каждый раз, когда кто-то захочет удалить файл.
В статье будем рассмотрен механизм замены дисков корневого пула на диски большей ёмкости. Данный метод подходит как для Solaris-family так и для FreeBSD.
Часто бывают такие ситуации, когда вы открыли через vi/vim файл, сделали очень много изменений и в конце понимаете, что забыли выполнить sudo. Что же делать? Заново править файл очень как не хочется. на помощь приходит такая команда:
:w !sudo tee %
а для Solaris можно ещё и такую
:w !pfexec tee %
После этого выдаётся запрос на ввода пароля и подтверждение, что вы хотите перезаписать файл и всё (с вариантом pfexec запрос пароля не происходит).
dirname: not found
Если при обновлении FreeBSD получаем такую ошибку:
===> include (install)
>> creating osreldate.h from newvers.sh
/usr/src/include/../sys/conf/newvers.sh: dirname: not found
то нужно найти в скрипте /usr/src/sys/conf/newver.sh найти dirname и прописать полный путь к нему
...
SYSDIR=$(/usr/bin/dirname $0)/..
...
У меня ещё ругалось на команду touch. Так же как и в случае с dirname решило проблему.
Допустим, вам необходимо создать несколько виртуальных интерфейсов, которые будут работать как обычные, не зависимые друг от друга. Это очень легко делается через netgraph. Приведу лишь скрипт, который создаст 3 виртуальных интерфейса, не трогая при этом физический:
Правильная пересборка ядра
Расскажу, как рекомендуется правильно пересобирать ядро, а именно включать, отключать опции и т.д.
1) Создание конфигурационного файла
Создаём пустой файл в /usr/src/sys/`uname -m`/conf , например, kern1 такого содержания:
include GENERIC
ident kern1
Этим мы определили, что использовать будем шаблон GENERIC, а имя нового ядра kern1.
FreeBSD
Что бы узнать какие режимы поддерживаются данной карточкой, используем такую команду:
# ifconfig -m nfe0 nfe0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8210b<RXCSUM,TXCSUM,VLAN_MTU,TSO4,WOL_MAGIC,LINKSTATE> capabilities=8210b<RXCSUM,TXCSUM,VLAN_MTU,TSO4,WOL_MAGIC,LINKSTATE> ether fa:d5:5e:f7:db:ff inet 192.168.1.40 netmask 0xffffff00 broadcast 192.168.1.255 inet6 fe80::f8d5:5eff:fef7:dbff%nfe0 prefixlen 64 scopeid 0x4 inet 192.168.0.11 netmask 0xffffff00 broadcast 192.168.0.255 inet 10.11.11.2 netmask 0xffffff00 broadcast 10.11.11.255 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (100baseTX <full-duplex>) status: active supported media: media autoselect mediaopt flowcontrol media autoselect media 100baseTX mediaopt full-duplex media 100baseTX media 10baseT/UTP mediaopt full-duplex media 10baseT/UTP
FreeBSD
$rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
Linux
$ls /etc/rc`runlevel | cut -d ' ' -f 2`.d | sort
Solaris
$svccfg list