Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ знания ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: понятия, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, инструмСнты

Виртуализация β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… инструмСнтов Π² соврСмСнной ИВ-инфраструктурС. Она позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Π½Π° ΠΎΠ΄Π½ΠΎΠΌ физичСском сСрвСрС, экономя рСсурсы ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Linux, Windows, macOS, Π° Ρ‚Π°ΠΊΠΆΠ΅ спСциализированныС Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VMware ESXi, Proxmox VE, XenServer) ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собствСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΈ интСрфСйсы для управлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами. НапримСр:

  • Π’ Linux Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярны связка KVM + QEMU + libvirt, Π° Ρ‚Π°ΠΊΠΆΠ΅ LXC/LXD для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

  • Π’ Windows встроСн Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ Hyper-V, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… срСдах ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ….

  • Π’ macOS для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² доступСн инструмСнт Virtualization.framework, Π° Ρ€Π°Π½Π΅Π΅ использовался Parallels ΠΈ VirtualBox.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ β€” ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ, Π½ΠΎ Π΅ΠΌΠΊΠΈΠΉ справочник ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ понятиям Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, с Π°ΠΊΡ†Π΅Π½Ρ‚ΠΎΠΌ Π½Π° практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.


πŸ”§ ΠžΡΠ½ΠΎΠ²Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Hypervisor (Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€)

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая управляСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами. Π‘Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²:

  • Type 1 (bare-metal) β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π° β€œΠΆΠ΅Π»Π΅Π·Π΅β€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VMware ESXi, Xen, Hyper-V).

  • Type 2 (hosted) β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ ОБ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VirtualBox, VMware Workstation).


VM (Virtual Machine)

ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Π°Ρ, изолированная систСма с собствСнной ОБ, эмулируСмыми устройствами, ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ CPU. Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ VM β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, просто Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ.


vCPU (Virtual CPU)

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСссор, прСдоставляСмый VM. Π“ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ vCPU Π½Π° физичСскиС ядра ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ.


βš™οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин

CPU Pinning

Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… процСссоров Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ физичСскими ядрами. Π­Ρ‚ΠΎ сниТаСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Huge Pages

ΠŸΠ°ΠΌΡΡ‚ΡŒ Π² Linux ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ управляСтся страницами ΠΏΠΎ 4 KB. Huge Pages β€” это большиС страницы (2 MB ΠΈΠ»ΠΈ 1 GB), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ доступ ΠΊ памяти ΠΈ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° TLB.

NUMA (Non-Uniform Memory Access)

АрхитСктура, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ CPU ΠΈΠΌΠ΅Π΅Ρ‚ β€œΡΠ²ΠΎΡŽβ€ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Для максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ VM Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ vCPU ΠΈ RAM Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ NUMA-ΡƒΠ·Π»Π°.


🧩 Устройства Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ проброс

SR-IOV (Single Root I/O Virtualization)

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ физичСскому устройству (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сСтСвой ΠΊΠ°Ρ€Ρ‚Π΅) ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мноТСство Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (VF), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ VM.

  • PF (Physical Function) β€” основноС устройство.

  • VF (Virtual Function) β€” Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ β€œΠ΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅β€ устройство.

PCI Passthrough

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ VM Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с физичСским устройством Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ΠΎΠΉ, диском ΠΈΠ»ΠΈ сСтСвой ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с VFIO ΠΈ IOMMU.

VirtIO

Набор ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² для дисков, сСти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… устройств. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ VM Π·Π° счёт прямого взаимодСйствия с Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΎΠΌ.


πŸ’Ύ Диски ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ диски

  • qcow2 β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сТатиС, ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅.

  • raw β€” простой ΠΈ быстрый, Π½ΠΎ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй.

Thin Provisioning

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пространства ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ использования, Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ рСзСрвирования всСго объСма.

Snapshots

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС диска ΠΈΠ»ΠΈ всСй VM Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

VirtIO Disk

ΠŸΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для ускорСнной Ρ€Π°Π±ΠΎΡ‚Ρ‹ дисков.


🌐 Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π’ΠΈΠΏΡ‹ сСтСвых ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ VM:

  • Bridge β€” VM Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² физичСской сСти.

  • NAT β€” VM Π·Π° NAT, доступ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ Π΅ΡΡ‚ΡŒ, Π½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π°.

  • Macvtap / Macvlan β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ MAC ΠΈ доступ ΠΊ физичСской сСти.

Tap-интСрфСйсы

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сСтСвыС устройства уровня L2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ VM ΠΊ bridge.

VirtIO Net

ΠŸΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСтСвой интСрфСйс с высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

ВстроСнныС сСтСвыС сСрвисы

Часто Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ dnsmasq для DHCP, DNS, TFTP (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, libvirt).

PXE Boot

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ VM ΠΏΠΎ сСти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для автоматичСской установки.

9p / VirtFS

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡˆΠ°Ρ€ΠΈΠ½Π³Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ хостом ΠΈ VM.


🧰 Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ сСрвисы

KVM

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ядра Linux, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ систСму Π² Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с QEMU.

QEMU

Эмулятор ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ KVM для ускорСния.

libvirt

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для управлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ virsh, virt-manager, API.

Cloud-init

Автоматизация ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ VM: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, SSH, hostname, ΡΠ΅Ρ‚ΡŒ ΠΈ Π΄Ρ€.


πŸ“Œ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Виртуализация β€” это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ запуск ΠΎΠ΄Π½ΠΎΠΉ ОБ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ цСлая экосистСма Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², сСрвисов ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСсурсами, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ сСрвисов.