Архив рубрики: FreeBSD

[ZFS] Замена сбойного диска сбойным

Не знаю, проявляется ли это на новых версиях ZFS, но достаточно интересный хак. И так, ситуация следующая: при замене диска в пуле, в процесс перестройки, выпал заменяемый диск. Тогда пул навсегда замирает в состоянии DEGRADED. Как быть? Вот здесь подсмотрел хак. Приведу цитатой:

echo zfs_no_scrub_io/W0t1 | mdb -kw

После этого надо дать resilver закончиться (он пройдёт достаточно быстро), и «zpool offline» сбойное устройство.

Потом поменять параметр назад:

echo zfs_no_scrub_io/W0t0 | mdb -kw

и «zpool replace» его работающим диском.

Принцип работы хака: в треде, где идёт resilver, мы пропускаем собственно часть, которая пишет данные; resilver заканчивается (естественно, на битый диск мы ничего не пишем, так что ошибок на нём не будет, но и данных тоже).

 

NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW

FreeBSD 11.x has many debugging features turned on, in both the kernel and userland. These features attempt to detect incorrect use of system primitives, and encourage loud failure through extra sanity checking and fail stop semantics. They also substantially impact system performance. If you want to do performance measurement, benchmarking, and optimization, you’ll want to turn them off. This includes various WITNESS- related kernel options, INVARIANTS, malloc debugging flags in userland, and various verbose features in the kernel. Many developers choose to disable these features on build machines to maximize performance. (To completely disable malloc debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely disable the most expensive debugging functionality run «ln -s ‘abort:false,junk:false’ /etc/malloc.conf».)

 

Установка пакета через pkg без зависимостей

Иногда pkg при установке/обновлении тянет столько зависимостей или начинает чудить с удалением нужных пакетов. Тогда будем применять следующий приём: скачивать (или собирать на основе порта) нужный пакет, помещать его в наш репозиторий, отключать удалённый, ставить пакет.

Читать далее

NAT with multiple outgoing IPs

IPFilter

map net0 10.10.10.0/24 -> 192.168.0.2/24 round-robin
map net0 10.10.10.0/24 -> 192.168.0.3 round-robin

Iptables

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 1.2.3.0/24
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 1.2.3.0-1.2.3.4 --to 1.2.3.6-1.2.3.254

Читать далее

[dtrace] Просмотр открытых файлов

В комплекте dtrace tool kit есть скрипт opensnoop, который позволяет просматривать открытые файлы в режиме реального времени.

Пример использования.

./opensnoop.d -x -n php
  UID    PID COMM          FD PATH
  620   8483 php           -1 /var/ld/ld.config
  620   8483 php           -1 /bin//php-cli.ini
  620   8483 php           -1 /soft/sun_free/php/php-cli.ini
  620   8483 php           -1 /bin//php.ini
...

Читать далее

Iron Bars Shell — restricted system shell for Linux/Unix

Iron Bars SHell, or short ibsh is my first attempt to create a restricted working environment for Linux/Unix. I’m sure that many system administrators wish or have wished for a way to lock some/all users into a safe dungeon, where they can only do harm to their own files. Even more important is the protection against users reading sensitive files, for example the /etc/passwd file, which is accessible for any person with an unrestricted shell. But many system files may be listed here. Users could easily gain information, that could help malicious hackers to compromise the system, the network, the company.
Many attempts have already been made to fix this problem. Menu-based and other interactive shells have been created, but they were not able to completely satisfy worried system administrators. The amount of documents available at various security sites about how to bypass restrictions, how to hack through these shells and gain full access, shows, that ANY experienced Linux user is able to cause big problems.

Читать далее

sed: /usr/local/lib/libffi.la: No such file or directory libtool

Ошибка полностью выглядит так:

sed: /usr/local/lib/libffi.la: No such file or directory
libtool: link: `/usr/local/lib/libffi.la' is not a valid libtool archive

Такого рода ошибки лечатся следующим workarond’ом:

Читать далее