Proxmox и ZFS — значительное потребление памяти

При использовании ProxmoxVE с ZFS, при работе виртуальных машин, память на хосте постепенно расходуется до полного исчерпания, результатом чего может стать выключение виртуальных машин:

kernel: [1123659.062155] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/qemu.slice/104.scope,task=kvm,pid=1045923,uid=0
kernel: [1123659.062203] Out of memory: Killed process 1045923 (kvm) total-vm:10639204kB, anon-rss:8332420kB, file-rss:2320kB, shmem-rss:4kB, UID:0 pgtables:17172kB oom_score_adj:0
kernel: [1123660.010306] oom_reaper: reaped process 1045923 (kvm), now anon-rss:0kB, file-rss:68kB, shmem-rss:4kB
systemd1: 104.scope: A process of this unit has been killed by the OOM killer.

Следует понимать, что ZFS требовательна к памяти сервера и по умолчанию использует 50% установленной памяти для ARC (Adaptive Replacement Cache). Текущие минимальные и максимальные пределы можно посмотреть командой:

cat /proc/spl/kstat/zfs/arcstats

где c_min и c_max являются таковыми.

Изменить используемые в настоящее время лимиты можно, установив значения в байтах в файлах /sys/module/zfs/parameters/zfs_arc_min и /sys/module/zfs/parameters/zfs_arc_max соответственно, например командой:

echo «$[10 * 1024*1024*1024]» >/sys/module/zfs/parameters/zfs_arc_max

где 10 — максимальный предел выделяемой памяти в ГБ.

Чтобы изменить максимальный предел ARC навсегда, необходимо добавить в файл /etc/modprobe.d/zfs.conf опцию:

options zfs zfs_arc_max=8589934592

где 8589934592 — устанавливаемый предел в 8 ГБ ОЗУ.

Если корневая файловая система также на ZFS, то после изменения лимитов, необходимо обновить образ initramfs:

update-initramfs -u

После чего требуется перезагрузить сервер.

Proxmox: no device with valid iso found

При попытке установки ProxmoxVE с USB-флэшки, отображается ошибка: no device with valid iso found, please check your intallation medium.
Проблему решает запись флэшки программой Rufus в режиме DD-образа.

Битрикс: Работа с сокетами — Ошибка! Не работает

При использовании BitrixEnv внутри виртуальной среды, с выходом в интернет через NAT (IP-адрес сетевого интерфейса машины с Битриксом отличается от IP в A-записи домена сайта), со стандартными настройками Битрикса, проверка системы будет выдавать ошибку: Работа с сокетами (check_socket): Fail
Для устранения проблемы, в файле /etc/hosts необходимо добавить доменное имя сайта адресу внутренней петли (чтобы сценарий проверки сайта пытался проверить сокет не на шлюзе, а на локальном хосте), по типу:

127.0.0.1 localhost.localdomain localhost site.ru

failed to execute mkfs.vfat: no such file or directory

При попытке форматирования съёмного flash диска (флэшки) командой «mkfs -t vfat 32 -F /dev/sdc1″, отображается ошибка: failed to execute mkfs.vfat: no such file or directory.
В этом случае необходимо установить в систему пакет dosfstools.

Yum: Peer cert cannot be verified or peer cert invalid

При попытке обновления корневых сертификатов в устаревшем CentOS 6.8, пакетный менеджер не может скачать из репозиториев пакеты, выдавая ошибки:
http://vault.centos.org/6.10/updates/x86_64/Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm: [Errno 14] Peer cert cannot be verified or peer cert invalid
failure: Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm from C6.10-updates: [Errno 256] No more mirrors to try.

В этом случае пакет можно скачать и установить вручную командами:

wget https://vault.centos.org/6.10/updates/x86_64/Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm —no-check-certificate
rpm -iU ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm

Mikrotik: failed to pre-process ph2 packet

При попытке установить второй IPsec туннель с маршрутизатора Микротик с прошивкой 6.42.1 до PfSense с прошивкой 2.4.4, не устанавливается соединение на второй фазе. При этом в журнале Микротка появляются записи: failed to pre-process ph2 packet. В записях журнала PfSense может быть: received ATTRIBUTES_NOT_SUPPORTED error notify.

Проблема устранена после выполнения двух условий:

  1. обновления прошивки Микротика до версии 6.47.1;
  2. отключения в PfSense опции Responder Only.

Postfix: milter-reject: END-OF-MESSAGE

В журнале почтового сервера замечены ошибки:
opendkim[15714]: can’t load key from /etc/opendkim/keys/yoursite.ru.private: Permission denied
opendkim[15714]: 853812117BFD: error loading key ‘mail._domainkey.yoursite.ru’
postfix/cleanup[11933]: 853812117BFD: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 4.7.1 Service unavailable — try again later; from= to= proto=ESMTP helo=

Ошибка связана с доступом OpenDKIM к файлу ключа: по умолчанию владелец ключа пользователь root. Для решения проблемы необходимо сменить владельца ключа командой:

sudo chown opendkim:mail /etc/opendkim/keys/selector.private

где selector.private — имя вашего файла ключа.

Также возможно появление ошибок вида:
opendkim[25573]: mail._domainkey.yoursite.ru: key data is not secure: /etc/opendkim/keys/yoursite.ru.private is in group 12 which has multiple users (e.g. «mail»)
opendkim[25573]: B00D22114B3E: error loading key ‘mail._domainkey.yoursite.ru’
postfix/cleanup[28212]: B00D22114B3E: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 4.7.1 Service unavailable — try again later; from= to= proto=ESMTP helo=

В это случае, с файла ключа необходимо убрать доступ для группы владельца файла:

sudo chmod 600 /etc/opendkim/keys/selector.private

где selector.private — имя вашего файла ключа.

connect to Milter service opendkim.sock: Permission denied

В журнале почтового сервера замечена ошибка: postfix/smtpd9137: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: Permission denied

Для начала необходимо проверить, запущен ли демон OpenDKIM командой:

ls -l /var/run/opendkim

(путь может быть иным, он задаётся в файле /etc/opendkim.conf).
Если сокет отсутствует, необходимо попытаться запустить демона вручную:

service opendkim start

Если же сокет присутствует, то необходимо проверить наличие прав у почтового сервера для доступа к нему. И, в случае отсутствия оных, выдать их: либо изменив UMask в файле /etc/opendkim.conf, либо добавив пользователя, от имени которого работает почтовый сервер, в группу opendkim.
Возможно также, что почтовый сервер запущен с изменённым корневым каталогом (chroot), тогда в файле /etc/opendkim.conf необходимо изменить путь для сокета, указав директорию, доступную почтовому серверу.

Правильная перепрошивка маршрутизаторов Mikrotik

  1. Скачиваем программу Netinstall и нужную прошивку (npk файл) для вашего маршрутизатора, а также, по необходимости, дополнительные пакеты и Winbox последней версии с сайта http://www.mikrotik.com/download
  2. В корне диска «С:/» создаём папку «Netinstall», копируем и распаковываем в неё всё, что было скачано, чтобы всё оказалось в одной папке, без вложений.
  3. На компьютере, в настройках сетевого интерфейса, выставляем статический IP-адрес, например ‘192.168.100.100’ с маской ‘255.255.255.0’, все остальные поля оставляем пустыми.
  4. Подключаем компьютер к первому (или последнему для моделей серии RB1xxx или CCR) порту маршрутизатора.
  5. Запускаем программу Netinstall от имени администратора, нажимаем на кнопку Net booting, ставим галочку Boot server enabled и прописываем Client IP address из подсети указанной в пункте 3, например ‘192.168.100.101’ и нажимаем OK.
  6. Зажимаем кнопку Reset на маршрутизаторе и подключаем питание. Ждём пока лампочка заморгает и потом погаснет. Отпускаем кнопку Reset и смотрим в окно программы Netinstall. Через несколько секунд должно появиться новое устройство.
  7. Нажимаем на устройство в списке, выбираем какие пакеты нужно установить, отмечая их галочками, затем нажимаем кнопку Install. Дожидаемся окончания процесса, и если появится надпись Waiting reboot, то нажимаем на кнопку Reboot.
  8. После того, как маршрутизатор загрузится, о чём свидетельствует двойной звуковой сигнал (если конечно у маршрутизатора есть, чем его издавать), запускаем программу Winbox, находим там наше устройство и подключаемся, используя логин «admin» без пароля.
  9. Заходим в раздел SystemRouterboard и нажимаем кнопку Upgrade, затем заходим в раздел SystemPackage и отключаем все ненужные пакеты (обычному пользователю для полноценной работы достаточно только следующие пакеты: advanced-tools, dhcp, ppp, security, system, wireless), после чего заходим в SystemReboot и соглашаемся на перезагрузку.
  10. После перезагрузки снова подключаемся к маршрутизатору. Заходим в раздел SystemReset Configuration, отмечаем галочки No Default Configuration и Do Not Backup и нажимаем Reset Configuration.
  11. После перезагрузки снова подключаемся к маршрутизатору и начинаем процедуру его настройки. По окончанию настройки в обязательном порядке выполнить перезагрузку: SystemReboot

Mikrotik: router does not support secure connection

При подключении к маршрутизатору Микротик с прошивкой младше версии 6.43, может отобразиться ошибка: router does not support secure connection, please enable Legacy Mode if you want to connect anyway.
В программе Winbox старше версии 3.22 имеется возможность включения устаревшего режима, для подключения к маршрутизатору незащищенным методом. Для включения этого режима, на вкладке Tools программы Winbox, выберите Legacy mode.