Y
Yandex for Backend
@yandexforbackend9.3K подп.
1.7Kпросмотров
17.9%от подписчиков
25 марта 2026 г.
🎬 ВидеоScore: 1.8K
🧬 От небольшой стойки до распределённого хранилища Всем привет, меня зовут Евгений Козев, я руковожу командой NBS в Yandex Cloud. Сегодня расскажу о том, как работают сетевые диски, которые реализуют блочное хранилище и без которых не обходится ни одна виртуальная машина. ❇️ Зачем нужно блочное хранилище Представьте классическую аппаратную систему хранения данных (СХД): вы берёте стойку, набираете в неё диски и подключаете к компьютеру. Это работает, но у такого подхода есть большой недостаток — отсутствие миграции. Нельзя просто взять и передвинуть виртуальную машину на другой хост, потому что она привязана к вашей СХД. Чтобы её можно было переключать между железными устройствами и подключать к хранилищу по сети, нужна прослойка. А дальше одной СХД уже не хватает. Поэтому приходится строить распределённую систему с оркестраторами, которые выдают доступ к дискам. ❇️ С чего начинается облако (обычно с опенсорса) Допустим, что вы — небольшая IT-компания, которой хватит готового решения из OpenStack, например Ceph. Это популярная платформа, ей больше 15 лет. Но рано или поздно вы начнёте расти. А когда клиентов станет много, такую систему будет сложно масштабировать. И вам придётся разбираться, как это всё поддерживать. В итоге вам нужна расширяемая система, которая обеспечивает доступность для клиентов, даёт нужный перформанс, легко масштабируется, не требует больших затрат на эксплуатацию и хранит данные без потерь (это важно!). ❇️ Как работает виртуальная машина в Yandex Cloud Вы как пользователь приходите в региональный сервис Compute, который берёт железный хост в выбранном вами дата-центре и создаёт там Instance с гипервизором — вашу виртуальную машину. А мы как NBS должны присоединиться к нему так, чтобы появились сетевые диски. ❇️ Как мы это делаем У нас есть сервис Disk Manager. Он принимает запросы от Compute и определяет, что хочет сделать пользователь: снять снапшот с диска, создать или удалить его и так далее. Запросы могут идти в разные дата-центры. Далее мы идём в NBS-control. Это сервис, который отвечает за создание дисков, работу с ними, их увеличение и уменьшение. Он находит железный хост, на котором запущен ваш Instance, и создаёт на нём Volume — логическую сущность с ID диска, его размером и лимитами. Он подключается к гипервизору через протокол virtio-blk, и в вашей виртуальной машине появляется блочное устройство по адресу /dev/vdb. ❇️ Диски в Yandex Cloud Для SSD и HDD используем YDB — Yandex Database, СУБД с открытым исходным кодом. Физические диски (pdisk) собираются в виртуальные (vdisk). Из восьми vdisk’ов получается группа. Для репликации, чтобы был консенсус, нужно именно такое количество. Когда пользователь пишет блок данных, система разделяет этот элемент на четыре части и добавляет к ним ещё две. Это даёт отказоустойчивость ценой накладных расходов. На 1 Мб данных пользователя мы сохраняем 1,5 Мб, но если что-то выйдет из строя, то мы сможем их восстановить. 📟 Кстати, любой диск в Yandex Cloud можно зашифровать с помощью KMS на собственном ключе 🙃 Для этого нужно создать сервисный аккаунт и прокинуть его через Compute к нам. 🔶 В новом выпуске «Как мы делаем Yandex Cloud» я рассказал, кто такой разработчик сетевого блочного устройства, какой стек технологий использует наша команда и как выглядит рабочий процесс. 📺 Смотрите подкаст на ютубе, Rutube и в VK Видео. 🎧 Или слушайте в Яндекс Музыке и на любой удобной подкаст-платформе. P. S. В рамках ежегодного митапа about:cloud — infrastructure я также поговорил о трёх процессах, на которые уходят ресурсы нашей системы. Смотрите мою часть выступления здесь. Подписывайтесь: 💬 @Yandex4Backend 📹 @YandexforBackend
1.7K
просмотров
3672
символов
Да
эмодзи
Да
медиа

Другие посты @yandexforbackend

Все посты канала →