Admin Guides | Сисадмин
11.4K subscribers
1.25K photos
19 videos
34 files
561 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
👌16😁9👍2
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает OverlayFS в Linux и зачем он нужен?

Ответ: OverlayFS — это объединяющая файловая система, которая накладывает один каталог (upperdir) на другой (lowerdir), создавая виртуальный слой. Она позволяет изменять содержимое без модификации оригинальных данных, что особенно важно в контейнеризации.

Основные возможности:
Наложение слоев: изменения записываются только в upperdir, а чтение происходит сначала из него, затем из lowerdir.
Эффективность: экономия дискового пространства за счёт разделения слоёв и уменьшения количества копий.
Применение: используется в Docker для организации copy-on-write хранилищ, а также в live-системах и сборках образов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
Готовитесь к собеседованию в IT-компанию? 👀

Скачайте курс-гайд «Алгоритмы: roadmap для работы и собеседований» бесплатно.

👉 Готовый план подготовки: алгоритмы, вопросы и советы от эксперта, практика и доп. литература.

Скачать курс-гайд бесплатно через бота ➡️ по ссылке
👍1
Изоляция окружения без root: Mount namespaces и unshare

Нужна песочница без Docker и без прав root?


Используя Linux namespaces и unshare, можно запускать процессы в изолированных файловых средах — удобно для тестов, CI, экспериментов с пакетами или конфигурациями.

Что такое mount namespace?
Это изоляция файловой системы: процесс видит только свои монтирования и не влияет на другие процессы.

Даже без root-прав можно поднять временное окружение и работать «внутри», не затрагивая хост-систему.

Пример:

mkdir ~/sandbox
cp /bin/bash ~/sandbox/
unshare --mount --uts --ipc --net --pid --fork --user --map-root-user bash


Теперь вы внутри своего namespace, но пока общая файловая система. Добавим chroot-подобную изоляцию:

mount --bind ~/sandbox ~/sandbox
cd ~/sandbox
pivot_root . .
exec chroot . /bash


Что это даёт?
• Тест конфигураций без риска для системы
• Мини-среда без виртуализации
• Контейнеризация «на коленке» без Docker
• Повышенная безопасность: ограничение доступа к файловой системе
👍142🤔1
21 курс по цене одного с подпиской на курсы Слёрма.

Kubernetes, Docker, Postgres, Gitlab, Terraform, Golang, Python и многое другое.

Экономия до 90%.

Гибкий график, обратная связь, поддержка от спикеров – всё, что нужно для интенсивного и эффективного обучения.

Выбрать тариф и узнать подробности ➡️ по ссылке
👍1
HIGGS — новый open-source метод сжатия LLM от Яндекса и научных партнёров

Исследователи из Yandex Research, ВШЭ, MIT, KAUST и ISTA представили HIGGS — способ квантизации больших языковых моделей без потери качества.

Метод уже доказал свою эффективность на DeepSeek R1 (671B параметров) и Llama 4 Maverick (400B), позволяя запускать их на более доступных устройствах.

Что делает HIGGS:
Уменьшает размер модели без дообучения
Работает даже без доступа к обучающим данным
Лучше GPTQ и AWQ в диапазоне 2–4 бит
Уже проверен на Llama 3, Llama 4, Qwen2.5

Доступно на:
• GitHub
• Hugging Face
• arXiv (научная статья принята на NAACL 2025)

HIGGS делает LLM доступнее не только для корпораций, но и для независимых разработчиков и лабораторий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
tmpfs и zram: ускоряем систему или забиваем оперативку впустую?

RAM-диски — это круто, пока они не начинают мешать.

tmpfs и zram дают разные преимущества, и использовать их надо с пониманием.

tmpfs: максимально быстро, но без компромиссов

Пишет напрямую в оперативную память. Отлично подходит для:

– /tmp на десктопе
– Сборок в CI
– Хранения промежуточных логов, сокетов, lock-файлов

Монтирование:

mount -t tmpfs -o size=256M tmpfs /tmpfs


Или прописать в fstab:

tmpfs /var/cache/build tmpfs size=1G,mode=1777 0 0


Ошибка №1: tmpfs в /tmp на 512M в системе с 1ГБ RAM — и скрипт сборки падает с ENOSPC. Лучше:

mount -t tmpfs -o size=50% tmpfs /tmp


zram: компромиссы — компрессией

Создаёт блочное устройство в RAM с on-the-fly сжатием. Применяется:

– Как swap на слабых системах
– Для кэша journald
– Для контейнеров в Kubernetes с ограниченной RAM

Пример настройки swap:

modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 1G > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0


Плюсы:
– Можно выжать до 2–2.5x RAM (особенно с текстовыми данными)
– Не убивает SSD
– Работает с приоритетом (можно сделать swapfile + zram)

Ошибка №2: Использовать zram как swap на сервере с heavy-load БД. Это не замена оперативке, это аварийный буфер.

Компрессия имеет цену

Для более точной настройки swap с zram — используйте systemd-zram-generator или zram-tools.

Пример конфига для zram-generator.conf:

[zram0]
zram-size = ram / 3
compression-algorithm = zstd
swap-priority = 100
👍11
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает CRIU и зачем он нужен?

Ответ: CRIU (Checkpoint/Restore In Userspace) — это утилита для создания контрольных точек (checkpoint) работающих процессов и их восстановления. Она позволяет “заморозить” состояние приложения и перенести его на другой сервер или восстановить позже.

Основные возможности:
— Сохранение состояния памяти, сокетов, дескрипторов, PID и даже TCP-соединений.
— Используется в live-миграции контейнеров (например, в Docker и LXC).
— Полезен для отказоустойчивости, быстрого запуска сервисов и отладки.

Пример:

criu dump -t <pid> --images-dir /tmp/checkpoint  
criu restore --images-dir /tmp/checkpoint
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2
Мониторинг сети с помощью sFlow

sFlow — это протокол мониторинга сети, который позволяет администраторам получать выборочные данные о трафике в реальном времени.

Его основное преимущество — минимальная нагрузка на устройство благодаря выборочному сбору данных.

Как работает sFlow

Агент sFlow: встроен в сетевое устройство и собирает выборки пакетов.
Коллектор: сервер, принимающий выборки и анализирующий данные.
Выборки: небольшие фрагменты трафика передаются на коллектор для анализа.

Настройка sFlow на коммутаторе

1️⃣Включение агента sFlow

На устройствах Cisco:

sflow enable  


На устройствах HPE/Aruba:

sflow 1 sampling 1000  
sflow 1 destination 192.168.1.2 6343


2️⃣ Настройка параметров

Cisco: Установите IP-адрес агента (IP устройства):

sflow agent-ip 192.168.1.1  


Укажите частоту выборок:

sflow sampling-rate 1000  


Настройте интервал опроса счётчиков:

sflow polling-interval 30  


Укажите IP и порт коллектора:

sflow collector-ip 192.168.1.2 6343  


3️⃣ Проверка и мониторинг

Проверьте текущую конфигурацию:

show sflow  


На HPE:

show sflow agent  


Убедитесь, что данные отправляются на коллектор. Для анализа можно использовать инструменты, такие как sFlowTrend или ntopng.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🔥 ОТ ДЖУНА ДО СЕНЬЁРА ЗА 2 ГОДА — МОЙ ПУТЬ В IT.


Привет! Я сеньёр, который прошёл путь от джуна до эксперта за два года. И я делюсь с вами абсолютно всем, что узнал на этом пути. Всё, что работает, всё, что не сработало — и как я из этого сделал выводы.

💻 IT Sharks — это не просто канал с полезными советами. Это реальный опыт, который я прошёл, работая с крупнейшими проектами, получая оферы с зарплатами до 800.000₽ и сталкиваясь с падениями и взлётами.

На канале я делюсь всем этим опытом:

▪️Советы по карьерному росту — что я делал, чтобы попасть в большие компании, и как получать офферы с высокими зарплатами.

▪️Менторство до оффера — буду помогать вам, делиться инсайтами, чтобы вы могли сделать правильные шаги в своём пути.

▪️Процесс прохождения собеседований — лайфхаки, как пройти собеседование, переговоры, как не упасть в цене, и как не бояться ставить амбициозные цели.

Если я прошёл этот путь, то сможете и вы. Но я не буду обещать, что это будет легко. Это путь, который потребует усилий, но результат того стоит.

Подписывайтесь на канал, и я буду делиться с вами всеми фишками, которые помогли мне стать сеньёром.
👎92👍2🔥1🌭1
Какой из параметров ядра отвечает за включение защиты от Spectre v2?
Anonymous Quiz
10%
noexec=on
38%
spec_store_bypass_disable=on
42%
nospectre_v2
10%
mitigations=auto
👍9
Angie 1.9.0 — форк Nginx от бывших разработчиков, теперь с 0-RTT и новым кэшем

Вышел релиз Angie 1.9.0 — веб-сервера от команды бывших разработчиков Nginx и FreeBSD. 


Проект развивается как форк Nginx, уже получил сертификаты совместимости с российскими ОС и включён в реестр отечественного ПО. Angie распространяется по BSD-лицензии и активно развивается.

Что нового в Angie 1.9.0:
• proxy_cache_path теперь сохраняет индекс кэша между перезапусками — ускоряет восстановление.
• Поддержка ssl_early_data (0-RTT) в stream — клиент может слать данные до завершения TLS-рукопожатия.
• В acme_hook появился параметр uri= — можно переопределять путь до обработчика.
• В acme_client:
— renew_on_load — обновляет сертификат при перезагрузке конфига;
— enabled=off отключает обновление, но переменные остаются.
👍16
Swap-файл vs swap-раздел: как влияет на SSD и работу в системах с малым ОЗУ

На слабых серверах и миниатюрных VPS наличие подкачки решает всё. Даже базовая установка apt без swap может закончиться «убийством» процессов через OOM-killer.

Но что выбрать: swap-файл или swap-раздел? И главное — как сделать, чтобы не угробить SSD и не словить тормоза?


Что выбрать — swap-файл или swap-раздел?

Swap-раздел исторически считался более «надёжным» вариантом: он выделяется на физическом уровне и не фрагментируется. Но в реальности:
менять его размер сложно (особенно без LVM);
требует переформатирования или изменения разметки;
неудобен в облаках и на VPS.

Swap-файл — более гибкий и удобный. Особенно если:
вы работаете на облаке с единственным диском;
у вас ограниченное место;
нужно быстро изменить размер или выключить swap.

На современных ядрах swap-файл работает почти так же эффективно, как и раздел, особенно если создать его правильно.

Как правильно создать swap-файл

Не используйте dd — он может создать фрагментированный файл:

# Плохо:
dd if=/dev/zero of=/swapfile bs=1M count=1024


Вместо этого:

# Хорошо:
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile


В fstab:

/swapfile none swap sw 0 0


Дополнительные улучшения: zswap и zram

Чтобы продлить срок службы SSD и ускорить работу на слабых системах:

Zswap — сжатая подкачка в RAM. Включается одной командой:

echo 1 > /sys/module/zswap/parameters/enabled


Zram — компрессированный swap в памяти. Особенно эффективен на embedded и ARM-устройствах:

modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 512M > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0


Настройка поведения подкачки

Чтобы система не бросалась в swap при любой нагрузке:

sysctl vm.swappiness=10


10–20 — хороший баланс: сначала используется RAM, и только потом swap.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥2
🤔13👍2🤨2👎1😁1
Почему apt не чистит /var/cache/apt — и как это может убить ваш контейнер

На голом Ubuntu-бейзовом контейнере вы устанавливаете пару пакетов, а потом обнаруживаете, что образ раздулся на сотни мегабайт.

Причина почти всегда одна — автоматический кэш deb-пакетов, который apt сохраняет в /var/cache/apt/archives, но не торопится удалять.

Что происходит

При установке пакета:

apt install nginx


apt скачивает .deb в /var/cache/apt/archives, а потом уже ставит. Но не удаляет их, если вы явно не вызвали:

apt clean


или

apt autoclean


Во многих минималистичных контейнерных сборках вы этого не делаете — и копите десятки мегабайт мусора при каждом apt install.

Почему это критично в контейнерах
Образы раздуваются — и занимают в 2–3 раза больше места, чем нужно.
Файловая система в overlayfs не освобождается даже если удалить файл вручную позже. Он всё равно останется в нижнем слое.
Контейнеры могут падать из-за переполнения ограниченного volume или rootfs (особенно в CI/CD).

Как это чинить правильно

Перед завершением сборки — чистите кэш:

apt-get clean
rm -rf /var/lib/apt/lists/*


или в Dockerfile:

RUN apt update && apt install -y \
curl \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*


Трюк с overlayfs

Если вы уже создали контейнер, в котором /var/cache/apt раздулся, а чистка не помогает — потому что это уже лежит в нижнем readonly-слое — можно:
1️⃣Использовать docker export / import — сохранит только активный слой.
2️⃣ Пересобрать образ с clean’ом до commit.
3️⃣ Смонтировать внешний tmpfs в /var/cache/apt в рантайме:

mount -t tmpfs -o size=100m tmpfs /var/cache/apt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍172🔥2
Тратите много времени на повторяющиеся SQL-запросы, выполняя рутинные задачи вручную? 
На бесплатном вебинаре, который пройдет 22 апреля в 20:00, мы решим эту проблему и научим вас создавать и использовать хранимые процедуры для автоматизации процессов в SQL! https://otus.pw/sYDb/

Представьте, что вы можете автоматизировать эти задачи с помощью хранимых процедур в MS SQL Server и PostgreSQL, увеличив свою эфффективность. Больше не придется тратить на это лишние силы.

Записывайтесь на урок, получайте практические навыки, а также скидку на большое обучение «SQL для разработчиков и аналитиков»: https://otus.pw/sYDb/

erid: 2W5zFGp9d2g
👍1
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое systemd-nspawn и как он используется?

Ответ: systemd-nspawn — это легковесный инструмент контейнеризации, встроенный в systemd. Он позволяет запускать изолированные окружения, похожие на контейнеры, используя chroot и namespaces.

Ключевые особенности:
— Изоляция через PID, mount, user и network namespaces.
— Интеграция с systemd: контейнер можно управлять как обычным сервисом.
— Поддержка journald и машинного журнала логов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123
MTU + TSO/GSO/UDP: когда jumbo frame ломает overlay-сеть

VxLAN, GENEVE и прочие overlay-технологии давно стали стандартом — но часто ломаются на ровном месте.

Один из таких кейсов — «всё работает, кроме какого-то странного трафика, который висит/рвётся/отваливается без объяснения». Виновник — неправильное сочетание MTU, jumbo-фреймов и offload’ов.


Что происходит

При использовании VxLAN поверх обычной сети каждый пакет получает дополнительный заголовок (VxLAN + UDP + IP), что увеличивает размер.

Если интерфейсы или туннельная прослойка не умеют в fragment/reassembly или MTU меньше ожидаемого, пакеты просто начинают теряться.

Особенно часто это бьёт по TCP SYN-ACK и UDP VoIP/QUIC.

Где это проявляется
• SSH зависает после ввода пароля
• веб-приложения внезапно «грузятся вечно»
• мониторинг теряет метрики
• nginx падает в 502 на старте TLS
• kubelet не подключается к apiserver через туннель

Как диагностировать
1️⃣Проверить MTU на всех интерфейсах в цепочке:

ip link show dev eth0
ip link show dev vxlan0


2️⃣ Проверить наличие offload’ов:

ethtool -k eth0 | grep -E '(tso|gso|gro)'


3️⃣ Поймать разрыв через tcpdump — будут видны обрезанные пакеты или ICMP fragmentation needed (не всегда!):

tcpdump -i vxlan0 -n -s 0 -vvv


4️⃣ Визуально ловить баги через ping -M do:

ping -s 8972 -M do <ip>


Как лечить
Убедитесь, что внутренний MTU на overlay-интерфейсах (vxlan0, flannel.1 и т.п.) занижен хотя бы на 50 байт.
Отключите GSO/TSO, если видите нестабильность:

ethtool -K eth0 gso off tso off


Используйте sysctl для отключения Path MTU discovery в VxLAN:

sysctl -w net.ipv4.ip_no_pmtu_disc=1


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

ip route get <destination>
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3