Add lecture notes on virtualization, basic network services, backup systems, and monitoring

- Introduced comprehensive notes on virtualization, covering architecture, hypervisors, and containerization.
- Added detailed lecture on basic network services including DNS, DHCP, and NTP, emphasizing their importance in IT infrastructure.
- Included notes on backup systems (СРК), discussing RTO, RPO, and backup strategies.
- Documented the significance of monitoring systems, differentiating between monitoring and observability, and outlining key metrics to track.
- Created new markdown files for personal projects on home server setup and containerization, linking them to the main notes.
This commit is contained in:
ada
2025-08-20 14:10:00 +03:00
parent fd176dab30
commit 757ae4cd00
19 changed files with 148 additions and 1 deletions
+9 -1
View File
@@ -3,4 +3,12 @@ source "https://rubygems.org"
# gem "github-pages", group: :jekyll_plugins
gem "jekyll-remote-theme"
gem "minimal-mistakes-jekyll"
gem "jekyll-obsidian"
group :jekyll_plugins do
gem "jekyll-include-cache"
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
gem "jekyll-paginate"
gem "jekyll-obsidian"
end
+9
View File
@@ -61,6 +61,15 @@ defaults:
toc: false
author_profile: true
obsidian:
vault: "_notes" # где лежат md-файлы Obsidian
wikilinks: true # включить [[wiki-ссылки]]
# ниже — удобные опции
downcase: true # приводить ссылки к нижнему регистру
slugify: true # заменять пробелы/кириллицу на слаг
ext: ".md"
attachments_dir: "assets/cache/"
# --- Навигация (подключим _data/navigation.yml) ---
navigation:
main: true
@@ -0,0 +1,55 @@
---
done?: true
dg-publish: true
tags:
created: 04.08.2025
dg-home: false
---
Как я и обещал, запускаю небольшой цикл постов о моём маленьком проекте: "Домашняя виртуализация на базе мини-ПК"
Пока я вижу сам цикл так:
1) Базовые знания (Что такое виртуализация, Proxmox и зачем оно вообще надо?)
2) Настройка и первый контейнер
3) А как работать не с домашнего ПК? (Всё, про удаленный доступ и с чем его едят)
4) Настройка git-сервера
5) Настройка NAS
6) Машинка для ботов
Начнём с базы, которая нам в будущем поможет чуть лучше понимать друг друга)
### Виртуализация
Представьте себе сервер, что первое приходит в голову? Наверное, огромные серверные стойки, большое количество данных, шумное помещение и ещё, может быть, невыносимый холод (надо ж охлаждать эту лабудень...)
В целом, всё верно, но тут стоит пояснить - сервером, по факту, можно назвать и компьютер, который стоит у вас дома, на работе или на учебе.
**Сервер -** это тот же комьютер, но нацеленный на круглосуточную работу, на нем не работает обычный пользователь (ну, точнее, может, но об этом в другой раз), на нем "_крутятся_" десятки, а то и сотни сервисов. Ну и главным отличием сервера от обычного ПК можно назвать "_избыточность_" - два блока питания, много плашек оперативной памяти, несколько процессоров (хотя тут спорно), т.е. всё работает на то, чтоб сервер не отвалился, если какая-то из комплектующих решит почить.
С сервером разобрались, просто очень мощный круглосуточно работающий и неломающийся (условно) компьютер, круто, классно, вопрос: "Почему мы не можем просто запускать на нём нужные нам программы, как мы это делаем обычно, они будут работать параллельно, как при классическом использовании?"
Вопрос, сам по себе, очень логичный, но ответ из него вытащить сложно, тут нужно понимание того, а что вообще из себя представляют программы.
Сильно углубляться не будем, сойдемся на том, что программа (== сервис) - это рабочий, которому нужен определенный набор инструментов. Притом, разным рабочим нужны разные инструменты, но вот дилемма, одному рабочему удобно записывать планы в блокнот, а другом в заметки на телефоне. Суть одна, а вот версии "инструментария" разные. Ну, ещё программы могут очень ловко забирать друг у друга ресурсы, а это тоже плохо.
Мы можем, конечно, физически разносить программы, т.е. у нас один сервер крутит почту, например, второй - какой-нибудь сайт (типа телеграмма, почему нет), а третий пусть следит за этим всем (мониторинг). Проблема в том, что, например, мониторинг не так много ресурсов требует, а мы для него выделили целый отдельный сервер (от которого он кушает дай б-г 2% мощностей).
И вот тут на арену влетает магическое слово - **виртуализация.** Фактически, мы просто говорим серверу, что он теперь не просто комьютер, а множество комьютеров, объединенных физически. Мы четко делим сервер на отдельные - **изолированные** _ПК_, с разделением мощностей и инструментария. На каждую из таких ВМ (виртуальная машина - виртуальный ПК на сервере) мы ставим свою ОС (операционная система), свои инструменты, и разворачиваем приложение - победа!
На этом я закончу первый пост, он получился весьма объемным.
Следующим шагом для нас будет рассказ про конкретные виды виртуализаций, а пока, вам вопрос - **"Как называется программа, которая управляет виртуализацией и виртуальными машинами?"**
@@ -0,0 +1,52 @@
---
done?: true
dg-publish: true
tags:
created: 07.08.2025
---
Мы возвращаемся к нашей эпопее с домашним сервером, напомню, мы в прошлый раз обсуждали, что такое *виртуализация* - это технология, с помощью которой мы можем на одном устройстве (сервере, ПК и т.д.) разместить множество "виртуальных устройств".
Сегодня мы поговорим о таких вещах, как *контейнеризация* и заденем при этом понятие *гипервизора*.
---
Начнем, пожалуй, как раз с *гипервизора*, кратко, емко, четко:
## Гипервизоры
***Гипервизор*** - программа, позволяющая управлять виртуальными машинами и контейнерами (есть небольшое различие, но об этом дальше). На этом, в общем-то, всё, стоит ещё сказать, что гипервизоры бывают двух типов:
1) <u>*Bare-metal*</u> - т.е. гипервизоры представляющие собой "операционную систему", которая устанавливается напрямую на "железо". Это обеспечивает **наибольшую** производительность и совместимость, но, очевидно, что это сложнее, чем просто поставить VirtualBox)
> Примеры: Proxmox, ESXi, oVirt(и производные)
2) *<u>Hosted</u>* - гипервизор, являющийся натурально программой для уже существующей системы. Такие гипервизоры проще в освоении и используются для пользовательского использования (на винду линукс накатить попробовать).
Меньшая производительность т.к. комплектующие эмулируются для машин, но проще в использовании.
> Примеры: VMWare Workstation, VirtualBox, QEMU/KVM VM Manager.
![[Pasted image 20250722230535.png]]
## Контейнеризация
Как мы уже говорили, очень круто изолировать каждую программу в отдельной машине, отдельный инструментарий и всё такое, но в чем же проблема?
А проблема в том, что мы для каждой программки поднимаем *полноценную (иногда урезанную) ОС*, со своим ядром, своими особенностями и т.д.
И, разумеется, это всё надо питать ресурсами, что дорого, очень дорого, особенно, если у нас отказоустойчивый кластер с *десятками*, а то и *сотнями* машин.
**Какой же выход?** А очень простой, давайте не поднимать для каждой "машины" отдельную ОС с ядром, а использовать одно - которое предоставляет ОС сервера, а приложения запускать в изолированных "окружениях".
> [!info] Пример
> Я не уверен, что смогу объяснить, как это работает, простым языком, но просто представьте, что мы работаем в ресторане и наша задача держать сырье (продукты) в холоде, чтоб те не испортились.
>
> Вот виртуализация, это если мы для каждого ящика с продуктами будем покупать отдельный холодильник, да, это круто, что выход из строя одного холодильника не повлияет на другие, но пипец, как затратно и по деньгам и по электричеству.
>
> С другой же стороны, мы можем выделить целую комнату под холодильник, там наладить централизованное охлаждение и туда уже сгружать ящики с продуктами, вот это контейнеризация, когда мы отдельные ящики охлаждаем общей системой.
> К слову, почему я сказал, что гипервизоры для контейнеров и виртуалок отличаются? В сущности, для контейнеров нет как таковой системы, но есть CRI - Container Runtime Interface, то, с помощью чего, контейнеры и запускаются.
> ВМ такого не надо, у них у каждой своё ядро. (Но я не хочу разделять понятия, потому что сейчас гипервизоры универсальны и имеют как среду для ВМ, так и CRI)
> ![[Pasted image 20250722230511.png|200]]
В общем-то, на этом всё, но напоследок скажу, что в продакшене часто используют смешанный тип, т.е. мы на виртуализации разворачиваем среду для контейнеризации и в машинах разворчиваем контейнеры смежных приложений, так мы изолируем группы программ друг от друга.
Спасибо за внимание, в следующей статье мы уже перейдем к конкретным решениям, которые использую я.
@@ -0,0 +1,12 @@
---
dg-publish: true
done?:
tags:
created: 07.08.2025
---
:LiCalendarDays: Заметка от 07.08.25
## Основные понятия и термины
- [[Как Дима сервер домашний поднимал...]]
- [[Коробочки-коробочки...]]
+11
View File
@@ -0,0 +1,11 @@
---
dg-publish: false
dg-home: false
---
## Хаб-страницы
- [[Летняя школа КРОК - Hub]]
- [[Эпопея о домашнем сервере]]
## Последние заметки
- [[Коробочки-коробочки...]]
- [[Как Дима сервер домашний поднимал...]]