mirror of
https://github.com/ada-dmitry/ada-dmitry.github.io.git
synced 2026-09-24 01:10:35 +00:00
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:
@@ -3,4 +3,12 @@ source "https://rubygems.org"
|
|||||||
# gem "github-pages", group: :jekyll_plugins
|
# gem "github-pages", group: :jekyll_plugins
|
||||||
gem "jekyll-remote-theme"
|
gem "jekyll-remote-theme"
|
||||||
gem "minimal-mistakes-jekyll"
|
gem "minimal-mistakes-jekyll"
|
||||||
|
|
||||||
|
group :jekyll_plugins do
|
||||||
|
gem "jekyll-include-cache"
|
||||||
|
gem "jekyll-feed"
|
||||||
|
gem "jekyll-seo-tag"
|
||||||
|
gem "jekyll-sitemap"
|
||||||
|
gem "jekyll-paginate"
|
||||||
gem "jekyll-obsidian"
|
gem "jekyll-obsidian"
|
||||||
|
end
|
||||||
@@ -61,6 +61,15 @@ defaults:
|
|||||||
toc: false
|
toc: false
|
||||||
author_profile: true
|
author_profile: true
|
||||||
|
|
||||||
|
obsidian:
|
||||||
|
vault: "_notes" # где лежат md-файлы Obsidian
|
||||||
|
wikilinks: true # включить [[wiki-ссылки]]
|
||||||
|
# ниже — удобные опции
|
||||||
|
downcase: true # приводить ссылки к нижнему регистру
|
||||||
|
slugify: true # заменять пробелы/кириллицу на слаг
|
||||||
|
ext: ".md"
|
||||||
|
attachments_dir: "assets/cache/"
|
||||||
|
|
||||||
# --- Навигация (подключим _data/navigation.yml) ---
|
# --- Навигация (подключим _data/navigation.yml) ---
|
||||||
navigation:
|
navigation:
|
||||||
main: true
|
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
|
||||||
|
|
||||||
|
## Основные понятия и термины
|
||||||
|
- [[Как Дима сервер домашний поднимал...]]
|
||||||
|
- [[Коробочки-коробочки...]]
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
dg-publish: false
|
||||||
|
dg-home: false
|
||||||
|
---
|
||||||
|
## Хаб-страницы
|
||||||
|
- [[Летняя школа КРОК - Hub]]
|
||||||
|
- [[Эпопея о домашнем сервере]]
|
||||||
|
|
||||||
|
## Последние заметки
|
||||||
|
- [[Коробочки-коробочки...]]
|
||||||
|
- [[Как Дима сервер домашний поднимал...]]
|
||||||
Reference in New Issue
Block a user