Skip to content

Amet13/vz-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 

Repository files navigation

Руководство ΠΏΠΎ созданию ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами Π½Π° Π±Π°Π·Π΅ OpenVZ 7

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ
  1. ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Virtuozzo/OpenVZ
  2. Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² OpenVZ 7
  3. Установка ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия
  1. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ шаблонами
  1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ настройка ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
  1. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ
  1. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
  1. ΠŸΡ€ΠΎΠ±Ρ€ΠΎΡ устройств Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
  1. SimFS ΠΈ ploop
  2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°ΠΌΠΈ
  3. Π Π°Π±ΠΎΡ‚Π° с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами
  1. ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин
  2. Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ информация ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… ΠΈ Π’Πœ
  3. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ систСмному администратору
  4. Бсылки
  5. ЛицСнзия

⬆ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ

Виртуализация β€” прСдоставлСниС Π½Π°Π±ΠΎΡ€ΠΎΠ² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов ΠΈΠ»ΠΈ ΠΈΡ… логичСского объСдинСния, абстрагированных ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²:

  • консолидации сСрвСров (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с физичСских сСрвСров Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π΅ΠΌ самым увСличивая коэффициСнт использования Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт сущСствСнно ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅, элСктроэнСргии ΠΈ обслуТивании)
  • Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ тСстировании ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (ОБ), это ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ кроссплатформСнного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (ПО), Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ качСство, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ)
  • бизнСсС (использованиС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² бизнСсС растСт с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π΄Π½Π΅ΠΌ ΠΈ постоянно находятся Π½ΠΎΠ²Ρ‹Π΅ способы примСнСния этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ½Π°ΠΏΡˆΠΎΡ‚)
  • ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станций (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… "Ρ‚ΠΎΠ½ΠΊΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²")

ΠžΠ±Ρ‰Π°Ρ схСма взаимодСйствия Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм ΠžΠ±Ρ‰Π°Ρ схСма взаимодСйствия Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ условно Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

  • виртуализация ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ этого Π²ΠΈΠ΄Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹)
  • виртуализация рСсурсов (прСслСдуСт Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ прСдставлСния Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… рСсурсов для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… абстракций оборудования, пространств ΠΈΠΌΠ΅Π½, сСтСй)

ВзаимодСйствиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ обСспСчСниСм осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· абстрагированный слой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

БущСствуСт нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

  • эмуляция оборудования (QEMU, Bochs, Dynamips)
  • полная виртуализация (KVM, Microsoft Hyper-V, Oracle VM VirtualBox, VMware ESXi)
  • паравиртуализация (Xen, L4, Trango Virtual Processors)
  • виртуализация уровня ОБ (LXC, OpenVZ, FreeBSD jail, Solaris Zone)

Эмуляция оборудования

Эмуляция Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых слоТных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ эмуляции Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств являСтся низкая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π² связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ каТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° модСлируСтся Π½Π° основных Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдствах.

Π’ процСссС эмуляции оборудования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ динамичСской трансляции, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ каТдая ΠΈΠ· инструкций эмулируСмой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ замСняСтся Π½Π° Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ инструкций физичСского процСссора.

Эмуляция оборудования ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ срСдства Π‘Ρ…Π΅ΠΌΠ° эмуляции оборудования

ДинамичСский транслятор позволяСт Π²ΠΎ врСмя исполнСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ инструкции Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ (гостСвого) процСссора Π² инструкции Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора хоста для обСспСчСния эмуляции. QEMU обСспСчиваСт Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ инструкции Π² ΠΌΠΈΠΊΡ€ΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, эти ΠΌΠΈΠΊΡ€ΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой элСмСнты C-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π—Π°Ρ‚Π΅ΠΌ запускаСтся основной транслятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ инструкции Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для динамичСской трансляции. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эффСктивСн, Π½ΠΎ ΠΈ обСспСчиваСт ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ.

Полная виртуализация

Полная виртуализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствляСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ гостСвой ОБ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ срСдствами физичСского сСрвСра. Π’ связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ вся Ρ€Π°Π±ΠΎΡ‚Π° с гостСвой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΈΠΆΠ΅ Ρ‡Π΅ΠΌ Π² случаС прямого взаимодСйствия с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€ΠΎΠΉ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ прСимущСством ΠΏΠΎΠ»Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ОБ Π½Π΅ вносится Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, СдинствСнноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” опСрационная систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ основныС Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ срСдства (AMD SVM ΠΈΠ»ΠΈ Intel VT).

Полная виртуализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ KVM Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина выполняСтся ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Linux-процСсс, Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ стандартным ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Linux. На самом Π΄Π΅Π»Π΅, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСссор прСдставляСтся ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Linux-процСсс, это позволяСт KVM ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСми возмоТностями ядра Linux. ЭмуляциСй устройств управляСт модифицированная вСрсия QEMU, которая обСспСчиваСт ΡΠΌΡƒΠ»ΡΡ†ΠΈΡŽ BIOS, ΡˆΠΈΠ½Ρ‹ PCI, ΡˆΠΈΠ½Ρ‹ USB, Π° Ρ‚Π°ΠΊΠΆΠ΅ стандартный Π½Π°Π±ΠΎΡ€ устройств, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ дисковыС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ IDE ΠΈ SCSI, сСтСвыС ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

ΠŸΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ

ΠŸΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сходства с ΠΏΠΎΠ»Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ для раздСлСния доступа ΠΊ основным Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ срСдствам, Π½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠΉΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² нСпосрСдствСнно ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, поэтому нСдостатком ΠΌΠ΅Ρ‚ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ гостСвая ОБ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° для Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°. Но паравиртуализация сущСствСнно быстрСС ΠΏΠΎΠ»Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π° ΠΊ скорости Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ, это осущСствляСтся Π·Π° счСт отсутствия эмуляции Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΡƒΡ‡Π΅Ρ‚Π° сущСствования Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ ядра. ВмСсто ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ Π³ΠΈΠΏΠ΅Ρ€Π²Ρ‹Π·ΠΎΠ²Ρ‹ обращСния ядра гостСвой ОБ ΠΊ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Ρƒ с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ раздСляСт процСсс с гостСвой ОБ Π‘Ρ…Π΅ΠΌΠ° ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π’ ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (PV) ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ эмулируСтся, ΠΈ гостСвая опСрационная систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. Начиная с вСрсии 3.0, ядро Linux ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запуск Π² ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· пСрСкомпиляции со сторонними ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ со стороны процСссора, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы для эмуляции оборудования Π½Π° шинС PCI.

Π Π΅ΠΆΠΈΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (HVM), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появился Π² Xen, начиная с вСрсии 3.0 Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ со стороны оборудования. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ для эмуляции Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ QEMU, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вСсьма ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»Π΅Π½ нСсмотря Π½Π° ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°. Однако со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π°ΠΆΠ΅ Π² соврСмСнных процСссорах лэптопов.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Π°Ρ виртуализация (виртуализация уровня ОБ)

Виртуализация уровня ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сСрвСры Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСпосрСдствСнно Π½Π°Π΄ ОБ. НСдостатком ΠΌΠ΅Ρ‚ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ поддСрТиваСтся ΠΎΠ΄Π½Π° СдинствСнная опСрационная систСма Π½Π° физичСском сСрвСрС, которая ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ уровня ОБ являСтся "родная" ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Виртуализация уровня ОБ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ сСрвСры Π‘Ρ…Π΅ΠΌΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ уровня ОБ

Виртуализация уровня ОБ β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ядро ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… экзСмпляров пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²) вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ эти экзСмпляры ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ сСрвСру. Для систСм Π½Π° Π±Π°Π·Π΅ UNIX эта тСхнология ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° chroot. Π―Π΄Ρ€ΠΎ обСспСчиваСт ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², поэтому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°.

OpenVZ β€” объСдинСниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ уровня ОБ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

OpenVZ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мноТСство Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ…, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ·Π»Π΅. Помимо этого сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π½Π° Π±Π°Π·Π΅ QEMU/KVM. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСциализированных ΡƒΡ‚ΠΈΠ»ΠΈΡ‚.

АрхитСктура OpenVZ 7 АрхитСктура OpenVZ 7

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ сСрвСр ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнныС Ρ„Π°ΠΉΠ»Ρ‹, процСссы, ΡΠ΅Ρ‚ΡŒ (IP-адрСса, ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ KVM ΠΈΠ»ΠΈ Xen, OpenVZ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎ ядро, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся ΠΎΠ±Ρ‰ΠΈΠΌ для всСх Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСд.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅:

  • ядро (namespaces, cgroups, CRIU, ploop, vcmmd, ...)
  • ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (prlctl, vzctl, vzpkg, vzlist, ...)

Namespaces β€” пространства ΠΈΠΌΠ΅Π½. Π­Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ядра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΡˆΠ΅ΡΡ‚ΠΈ контСкстах (пространствах ΠΈΠΌΠ΅Π½):

  • mount β€” прСдоставляСт процСссам ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с chroot
  • PID β€” ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ процСссов (PID) ΠΎΠ΄Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½ ΠΎΡ‚ процСссов с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ пространства
  • network β€” прСдоставляСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ процСссам логичСски ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… стСк сСтСвых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², сСтСвой интСрфСйс, IP-адрСс, Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ARP ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹
  • IPC β€” обСспСчиваСт Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами
  • UTS β€” изоляция ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΡƒΠ·Π»Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ имя хоста (hostname) ΠΈ Π΄ΠΎΠΌΠ΅Π½Π° (domain)
  • user β€” позволяСт ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π³Ρ€ΡƒΠΏΠΏ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ свой root ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹

CGroups (Control Groups) β€” позволяСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ рСсурсы Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° процСссов. Под Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ рСсурсами ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ΡΡ: процСссорноС врСмя, ΠΏΠ°ΠΌΡΡ‚ΡŒ, дисковая ΠΈ сСтСвая подсистСмы. Набор ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ° процСссов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ критСриями. НапримСр, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ цСлая иСрархия процСссов, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ всС Π»ΠΈΠΌΠΈΡ‚Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса. ΠšΡ€ΠΎΠΌΠ΅ этого Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ подсчСт расходуСмых Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ рСсурсов, Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΊΠ° (freezing) Π³Ρ€ΡƒΠΏΠΏ, созданиС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ (checkpointing) ΠΈ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°. Для управлСния этим ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libcgroups, Π² состав ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ входят Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠ°ΠΊ cgcreate, cgexec ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

CRIU (Checkpoint/Restore In Userspace) β€” обСспСчиваСт созданиС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ возобновлСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния с этой Ρ‚ΠΎΡ‡ΠΊΠΈ. Основной Ρ†Π΅Π»ΡŒΡŽ CRIU являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π£ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠ°ΠΊ процСссы, ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹, IPC сокСты, TCP/IP ΠΈ UDP сокСты, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, сигналы, Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы. Π’ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ находится миграция TCP соСдинСний.

VCMM (Virtuozzo containers memory management) β€” сСрвис управлСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ memory cgroups Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ памяти 4 поколСния управляСт memory cgroups, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присутствуСт Π² ванильном ядрС, поэтому Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сторонних ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ со стороны OpenVZ.

ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ тСстирования ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ OpenVZ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π½ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСстированиях.

Π“Ρ€Π°Ρ„ΠΈΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° систСмы ВрСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° систСмы

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° систСмы ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Ρ€Π΅Ρ… тСстов β€” с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π½Π° систСму ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Π±Π΅Π· Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π’Πœ. Π’ΠΎ всСх тСстах OpenVZ ΠΏΠΎΠΊΠ°Π·Π°Π» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ наимСньшСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°, Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° ESXi ΠΈ Hyper-V ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄ 700-3000%, ΠΊΠΎΠ³Π΄Π° Ρƒ OpenVZ всСго 1-3%.

Π“Ρ€Π°Ρ„ΠΈΠΊ пропускной способности сСти ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сСти

На Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ β€” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования пропускной способности сСти. На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ OpenVZ обСспСчиваСт ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ 10Gb сСти (9.7Gbit/s ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈ 9.87Gbit/s ΠΏΡ€ΠΈΠ΅ΠΌ).

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ΠΎΠ²

ВСст ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ называСтся DVD Store. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ классичСский Π½Π°Π±ΠΎΡ€ сСрвСрного ПО: Linux, Apache, MySQL, PHP (LAMP). Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π’Πœ эмулируСтся Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ DVD. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСста β€” количСство Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… суммарно Π²ΠΎ всСх Π’Πœ (ось ΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚). ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π’Πœ Π² тСстС увСличиваСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ 1 Π΄ΠΎ 100 (ось абсцисс).

LAMP: OpenSource QEMU KVM vs Virtuozzo @ CentOS 7.4 (Π’Πœ) LAMP VM test

Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ… Π²Ρ‹ΡˆΠ΅, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин с CentOS Linux 7.4 Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ Virtuozzo 7 оказываСтся Π΄ΠΎ 30% Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ запускС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° KVM. Наибольшая Ρ€Π°Π·Π½ΠΈΡ†Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ CPU-ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π³Π΄Π΅ суммарноС количСство ядСр процСссоров, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… всСм Π’Πœ, достигаСт количСства физичСских ядСр CPU сСрвСра. Для Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСрвСра эта Ρ‚ΠΎΡ‡ΠΊΠ° соотвСтствуСт 20 Π’Πœ.

Π”Ρ€ΡƒΠ³ΠΎΠ΅ сравнСниС Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Virtuozzo 7 ΠΈ Hyper-V 3.0. Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π»Π°ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСста vConsolidate, гостСвая ОБ β€” Windows Server 2012 R2.

vConsolidate: Hyper-V vs Virtuozzo @ Windows 2012 R2 (Π’Πœ) vConsolidate test

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ DVD Store, Π² vConsolidate Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° для всСх Π’Πœ. Π’ этом тСстС ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ CSU (Consolidation Stack Units). КаТдая CSU β€” это Π³Ρ€ΡƒΠΏΠΏΠ° ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π’Πœ, Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ·Π΄Π°ΡŽΡ‚ SPECjbb, WebBench ΠΈ SysBench (OLTP). ЧСтвСртая Π’Πœ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ CSU – idle, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±Π΅Π· Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ β€” срСднСС гСомСтричСскоС ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ‚Ρ€Π΅Ρ… Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… тСстов, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… суммарно ΠΈΠ· всСх Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин (ось ΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚). ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ CSU Π² тСстС увСличиваСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ 1 Π΄ΠΎ 24 (ось абсцисс).

⬆ ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Virtuozzo/OpenVZ

Π’ 1999 Π³ΠΎΠ΄Ρƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° идСя создания Linux-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π° ΡƒΠΆΠ΅ Π² 2002 Π³ΠΎΠ΄Ρƒ компания SWsoft прСдставила ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· коммСрчСской вСрсии Virtuozzo. Π’ Ρ‚ΠΎΠΌ ΠΆΠ΅ 2002 Π³ΠΎΠ΄Ρƒ появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π² ΠšΡ€Π΅ΠΌΠ½ΠΈΠ΅Π²ΠΎΠΉ Π΄ΠΎΠ»ΠΈΠ½Π΅.

Π’ 2004 Π³ΠΎΠ΄Ρƒ β€” выпуск Virtuozzo для Windows. Π’ 2005 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΎ принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Virtuozzo Π½Π° Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, свободный OpenVZ (ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU GPL) ΠΈ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹ΠΉ Virtuozzo.

Π’ 2006 Π³ΠΎΠ΄Ρƒ OpenVZ стал доступСн для Debian Linux, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ядру RHEL 4. Π’ 2007 Π³ΠΎΠ΄Ρƒ β€” ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° RHEL 5.

Π’ 2011 Π³ΠΎΠ΄Ρƒ появилась идСя создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° CRIU, OpenVZ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° RHEL 6. Π’ 2012 Π³ΠΎΠ΄Ρƒ стала доступна CRIU v0.1.

Π’ ΠΊΠΎΠ½Ρ†Π΅ 2014 Π³ΠΎΠ΄Π° компания Odin анонсировала ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Parallels Cloud Server ΠΈ объСдинСниС Π΅Π΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ OpenVZ.

Π’ Π°ΠΏΡ€Π΅Π»Π΅ 2015 Π³ΠΎΠ΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ядром RHEL 7 (3.10), Π² ΠΌΠ°Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ исходныС ΠΊΠΎΠ΄Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π° Π² июнС Π²Ρ‹Π»ΠΎΠΆΠ΅Π½Ρ‹ тСстовыС сборки ISO-ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

Π’ ΠΌΠ°Ρ€Ρ‚Π΅ 2016 Π³ΠΎΠ΄Π° анонсирован Π²Ρ‹Ρ…ΠΎΠ΄ Virtuozzo 7.0 Beta, с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ нововвСдСниями, ΠΊΠ°ΠΊ дополнСния гостСвых ОБ для Linux ΠΈ Windows. Π’Π°ΠΊΠΆΠ΅ прСдставлСна "Тивая" миграция для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², рСализованная с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтария CRIU ΠΈ P.Haul.

25 июля 2016 Π³ΠΎΠ΄Π° анонсирован ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ OpenVZ 7.0. Π’ Ρ€Π΅Π»ΠΈΠ·Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ события ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ развития SimFS, Ρ‚Π°ΠΊΠΆΠ΅ объявлСно Ρ‡Ρ‚ΠΎ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ вСрсии OpenVZ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° vzctl Π±ΡƒΠ΄Π΅Ρ‚ объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ, рСкомСндуСтся вмСсто Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ prlctl ΠΈΠ»ΠΈ virsh.

⬆ Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² OpenVZ 7

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с OpenVZ 6 (2.6.32):

  • OpenVZ 7 базируСтся Π½Π° ядрС RHEL 7 (3.10)
  • благодаря большой ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² ванильноС ядро, количСство ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ, для сравнСния число ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² 2.6.18 (RHEL 5) Ρ€Π°Π²Π½ΠΎ 264000, для 2.6.32 (RHEL 6) β€” 202000, для 3.10 (RHEL 7) β€” 66000 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
  • рСализация ΠΆΠΈΠ²ΠΎΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ P.Haul ΠΈ CRIU
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π½Π° Π±Π°Π·Π΅ KVM
  • ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ vzctl Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ prlctl ΠΈ virsh
  • использованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° VCMM для управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ
  • ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ развития SimFS Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ploop
  • ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ libvirt
  • Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π»ΠΈΠΌΠΈΡ‚Ρ‹ памяти
  • горячСС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ CPU/RAM для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° KSM
  • обновлСнная докумСнтация с 2005 Π³ΠΎΠ΄Π°
  • интСграция Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Docker ΠΈ OpenStack

⬆ Установка ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия

Начиная с вСрсии OpenVZ 7.0 доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ установки, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ISO-ΠΎΠ±Ρ€Π°Π·Π° дистрибутива.

Установка OpenVZ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PXE (Preboot Execution Environment) ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описана Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Установка OpenVZ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ISO-ΠΎΠ±Ρ€Π°Π·Π° (bare-metal installation)

Дистрибутив Virtuozzo Linux (VzLinux) с ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ для ядра RHEL 7, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ управлСния ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ установщиком доступСн для скачивания Π² Π²ΠΈΠ΄Π΅ стандартного ISO-ΠΎΠ±Ρ€Π°Π·Π° ΠΈ Π² Π²ΠΈΠ΄Π΅ netinstall-ΠΎΠ±Ρ€Π°Π·Π°.

Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅ послСдниС вСрсии ISO-ΠΎΠ±Ρ€Π°Π·ΠΎΠ² доступны ΠΏΠΎ адрСсу: https://download.openvz.org/virtuozzo/releases/7.0/x86_64/iso/

ПослС записи дистрибутива Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ установкС OpenVZ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ с носитСля.

Π­ΠΊΡ€Π°Π½ установки OpenVZ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с носитСля Π­ΠΊΡ€Π°Π½ установки OpenVZ

Установка OpenVZ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ установки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Linux-дистрибутива. Установщик Anaconda ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя, раскладку ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, языковыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ произвСсти Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ диска ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠ΅Ρ‚ΡŒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ kdump, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ сбоСв Π² ядрС, поэтому рСкомСндуСтся Π΅Π³ΠΎ Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ.

Π­ΠΊΡ€Π°Π½ установки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² систСмы Настройки систСмы

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ для 30GB диска Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска

НСобходимо для Ρ€Π°Π·Π΄Π΅Π»Π° / Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 8GB доступного дискового пространства. Π Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»Π° swap Ρ€Π°Π²Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ объСма ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ дисковоС пространство (рСкомСндуСтся Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 30GB) выдСляСтся ΠΏΠΎΠ΄ Ρ€Π°Π·Π΄Π΅Π» /vz с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ext4.

Настройки сСтСвого интСрфСйса ΠΈ ΠΈΠΌΠ΅Π½ΠΈ хоста Настройки сСти

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ локального ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ vzuser.

Установка пароля ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ созданиС локального ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Настройки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ПослС установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ.

На этом установка OpenVZ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ISO-ΠΎΠ±Ρ€Π°Π·Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°.

МСню Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° GRUB послС установки OpenVZ GRUB

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ Π² систСму осущСствляСтся ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ vzuser, ΠΏΠΎ SSH.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ получСния ΠΏΡ€Π°Π² ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° сСрвСрС:

user@localhost ~ $ ssh [email protected]
[email protected]'s password: ΠΏΠ°Ρ€ΠΎΠ»ΡŒ_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ_vzuser
[vzuser@vz ~]$ su -
Password: ΠΏΠ°Ρ€ΠΎΠ»ΡŒ_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ_root
[root@vz ~]#

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия

На сСрвСрС Π²Π°ΠΆΠ½ΠΎ всСгда ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, Π½ΠΎ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ уязвимости. Указанная Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° обновляСт всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² систСмС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

[root@vz ~]# yum update

Для сСрвСра Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ установлСно ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ врСмя. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя с ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСрвСр синхронизации Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ntp.

Если Π²ΠΎ врСмя установки ОБ, Π±Ρ‹Π»Π° установлСна нСкоррСктная врСмСнная Π·ΠΎΠ½Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅:

[root@vz ~]# timedatectl set-timezone Europe/Moscow

Установка ntp ΠΈ синхронизация Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ сСрвСрами:

[root@vz ~]# yum install ntp
[root@vz ~]# systemctl start ntpd
[root@vz ~]# systemctl enable ntpd
[root@vz ~]# ntpdate -q 0.ru.pool.ntp.org 1.ru.pool.ntp.org

⬆ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ шаблонами

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ гостСвых ОБ

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ гостСвых ОБ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… шаблонов гостСвых ОБ:

[root@vz ~]# vzpkg list -O --with-summary
ubuntu-14.04-x86_64                :Ubuntu 14.04 (for AMD64/Intel EM64T) Virtuozzo Template
ubuntu-16.04-x86_64                :Ubuntu 16.04 (for AMD64/Intel EM64T) Virtuozzo Template
vzlinux-7-x86_64                   :VzLinux 7 (for AMD64/Intel EM64T) Virtuozzo Template
centos-7-x86_64                    :Centos 7 (for AMD64/Intel EM64T) Virtuozzo Template
centos-6-x86_64                    :Centos 6 (for AMD64/Intel EM64T) Virtuozzo Template
debian-8.0-x86_64                  :Debian 8.0 (for AMD64/Intel EM64T) Virtuozzo Template
debian-8.0-x86_64-minimal          :Debian 8.0 minimal (for AMD64/Intel EM64T) Virtuozzo Template

Π£Π΄Π°Π»Π΅Π½Π½ΠΎ доступныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹:

[root@vz ~]# vzpkg list --available --with-summary
debian-7.0-x86_64
fedora-22-x86_64
fedora-23-x86_64
suse-42.1-x86_64
ubuntu-14.10-x86_64
ubuntu-15.04-x86_64
ubuntu-15.10-x86_64
vzlinux-6-x86_64

Установка шаблона:

[root@vz ~]# vzpkg install template ubuntu-16.04-x86_64

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ установки шаблона:

[root@vz ~]# yum install ubuntu-16.04-x86_64-ez

Установка ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ кэша шаблона:

[root@vz ~]# vzpkg create cache ubuntu-16.04-x86_64
[root@vz ~]# vzpkg update cache ubuntu-16.04-x86_64

Если Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ имя шаблона, Ρ‚ΠΎ установка ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ кэша ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ для всСх ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ шаблонов.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΄Π°Ρ‚Ρ‹ послСднСго обновлСния кэша:

[root@vz ~]# vzpkg list -O
ubuntu-14.04-x86_64
ubuntu-16.04-x86_64                2016-05-14 02:10:18
vzlinux-7-x86_64
centos-7-x86_64
centos-6-x86_64
debian-8.0-x86_64
debian-8.0-x86_64-minimal

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки шаблонов ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ шаблонами гостСвых ОБ ΠΈ шаблонами ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ гостСвых ОБ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π° ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ установку Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ПО для ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка шаблонов ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для centos-7-x86_64:

[root@vz ~]# vzpkg list centos-7-x86_64
centos-7-x86_64                     2016-02-09 17:01:05
centos-7-x86_64      cyrus-imap
centos-7-x86_64      tomcat
centos-7-x86_64      php
centos-7-x86_64      docker
centos-7-x86_64      mailman
centos-7-x86_64      spamassassin
centos-7-x86_64      devel
centos-7-x86_64      mod_ssl
centos-7-x86_64      jre
centos-7-x86_64      vzftpd
centos-7-x86_64      postgresql
centos-7-x86_64      mysql
centos-7-x86_64      jsdk

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ установки шаблона ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ tomcat ΠΈ jre:

[root@vz ~]# vzpkg list ct5
centos-7-x86_64                    2016-02-09 17:00:57
[root@vz ~]# vzpkg install ct5 tomcat jre
[root@vz ~]# prlctl exec ct5 systemctl start tomcat
[root@vz ~]# prlctl exec ct5 systemctl is-active tomcat
active

ПослС установки ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ список установлСнных шаблонов для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# vzpkg list ct5
centos-7-x86_64                    2016-02-09 17:00:57
centos-7-x86_64      tomcat        2016-02-09 19:56:03
centos-7-x86_64      jre           2016-02-09 20:03:50

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ шаблона прилоТСния ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# vzpkg remove ct5 tomcat
Removed:
 tomcat                 noarch    0:7.0.54-2.el7_1
 tomcat-admin-webapps   noarch    0:7.0.54-2.el7_1
 tomcat-webapps         noarch    0:7.0.54-2.el7_1
 tomcat-lib             noarch    0:7.0.54-2.el7_1
 tomcat-el-2.2-api      noarch    0:7.0.54-2.el7_1

[root@vz ~]# vzpkg list ct5
centos-7-x86_64                    2016-02-09 17:00:57
centos-7-x86_64      jre           2016-02-09 20:03:50

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с CentOS 7 с прСдустановлСнным Apache Tomcat:

[root@vz ~]# cd /etc/vz/conf/
[root@vz conf]# cp ve-basic.conf-sample ve-centos-7-x86_64-tomcat.conf-sample
[root@vz conf]# echo OSTEMPLATE=".centos-7" >> ve-centos-7-x86_64-tomcat.conf-sample
[root@vz conf]# echo TEMPLATES=".tomcat" >> ve-centos-7-x86_64-tomcat.conf-sample

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ кэш для этого прилоТСния:

[root@vz ~]# vzpkg create appcache --config centos-7-x86_64-tomcat
[root@vz ~]# vzpkg list appcache
centos-7-x86_64                    2016-07-31 03:12:28
     tomcat

На основС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° создадим ΠΈ запустим ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€:

[root@vz ~]# prlctl create ct5 --config centos-7-x86_64-tomcat --vmtype=ct
Creating the Virtuozzo Container...
The Container has been successfully created.
[root@vz ~]# prlctl start ct5
Starting the CT...
The CT has been successfully started.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° прСдустановки Apache Tomcat Π² составС шаблона:

[root@vz ~]# prlctl exec ct5 rpm -q tomcat
tomcat-7.0.54-2.el7_1.noarch

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин

Помимо шаблонов гостСвых ОБ ΠΈ шаблонов ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° основС Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π’Πœ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания шаблона Π½Π° основС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ct2 с установлСнным Π²Π΅Π±-сСрвСром nginx:

[root@vz ~]# prlctl clone ct2 --name CentOS7+nginx --template
Clone the ct2 CT to template CentOS7+nginx...
The CT has been successfully cloned.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка доступных шаблонов:

[root@vz ~]# prlctl list -t
UUID                                    DIST            T  NAME
{c28c09dd-a379-43dd-aae9-3e62f972476a}  centos7         CT CentOS7+nginx

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π° основС шаблона CentOS7+nginx:

[root@vz ~]# prlctl create ct3 --ostemplate CentOS7+nginx
Creating the VM on the basis of the CentOS7+nginx template...
Clone the CentOS7+nginx CT to CT ct3...
The CT has been successfully cloned.

УдалСниС шаблона:

[root@vz ~]# prlctl delete CentOS7+nginx
Removing the CT...
The CT has been successfully removed.

⬆ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ настройка ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

Π’ старых вСрсиях OpenVZ основным ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° являСтся CTID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ указывался ΠΏΡ€ΠΈ создании ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. БСйчас Π² этом Π½Π΅Ρ‚ нСобходимости, Π½Π° смСну CTID ΠΏΡ€ΠΈΡˆΠ΅Π» UUID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСтся автоматичСски.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ свой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» /vz/private/$UUID/ve.conf. Π˜ΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ ΠΏΠΎ UUID ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. НапримСр, для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° с UUID = {3d32522a-80af-4773-b9fa-ea4915dee4b3}, ΠΊΠΎΠ½Ρ„ΠΈΠ³ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ /vz/private/3d32522a-80af-4773-b9fa-ea4915dee4b3/ve.conf. Для удобства использования ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ², для Π½ΠΈΡ… созданы символичСскиС ссылки Π²ΠΈΠ΄Π° /etc/vz/conf/$UUID.conf.

Для большСго удобства использования ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ², Ρ‚Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ символичСскиС ссылки Π²ΠΈΠ΄Π° /etc/vz/names/$NAME.

ΠŸΡ€ΠΈ создании ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/vz/conf/:

[root@vz ~]# ls /etc/vz/conf/ | grep sample
ve-basic.conf-sample
ve-confixx.conf-sample
ve-vswap.1024MB.conf-sample
ve-vswap.2048MB.conf-sample
ve-vswap.256MB.conf-sample
ve-vswap.512MB.conf-sample
ve-vswap.plesk.conf-sample
vps.vzpkgtools.conf-sample

Π’ этих ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… описаны ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ рСсурсов, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ дисковоС пространство, опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Ρ‚.Π΄. НапримСр, ΠΏΡ€ΠΈ использовании ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ve-vswap.512MB.conf-sample, создаСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с дисковым пространством 10GB, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ 512MB ΠΈ swap 512MB:

[root@vz ~]# egrep "DISKSPACE|PHYSPAGES|SWAPPAGES|DISKINODES" /etc/vz/conf/ve-vswap.512MB.conf-sample
PHYSPAGES="131072:131072"
SWAPPAGES="131072"
DISKSPACE="10485760:10485760"
DISKINODES="655360:655360"

Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ свой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π½Π° Π±Π°Π·Π΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ vswap.512MB. Π˜ΡΠΏΡ€Π°Π²ΠΈΠΌ Π² Π½Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния PHYSPAGES, SWAPPAGES, DISKSPACE, DISKINODES:

[root@vz ~]# cp /etc/vz/conf/ve-vswap.512MB.conf-sample /etc/vz/conf/ve-vswap.1GB.conf-sample
[root@vz ~]# vim /etc/vz/conf/ve-vswap.1GB.conf-sample
PHYSPAGES="262144:262144"
SWAPPAGES="262144"
DISKSPACE="20971520:20971520"
DISKINODES="1310720:1310720"

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ использовании этого ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ доступно 20GB Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ дискового пространства, 1GB ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ 1GB swap.

Установка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° шаблона Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ vswap.1GB (ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ создан):

[root@vz ~]# prlctl set ct1 --applyconfig vswap.1GB
The CT has been successfully configured.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ любоС имя:

[root@vz ~]# prlctl create ct1 --ostemplate debian-8.0-x86_64 --vmtype=ct
Creating the Virtuozzo Container...
The Container has been successfully created.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±Ρ‹Π» создан ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ct1 Π½Π° Π±Π°Π·Π΅ шаблона debian-8.0-x86_64.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² систСмС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²:

[root@vz ~]# prlctl list -a
UUID                                    STATUS       IP_ADDR         T  NAME
{3d32522a-80af-4773-b9fa-ea4915dee4b3}  stopped      -               CT ct1

Если ΠΆΠ΅ ΠΏΡ€ΠΈ создании ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ шаблон, Ρ‚ΠΎ OpenVZ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ /etc/vz/vz.conf. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ шаблон centos-7 ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» basic:

[root@vz ~]# egrep "CONFIGFILE|DEF_OSTEMPLATE" /etc/vz/vz.conf
CONFIGFILE="basic"
DEF_OSTEMPLATE=".centos-7"

Если планируСтся созданиС большого количСства ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅, Ρ‚ΠΎ значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅.

Настройка ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ создан, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. Но ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ запуском Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ IP-адрСса, hostname, ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ DNS сСрвСра ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ IP-адрСсов:

[root@vz ~]# prlctl set ct1 --ipadd 192.168.0.161/24
[root@vz ~]# prlctl set ct1 --ipadd fe80::20c:29ff:fe01:fb08

Установка DNS сСрвСров ΠΈ hostname:

[root@vz ~]# prlctl set ct1 --nameserver 192.168.0.1,192.168.0.2
[root@vz ~]# prlctl set ct1 --hostname ct1.vz.localhost

Установка поискового Π΄ΠΎΠΌΠ΅Π½Π°:

[root@vz ~]# prlctl set ct1 --searchdomain vz.localhost

Установка пароля ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

[root@vz ~]# prlctl set ct1 --userpasswd root:eVjfsDkTE63s5Nw

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌΠΈ срСдствами Linux:

[root@vz ~]# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -1
BC4Ce984DBWVcXc

Или Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ pwgen:

[root@vz ~]# yum localinstall https://dl.fedoraproject.org/pub/epel/7/x86_64/p/pwgen-2.07-1.el7.x86_64.rpm
[root@vz ~]# pwgen -s 15 1
esxrcH7dyoA46LY

ΠŸΠ°Ρ€ΠΎΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ установлСн Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² Ρ„Π°ΠΉΠ» /etc/shadow ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Если ΠΆΠ΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ утСрян ΠΈΠ»ΠΈ Π·Π°Π±Ρ‹Ρ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ просто Π·Π°Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ.

Для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΡ€ΠΈ стартС хост-Π½ΠΎΠ΄Ρ‹ добавляСм:

[root@vz ~]# prlctl set ct1 --onboot yes

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl set ct1 --description "This is my first container"

Запуск ΠΈ Π²Ρ…ΠΎΠ΄

Запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl start ct1
Starting the CT...
The CT has been successfully started.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сСтСвых интСрфСйсов Π²Π½ΡƒΡ‚Ρ€ΠΈ гостСвой ОБ:

[root@vz ~]# prlctl exec ct1 ip addr show venet0
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
    link/void
    inet 127.0.0.1/32 scope host venet0
       valid_lft forever preferred_lft forever
    inet 192.168.0.161/24 brd 192.168.0.255 scope global venet0:0
       valid_lft forever preferred_lft forever
    inet6 ::2/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe01:fb08/64 scope link
       valid_lft forever preferred_lft forever

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности hostname:

[root@vz ~]# prlctl exec ct1 hostname
ct1.vz.localhost

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° доступности ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² сСти ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ пароля ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

[root@vz ~]# ssh [email protected]
[email protected]'s password: eVjfsDkTE63s5Nw
root@ct1:~#

Π’Ρ…ΠΎΠ΄ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с хост-Π½ΠΎΠ΄Ρ‹:

[root@vz ~]# prlctl enter ct1
entered into CT
root@ct1:/# exit
logout
[root@vz ~]#

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² консоль ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl console ct2
Attached to CT 9d921e42-1087-45e6-bea0-3d706b2d1862 tty2 (type ESC . to detach)

CentOS Linux 7 (Core)
Kernel 3.10.0-327.3.1.vz7.10.11 on an x86_64

ct2 login: root
Password: veig7Ei1iedeVa8
[root@ct2 ~]#

Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· консоли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш ESC + .

⬆ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Бтатус ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl status ct1
CT ct1 exist running
[root@vz ~]# prlctl status ct2
CT ct2 exist stopped

По Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ct1 Π·Π°ΠΏΡƒΡ‰Π΅Π½, Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ct2 остановлСн.

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl stop ct1
Stopping the CT...
The CT has been successfully stopped.

Иногда Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли ΠΎΠ½ Π±Ρ‹Π» ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ Π²Π·Π»ΠΎΠΌΡƒ ΠΈΠ»ΠΈ создаСт ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° хост-Π½ΠΎΠ΄Ρƒ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ срочно Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ --kill:

[root@vz ~]# prlctl stop ct1 --kill
Stopping the CT...
The CT has been forcibly stopped

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl restart ct1
Restarting the CT...
The CT has been successfully restarted.

ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° сохраняСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² Ρ„Π°ΠΉΠ», позволяя Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² Ρ‚ΠΎ ΠΆΠ΅ состояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» приостановлСн, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Ссли пСрСзагруТаСтся хост-Π½ΠΎΠ΄Π° ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС процСссов Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ suspend приостанавливаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π° resume β€” восстанавливаСт:

[root@vz ~]# prlctl suspend ct1
Suspending the CT...
The CT has been successfully suspended.
[root@vz ~]# prlctl status ct1
CT ct1 exist suspended
[root@vz ~]# prlctl resume ct1
Resuming the CT...
The CT has been successfully resumed.

Для удалСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° сущСствуСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ delete (ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½ΡƒΠΆΠ½ΠΎ сначала ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ):

[root@vz ~]# prlctl stop ct1
[root@vz ~]# prlctl delete ct1
Removing the CT...
The CT has been successfully removed.

Команда выполняСт ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ частной области сСрвСра (/vz/private/$UUID).

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π±Π΅Π· Π΅Π³ΠΎ запуска сущСствуСт опция mount, для размонтирования β€” umount. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° с хост-Π½ΠΎΠ΄Ρ‹, Ссли ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π΅ стартуСт:

[root@vz ~]# prlctl mount ct6
Mounting the CT...
The CT has been successfully mounted.
[root@vz ~]# ls /vz/root/8de0101f-c166-42ce-ad53-a7900b223d46/
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@vz ~]# prlctl status ct6
CT ct6 exist mounted
[root@vz ~]# prlctl umount ct6
Unmounting the CT...
The CT has been successfully unmounted.
[root@vz ~]# ls /vz/root/8de0101f-c166-42ce-ad53-a7900b223d46/
[root@vz ~]#

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° move:

[root@vz ~]# mkdir /home/private
[root@vz ~]# prlctl move ct6 --dst /home/private
Move the ct6 CT to /home/private...
The CT has been successfully moved.
[root@vz ~]# ls /home/private/8de0101f-c166-42ce-ad53-a7900b223d46/
dump/       fs/         .lck        .owner      root.hdd/   scripts/    templates/  .uptime     ve.conf     .ve.layout  .ve.xml

Бброс Π°ΠΏΡ‚Π°ΠΉΠΌΠ° (Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ создания ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹) ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl list -i ct1 | grep Uptime
Uptime: 01:15:57 (since 2016-07-31 01:18:41)
[root@vz ~]# prlctl reset-uptime ct1
Performing reset uptime operation to the CT...
The CT uptime has been successfully reset.
[root@vz ~]# prlctl list -i ct1 | grep Uptime
Uptime: 00:00:00 (since 2016-08-17 23:18:22)

ΠŸΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Для пСрСустановки ОБ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, сущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° vzctl reinstall.

ΠŸΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΈ старт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (для пСрСустановки Π½ΡƒΠΆΠ½ΠΎ сначала ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€):

[root@vz ~]# prlctl stop ct1
[root@vz ~]# vzctl reinstall ct1 --skipbackup
...
Container was successfully reinstalled
[root@vz ~]# prlctl start ct1

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, vzctl reinstall Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², сохраняСт всС Ρ„Π°ΠΉΠ»Ρ‹ (Ρ‡Π°ΡΡ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ) ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /old Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ --skipbackup.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

OpenVZ позволяСт ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹:

[root@vz ~]# prlctl clone ct1 --name ct2
Clone the ct1 CT to CT ct2...
The CT has been successfully cloned.
[root@vz ~]# prlctl list -a
UUID                                    STATUS       IP_ADDR         T  NAME
{3d32522a-80af-4773-b9fa-ea4915dee4b3}  running      192.168.0.161   CT ct1
{54bc2ba6-b040-469e-9fda-b0eabda822d4}  stopped      192.168.0.161   CT ct2

ΠŸΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ смСнС IP-адрСса, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ запуска Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ ошибка:

[root@vz ~]# prlctl start ct2
Starting the CT...
Failed to start the CT: PRL_ERR_VZCTL_OPERATION_FAILED
Unable to add ip 192.168.0.161: Address already in use
Failed to start the Container

Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ старыС IP-адрСса:

[root@vz ~]# prlctl set ct2 --ipdel 192.168.0.161/24
[root@vz ~]# prlctl set ct2 --ipdel fe80::20c:29ff:fe01:fb08

Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅:

[root@vz ~]# prlctl set ct2 --ipadd 192.168.0.162/24
[root@vz ~]# prlctl set ct2 --ipadd fe80::20c:29ff:fe01:fb09

Π‘ΠΌΠ΅Π½Π° hostname:

[root@vz ~]# prlctl set ct2 --hostname ct2.vz.localhost

ПослС этого ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ:

[root@vz ~]# prlctl start ct2

Запуск ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ с хост-Π½ΠΎΠ΄Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅:

[root@vz ~]# prlctl exec ct1 cat /etc/issue
Debian GNU/Linux 8 \n \l

Иногда Π±Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

[root@vz ~]# CMD="cat /etc/issue"
[root@vz ~]# for i in `prlctl list -o name -H`; do echo "CT $i"; prlctl exec $i $CMD; done
CT ct1
Debian GNU/Linux 8 \n \l

CT ct2
Debian GNU/Linux 8 \n \l

⬆ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

ДоступныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ рСсурсы ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°Π±ΠΎΡ€Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² управлСния рСсурсами. ВсС эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π°Ρ… шаблонов, Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/vz/conf/. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, рСдактируя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ OpenVZ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ контроля рСсурсов ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² условно Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹:

  • дисковыС ΠΊΠ²ΠΎΡ‚Ρ‹
  • процСссор
  • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°
  • ΠΏΠ°ΠΌΡΡ‚ΡŒ
  • ΡΠ΅Ρ‚ΡŒ

ДисковыС ΠΊΠ²ΠΎΡ‚Ρ‹

Администратор сСрвСра OpenVZ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ дисковыС ΠΊΠ²ΠΎΡ‚Ρ‹, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… дискового пространства ΠΈ количСства inodes, число ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ количСству Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ дисковой ΠΊΠ²ΠΎΡ‚Ρ‹. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому, администратор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ окруТСния, для настроСк стандартных дисковых ΠΊΠ²ΠΎΡ‚ UNIX для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π³Ρ€ΡƒΠΏΠΏ.

Для использования дисковых ΠΊΠ²ΠΎΡ‚, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ OpenVZ:

[root@vz ~]# grep DISK_QUOTA /etc/vz/vz.conf
DISK_QUOTA=yes

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

  • DISKSPACE β€” ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ дискового пространства (задаСтся Π² Kb)
  • DISKINODES β€” ΠΎΠ±Ρ‰Π΅Π΅ число дисковых inodes
  • QUOTATIME β€” врСмя (Π² сСкундах) Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ soft ΠΏΡ€Π΅Π΄Π΅Π»Π°

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π²ΠΈΠ΄Π΅:

COMMAND="softlimit:hardlimit"

Π³Π΄Π΅:

  • COMMAND β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° (DISKSPACE ΠΈΠ»ΠΈ DISKINODES)
  • softlimit β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, послС пСрСсСчСния этого ΠΏΡ€Π΅Π΄Π΅Π»Π° наступаСт grace ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, ΠΏΠΎ истСчСнии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ, дисковоС пространство ΠΈΠ»ΠΈ inodes прСкратят своС сущСствованиС
  • hardlimit β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ нСльзя

НапримСр, запись:

DISKSPACE="19922944:20971520"
DISKINODES="1300000:1310720"
QUOTATIME="600"

ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ задаСтся softlimit для дискового пространства Ρ€Π°Π²Π½Ρ‹ΠΌ ~19G ΠΈ hardlimit Ρ€Π°Π²Π½Ρ‹ΠΉ 20G, Ρ‚ΠΎ ΠΆΠ΅ самоС с inodes 1300000 ΠΈ 1310720 соотвСтствСнно.

Если Ρ€Π°Π·ΠΌΠ΅Ρ€ занятого дискового пространства ΠΈΠ»ΠΈ inodes Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡˆΠ΅ softlimit, Ρ‚ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ 600 сСк (10 ΠΌΠΈΠ½), Π² случаС Π½Π΅ освобоТдСния дискового пространства ΠΈΠ»ΠΈ inodes, ΠΎΠ½ΠΈ прСкратят своС сущСствованиС.

Аналогично, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ vzctl:

[root@vz ~]# vzctl set ct1 --diskspace 5G:6G --save
Resize the image /vz/private/3d32522a-80af-4773-b9fa-ea4915dee4b3/root.hdd to 6291456K
dumpe2fs 1.42.9 (28-Dec-2013)
[root@vz ~]# vzctl set ct1 --diskinodes 10000:110000 --save

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ процСссора Π² OpenVZ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²ΡƒΡ…ΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ. На ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Π΄Π°Ρ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π±Π°Π·ΠΈΡ€ΡƒΡΡΡŒ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° CPUUNITS для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. На Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ стандартный ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ GNU/Linux Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΌΡƒ процСссу Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π΄Π°Ρ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π±Π°Π·ΠΈΡ€ΡƒΡΡΡŒ Π½Π° стандартных ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°Ρ… процСсса.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ управлСния CPU ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  • CPUUNITS β€” Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ минимальноС количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ процСссора, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€
  • CPUMASK β€” привязка ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ процСссорам, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° распрСдСляСтся Π½Π° всС процСссоры
  • CPULIMIT β€” Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»ΠΈΠΌΠΈΡ‚ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ…
  • CPUS β€” количСство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… процСссорных ядСр ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ
  • NODEMASK β€” привязка ядСр NUMA-систСм ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ CPUUNITS ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ процСссорноС врСмя доступноС для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 1000. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ct1 ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2000, Π° для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ct2 ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1000, Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π²Π½Ρ‹Ρ… условиях ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ct1 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Ρ€ΠΎΠ²Π½ΠΎ Π² Π΄Π²Π° Ρ€Π°Π·Π° большС процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

[root@vz ~]# prlctl set ct1 --cpuunits 2000
set cpuunits 2000

Если систСма многопроцСссорная, Ρ‚ΠΎ установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° CPUMASK ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ для привязки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ процСссорам. Π’ случаС Π²ΠΎΡΡŒΠΌΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ систСмы ΠΌΠΎΠΆΠ½ΠΎ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΊ процСссорам 0-3, 6, 7:

[root@vz ~]# prlctl set ct1 --cpumask 0-3,6,7
set cpu mask 0-3,6,7

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ CPULIMIT ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»ΠΈΠΌΠΈΡ‚ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для всСх ядСр процСссора:

[root@vz ~]# prlctl set ct1 --cpulimit 15
set cpulimit 15%

Для одноядСрного процСссора Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»ΠΈΠΌΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 100%, для двухядСрного 200% ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задания CPULIMIT Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… значСниях (MHz):

[root@vz ~]# prlctl set ct1 --cpulimit 600m
set cpulimit 600Mhz

Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ CPUS задаСтся число доступных для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° процСссорных ядСр. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π² использованиС всС процСссорныС ядра:

[root@vz ~]# CPUINFO="grep processor /proc/cpuinfo"
[root@vz ~]# prlctl exec ct1 $CPUINFO
processor : 0
processor : 1
processor : 2
processor : 3

Установим для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π»ΠΈΠΌΠΈΡ‚ Π² 2 процСссорных ядра:

[root@vz ~]# prlctl set ct1 --cpus 2
set cpus(4): 2
[root@vz ~]# prlctl exec ct1 $CPUINFO
processor : 0
processor : 1

Для систСм Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ NUMA сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ привязки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΊ процСссорам NUMA-Π½ΠΎΠ΄:

[root@vz ~]# prlctl set ct1 --nodemask 0

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ контроля рСсурсов процСссора, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ собствСнно ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ этот ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ΠŸΡ€ΠΈ этом ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ этой Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, Ссли Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ с Π½ΠΈΠΌ Π·Π° врСмя CPU сСрвСра.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

Π’ OpenVZ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния дисковыми опСрациями Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. МоТно ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ значСния Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠ°ΠΊ:

  • IOPRIO
  • IOLIMIT
  • IOPSLIMIT

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ IOPRIO ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ опСрация Π²Π²ΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄Π° для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для всСх ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² установлСн Ρ€Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4).

ИзмСнСниС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ 0 (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚) Π΄ΠΎ 7:

[root@vz ~]# prlctl set ct1 --ioprio 6
set ioprio 6

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ IOLIMIT позволяСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ отсутствиС Π»ΠΈΠΌΠΈΡ‚ΠΎΠ².

Установка значСния Π² MB/s:

[root@vz ~]# prlctl set ct1 --iolimit 20
Set up iolimit: 20971520

БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания прСфиксов мСтричСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

  • G β€” Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚
  • M β€” ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚
  • K β€” ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚
  • B β€” Π±Π°ΠΉΡ‚

Максимальная пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ дисковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° составляСт 2GB/s.

Помимо ограничСния пропускной способности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ограничСния количСства ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π² сСкунду.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ IOPSLIMT позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ числСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π² сСкунду, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 300:

[root@vz ~]# prlctl set ct1 --iopslimit 300
set IOPS limit 300

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ€Π°Π²Π½ΠΎ 0, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ отсутствиС Π»ΠΈΠΌΠΈΡ‚ΠΎΠ².

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ограничСния пропускной способностСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ IOLIMIT.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ IOLIMIT Ρ€Π°Π²Π½ΠΎ 0:

root@ct1:/# dd if=/dev/zero of=test bs=1048576 count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.210523 s, 49.8 MB/s

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ IOLIMIT Ρ€Π°Π²Π½ΠΎ 500K:

root@ct1:/# dd if=/dev/zero of=test bs=1048576 count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 17.4388 s, 601 kB/s

ΠŸΠ°ΠΌΡΡ‚ΡŒ

Π’ OpenVZ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ поколСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VCMM. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΆΠ΅ использовалось ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

  • VSwap (Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅)
  • SLM (Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅)
  • User Beancounters (ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅)

Π‘ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ стороны ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VSwap ΠΈ VCMM Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, VCMM ΡƒΠΆΠ΅ находится Π² ванильном ядрС ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ со стороны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² OpenVZ.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ физичСской памяти ΠΈ swap Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ PHYSPAGES ΠΈ SWAPPAGES. ЗначСния ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π±Π»ΠΎΠΊΠ°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

PHYSPAGES="262144:262144"
SWAPPAGES="262144:262144"

Ρ€Π°Π²Π½ΡΡŽΡ‚ΡΡ значСниям Π² 1024MB (262144 Π±Π»ΠΎΠΊ / 256 = 1024MB).

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ prlctl значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² мСтричСской систСмС:

[root@vz ~]# prlctl set ct1 --memsize 1G --swappages 1G
Set the memsize parameter to 1024Mb.
Set swappages 262144

Overcommiting β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования большСго числа рСсурсов, Ρ‡Π΅ΠΌ Π²Ρ‹Π΄Π°Π½ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ VM_OVERCOMMIT ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ число, Π²ΠΎ сколько Ρ€Π°Π· большС памяти смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² случаС нСобходимости. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ VM_OVERCOMMIT Ρ€Π°Π²Π½ΠΎ 1.5. Π’ΠΎ Π΅ΡΡ‚ΡŒ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° установлСно, с 1024MB ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ 1024MB swap, суммарно доступно 2048MB памяти, Π² случаС нСобходимости ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ (2048MB * 1.5 = 3072MB) памяти.

Для измСнСния значСния достаточно ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:

VM_OVERCOMMIT="2"

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ vzctl:

[root@vz ~]# vzctl set ct1 --vm_overcommit 2 --save

ΠŸΡ€ΠΈ использовании значСния 2 для Ρ€Π°Π½Π΅Π΅ упомянутого ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° с 2048MB памяти, Π±ΡƒΠ΄Π΅Ρ‚ доступно (2048MB * 2 = 4096MB) памяти. ЕстСствСнно, Ссли Ссли эти рСсурсы доступны Π½Π° хост-Π½ΠΎΠ΄Π΅.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ vznetstat ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ входящий ΠΈ исходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…) для всСх ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²:

[root@vz ~]# vznetstat
UUID                                 Net.Class  Input(bytes) Input(pkts)   Output(bytes) Output(pkts)
0                                    0                244486        3024         1567749         2491
54bc2ba6-b040-469e-9fda-b0eabda822d4 0                     0           0               0            0
4730cba8-deed-4168-9f9e-34373e618026 0                     0           0               0            0
3d32522a-80af-4773-b9fa-ea4915dee4b3 0               2925512       49396        49398885        49254

Для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -v:

[root@vz ~]# vznetstat -v 3d32522a-80af-4773-b9fa-ea4915dee4b3
UUID                                 Net.Class     Input(bytes)  Input(pkts)  Output(bytes)  Output(pkts)
3d32522a-80af-4773-b9fa-ea4915dee4b3         0          2925512        49396       49398885         49254

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° vzstat позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, занятым рСсурсам ΠΈ состоянии сСти:

[root@vz ~]# vzstat -p 3d32522a-80af-4773-b9fa-ea4915dee4b3 -t
loadavg     0 0 0
CTNum       3
procs       289 1 288 0 0 0 0
CPU         16 0 2 3 95
sched latency   372 9
Mem         989 360 0
Mem latency 1 0
  ZONE0 (DMA):      size 15MB, act 4MB, inact 4MB, free 4MB (0/0/1)
  ZONE1 (DMA32):    size 1007MB, act 243MB, inact 274MB, free 355MB (43/54/64)
  Mem lat (ms):     A0 1, K0 0, U0 1, K1 0, U1 0
  Slab pages:       62MB/62MB (ino 22MB, de 0MB, bh 1MB, pb 0MB)
Swap        952 952 0.000 0.000
Net stats   0.382 5949 5.542 5820
if br0 stats    0.171 2975 2.771 2910
if lo stats     0.000 0 0.000 0
if virbr1-nic stats 0.000 0 0.000 0
if enp0s3 stats 0.211 2975 2.771 2910
if virbr1 stats 0.000 0 0.000 0
Disks stats     0.000 0.000

    CTID ST   %VM    %KM        PROC     CPU     SOCK FCNT MLAT IP

vzpid позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ процСсс, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ просмотрС списка процСссов с хост-Π½ΠΎΠ΄Ρ‹ ΠΈ поиска "процСсса-Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°":

[root@vz ~]# top
...
     PID     USER    PR  NI    VIRT    RES   SHR   S  %CPU  %MEM    TIME+   COMMAND
    5625       33    20   0  364432   6232  1284   S  26.2   0.6  0:03.20   apache2
...
[root@vz ~]# vzpid 5625
 Pid                                    VEID      Name
5625    3d32522a-80af-4773-b9fa-ea4915dee4b3   apache2

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° vzps Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ ps, ΠΎΠ½Π° позволяСт вывСсти список процСссов ΠΈ ΠΈΡ… состояниС для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# vzps aufx -E 3d32522a-80af-4773-b9fa-ea4915dee4b3
    USER     PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
       0    2432  0.0  0.0      0     0 ?        S    20:10   0:00 [kthreadd/3d3252]
       0    2433  0.0  0.0      0     0 ?        S    20:10   0:00  \_ [khelper]
       0    2420  0.0  0.3  28168  3136 ?        Ss   20:10   0:00 init -z
     101    3088  0.0  0.1  26168  1448 ?        Ss   20:10   0:00  \_ /lib/systemd/systemd-networkd
       0    3117  0.0  0.1  28856  1620 ?        Ss   20:10   0:00  \_ /lib/systemd/systemd-journald
       0    3135  0.0  0.1  38916  1624 ?        Ss   20:10   0:00  \_ /lib/systemd/systemd-udevd
       0    3376  0.0  0.3  55156  3128 ?        Ss   20:10   0:00  \_ /usr/sbin/sshd -D
     102    3380  0.0  0.1  25732  1092 ?        Ss   20:10   0:00  \_ /lib/systemd/systemd-resolved
       0    3382  0.0  0.1  25884  1120 ?        Ss   20:10   0:00  \_ /usr/sbin/cron -f
       0    3388  0.0  0.1 182848  1884 ?        Ssl  20:10   0:00  \_ /usr/sbin/rsyslogd -n
       0    3433  0.0  0.0  12648   840 ?        Ss+  20:10   0:00  \_ /sbin/agetty --noclear tty2 linux
       0    3434  0.0  0.0  12648   840 ?        Ss+  20:10   0:00  \_ /sbin/agetty --noclear --keep-baud console 115200 38400 9600 linux
       0    3508  0.0  0.0  20200   956 ?        Ss   20:10   0:00  \_ /usr/sbin/xinetd -pidfile /run/xinetd.pid -stayalive -inetd_compat -inetd_ipv6
       0    3617  0.0  0.1  65452  1164 ?        Ss   20:10   0:00  \_ /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 2
       0    3625  0.0  0.0  65452   836 ?        S    20:10   0:00  |   \_ /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 2
       0    3755  0.0  0.2  73496  2724 ?        Ss   20:10   0:00  \_ /usr/sbin/apache2 -k start
      33    5747  0.2  0.5 363364  5300 ?        Sl   20:46   0:00  |   \_ /usr/sbin/apache2 -k start
       0    4074  0.0  0.2  36144  2388 ?        Ss   20:10   0:00  \_ /usr/lib/postfix/master
     105    4081  0.0  0.2  38208  2316 ?        S    20:10   0:00      \_ pickup -l -t unix -u -c
     105    4082  0.0  0.2  38256  2336 ?        S    20:10   0:00      \_ qmgr -l -t unix -u

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° vztop Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° алиасом Π½Π° htop с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ UUID ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ процСсс:

[root@vz ~]# which vztop
alias vztop='htop -s CTID'
/usr/bin/htop

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° vztop vztop

⬆ ΠŸΡ€ΠΎΠ±Ρ€ΠΎΡ устройств Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

TUN/TAP

ВСхнология VPN позволяСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ бСзопасноС сСтСвоС соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ VPN Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ использованиС TUN/TAP устройств для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Virtual Private Network VPN

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ TUN ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² ядро, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ lsmod:

[root@vz ~]# lsmod | grep ^tun
tun                    27183  1

Если всС-Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ modprobe:

[root@vz ~]# modprobe tun

ΠŸΡ€ΠΎΠ±Ρ€ΠΎΡ модуля TUN Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€:

[root@vz ~]# vzctl set ct3 --devnodes net/tun:rw --save
Setting devices
Create /etc/tmpfiles.d/device-tun.conf
[root@vz ~]# prlctl exec ct3 ls -l /dev/net/tun
crw------- 1 root root 10, 200 Feb 10 13:12 /dev/net/tun

На этом настройка TUN ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π°. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ПО для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с VPN. НапримСр ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

FUSE

FUSE (Filesystem in Userspace) β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра Linux, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы. FUSE ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ЯндСкс.Диска ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π±Ρ‹Π» доступСн FUSE, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° хост-Π½ΠΎΠ΄Π΅:

[root@vz ~]# modprobe fuse
[root@vz ~]# lsmod | grep fuse
fuse                  106371  0

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ подгруТался автоматичСски ΠΏΡ€ΠΈ рСстартС хост-Π½ΠΎΠ΄Ρ‹:

[root@vz ~]# echo fuse >> /etc/modules-load.d/vz.conf

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ FUSE для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# vzctl set ct3 --devnodes fuse:rw --save
Setting devices
Create /etc/tmpfiles.d/device-fuse.conf
[root@vz ~]# prlctl exec ct3 ls -l /dev/fuse
crw------- 1 root root 10, 229 Feb 10 13:42 /dev/fuse

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ЯндСкс.Диска Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅:

[root@vz ~]# prlctl exec ct3 yum install fuse davfs2
[root@vz ~]# prlctl exec ct3 mount -t davfs https://webdav.yandex.ru /mnt/
Please enter the username to authenticate with server
https://webdav.yandex.ru or hit enter for none.
  Username: user
Please enter the password to authenticate user username with server
https://webdav.yandex.ru or hit enter for none.
  Password:  pass

NFS

NFS (Network File System) – это сСтСвая файловая систСма, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, располоТСнным Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π±Ρ‹Π»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра NFS ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² OpenVZ, поэтому Π½ΡƒΠΆΠ½ΠΎ всСго лишь ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ устройство Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ΠŸΠ΅Ρ€Π΅Π΄ пробросом модуля ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ:

[root@vz ~]# prlctl stop ct1
[root@vz ~]# prlctl set ct1 --features nfsd:on
set features: nfsd:on

А послС – Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сСрвиса nfs:

[root@vz ~]# prlctl start ct1
[root@vz ~]# prlctl exec ct1 systemctl start nfs
[root@vz ~]# prlctl exec ct1 systemctl is-active nfs
active

PPTP

PPTP (Point-to-Point Tunneling Protocol) β€” Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ‚ΠΈΠΏΠ° Ρ‚ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ соСдинСниС с сСрвСром Π·Π° счСт создания ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ туннСля Π² стандартной, Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ сСти. PPTP ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ туннСля ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ сСтями.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ PPTP Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ OpenVZ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра Π½Π° хост-Π½ΠΎΠ΄Π΅.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра ppp_async, ppp_deflate, ppp_mppe:

[root@vz ~]# modprobe ppp_async
[root@vz ~]# modprobe ppp_deflate
[root@vz ~]# modprobe ppp_mppe
[root@vz ~]# lsmod | grep ppp
ppp_mppe               13002  0
ppp_deflate            12950  0
zlib_deflate           26914  1 ppp_deflate
ppp_async              17413  0
ppp_generic            33029  3 ppp_mppe,ppp_async,ppp_deflate
slhc                   13450  1 ppp_generic
crc_ccitt              12707  1 ppp_async

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ:

[root@vz ~]# echo ppp_async >> /etc/modules-load.d/vz.conf
[root@vz ~]# echo ppp_deflate >> /etc/modules-load.d/vz.conf
[root@vz ~]# echo ppp_mppe >> /etc/modules-load.d/vz.conf

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, проброс устройства ΠΈ запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl stop ct1
[root@vz ~]# vzctl set ct1 --devnodes ppp:rw --save
[root@vz ~]# prlctl start ct1

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвиса:

[root@vz ~]# prlctl enter ct1
[root@ct1 ~]# ls /dev/ppp
/dev/ppp
[root@ct1 ~]# /usr/sbin/pppd
~οΏ½}#οΏ½!}!}!} }4}"}&} } } } }%}&}0VοΏ½οΏ½}'}"}(}"ty

Netfilter/IPTables

Netfilter β€” это мСТсСтСвой экран Π² ядрС Linux.

Π’ OpenVZ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Netfilter для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Доступно Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Netfilter Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅:

  • disabled β€” ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
  • stateless (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) β€” всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ NAT ΠΈ conntracks
  • stateful β€” всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ NAT
  • full β€” всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹

Для измСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Netfilter, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Netfilter для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl stop ct1
[root@vz ~]# prlctl set ct1 --netfilter disabled
Set netfilter: disabled
[root@vz ~]# prlctl start ct1
[root@vz ~]# prlctl exec ct1 iptables -L INPUT
iptables v1.4.21: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

[root@vz ~]# prlctl stop ct1
[root@vz ~]# prlctl set ct1 --netfilter full
Set netfilter: full
[root@vz ~]# prlctl start ct1
[root@vz ~]# prlctl exec ct1 iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

⬆ SimFS ΠΈ ploop

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ OpenVZ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, сущСствуСт Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • SimFS (ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС хост-Π½ΠΎΠ΄Ρ‹)
  • ploop (ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°)

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² OpenVZ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ploop. SimFS ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΈ с вСрсии OpenVZ 7 большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства ploop:

  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ изоляции ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°
  • ΠΆΡƒΡ€Π½Π°Π» Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы большС Π½Π΅ являСтся ΡƒΠ·ΠΊΠΈΠΌ мСстом
  • Тивая миграция
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² хранСния Π΄Π°Π½Π½Ρ‹Ρ…
  • быстроС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π±Π΅Π· Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

ploop ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ext4.

Для Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ трСбуСтся использованиС ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ SimFS сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

[root@vz ~]# vim /etc/vz/vz.conf
#VEFSTYPE="ext4"
VEFSTYPE="simfs"
[root@vz ~]# prlctl create ct3 --vmtype=ct
[root@vz ~]# ls /vz/private/731a1572-d609-498f-8c8b-8739e336a210/fs/
.autorelabel  boot/  etc/   lib/     media/  opt/   root/  sbin/  sys/  usr/  .vzfifo
bin/          dev/   home/  lib64/   mnt/    proc/  run/   srv/   tmp/  var/

Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ SimFS Π½ΡƒΠΆΠ½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/vz/vz.conf ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ VEFSTYPE="ext4".

⬆ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°ΠΌΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ созданиСм ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° рСкомСндуСтся Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ установку ПО, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ запись Π½Π° внСшниС устройства. Π’Π°ΠΊΠΆΠ΅ рСкомСндуСтся ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π²ΠΎ внСшниС Π‘Π”.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl snapshot ct2 -n FreshCentOS7 -d "Fresh CentOS 7 container"
Creating the snapshot...
The snapshot with id {aa9649d9-9ed1-408a-9463-36ce0cea6ba7} has been successfully created.

Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -n ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°, -d – Π΅Π³ΠΎ описаниС, описаниС ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° всСгда указываСтся Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ….

Π‘Π½Π°ΠΏΡˆΠΎΡ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /vz/private/$UUID/dump/:

[root@vz ~]# ls /vz/private/49465252-b780-45f1-9784-538166be2367/dump/
{aa9649d9-9ed1-408a-9463-36ce0cea6ba7}  {aa9649d9-9ed1-408a-9463-36ce0cea6ba7}.ve.conf

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация ΠΎ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π΅:

[root@vz ~]# prlctl snapshot-list ct2 -i {aa9649d9-9ed1-408a-9463-36ce0cea6ba7}
ID: {aa9649d9-9ed1-408a-9463-36ce0cea6ba7}
Name: FreshCentOS7
Date: 2016-07-31 01:44:43
State: poweroff
Description: Fresh CentOS 7 container

Бписок доступных ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ² для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl snapshot-list ct2
PARENT_SNAPSHOT_ID                      SNAPSHOT_ID
                                        {aa9649d9-9ed1-408a-9463-36ce0cea6ba7}
{aa9649d9-9ed1-408a-9463-36ce0cea6ba7} *{e76f0a0d-aa8e-491f-a720-daa65dfb911a}

Π‘ΠΈΠΌΠ²ΠΎΠ» * ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°:

[root@vz ~]# prlctl snapshot-list ct2 -t
_{aa9649d9-9ed1-408a-9463-36ce0cea6ba7}*{e76f0a0d-aa8e-491f-a720-daa65dfb911a}

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° создадим Ρ„Π°ΠΉΠ», Π° ΠΏΠΎΡ‚ΠΎΠΌ восстановимся ΠΈΠ· ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этого Ρ„Π°ΠΉΠ»Π° Π½Π΅Ρ‚:

[root@vz ~]# prlctl exec ct2 touch /root/file.txt
[root@vz ~]# prlctl exec ct2 ls /root/file.txt
/root/file.txt
[root@vz ~]# prlctl snapshot-switch ct2 --id {aa9649d9-9ed1-408a-9463-36ce0cea6ba7}
Switch to the snapshot...
The CT has been successfully switched.
[root@vz ~]# prlctl exec ct2 ls /root/file.txt
ls: cannot access /root/file.txt: No such file or directory

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°:

[root@vz ~]# prlctl snapshot-delete ct2 --id {aa9649d9-9ed1-408a-9463-36ce0cea6ba7}
Delete the snapshot...
The snapshot has been successfully deleted.

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°, ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ.

⬆ Π Π°Π±ΠΎΡ‚Π° с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами

Помимо создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², OpenVZ 7 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ созданиС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами Π½Π° Π±Π°Π·Π΅ QEMU/KVM. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° prlctl ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами, ΠΏΠΎΠΌΠΈΠΌΠΎ этого Ρ‚Π°ΠΊΠΆΠ΅ доступно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ libvirt.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ запуск Π’Πœ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ практичСски Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz ~]# prlctl create vm1 --distribution rhel7 --vmtype vm
Creating the virtual machine...
Generate the VM configuration for rhel7.
The VM has been successfully created.

ΠšΠ»ΡŽΡ‡ --distribution (-d) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° сСмСйство ОБ ΠΈΠ»ΠΈ дистрибутив для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния. Бписок всСх ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ОБ:

[root@vz ~]# prlctl create vm1 -d list
The following values are allowed:
win-2000        win-xp          win-2003        win-vista
win-2008        win-7           win-8           win-2012
win-8.1         win             rhel            rhel7
suse            debian          fedora-core     fc
xandros         ubuntu          mandriva        centos
centos7         vzlinux7        psbm            redhat
opensuse        linux-2.4       linux-2.6       linux
mageia          mint            freebsd-4       freebsd-5
freebsd-6       freebsd-7       freebsd-8       freebsd
chrome-1        chrome

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /vz/vmprivate/ создаСтся собствСнная дирСктория с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π΅Π΅ UUID:

[root@vz ~]# ls /vz/vmprivate/1bdb465a-31e6-46c5-ad7b-947f6ff00208/
config.pvs  config.pvs.backup  harddisk.hdd

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π’Πœ имССтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°:

  • Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ config.pvs
  • Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ТСсткий диск harddisk.hdd

Π’ Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π² XML-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ТСсткий диск ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²:

  • plain β€” диск с фиксированным Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ
  • expanded β€” диск с измСняСмым Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ создании Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, создаСтся expanded-диск Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 65G.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданной Π’Πœ:

[root@vz ~]# prlctl list -a
UUID                                    STATUS       IP_ADDR         T  NAME
{6fe60288-fe50-49fe-a68d-7a8330837358}  stopped      192.168.0.161   CT ct1
{2cdb07fd-a68a-4279-81c1-3d269460c2f7}  stopped      192.168.0.162   CT ct2
{485372f0-2ae3-4bfe-aa55-e556c37fea9f}  stopped      -               VM vm1

По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ установим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹:

[root@vz ~]# prlctl set vm1 --description "Backend for app"
[root@vz ~]# prlctl set vm1 --device-set net0 --ipadd 192.168.0.180/24
[root@vz ~]# prlctl set vm1 --device-set net0 --ipadd 192.168.0.180/24
[root@vz ~]# prlctl set vm1 --device-set net0 --ipadd FE80:0:0:0:20C:29FF:FE01:FB07
[root@vz ~]# prlctl set vm1 --nameserver 192.168.0.1,192.168.0.2
[root@vz ~]# prlctl set vm1 --hostname vm1.vz.localhost
[root@vz ~]# prlctl set vm1 --memsize 1024
[root@vz ~]# prlctl set vm1 --cpus 2
[root@vz ~]# prlctl set vm1 --cpuunits 1000
[root@vz ~]# prlctl set vm1 --cpulimit 1024m
[root@vz ~]# prlctl set vm1 --cpumask 0-1
[root@vz ~]# prlctl set vm1 --ioprio 6
[root@vz ~]# prlctl set vm1 --iolimit 0
[root@vz ~]# prlctl set vm1 --iopslimit 0

ΠšΠ»ΡŽΡ‡ --videosize ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ выдСляСмой видСопамяти Π² MB для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹:

[root@vz ~]# prlctl set vm1 --videosize 64

ΠšΠ»ΡŽΡ‡ --autostart Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ --onboot для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автостарта ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΡ€ΠΈ стартС хост-Π½ΠΎΠ΄Ρ‹:

[root@vz ~]# prlctl set vm1 --autostart on

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ установлСны, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ для установки гостСвой ОБ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π·. Для хранСния ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ОБ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΌ всС ΠΎΠ±Ρ€Π°Π·Ρ‹:

[root@vz ~]# mkdir /vz/vmprivate/images/
[root@vz ~]# ls /vz/vmprivate/images/ -1
CentOS-7-x86_64-Minimal-1503-01.iso
9200.16384.WIN8_RTM.120725-1247_X64FRE_SERVER_EVAL_RU-RU-HRM_SSS_X64FREE_RU-RU_DV5.ISO

ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ Windows Server ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу: https://www.microsoft.com/ru-ru/evalcenter/evaluate-windows-server-2016

Установка Π’Πœ с ΠΎΠ±Ρ€Π°Π·Π° CentOS-7-x86_64-Minimal-1503-01.iso:

[root@vz ~]# prlctl set vm1 --device-set cdrom1 --image "/vz/vmprivate/images/CentOS-7-x86_64-Minimal-1503-01.iso" --iface scsi --position 1

ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° диска Π΄ΠΎ 8G:

[root@vz ~]# prl_disk_tool resize --hdd /vz/vmprivate/vm1.pvm/harddisk.hdd --size 8G

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ запуском:

[root@vz ~]# prlctl list vm1 -i | grep Hardware -A9
Hardware:
  cpu cpus=2 VT-x accl=high mode=32 cpuunits=1000 cpulimit=1024Mhz ioprio=6 iolimit='0' mask=0-1
  memory 1024Mb
  video 64Mb 3d acceleration=highest vertical sync=yes
  memory_guarantee auto
  hdd0 (+) scsi:0 image='/vz/vmprivate/vm1.pvm/harddisk.hdd' type='expanded' 8192Mb subtype=virtio-scsi
  cdrom0 (+) ide:0 image='/vz/vmprivate/vm1.pvm/cloud-config.iso'
  cdrom1 (+) scsi:1 image='/vz/vmprivate/images/CentOS-7-x86_64-Minimal-1503-01.iso' subtype=virtio-scsi
  usb (+)
  net0 (+) dev='vme4292dc5f' network='Bridged' mac=001C4292DC5F card=virtio ips='192.168.0.180/255.255.255.0 FE80:0:0:0:20C:29FF:FE01:FB07/64 '

VNC

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ VNC для Π’Πœ:

[root@vz ~]# prlctl set vm1 --vnc-mode manual --vnc-port 5901 --vnc-passwd Oiwaiqud
Configure VNC: Remote display: mode=manual port=5901

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π±Π΅ΡΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ VNC с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° --vnc-nopasswd вмСсто --vnc-passwd.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ для VNC. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами, VNC доступСн ΠΈ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

Запуск Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹:

[root@vz ~]# prlctl start vm1

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ Π’Πœ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ VNC:

user@localhost ~ $ sudo apt-get install xvnc4viewer
user@localhost ~ $ xvnc4viewer 192.168.0.150:5901
Password: Oiwaiqud

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ VNC-сСссия ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС VNC

Π”Π°Π»Π΅Π΅ слСдуСт обычная установка ОБ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ.

УстановлСнная гостСвая ОБ УстановлСнная гостСвая ОБ

ПослС установки ОБ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС ΠΏΠΎ SSH:

user@localhost ~ $ ssh [email protected]
[email protected]'s password: eihaixahghath7A
[root@vm1 ~]#

ДополнСния гостСвой ОБ

OpenVZ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ OpenVZ Guest Tools (дополнСния гостСвой ОБ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Π’Πœ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:

  • запуск ΠΊΠΎΠΌΠ°Π½Π΄ Π² Π’Πœ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ prlctl exec
  • установка ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ prlctl set --userpasswd
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСтСвыми настройками Π² Π’Πœ

Установка Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ для vm1 с хост-Π½ΠΎΠ΄Ρ‹:

[root@vz ~]# prlctl installtools vm1
Installing...
The Parallels tools have been successfully installed.

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² Π’Πœ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ SSH ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт установки Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ:

[root@vz ~]# ssh [email protected]
[email protected]'s password: eihaixahghath7A
[root@vm1 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@vm1 ~]# bash /mnt/install
Preparing...                          ################################# [100%]
Updating / installing...
   1:qemu-guest-agent-vz-2.5.0-19.el7 ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:prl_nettool-7.0.1-3.vz7          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:vz-guest-udev-7.0.0-2            ################################# [100%]
Done!

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности установки Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ с хост-Π½ΠΎΠ΄Ρ‹:

[root@vz ~]# prlctl exec vm1 uname -a
Linux vm1.tld 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@vz ~]# prlctl set vm1 --userpasswd testuser:iel9cophoo2Aisa
Authentication tokens updated successfully.
[root@vz ~]# prlctl exec vm1 id testuser
uid=1000(testuser) gid=1000(testuser) groups=1000(testuser)

Π’ гостСвой Windows установка Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ сводится ΠΊ Ρ‚Ρ€Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ:

  • установка Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² <CD_root>/vioserial/<Win_version>/amd64/vioser.inf
  • запуск prl_nettool_<Win_arch>.msi ΠΈ qemu-ga-<Win_arch>.msi
  • ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности сСрвиса qemu-ga.exe

АвтоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ гостСвой ОБ Π² Π’Πœ:

[root@vz ~]# prlctl set vm1 --tools-autoupdate on

ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ prlctl Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ для Π’Πœ:

  • set
  • list
  • start
  • stop
  • restart
  • suspend
  • resume
  • exec
  • enter
  • console
  • status
  • create
  • delete
  • mount
  • umount
  • clone
  • move
  • snapshot

Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ этим ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π’Πœ:

[root@vz ~]# prlctl pause vm1
Pause the VM...
The VM has been successfully paused.
[root@vz ~]# prlctl status vm1
VM vm1 exist paused
[root@vz ~]# prlctl start vm1

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ

На основС ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания шаблона config-1024MB-centos7, основанный Π½Π° Ρ€Π°Π½Π΅Π΅ настроСнной vm1:

[root@vz ~]# mkdir /etc/parallels/samples
[root@vz ~]# cp /vz/vmprivate/vm1.pvm/config.pvs /etc/parallels/samples/config-1024MB-centos7.pvs
[root@vz ~]# prlctl create vm3
[root@vz ~]# prlctl list vm3 -i | egrep "cpu|memory|video|hdd0"
Boot order: hdd0 cdrom0
  cpu cpus=1 VT-x accl=high mode=32 ioprio=4 iolimit='0'
  memory 512Mb
  video 32Mb 3d acceleration=highest vertical sync=yes
  memory_guarantee auto
  hdd0 (+) scsi:0 image='/vz/vmprivate/vm3.pvm/harddisk.hdd' type='expanded' 65536Mb subtype=virtio-scsi
[root@vz ~]# prlctl set vm3 --applyconfig config-1024MB-centos7
[root@vz ~]# prlctl list vm3 -i | egrep "cpu|memory|video|hdd0"
Boot order: hdd0 cdrom0
  cpu cpus=2 VT-x accl=high mode=32 cpuunits=1000 cpulimit=1024Mhz ioprio=4 iolimit='0' mask=0-1
  memory 1024Mb
  video 64Mb 3d acceleration=highest vertical sync=yes
  memory_guarantee auto
  hdd0 (+) scsi:0 image='/vz/vmprivate/vm3.pvm/harddisk.hdd' type='expanded' 8192Mb subtype=virtio-scsi

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ устройств Π² Π’Πœ

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ доступно максимальноС количСство устройств:

  • 4 IDE ΠΈΠ»ΠΈ 8 SCSI (HDD, CD/DVD-ROM) устройств
  • 16 сСтСвых Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ²
  • 4 ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… (COM) ΠΏΠΎΡ€Ρ‚Π°
  • ΠΎΠ΄ΠΈΠ½ USB-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€
  • ΠΎΠ΄Π½ΠΎ FDD устройство

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ HDD для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с Linux:

[root@vz ~]# prlctl list vm1 -i | grep hdd
Boot order: hdd0 cdrom1
  hdd0 (+) scsi:0 image='/vz/vmprivate/vm1.pvm/harddisk.hdd' type='expanded' 8192Mb subtype=virtio-scsi
[root@vz ~]# prlctl set vm1 --device-add hdd --size 2048 --iface scsi
Creating hdd1 (+) scsi:2 image='/vz/vmprivate/vm1.pvm/harddisk1.hdd' type='expanded' 2048Mb subtype=virtio-scsi
Created hdd1 (+) scsi:2 image='/vz/vmprivate/vm1.pvm/harddisk1.hdd' type='expanded' 2048Mb subtype=virtio-scsi
[root@vz ~]# prlctl list vm1 -i | grep hdd
Boot order: hdd0 cdrom1 hdd1
  hdd0 (+) scsi:0 image='/vz/vmprivate/vm1.pvm/harddisk.hdd' type='expanded' 8192Mb subtype=virtio-scsi
  hdd1 (+) scsi:2 image='/vz/vmprivate/vm1.pvm/harddisk1.hdd' type='expanded' 2048Mb subtype=virtio-scsi

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ диск Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π» ΠΈ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ:

[root@vz ~]# prlctl enter vm1
[root@vm1 /]# lsblk | grep sd
sda               8:0    0    8G  0 disk
β”œβ”€sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  7.5G  0 part
sdb               8:16   0    2G  0 disk
[root@vm1 /]# fdisk /dev/sdb
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): <Enter>
First sector (2048-4194303, default 2048): <Enter>
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): <Enter>
Command (m for help): w
[root@vm1 /]# mkfs -t ext4 /dev/sdb1
[root@vm1 /]# mount /dev/sdb1 /mnt/
[root@vm1 /]# tail -1 /etc/mtab >> /etc/fstab

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° --device-disconnect ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ устройство ΠΎΡ‚ Π’Πœ:

[root@vz ~]# prlctl set vm1 --device-disconnect cdrom1
Disconnect device: cdrom1
The device successfully disconnected
[root@vz ~]# prlctl list vm1 -i | grep cdrom1
Boot order: hdd0 cdrom1 hdd1
  cdrom1 (+) scsi:1 image='/vz/vmprivate/images/CentOS-7-x86_64-Minimal-1503-01.iso' state=disconnected subtype=virtio-scsi

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ устройство ΠΌΠΎΠΆΠ½ΠΎ воспользовавшись ΠΊΠ»ΡŽΡ‡ΠΎΠΌ --device-connect.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ устройство, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ --device-del:

[root@vz ~]# prlctl set vm1 --device-del usb
Remove the usb device.
[root@vz ~]# prlctl set vm1 --device-del cdrom1
Remove the cdrom1 device.
[root@vz ~]# prlctl list vm1 -i | egrep "cdrom1|usb"

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ HDD ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сам Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ диск, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡ --detach-only, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ диск удаляСтся, Ρ‡Ρ‚ΠΎ являСтся ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π° --destroy-image.

ИзмСнСниС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ устройств:

[root@vz ~]# prlctl list vm1 -i | grep "Boot order"
Boot order: hdd0 hdd1
[root@vz ~]# prlctl set vm1 --device-bootorder "hdd1 hdd0"
[root@vz ~]# prlctl list vm1 -i | grep "Boot order"
Boot order: hdd1 hdd0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ добавлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сСтСвого устройства:

[root@vz ~]# prlctl set vm1 --device-add net --network Bridged  --mac auto --ipadd 192.168.0.181 --gw 192.168.122.1 --nameserver 192.168.0.1 --adapter-type virtio
Enable automatic reconfiguration for this network adapter.
Creating net1 (+) dev='' ifname='eth1' network='Bridged' mac=001C42AFDC9B card=virtio ips='192.168.0.181/255.255.255.0 ' gw='192.168.0.1'
Created net1 (+) dev='vme42afdc9b' network='Bridged' mac=001C42AFDC9B card=virtio ips='192.168.0.181/255.255.255.0 ' gw='192.168.0.1'
[root@vz ~]# prlctl list vm1 -i | grep -i net
  net0 (+) dev='vme4292dc5f' network='Bridged' mac=001C4292DC5F card=virtio ips='192.168.0.180/255.255.255.0 FE80:0:0:0:20C:29FF:FE01:FB07/64 '
  net1 (+) dev='vme42afdc9b' network='Bridged' mac=001C42AFDC9B card=virtio ips='192.168.0.181/255.255.255.0 ' gw='192.168.0.1'

ГорячСС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ CPU ΠΈ RAM

Для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин доступно горячСС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (hotplug) рСсурсов Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ самих Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин. К Ρ‚Π°ΠΊΠΈΠΌ рСсурсам относятся опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ процСссор. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин горячСС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ.

Для добавлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти "Π½Π°Π»Π΅Ρ‚Ρƒ" Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° --mem-hotplug Π² on:

[root@vz ~]# prlctl list vm1 -i | grep "memory "
  memory 1024Mb
[root@vz ~]# prlctl set vm1 --mem-hotplug on
set mem hotplug: 1

ПослС установки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π½ΡƒΠΆΠ½ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ количСство памяти:

[root@vz ~]# prlctl restart vm1
[root@vz ~]# prlctl set vm1 --memsize 1536M
Set the memsize parameter to 1536Mb.
[root@vz ~]# prlctl list vm1 -i | grep "memory "
  memory 1536Mb hotplug

Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ CPU hotplug, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ опСрационная систСма гостСвой Π’Πœ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ:

  • дистрибутивы основанныС Π½Π° RHEL 5 ΠΈ Π²Ρ‹ΡˆΠ΅
  • Windows Server 2008 x64 ΠΈ Π²Ρ‹ΡˆΠ΅

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ CPU hotplug происходит ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с MEM hotplug:

[root@vz ~]# prlctl list vm1 -i | grep cpu
  cpu cpus=2 VT-x accl=high mode=32 cpuunits=1000 cpulimit=1024Mhz ioprio=6 iolimit='0' mask=0-1
[root@vz ~]# prlctl set vm1 --cpu-hotplug on
  set cpu hotplug: 1

ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° рСсурсов:

[root@vz ~]# prlctl restart vm1
[root@vz ~]# prlctl set vm1 --cpuunits 2000 --cpus 3 --cpumask 0-2
set cpus(4): 3
set cpuunits 2000
set cpu mask 0-2
[root@vz ~]# prlctl list vm1 -i | grep cpu
  cpu cpus=3 VT-x hotplug accl=high mode=32 cpuunits=2000 cpulimit=1024Mhz ioprio=6 iolimit='0' mask=0-2

Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ hotplug ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ значСния ΠΊΠ»ΡŽΡ‡Π΅ΠΉ --mem-hotplug off ΠΈ --cpu-hotplug off соотвСтствСнно.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ KSM

KSM (Kernel Same-Page Merging) β€” тСхнология ядра Linux, которая позволяСт ядру ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ страницы памяти ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ процСссами ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ гостСвыми систСмами Π² ΠΎΠ΄Π½Ρƒ для совмСстного использования.

ВСхнология прСдусматриваСт сканированиС памяти Π² цСлях поиска Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² страниц, каТдая ΠΏΠ°Ρ€Π° Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ΡΡ Π² ΠΎΠ΄Π½Ρƒ страницу, ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌΡƒΡŽ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ записи, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ядро Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ страницы памяти, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ процСсс ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅.

Поиск Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° процСссорныС рСсурсы, поэтому Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±Ρ‹Π»Π° прСдусмотрСна ΠΎΡ†Π΅Π½ΠΊΠ° β€” насколько часто Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ страницы памяти ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° рСсурсныС ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ высоки Π½Π΅ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ слиянию страниц. KSM обСспСчиваСт систСмам Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ рСсурсов ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти (memory overcommitment). Π’ условиях достаточно ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… экзСмпляров гостСвых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ эффСкт, Π² частности, ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСализация KSM ΠΎΡ‚ Red Hat ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, Ρ‡Ρ‚ΠΎ 52 Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… экзСмпляра Windows XP с Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ 1GB памяти, ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° хост-Π½ΠΎΠ΄Π΅ с 16GB ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ KSM Π² OpenVZ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвисы ksm ΠΈ ksmtuned:

[root@vz ~]# systemctl start ksm ksmtuned
[root@vz ~]# systemctl enable ksm ksmtuned

Π Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ KSM ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±Ρ‰ΠΈΡ… страниц Π² памяти (shared memory pages):

[root@vz ~]# cat /sys/kernel/mm/ksm/pages_sharing
120990

⬆ ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин

Π’ OpenVZ поддСрТиваСтся "Тивая" миграция ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин с использованиСм CRIU ΠΈ P.Haul.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ct3 с хост-Π½ΠΎΠ΄Ρ‹ vz-source Π½Π° vz-dest (192.168.0.190).

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ SSH-ΠΊΠ»ΡŽΡ‡ с vz-source Π½Π° vz-dest для Π±Π΅ΡΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

[root@vz-source ~]# ssh-keygen
[root@vz-source ~]# ssh-copy-id [email protected]

ЗапускаСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π² screen:

[root@vz-source ~]# screen -S migrate-dest
[root@vz-source ~]# prlctl migrate ct3 192.168.0.190

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° vz-dest смигрированного ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

[root@vz-dest ~]# prlctl list ct3
UUID                                    STATUS       IP_ADDR         T  NAME
{4730cba8-deed-4168-9f9e-34373e618026}  running      192.168.0.163   CT ct3

⬆ Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ информация ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… ΠΈ Π’Πœ

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° list с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -i (--info):

[root@vz ~]# prlctl list -i ct4
INFO
ID: {22c418d7-948b-456e-9d84-d59ab5ead661}
EnvID: 22c418d7-948b-456e-9d84-d59ab5ead661
Name: ct4
Description:
Type: CT
State: running
OS: centos7
Template: no
Uptime: 00:00:00 (since 2016-02-09 17:04:41)
Home: /vz/private/22c418d7-948b-456e-9d84-d59ab5ead661
Owner: root
Effective owner: owner
GuestTools: state=possibly_installed
Autostart: on
Autostop: suspend
Autocompact: on
Undo disks: off
Boot order:
EFI boot: off
Allow select boot device: off
External boot device:
Remote display: mode=off address=0.0.0.0
Remote display state: stopped
Hardware:
  cpu cpus=unlimited VT-x accl=high mode=32 cpuunits=1000 ioprio=4
  memory 512Mb
  video 0Mb 3d acceleration=highest vertical sync=yes
  memory_guarantee auto
  hdd0 (+) image='/vz/private/22c418d7-948b-456e-9d84-d59ab5ead661/root.hdd' type='expanded' 10240Mb mnt=/
  venet0 (+) type='routed' ips='192.168.0.164/255.255.255.0 FE80:0:0:0:20C:29FF:FE01:FB10/64 '
Host Shared Folders: (-)
Features:
Encrypted: no
Faster virtual machine: on
Adaptive hypervisor: off
Disabled Windows logo: on
Auto compress virtual disks: on
Nested virtualization: off
PMU virtualization: off
Offline management: (-)
Hostname: ct4.vz.localhost
DNS Servers: 192.168.0.1 192.168.0.2
Search Domains: 192.168.0.1

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ просмотра Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…:

[root@vz ~]# prlctl list -o type,status,name,hostname,dist,ip
T  STATUS       NAME     HOSTNAME             DIST         IP_ADDR
CT running      ct2      ct2.vz.localhost     debian       192.168.0.162 FE80:0:0:0:20C:29FF:FE01:FB09
CT running      ct1      ct1.vz.localhost     debian       192.168.0.161 FE80:0:0:0:20C:29FF:FE01:FB08
VM stopped      vm1      vm1.vz.localhost     rhel7        192.168.0.163 FE80:0:0:0:20C:29FF:FE01:FB07

Бписок всСх доступных ΠΏΠΎΠ»Π΅ΠΉ:

[root@vz ~]# prlctl list -L
uuid                 UUID
envid                ENVID
status               STATUS
name                 NAME
dist                 DIST
owner                OWNER
system-flags         SYSTEM_FLAGS
description          DESCRIPTION
numproc              NPROC
ip                   IP_ADDR
ip_configured        IP_ADDR
hostname             HOSTNAME
netif                NETIF
mac                  MAC
features             FEATURES
location             LOCATION
iolimit              IOLIMIT
netdev               NETDEV
type                 T
ha_enable            HA_ENABLE
ha_prio              HA_PRIO
-                    -

⬆ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ систСмному администратору

  • Ссли Ρ€Π°Π±ΠΎΡ‚Π° хост-Π½ΠΎΠ΄Ρ‹ замСдлилась, для Π°Π½Π°Π»ΠΈΠ·Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ vzps, vztop, iotop, atop
  • для обнаруТСния сСтСвых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ ping, traceroute, nmap, mtr, tcpdump, nc, iftop, netstat, ss
  • strace Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€Π½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ для отслСТивания систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ RAID для обСспСчСния сохранности Π΄Π°Π½Π½Ρ‹Ρ…
  • для экстрСнных ситуаций, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡΠ΅Ρ‚ΡŒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ всСгда ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ IPMI ΠΈΠ»ΠΈ KVM-доступ
  • Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ хост-Π½ΠΎΠ΄Ρƒ Π±Π΅Π· выяснСния ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π² Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² самых ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаях
  • слСдитС Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π° сСрвСрС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для синхронизации NTP Π½Π° хост-Π½ΠΎΠ΄Π΅
  • Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… Π½Π΅Ρ‚ смысла ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ экзСмпляр NTP, достаточно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ часовой пояс
  • Π½Π΅ запускайтС Π±Π»ΠΎΠ±Ρ‹ ΠΈΠ»ΠΈ скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ VPS, нСпосрСдствСнно с хост-Π½ΠΎΠ΄Ρ‹
  • для поиска Ρ€ΡƒΡ‚ΠΊΠΈΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ chrootkit ΠΈ rkhunter
  • слСдитС Π·Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ сСрвСра, ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΡŒΡ‚Π΅ΡΡŒ ΠΎΡ‚ DoS/DDoS
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ систСмы ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Puppet, Ansible, Chef, SaltStack, CFEngine Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ большоС количСство ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° хост-Π½ΠΎΠ΄Π°Ρ…
  • Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
  • слСдитС Π·Π° свободным мСстом Π½Π° ТСстких дисках, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΡŽ Π»ΠΎΠ³ΠΎΠ²
  • слСдитС Π·Π° ΠΏΡƒΠ»ΠΎΠΌ IP-адрСсов, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒΡΡ Π² самый нСподходящий ΠΌΠΎΠΌΠ΅Π½Ρ‚
  • провСряйтС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /var/log/, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π»ΠΎΠ³ΠΈ систСмы
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ iptables, fail2ban, ipset
  • Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ слоТныС для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pwgen), пСриодичСски мСняйтС ΠΈΡ…, увСдомляйтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ± этом
  • Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ Π½Π° сСрвСрС ΠΏΠΎΠ΄ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью root
  • слСдитС Π·Π° рассылками новостСй ΠΏΠΎ бСзопасности
  • обновляйтС ПО, систСму ΠΈ Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
  • слСдитС Π·Π° ΠΏΡ€Π°Π²Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° сСрвСрС
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° рСсурсов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Cacti, Munin, MRTG, Zabbix, Nagios, Icinga, Monit)
  • Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ сСрвСрам ΠΈ ΠΈΡ… настройкС
  • Π² случаС обнаруТСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² OpenVZ ΠΈ Virtuozzo, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Ρ‚ΡŒ вопросы Π½Π° тСматичСских Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ…

⬆ Бсылки

⬆ ЛицСнзия

CC BY-SA 4.0

About

Create and manage containers and VMs with OpenVZ 7

Topics

Resources

Stars

Watchers

Forks