KVM рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рдореЗрдЬрдмрд╛рди рдорд╢реАрди рдХреА рддреИрдпрд╛рд░реА

рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐



рдЯрдХреНрд╕ рдФрд░ рдмреАрд╕реНрдЯреА рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдЖрдЬ рд╣рдо KVM рдХреЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рди рдорд╢реАрди рдХреЗ рдореВрд▓ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред



рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред

$ egrep '(vmx|svm)' /proc/cpuinfo

рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╣реИ, рдпрд╣ рдЕрджреНрднреБрдд рд╣реИред

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рддреИрдпрд╛рд░ рдХрд░рдирд╛



рдореИрдВ рд╢рд╛рдпрдж рдбреЗрдмрд┐рдпрди рд╕реНрдХреНрд╡реАрдЬрд╝ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛: рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЗрд╡реАрдПрдо рд╕реЗ рдорд┐рд▓ рдЧрдП рд╣реИрдВ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдПрдХ рддреБрдЪреНрдЫ рдорд╛рдорд▓рд╛ рд╣реИред

рдЖрдкрдХреЛ 64-рдмрд┐рдЯ рдУрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдХреЗрд╡рд▓ рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рд╣реИрдВред

рдбреЗрдмрд┐рдпрди рд╕реНрдХреНрд╡реАрдЬрд╝ рдореЗрдВ, рдХреЗрд╡реАрдПрдо рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬреЛрдВ рдХреА "рддрд╛рдЬрдЧреА" рд╣рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдмрд╕ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдбреЗрдмрд┐рдпрди рд╕рд┐рдб рдФрд░ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝реЗрдВрдЧреЗ:

deb http://ftp.ru.debian.org/debian sid main contrib non-free
deb-src http://ftp.ru.debian.org/debian sid main contrib non-free

deb http://ftp.ru.debian.org/debian experimental main contrib non-free
deb-src http://ftp.ru.debian.org/debian experimental main contrib non-free


рд╣рдо рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрдерд┐рд░ рд╡рд┐рддрд░рдг рд╣реИ, рдФрд░ рди рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдХреНрдпрд╛ рд╕реЛрдЪрд╛:

# echo 'APT::Default-Release "stable";' > /etc/apt/apt.conf.d/default

рд╡рд╣рд╛рдБ рд╕реЗ рд╣рдореЗрдВ рд╕рдВрдХреБрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

# aptitude -t experimental install linux-image-2.6.39-1-amd64 qemu-kvm virtinst libvirt-bin

рдПрдХ рд╕реНрдерд┐рд░ рднрдВрдбрд╛рд░ рд╕реЗ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

# aptitude install uml-utilities bridge-utils

рдЕрдкрдиреЗ рдХрд╛рдордХрд╛рдЬреА рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░, рдЖрдк рдЧреБрдг-рдкреНрд░рдмрдВрдзрдХ (GUI- рдЙрдкрдпреЛрдЧрд┐рддрд╛) рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреЛрд░


рдХреЛрд░ "рдирд╡рд╕рд┐рдЦреБрдЖ" рд╣реИ - рдмреЗрд╣рддрд░ (рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛)ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрд╛рд░реА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк 2.6.39 рд╣реЛрдЧрд╛ред

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдорд╛рдирдХ рдХрд░реНрдиреЗрд▓ рдореЗрдВ UFS2 рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк FreeBSD рдЕрддрд┐рдерд┐ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд░реНрдиреЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рд╣рд╛рдВ, рдбреЗрдмрд┐рдпрди рдХрд░реНрдиреЗрд▓ рдореЗрдВ cgroups рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред

рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЕрдзрд┐рдХрддрдо рд░рд╛рд╢рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_NS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_MEM_RES_CTLR=y
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
CONFIG_CGROUP_SCHED=y
CONFIG_BLK_CGROUP=y
CONFIG_NET_CLS_CGROUP=y


рдлрд┐рд░ рд╣рдо рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рд╕рднреА рдбрд┐рдм рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, insmod.static рдХреЛ /sbin/insmod.static рдкрд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ libguestfs рдХрд╛рдо рдореЗрдВ insmod рдХреЗ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдмрд┐рдпрди рдФрд░ рдЙрдмрдВрдЯреВ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ , рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ febootstrap рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛, insmod.static рдХреЛ рдЕрдм рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред libguestfs рд╣рдореЗрдВ VDS рдбрд┐рд╕реНрдХ рдХреЛ libguestfs API (C, рдкрд░реНрд▓, рдкрд╛рдпрдерди, PHP) рдпрд╛ рдЧреЗрд╕реНрдЯрдлрд╝рд┐рд╢ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдкрд╣рд▓рд╛ рдкреИрдирдХреЗрдХ


рдЕрдм рд╣рдордиреЗ VDS рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ рддрдХ рдЙрдирдХреА рдкрд╣реБрдБрдЪ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рд╕реНрдерд╛рдкрдирд╛ред

рдЪрд▓реЛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╣реА рдбреЗрдмрд┐рдпрдиред рдЕрдм рддрдХ, рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд┐рдирд╛, рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗред

рд╢реБрджреНрдз рд╕реНрдерд╛рдкрдирд╛ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:

$ wget cdimage.debian.org/debian-cd/6.0.1a/i386/iso-cd/debian-6.0.1a-i386-netinst.iso

рд╣рдо /etc/libvirt/qemu.conf рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХрд╛рд░реНрдп рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ:

user = "username"
group = "libvirt"


рдЪреВрдВрдХрд┐ рд╣рдо рдЯреНрдпреВрди рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреНрд╖рдорддрд╛ CAP_NET_ADMIN рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╕рдВрдкреВрд░реНрдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ qemu / kmm рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП libvirt рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИрдВ:

sudo setcap cap_net_admin=ei /usr/bin/kvm

рдпрд╛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП /etc/security/capability.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ:

cap_net_admin username

рдпрд╛ /etc/libvirt/qemu.conf рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ:

clear_emulator_capabilities = 0

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ libvirt рдФрд░ kvm рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

# adduser username libvirt
# adduser username kvm


рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдЪрд▓рд╛рдПрдБ:

$ virt-install --connect qemu:///system -n debian_guest -r 512 --arch=i686 --vcpus=1 --os-type=linux --os-variant=debiansqueeze --disk debian-6.0.1a-i386-netinst.iso,device=cdrom --disk debian_guest.img,bus=virtio,size=2,sparse=false,format=raw --network=default,model=virtio --hvm --accelerate --vnc

рд╣рдо рдЙрди рдорд╛рдирдХреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдордиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рд╣реИрдВ:



рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдкреНрд░рдмрдВрдзрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ


рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдФрд░ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреА рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдорд╣рд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣реИрдВ - рдЪрд┐рддреНрд░рдордп рдФрд░ рдХрдВрд╕реЛрд▓: рдЧреБрдг-рдкреНрд░рдмрдВрдзрдХ рдФрд░ рд╡рд╛рдпрд░рд╢ , рдХреНрд░рдорд╢рдГред рдмреЗрд╢рдХ, рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдмрд╣реБрдд рд╕рдореГрджреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреНрд░рд╛рдлрд╝ рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ рджрд┐рд▓ рдХреЛ рд░рдХреНрддрд╕реНрд░рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреБрдгреНрдп-рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд╕рд╛рде рдЖрдк рдЦреБрдж рд╣реА рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗ, рдЖрдЗрдП рд╡рд╛рдпрд░рд▓ рдХреЗ рдХрдВрд╕реЛрд▓ рдЗрдирд░рд▓реНрд╕ рдореЗрдВ рдЦреБрджрд╛рдИ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рдЖрджреЗрд╢ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:

$ virsh --connect qemu:///system list --all
$ virsh --connect qemu:///system dominfo debian_guest
$ virsh --connect qemu:///system stop debian_guest


рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП - qemu рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ: /// рд╕рд┐рд╕реНрдЯрдо рдПрдХ рд╣рдЬрд╛рд░ рдмрд╛рд░, рдЬреЛрдбрд╝реЗрдВ:

export VIRSH_DEFAULT_CONNECT_URI= qemu:///system

.Bashrc рдореЗрдВ рдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рд░рди рдХрд░реЗрдВред

рдиреЗрдЯрд╡рд░реНрдХ рдХреА рддреИрдпрд╛рд░реА


рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХрдИ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдиреЗрдЯ, рдмреНрд░рд┐рдЬрд┐рдВрдЧ, рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧред рдФрд░, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд┐рднрд┐рдиреНрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдпрд╛, рдХреЗрд╡рд▓ рдПрдирдПрдЯреА рдФрд░ рдмреНрд░рд┐рдбреНрдб рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ TUN / TAP рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ eth0 рдХреЗ рд╕рд╛рде рдЯреНрд░реИрдлрд╝рд┐рдХ рд░реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рд░реНрдЧ рдХреЛ рдХреНрдпреЛрдВ рдЪреБрдирд╛ рдЧрдпрд╛:

NAT рд╣рдореЗрдВ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ VDS рдХреЛ рд╕реАрдзреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреБрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдФрд░ рдХреА рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ "рдХреИрдкреНрдЪрд░" рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рддреЛ:

<interface type='ethernet'>
<mac address='52:54:00:ef:40:1d'/>
<ip address='10.10.10.100'/>
<target dev='debian_guest'/>
<model type='virtio'/>
</interface>


рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╕реАрдзреЗ /etc/libvirt/qemu/debian_guest.xml рдкрд░ рд╕реНрдерд┐рдд рдЕрддрд┐рдерд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдкрд╛рджрди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ:

$ virsh edit debian_guest

рдлрд┐рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдордХреНрдЦреА рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдмрд╢рд░реНрддреЗ рдХрд┐ рдорд╢реАрди рдирд╣реАрдВ рдЪрд▓ рд░рд╣реА рд╣реЛред рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рд░реБрдХрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдореЗрдВ рдЬрд┐рд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрд╕реЗ рдмрдирд╛рдПрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдмрд┐рдирд╛ рд╕рд┐рд╕реНрдЯрдо рдХрдорд╛рдВрдб рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, sudoers рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

$ sudo visudo

Cmnd_Alias QEMU = /sbin/ifconfig, /sbin/modprobe, /usr/sbin/brctl, /usr/sbin/tunctl, /sbin/sysctl, /bin/ip, /usr/bin/cgcreate, /usr/bin/cgdelete, /sbin/tc
username ALL=(ALL:ALL) NOPASSWD: QEMU


рд╣рдо arp рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ:

sudo sysctl net.ipv4.conf.all.forwarding=1
sudo sysctl net.ipv4.conf.all.proxy_arp=1


рдЖрдк рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ /etc/sysctl.conf рдореЗрдВ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

sudo sysctl -p

рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдмрдирд╛рдПрдВ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдврд╝рд╛рдПрдБ:

sudo tunctl -b -u username -t debian_guest
sudo ifconfig debian_guest 0.0.0.0 up


рд╡рд╛рдВрдЫрд┐рдд рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рд╣рдореЗрдВ рдЬрд┐рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдПрдХ рдорд╛рд░реНрдЧ рдмрдирд╛рдПрдВ:

sudo ip route add 10.10.10.100 dev debian_guest

рдЕрдм рдЖрдк VDS рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

$ virsh start debian_guest

рдХрдВрд╕реЛрд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ eth0 рдХреЗ рдмрдЬрд╛рдп рдбрд┐рд╡рд╛рдЗрд╕ eth1 рдорд┐рд▓рд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо, рдЬрдм /etc/udev/rules.d/70-persistent-net.rules рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХрд╛ рдореИрдХ рдкрддрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ , рдФрд░ рдпрджрд┐ рдореИрдХ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рддрд╛ рд╣реИ:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ VDS рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдмрд╛рдж рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХрд╛ рд╕рд╣реА рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рдЕрддрд┐рдерд┐ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдирдИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ:

# ifconfig eth0 10.10.10.100 netmask 255.255.255.0
# route add default gw 10.10.10.10


10.10.10.10 рд╣реЛрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ IP рдкрддрд╛ рд╣реИред рдЕрдм рд╣рдо рджреВрд╕рд░реА рдХрд╛рд░реЛрдВ рдХреЛ рдкрд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

DNS рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ /etc/resolv.conf рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЕрджреНрднреБрдд рд╣реЛрдЧрд╛:

nameserver 8.8.8.8

рд╡реИрд╕реЗ, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ VDS рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде-рд╕рд╛рде VDS рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдЦреБрдж рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЯреИрдк 0 рдпрд╛ vnet0 рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ, рдпрд╛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рдПрдХ рдФрд░ рдЖрдИрдкреА рдкрддрд╛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореЗрдЬрдмрд╛рди рдорд╢реАрди рдкрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рд░реНрдЧ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛:

# ip route add 10.10.10.101 dev debian_guest

рдФрд░ рдЕрддрд┐рдерд┐ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рдмрдирд╛рдПрдВ:

# ifconfig eth0:1 10.10.10.101

рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ



рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡реАрдбреАрдПрд╕ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In120717/


All Articles