πŸ“Œ libvirt

libvirt β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈ Π½Π°Π±ΠΎΡ€ инструмСнтов для управлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ KVM, QEMU, Xen, LXC, Bhyve ΠΈ Π΄Ρ€. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами.

🧠 Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

libvirt Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

  • libvirt API β€” C-интСрфСйс ΠΈ обвязки для Python, Go, Rust
  • libvirtd β€” Π΄Π΅ΠΌΠΎΠ½ (Π² старых вСрсиях) для взаимодСйствия с Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°ΠΌΠΈ
  • virsh β€” CLI-инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π’Πœ
  • libvirt XML β€” описаниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π’Πœ (CPU, RAM, диски, ΡΠ΅Ρ‚ΡŒ ΠΈ ΠΏΡ€.)

АрхитСктура:

[ virsh / API ] β†’ [ libvirt.so ] β†’ [ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ KVM/QEMU/Xen/... ] β†’ [ Hypervisor ]

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅:

βš™οΈ Π“Π΄Π΅ примСняСтся

ΠžΠ±Π»Π°ΡΡ‚ΡŒΠΠ°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
DatacenterАвтоматизация VM-оркСстрации
DevOpsCI/CD ΠΈ тСстированиС Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°Ρ…
CloudΠ˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° для IaaS
NFVΠ£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСтСвыми функциями Π² VM

βœ… ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • Π•Π΄ΠΈΠ½Ρ‹ΠΉ API для Ρ€Π°Π·Π½Ρ‹Ρ… Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΎΠ²

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ языков

  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с virt-manager, OpenStack, oVirt

❌ НСдостатки

  • Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ XML-ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ

  • libvirtd устарСл ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° modular daemons

  • Высокий ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройкС