Системный Администратор (Сисадмин)
14.1K subscribers
1.76K photos
1.76K videos
87 files
1.85K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
🏎 Разгоняем KVM: Тюнинг производительности

«Из коробки» KVM предлагает безопасные и совместимые настройки, но они - враг высокой производительности. Если ваша БД тормозит или сеть не выдает гигабит, скорее всего, проблема не в железе, а в том, как виртуалка с ним общается.

Вот «святая троица» настроек для High Performance.

1. VirtIO: Забудьте про эмуляцию

По умолчанию гипервизор может подсовывать машине эмулируемую сетевую карту (например, e1000) или IDE-диск. Это создает огромный оверхед: CPU тратит такты на то, чтобы притворяться старым железом.

Решение: Используйте паравиртуализированные драйверы VirtIO. Они позволяют гостевой ОС знать, что она виртуальная, и общаться с гипервизором напрямую.

🩵Диски: Используйте шину VirtIO (или VirtIO-SCSI).
🩵Сеть: Модель адаптера virtio.

Как проверить в XML (virsh edit):


<target dev='vda' bus='virtio'/>
<model type='virtio'/>



Важно: Для Windows-гостей понадобятся драйверы virtio-win.iso.


2. Дисковый кэш и I/O

Если вы используете LVM или raw-файлы, стандартный кэш Linux может создавать лишние копии данных в RAM.

Решение:

1. Cache mode: Ставим none. Это отключает кэширование на хосте (Direct I/O). VM сама управляет своим кэшем, что быстрее и безопаснее для баз данных.
2. IO mode: Ставим native. Использует нативный Linux AIO (Asynchronous I/O).


<driver name='qemu' type='raw' cache='none' io='native'/>



3. CPU Pinning (Привязка ядер)

Самый мощный буст для процессорозависимых задач.
По умолчанию планировщик Linux перекидывает потоки vCPU виртуалки между любыми физическими ядрами хоста. Это убивает L1/L2/L3 кэш процессора (Context Switching).

Решение: Жестко привязать виртуальные ядра к физическим.

Пример для 4-ядерной VM (привязываем к ядрам 2,3,4,5 физического хоста):


<cputune>
<vcpupin vcpu='0' cpuset='2'/>
<vcpupin vcpu='1' cpuset='3'/>
<vcpupin vcpu='2' cpuset='4'/>
<vcpupin vcpu='3' cpuset='5'/>
</cputune>



Pro Tip: Не используйте "ядро 0" хоста — оставьте его для самого гипервизора и системных прерываний.




🚀 Чек-лист для максимальной скорости:

1. Драйверы: Только VirtIO (net + blk).

2. Диски: Формат RAW (или LVM volume), кэш none.

3. CPU: Pinning + режим host-passthrough (чтобы VM видела все инструкции процессора, включая AES-NI и AVX).

4. Память: Если у вас сотни Гб RAM, включите Hugepages (страницы по 2Mb или 1Gb вместо 4Kb), чтобы разгрузить таблицу страниц памяти.

А вы заморачиваетесь с тюнингом или для ваших задач хватает дефолтных настроек? Делитесь опытом в комментах!

#sysadmin #kvm #performance #tuning #linux #virtio

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133
🏗 KVM + Terraform: Поднимаем виртуалки как код

Мы научились управлять KVM через virsh, но если вам нужно поднять 10 одинаковых серверов для тестов, а потом удалить их одной командой - ручной ввод утомляет.

На сцену выходит Terraform. Обычно его ассоциируют с облаками (AWS, Azure), но он прекрасно работает и с «железным» гипервизором через провайдер libvirt.

🛠 Что нам понадобится?

1. Установленный Terraform.
2. Плагин-провайдер dmacvicar/libvirt (стандарт де-факто для KVM).
3. Образ системы (Cloud Image), например, Ubuntu Cloud.

📄 Пишем рецепт (main.tf)

Создайте папку, положите туда файл main.tf и опишите желаемое состояние:


terraform {
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
}
}
}

# 1. Подключаемся к локальному KVM
provider "libvirt" {
uri = "qemu:///system"
}

# 2. Скачиваем образ диска (или берем локальный)
resource "libvirt_volume" "ubuntu_base" {
name = "ubuntu-base.qcow2"
pool = "default"
# Ссылка на официальный Cloud-образ
source = "https://cloud-images.ubuntu.com/minimal/releases/jammy/release/ubuntu-22.04-minimal-cloudimg-amd64.img"
format = "qcow2"
}

# 3. Описываем Виртуальную Машину
resource "libvirt_domain" "my_web_server" {
name = "terraform-vm-01"
memory = "1024"
vcpu = 1

network_interface {
network_name = "default" # NAT сеть libvirt
}

disk {
volume_id = libvirt_volume.ubuntu_base.id
}

console {
type = "pty"
target_port = "0"
target_type = "serial"
}

graphics {
type = "spice"
listen_type = "address"
autoport = true
}
}



🚀 Запускаем магию

В терминале переходим в папку с файлом и выполняем три команды:

1. terraform init - Скачает провайдер libvirt.
2. terraform plan - Покажет, что именно он собирается создать (DRY RUN).
3. terraform apply - Boom! Скачивается образ, создается диск, запускается VM.

🤔 А как удалить?

Не нужно вспоминать имена машин и удалять диски вручную. Просто введите:
terraform destroy
И Terraform аккуратно зачистит за собой всё, что создал.

💡 Почему это круто?

🩵Воспроизводимость: Вы можете отправить этот файл коллеге, и он поднимет точно такую же среду.

🩵Git: Вы храните конфигурацию инфраструктуры в репозитории. Видна история изменений.

🩵Cloud-Init: В Terraform можно добавить конфигурацию cloud-init (создать пользователя, добавить SSH-ключ, установить пакеты при первом старте), чтобы получить полностью готовый сервер, в который даже не нужно заходить.

👇 Коллеги, какой инструмент IaC вы предпочитаете? Terraform, Ansible или, может быть, Pulumi?

#sysadmin #devops #terraform #kvm #iac #automation

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Media is too big
VIEW IN TELEGRAM
Файловые системы в линуксе | сравнительный тест файловых систем linux ext4 xfs f2fs btrfs zfs

📲 Мы в MAX

👉 @sysadminof
👍7
Media is too big
VIEW IN TELEGRAM
Как стать DevOps Инженером с Нуля, что учить и в каком порядке

00:00 – 1. Вступление
01:06 – 2. Всевозможные компетенции DevOps инженера
10:35 – 3. Кому проще стать DevOps
15:01 – 4. Что учить по минимуму и в каком порядке
30:04 – 4.1. Основы Network TCP/IP
31:36 – 4.2. Администрирование Windows
34:09 – 4.3. Основы Linux
35:54 – 4.4. Ansible
36:48 – 4.5. Git
37:37 – 4.6. GitHub
38:04 – 4.7. Jenkins
38:23 – 4.8. Docker+DockerHub
38:44 – 4.9. Cloud Platform AWS
42:10 – 4.10. CloudFormation + Terraform
43:25 – 5. Курс DevOps Engineering в JohnBryce, Израиль
49:12 – 6. Как стать профессиональным DevOps инженером
54:24 – 7. Эпилог

источник

📲 Мы в MAX

👉 @sysadminof
🔥7👍3
Совет дня по Linux 💡

Чтобы команда не регистрировалась в истории bash, введите ее с пробелом перед ней.

📲 Мы в MAX

👉 @sysadminof
👍18🔥2
Media is too big
VIEW IN TELEGRAM
Инструменты мониторинга трафика в Mikrotik

Первый способ:
Использование инструмента Torch в разделе Queue для реального времени анализа трафика через интерфейс Bridge, что помогает выявить потребление трафика на конкретных сайтах.

Второй способ:
Отслеживание активных соединений в разделе IP Firewall Connections с возможностью сортировки по IP-адресам, портам и количеству переданных данных, а также использование командной строки для детального анализа и настройки QoS.

Эти методы помогают эффективно контролировать и управлять сетевым трафиком.

источник

📲 Мы в MAX

👉 @sysadminof
👍4🔥32
Краткая шпаргалка по использованию tmux

Ctr+B, ? Показать все доступные хоткеи
Ctr+B, C Создать окно
Ctr+B, N Следующее окно
Ctr+B, P Предыдущее окно
Ctr+B, [0-9] Перейти к окну с данным номером
Ctr+B, X Закрыть окно
Ctr+B, % Горизонтальное разделение
Ctr+B, " Вертикальное разделение
Ctr+B, стрелочки Переход между разделениями
Ctr+B, запятая Переименовать окно
Ctr+B, W Список всех окон с переключением
Ctr+B, Fn+вверх Скролинг, можно использовать точпад
Ctr+B, $ Переименовать текущую сессию
Ctr+B, D Detach, отсоединиться от сессии

Список доступных сессий можно посмотреть командой:
tmux ls

Подключение к сессии:
tmux attach -t 0


Сессиям можно давать осмысленные имена и запускать в них фоновые задачи:

# создать фоновую сессию
tmux new-session -d -s background-task 'watch date'

# подсоединиться к сессии
tmux attach -t background-task

# прибить сессию
tmux kill-session -t background-task

Это иногда бывает удобно в каких-нибудь скриптах. Характерно, что в screen подобный функционал тоже заявлен, но последний раз, когда я проверял, он был сломан.

Интересно также, что в отличие от screen, в tmux нет возможности работать с последовательными портами. Но если вы решите полностью переходить на tmux, то для этой задачи можете воспользоваться утилитой cu:

cu -l /dev/tty.usbserial -s 115200

📲 Мы в MAX

👉 @sysadminof
👍9
Media is too big
VIEW IN TELEGRAM
RAID массивы. Уровни 0 1 5 6 10. Что такое RAID и как он работает

00:00 Вступление
00:46 RAID 0
02:42 RAID 1
04:40 RAID 5
07:59 RAID 6
09:25 RAID 10
11:32 Сравнение уровней RAID

источник

📲 Мы в MAX

👉 @sysadminof
👍10🔥7
Шпаргалка по часто используемым командам systemctl

1. Посмотреть статус службы. Покажет статус службы на примере сети network
systemctl status network

2. Запустить сервис. Запустит сервис баз данных на примере mysql
systemctl start mysql

3. Остановить службу. Остановит сервис времени ntpd
systemctl stop ntpd

4. Перезапустить службу. Перезапустит веб-сервер nginx
systemctl restart nginx

5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
systemctl enable apache

6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
systemctl disable firewalld


7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
systemctl --host root@192.168.0.15 stop cron

8. Перезагрузить сервер. Перезагрузит локальный сервер
systemctl reboot

9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
systemctl is-active docker

а) Если сервис запущен, мы увидим:
active

б) Если не запущен:
failed

... или:
inactive

в) Если такого сервиса нет в системе:
unknown

... или:
inactive

Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
systemctl is-active docker && docker run hello-world
... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.

📲 Мы в MAX

👉 @sysadminof
5👍4
💪 Меньше переключений между сервисами — больше контроля над встречами и рабочими задачами

11 февраля в 11:00 мск команда Труконф представит TrueConf Calendar Connector 2.0 — мост между системой объединенных коммуникаций TrueConf Server и корпоративным календарём Microsoft Exchange. Решение поможет быть в курсе и не пропускать события благодаря мгновенной синхронизации списка участников и мероприятий в календаре на любом устройстве пользователя.

🔥 Демонстрации:

😊 создание, редактирование и удаление событий с конференциями в корпоративном календаре прямо из приложений Труконф;
😊 планирование событий от имени другого участника;
😊 возможность скрывать отменённые события;
😊 новые версии плагинов для Microsoft Outlook, Mozilla Thunderbird, Р7-Офис и RuPost;
😊 и другие изменения.

➡️ Регистрация открыта.

@trueconf

Реклама. ООО «Труконф». erid:2VtzqxgsfXR
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Proxmox

Proxmox 8.1 Upgrade. Обзор. Как безопасно обновиться
Proxmox. Что это? Зачем виртуализация? Возможности и общая информация.
Proxmox Установка и обзор функций WebUI
Proxmox. Linux VM. Установка и настройка.
Proxmox. Windows VM. Установка и настройка.
Proxmox. LXC Container. Установка и настройка линукс контейнеров.
Proxmox. Templates для VM и LXC. Linked vs Full templates.
Proxmox Backup Server. Установка, настройка, тест, обзор функций.

источник

📲 Мы в MAX

👉 @sysadminof
👍7🔥5🥱2