ZFS, це як FreeBSD, з базовими налаштуваннями її мало хто використовує. І є люди, які незаслужено її звинувачують у тому, що вона повільна. Так, в default конфігурація вона не швидка (в першу чергу створювалася не для швидкості, а для стабільності). Почнемо з простих і далі будемо рухатися до більш складних:
Архіви категорій: Solaris
[Linux/Solaris] Переносимо Linux у VirtualBox під Solaris
Установка VirtualBox під Solaris не відрізняється складністю: скачуємо пакет і встановлюємо:
# wget https://... && pkgadd -d <pkg_name.pkg>
Також встановлюємо extension pack (інакше VRDE не запрацює і видасть помилку), який скачуємо з сайту virtualbox
VRDE: VirtualBox Remote Desktop Extension is not available.
# VBoxManage extpack install /opt/VirtualBox/Oracle_VM_VirtualBox_Extension_Pack-7.0.8.vbox-extpack
[Solaris] setgid privilege
Зіштовхнувся нещодавно з тим, що у Solaris немає ‘proc_setgid’ privilege, який, наприклад, вимагає powerdns при старті, якщо запускати не від root’a. Помилка наступна:
pdns_server[401190]: missing privilege "proc_setid" (euid = 0, syscall = "setgid") at setgid+0xcf
Каже, що немає proc_setid, але воно є, а далі вже йде уточнення, що треба не setid, а саме setgid, але у Solaris цього немає. Чому? Не знають навіть у Solaris community. Workaround – стартувати сервіс від root’a.
UPD. Згідно man то типу повинно використовувати syscall від set_uid, але не хоче.
View failed services
Нам потрібно отримати лише список сервісів, які з якихось причин не запустилися через помилки
Solaris
svcs -xv
Linux
systemctl --failed
Відключаємо Meltdown and Spectre
В даній статті розглянемо відключення цих безпекових методів. Що це таке – написано тут. Відключати я це не рекомендується, але в деяких випадках це треба, враховуючи, що продуктивність може досягати до 30%.
[Solaris]GRUB disable kernel module on boot
Якщо у вас при завантаженні ОС kernel panic на якийсь модуль ядра, то це достатньо просто відключити в grub’і:
-B disable-mpt_sas=true
, де mpt_sas – імʼя модуля ядра
[Solaris] Зламаний openssl зламав систему.
Якщо ви невдало поесперементували з mediator’ом openssl і отримали щось, на зразок такого:
root@old:~# bootadm list-menu Traceback (most recent call last): File "/usr/lib/python3.7/vendor-packages/bootadm-helper.py", line 29, in from bemgmt import BEManager File "/usr/lib/python3.7/vendor-packages/bemgmt/__init__.py", line 45, in from bemgmt.be import USERPROP_ZONE_PARENTBE, ALLOWED_POLICIES, \ File "/usr/lib/python3.7/vendor-packages/bemgmt/be.py", line 22, in from bemgmt.utils import get_be_pool_and_name, get_mountpoint_from_vfstab, \ File "/usr/lib/python3.7/vendor-packages/bemgmt/utils.py", line 20, in from bemgmt.zfs_rad import ZfsRad File "/usr/lib/python3.7/vendor-packages/bemgmt/zfs_rad.py", line 17, in import rad.connect as radcon File "/usr/lib/python3.7/vendor-packages/rad/connect.py", line 21, in import ssl File "/usr/lib/python3.7/ssl.py", line 98, in import _ssl # if we can't import it, let the error propagate ImportError: ld.so.1: bootadm: relocation error: file /usr/lib/python3.7/lib-dynload/_ssl.cpython-37m.so: symbol GENERAL_NAME_free: referenced symbol not found bootadm: Unable to load python helper module
zfs: продолжаем send/receive после обрыва связи
Раньше приходилось заново копировать после каждого обрыва. Но потом придумали механизм, основанный на bookmark’ах, который позволяет продолжить копирование с места разрыва.
[Solaris] Хитрость с obsoleted пакетами
Внезапно (на самом деле нет, oracle предупреждает, что такие библиотеки помечены как legacy и скоро будут obsoleted), с определённого SRU Solaris прекратил поддерживать старые библиотеки, от которых зависит ПО, собранное вручную. Итог – нельзя обновиться до этого и выше SRU без удаления этого ПО. Как же быть? Выход один – перелить пакеты-зависимости из репозитория solaris в свой, предварительно незначительно изменив название пакетов и их зависимостей.
Limit IOps: ограничиваем дисковые операции
Начну в порядке от самой простой реализации до самой сложной.