-
- 3.1 Файловые системы в НАЙС ОС
- 3.2 Монтирование устройств в НАЙС ОС
- 3.3 Каталоги файловой системы НАЙС ОС
- 3.4 Основные команды для работы с файлами и файловой системой НАЙС ОС
- 3.5 Мягкие и жесткие ссылки в НАЙС ОС
- 3.6 Конфигурационный файл limits.conf в НАЙС ОС
- 3.7 Перенаправление стандартного вывода и вывода ошибок в НАЙС ОС
- 3.8 Управление задачами в командной строке в НАЙС ОС
- 3.9 Знакомство с командной строкой в НАЙС ОС
- 3.10 Работа с текстовыми редакторами (nano, vim) в НАЙС ОС
- 3.11 Использование оболочки (bash, zsh) в НАЙС ОС
- 3.12 Основы скриптования в НАЙС ОС
- 3.13 Использование man и info страниц
- 3.14 Введение в Markdown и текстовые форматы документации
- 3.15 Работа с архивами
- 3.16 Управление и настройка swap
-
- 4.1 Система управления пакетами TDNF и DNF в НАЙС ОС
- 4.2 Основные команды DNF в НАЙС ОС
- 4.3 Основные команды TDNF в НАЙС ОС
- 4.4 Работа с историей DNF в НАЙС ОС
- 4.5 Создание и управление локальными репозиториями в НАЙС ОС
- 4.6 Решение проблем с зависимостями в НАЙС ОС
- 4.7 Управление пакетами из исходных кодов в НАЙС ОС
-
- 5.1 Пользователи и привилегии, команды su и sudo в НАЙС ОС
- 5.2 Добавление нового пользователя в НАЙС ОС
- 5.3 Модификация пользовательских записей в НАЙС ОС
- 5.4 Удаление пользователей в НАЙС ОС
- 5.5 Группы пользователей в НАЙС ОС
- 5.6 Создание и настройка собственного default-профиля пользователя при помощи SKEL в НАЙС ОС
- 5.7 Управление сеансами пользователей с помощью systemd-logind в НАЙС ОС
-
- 8.1 Управление правами доступа
- 8.2 Настройка файервола (firewalld, iptables)
- 8.3 Конфигурация SELinux
- 8.4 Настройка SSH
- 8.5 Обнаружение и предотвращение вторжений (IDS/IPS)
- 8.6 Шифрование данных
- 8.7 Управление политиками безопасности
- 8.8 Настройка двухфакторной аутентификации
- 8.9 Настройка и использование AppArmor
- 8.10 Управление сертификатами и криптографией: OpenSSL и Let's Encrypt
- 8.11 Введение в SIEM (Security Information and Event Management)
-
- 9.1 Управление процессами и службами
- 9.2 Настройка системных журналов (journald, rsyslog)
- 9.3 Мониторинг системы (top, htop, iostat)
- 9.4 Настройка cron и systemd timers
- 9.5 Автоматизация задач с помощью скриптов
- 9.6 Управление и анализ производительности системы (sysstat, sar)
- 9.7 Настройка и управление системными уведомлениями
- 9.8 Использование средств диагностики (strace, lsof)
- 9.9 Резервное копирование и восстановление
- 9.10 Настройка ротации логов
- 9.11 Использование cron
-
- 10.1 Использование системных журналов для диагностики
- 10.2 Поиск и исправление ошибок загрузки
- 10.3 Диагностика сетевых проблем
- 10.4 Решение проблем с производительностью
- 10.5 Восстановление поврежденных файловых систем
- 10.6 Работа с ядром и модульной системой
- 10.7 Управление и диагностика проблем с драйверами
-
- 11.1 Настройка ядра и модулей
- 11.2 Настройка кэширования
- 11.3 Анализ и устранение узких мест
- 11.4 Управление потреблением ресурсов
- 11.5 Использование профилировщиков производительности (perf, eBPF)
- 11.6 Оптимизация сетевой производительности
- 11.7 Оптимизация и настройка MySQL/PostgreSQL
- 11.8 Оптимизация работы с большими данными и высоконагруженными системами
-
- 12.1 Основные сетевые команды
- 12.2 Настройка сети
- 12.3 Устранение неполадок сети
- 12.4 Использование и настройка Netplan
- 12.5 Настройка и управление сетевыми интерфейсами
- 12.6 Настройка и управление сетевыми интерфейсами с помощью systemd-networkd
- 12.7 Настройка и управление сетевыми мостами и агрегированием интерфейсов (bonding)
-
- 13.1 Установка и настройка веб-сервера (Apache, Nginx)
- 13.2 Установка и настройка базы данных (MySQL, PostgreSQL)
- 13.3 Установка и настройка почтового сервера (Postfix, Dovecot)
- 13.4 Установка и Настройка vsftp сервера
- 13.5 Установка и настройка OpenVpn
- 13.6 Установка и настройка StrongSwan
- 13.7 Установка и настройка WireGuard VPN
- 13.8 Установка и настройка LDAP
- 13.9 Настройка и управление Redis
- 13.10 Настройка и управление RabbitMQ
- 13.11 Установка и настройка Docker
- 13.12 Установка и настройка Kubernetes
- 13.13 Установка и настройка GitLab
- 13.14 Установка и настройка Jenkins
- 13.15 Установка и настройка Prometheus
- 13.16 Установка и настройка Grafana
- 13.17 Установка и настройка Zabbix
- 13.18 Установка и настройка Ansible
- 13.19 Установка и настройка Terraform
- 13.20 Установка и настройка HAProxy
- 13.21 Установка и настройка Apache Kafka
- 13.22 Установка и настройка MongoDB
- 13.23 Установка и настройка Cassandra
- 13.24 Установка и настройка Memcached
- 13.25 Установка и настройка OpenStack
- 13.26 Установка и настройка Ceph
- 13.27 Установка и настройка GlusterFS
- 13.28 Установка и настройка Nextcloud
- 13.29 Установка и настройка Mattermost
- 13.30 Установка и настройка Elasticsearch Stack (ELK Stack)
- 13.31 Установка и настройка Graylog
- 13.32 Установка и настройка Fluentd
- 13.33 Установка и настройка TimescaleDB
- 13.34 Установка и настройка InfluxDB
- 13.35 Установка и настройка Keycloak
- 13.36 Установка и настройка SonarQube
- 13.37 Установка и настройка Nexus Repository
- 13.38 Установка и настройка Rundeck
- 13.39 Установка и настройка AWX/Ansible Tower
- 13.40 Установка и настройка Syncthing
- 13.41 Установка и настройка Bacula
- 13.42 Установка и настройка Netdata
- 13.43 Установка и настройка OpenNMS
- 13.44 Установка и настройка Cacti
- 13.45 Установка и настройка Observium
- 13.46 Настройка SQUID для обхода ограничений для западных репозиториев
-
- 14.1 Утилита passwd в НАЙС ОС
- 14.2 Источники программ (репозитории) НАЙС ОС
- 14.3 Назначение RPM в НАЙС ОС
- 14.4 Модули ядра в НАЙС ОС
- 14.5 zswap в НАЙС ОС
- 14.6 Dracut - ПО для создания загрузочного образа (initramfs) в НАЙС ОС
- 14.7 Общие рекомендации соблюдения безопасности в НАЙС ОС
- 14.8 Протокол Secure Shell в рамках безопасности в НАЙС ОС
- 14.9 Аудит в НАЙС ОС
- 14.10 Права доступа к файлам и каталогам в контексте безопасности в НАЙС ОС
- 14.11 Использование ClamAV для обеспечения безопасности в НАЙС ОС
- 14.12 Использование ClamAV для обеспечения безопасности в НАЙС ОС
- 14.13 Использование списков контроля доступа (ACL) для обеспечения безопасности в НАЙС ОС
- 14.14 Использование SELinux для обеспечения безопасности в НАЙС ОС
- 14.15 Использование Pluggable Authentication Modules (PAM) для обеспечения безопасности в НАЙС ОС
- 14.16 Использование Rsyslog для обеспечения безопасности в НАЙС ОС
- 14.17 Использование Afick для обеспечения безопасности в НАЙС ОС
- 14.18 Использование AMTU для обеспечения безопасности в НАЙС ОС
- 14.19 Использование ntpdate для обеспечения безопасности в НАЙС ОС
- 14.20 Настройка отказоустойчивого кластера в контексте безопасности в НАЙС ОС
- 14.21 Изменение приоритета процесса в контексте безопасности в НАЙС ОС
- 14.22 Управление дисковыми квотами в контексте безопасности в НАЙС ОС
- 14.23 Ограничение ресурсов пользователя в контексте безопасности в НАЙС ОС
- 14.24 Шифрование дисков и отдельных файлов в контексте безопасности в НАЙС ОС
- 14.25 Использование Polkit в контексте безопасности в НАЙС ОС
- 14.26 Модуль PAM_USB - двухфакторная аутентификация в контексте безопасности в НАЙС ОС
- 14.27 Использование ГОСТ в OpenSSL в контексте безопасности в НАЙС ОС
- 14.28 Расчет контрольных сумм файлов в контексте безопасности в НАЙС ОС
- 14.29 Защитное преобразование файлов и каталогов по ГОСТ Р 34.12–2015
- 14.30 Задание хешей паролей в соответствии с ГОСТ Р 34.11-2012
- 14.31 Использование OpenSCAP в контексте безопасности в НАЙС ОС
- 14.32 Локальная аутентификация с использованием Рутокен MFA
- 14.33 Проверка файловой системы на наличие ошибок в НАЙС ОС
- 14.34 Восстановление загрузчика GRUB2 в НАЙС ОС
- 14.35 Тестирование оперативной памяти в НАЙС ОС
- 14.36 Рекомендации по анализу журналов и дампов в НАЙС ОС
- 14.37 Модули ядра в НАЙС ОС
-
- 15.1 Введение в виртуализацию и контейнеризацию
- 15.2 Установка и настройка KVM
- 15.3 Управление виртуальными машинами с помощью libvirt
- 15.4 Введение в Docker
- 15.5 Использование Kubernetes для оркестрации
- 15.6 Настройка и управление LXC/LXD
- 15.7 Виртуализация с использованием OpenVZ
- 15.8 Настройка и управление Vagrant
- 15.9 Виртуализация с использованием Xen
- 15.10 Продвинутые возможности Docker
- 15.11 Инструменты мониторинга и управления виртуализацией
- 15.12 Сравнение различных технологий виртуализации и контейнеризации
- 15.13 Лучшие практики и сценарии использования виртуализации и контейнеризации
Введение в виртуализацию и контейнеризацию
Современные технологии виртуализации и контейнеризации играют ключевую роль в ИТ-инфраструктуре, предоставляя средства для эффективного использования ресурсов и улучшения развертывания приложений. В данной документации мы рассмотрим историю этих технологий, основные концепции и термины, сравним их преимущества и недостатки.
История виртуализации и контейнеризации
История виртуализации началась в 1960-х годах, когда IBM разработала первую систему виртуальных машин (VM) для своих мейнфреймов. Эти технологии позволяли запускать несколько операционных систем на одном физическом устройстве, что значительно увеличивало эффективность использования оборудования.
С течением времени виртуализация получила широкое распространение в различных областях, включая серверные инфраструктуры и облачные среды. В начале 2000-х годов виртуализация серверов стала стандартом для многих ИТ-компаний, что позволило значительно сократить затраты на оборудование и упростить управление ресурсами.
Контейнеризация появилась позже, в начале 2010-х годов, и быстро завоевала популярность благодаря таким технологиям, как Docker. Контейнеры предоставляют легковесную альтернативу виртуальным машинам, позволяя запускать приложения в изолированных средах с минимальными затратами на ресурсы.
Основные концепции и термины
Виртуализация
Виртуализация – это технология, позволяющая создавать несколько виртуальных машин (VM) на одном физическом сервере. Каждая VM работает как отдельная операционная система с собственными ресурсами, включая процессорное время, память и дисковое пространство.
Основные термины:
- Гипервизор: программное обеспечение, которое управляет виртуальными машинами и распределяет ресурсы между ними. Примеры гипервизоров: VMware ESXi, Microsoft Hyper-V, KVM.
- Виртуальная машина (VM): изолированная программная среда, работающая на гипервизоре, имитирующая работу физического компьютера.
- Гостевая операционная система: операционная система, работающая внутри виртуальной машины.
- Хостовая операционная система: операционная система, на которой установлен гипервизор и которая управляет физическими ресурсами.
Контейнеризация
Контейнеризация – это метод изоляции приложений в отдельные контейнеры, которые работают на общей операционной системе, но имеют свои собственные файловые системы, сети и ресурсы.
Основные термины:
- Контейнер: легковесная изолированная среда для запуска приложений, использующая ядро хостовой операционной системы.
- Docker: наиболее популярная платформа для управления контейнерами, предоставляющая инструменты для создания, распространения и развертывания контейнеров.
- Image (образ): шаблон, из которого создается контейнер, содержащий все необходимые компоненты для работы приложения, включая зависимости и настройки.
- Registry (реестр): хранилище для Docker-образов, позволяющее обмениваться ими между пользователями и системами. Примеры: Docker Hub, Google Container Registry.
Сравнение виртуализации и контейнеризации
Хотя виртуализация и контейнеризация служат схожим целям, обеспечивая изоляцию и управление ресурсами, они имеют ряд ключевых отличий, влияющих на их использование в различных сценариях.
Изоляция
Виртуализация предоставляет полную изоляцию операционных систем, позволяя запускать разные ОС на одном физическом сервере. Контейнеризация, напротив, использует общую ОС, но изолирует приложения на уровне файловой системы, сети и процессов.
Производительность
Контейнеры обычно работают быстрее, чем виртуальные машины, так как они не требуют гипервизора и не содержат полной копии ОС. Это делает контейнеры более легковесными и эффективными в плане использования ресурсов.
Управление ресурсами
Виртуальные машины могут требовать значительных ресурсов для работы гипервизора и гостевых ОС. Контейнеры используют ресурсы более эффективно, что позволяет запускать больше контейнеров на одном сервере по сравнению с виртуальными машинами.
Гибкость
Виртуализация позволяет использовать разные операционные системы и программные стеки на одном сервере, что может быть полезно в многопользовательских средах. Контейнеры, благодаря своей легковесности и скорости, часто используются для микросервисных архитектур и DevOps-практик.
Уровень безопасности
Виртуальные машины обеспечивают высокий уровень безопасности за счет полной изоляции операционных систем. Контейнеры имеют меньший уровень изоляции, так как используют общие ресурсы хостовой ОС, что может создавать потенциальные риски.
Преимущества и недостатки каждой технологии
Преимущества виртуализации
- Полная изоляция операционных систем и приложений.
- Поддержка различных ОС и программных стеков на одном сервере.
- Высокий уровень безопасности за счет изоляции виртуальных машин.
- Гибкость в управлении ресурсами и миграции виртуальных машин между серверами.
Недостатки виртуализации
- Большие накладные расходы на ресурсы для работы гипервизора и гостевых ОС.
- Более сложное управление и развертывание по сравнению с контейнерами.
- Медленное время запуска виртуальных машин.
Преимущества контейнеризации
- Высокая производительность и эффективное использование ресурсов.
- Быстрое развертывание и масштабирование приложений.
- Упрощенное управление и автоматизация с помощью инструментов, таких как Kubernetes и Docker Swarm.
- Идеально подходит для микросервисных архитектур и DevOps-практик.
Недостатки контейнеризации
- Меньший уровень изоляции и потенциальные риски безопасности.
- Зависимость от хостовой операционной системы.
- Ограниченная поддержка различных ОС и программных стеков.
Примеры использования в НАЙС ОС
Установка и настройка виртуальных машин
Для установки гипервизора KVM на НАЙС ОС с использованием пакетного менеджера tdnf
можно выполнить следующие команды:
sudo tdnf install qemu-kvm libvirt virt-install bridge-utils
sudo systemctl enable --now libvirtd
Для создания новой виртуальной машины используйте команду virt-install
:
sudo virt-install --name=myvm --ram=2048 --vcpus=2 --disk size=20 --os-variant=ubuntu20.04 --network bridge=br0 --cdrom=/path/to/ubuntu.iso
Установка и настройка Docker
Для установки Docker на НАЙС ОС используйте следующие команды:
sudo tdnf install docker
sudo systemctl enable --now docker
Для создания и запуска нового контейнера используйте команды:
sudo docker pull nginx
sudo docker run --name mynginx -d -p 80:80 nginx
Виртуализация и контейнеризация предоставляют мощные инструменты для эффективного управления ИТ-инфраструктурой. В зависимости от конкретных требований и сценариев использования, каждая из этих технологий может предложить уникальные преимущества. Виртуализация обеспечивает полную изоляцию и гибкость, тогда как контейнеризация предлагает легковесные, быстро масштабируемые решения для современных приложений.