ืื ืื ืฉืืื ืฆืจืื ืืืขืืืจ ืงืื ืืืื ืจ OpenVZ ืืฉืจืช ืขื ืืืจืืืืืืืฆืื ืืืื ืฉื KVM ืืคืืืช ืคืขื ืืืช ืืืืื ื ืชืงื ืืืื ืืขืืืช:
- ืจืื ืืืืืข ืคืฉืื ืืืืฉื ืืืื ืจืืืื ืื ืืืขืจืืืช ืืคืขืื ืฉืขืืจื ืืืื ืืช ืืืืืจ ื-EOL
- ืืืืข ืฉืื ื ืืกืืคืง ืชืืื ืขืืืจ ืืขืจืืืช ืืคืขืื ืฉืื ืืช, ืืฉืืืืืช ืืคืฉืจืืืช ืืืืื ืืืขืืจื ืืขืืื ืืื ื ื ืืฉืืืช
- ืืคืขืืื ืฆืจืื ืืืชืืืื ืขื ืชืฆืืจืืช ืฉืืื ืคืขื ืื ืจืืฆืืช ืืขืืื ืืืืจ ืืืืืจื
ืืฉืืชื ืืขืืืจ ืฉืจืช ืืื, ืืชื ืชืืื ืืืื ืืชืงื ืืฉืื ืชืื ืืื ืชื ืืขื, ืืื ืืฉืืชื ืืขืืืจ ืืฉืืื ืฉืื?
ืืืืืจ ืื ืื ืกื ืืกืคืจ ืืื ืืืฆื ืืืขืืืจ ื ืืื ืงืื ืืืื ืจ OpenVZ ื-KVM ืขื ืืื ืืฉืืชื ืืื ืืืื ืืคืชืจืื ืืืืจ ืืื ืืืขืืืช.
ืชืืื ืืช ืืื ืืืืช ืงืื ื: ืื ืื OpenVZ ืืื ืื KVM?
ืื ื ืขืืืง ืืืจืืื ืืืืืื, ืืื ื ืืืจ ืืงืืืื ืืืืืื:
OpenVZ - ืืืจืืืืืืืฆืื ืืจืืช ืืขืจืืช ืืืคืขืื, ืืชื ืืืื ืืคืืื ืืคืจืืก ืืืชื ืืืืงืจืืื, ืืืืืื ืฉืืื ืฆืืจื ืืืืจืืืช CPU ืืืื ืืืืืืืช ืืืจืืืืืืืฆืื ืืืืฉื ืืืืจื.
KVM - ืืืจืืืืืืืฆืื ืืืื, ืชืื ืฉืืืืฉ ืืื ืืืื ืฉื ื-CPU ืืืกืืืืช ืืขืฉืืช ืืืจืืืืืืืฆืื ืฉื ืื ืืืจ, ืืื ืืจื, ืืืชืื ืืืชื ืืืืจื ืืืจืืื.
ืื ืืืื ืืืขื ืืจืืืืช ืฉืืงืจื ืกืคืงื ืืืืกืื OpenVZ ืืืคืื ืืืืืจืช ืืชืจ, ืืื KVM ืื - ืืืืื ืฉื ืืืืจืื ืื, KVM ื ืืืจืช ืืขืช ืื ืืืชืจ ืืจืืขื ืืืืื.
ืื ื ืขืืืจ?
ืื ืืืงื ืืืืงื ืืืขืืจื, ืืืื ื ืฆืจืืืื ืืืฉืชืืฉ ืืื ืืขืจ ืืขืจืืืช ืืืคืขืื ืืืืื ืืช ื-OpenVZ: CentOS (6 ื-7 ืืจืกืืืช), ืืืืื ืื (14, 16 ื-18 LTS), Debian 7.
ืืื ืื ืืืืชื ืฉืจืื ืืงืื ืืืื ืจืื ืฉื OpenVZ ืืืจ ืืจืืฆืื ืกืื ืฉื LAMP, ืืืืืงื ืืคืืื ืชืืื ื ืืืื ืกืคืฆืืคืืช. ืืจืื, ืืื ืืื ืชืฆืืจืืช ืขื ISPmanager, ืืื ืืืงืจื ืฉื VestaCP (ืืืจืื, ืื ืขืืืื ื ืืืฉื ืฉื ืื). ืืฉ ืืงืืช ืืืฉืืื ืื ืืช ืืงืฉืืช ืืืขืืจื ืฉืืื.
ืืืืืจื ืืชืืฆืขืช ืชืื ืฉืืืจื ืขื ืืชืืืช ื-IP ืฉื ืืงืื ืืืื ืจ ืืืืขืืจ; ืื ื ื ื ืื ืฉื-IP ืฉืืื ืืงืื ืืืื ืจ ื ืฉืืจ ื-VM ืืืขืืื ืืื ืืขืืืช.
ืืคื ื ืืืขืืจื, ืืืื ื ืืืื ืฉืืฉ ืื ื ืืื ืืืืฉื ืื:
- ืฉืจืช OpenVZ, ืืืฉืช ืฉืืจืฉ ืืืื ืืืืฉื ืืืืจื, ืืืืืช ืืขืฆืืจ/ืืืคืขืื/ืืืคืขืื/ืืืืืง ืงืื ืืืื ืจืื
- ืฉืจืช KVM, ืืืฉืช ืฉืืจืฉ ืืืื ืืืืฉื ืืืืจื, ืขื ืื ืืืฉืชืืข ืืื. ืืื ืื ืืื ืฉืืื ืืืจ ืืืืืจ ืืืืื ืืืคืขืื.
ืืืื ื ืชืืื ืืืขืืืจ
ืืคื ื ืฉื ืชืืื ืืืขืืจื, ืืืื ื ืืืืจ ืืื ืืื ืฉืืขืืจื ืืื ืืืืื ืข ืืืืืื:
KVM_NODE - ืืืฉื ืืืจื KVM
VZ_NODE - ืืืื ื ืืืจื OpenVZ
CTID - ืืืื OpenVZ
VM - ืฉืจืช ืืืจืืืืื KVM
ืืื ื ืืืืืจื ืืืฆืืจืช ืืืื ืืช ืืืจืืืืืืืช.
ืฉืื 1
ืืืืืื ืฉืื ืื ื ืฆืจืืืื ืืืขืืืจ ืืช ืืืืื ืืืงืื ืืืฉืื, โโื ืืฆืืจ VM ืขื ืชืฆืืจื ืืืื ื KVM_NODE.
ืืฉืื! ืขืืื ืืืฆืืจ VM ืืืขืจืืช ืืืคืขืื ืฉืคืืขืืช ืืขืช ืขื CTID. ืืืืืื, ืื ืืืืื ืื 14 ืืืชืงื ืขื ื-CTID, ืื ืืืืื ืื 14 ืืืื ืืืืืช ืืืชืงื ืขื ื-VM. ืืจืกืืืช ืืื ืืจืืืช ืืื ื ืืฉืืืืช ืืืคืขืจ ืฉืืื ืืื ื ืื ืงืจืืื, ืื ืืืจืกืืืช ืืขืืงืจืืืช ืฆืจืืืืช ืืืืืช ืืืืช.
ืืืืจ ืืฆืืจืช ื-VM, ื ืขืืื ืืช ืืืืืืืช ื-CTID ืื-VM (ืื ืืืชืืืื ืขื ืขืืืื ืืขืจืืช ืืืคืขืื - ืื ืื ื ืื ืืขืืื ืื ืืืชื, ืื ืื ื ืืขืืื ืื ืจืง ืืช ืืืืืืืช ืืื ืืื ืืืืขื ืื ืืช ืืจืกืช ืืขืจืืช ืืืคืขืื ืืชืื ืืจืืฉืืช ืึดืจึฐืกึธื).
ืขืืืจ CentOS ืืชืืืื ืืื ื ืจืื ืื ืืืืง:
# yum clean all
# yum update -y
ืืื ืคืืืช ืืืืง ืขืืืจ ืืืืื ืื ืืืืืื:
# apt-get update
# apt-get upgrade
ืฉืื 2
ืืชืงื ืขื CTID, VZ_NODE ะธ VM ืชืึนืขึถืึถืช rsync:
CentOS:
# yum install rsync -y
ืืืืื, ืืืืื ืื:
# apt-get install rsync -y
ืื ืื ื ืื ืืชืงืื ืื ืฉืื ืืืจ ืืืจ ืื ืฉื ืืื ืฉื.
ืฉืื 3
ืื ืื ื ืขืืฆืจืื CTID ืขื VZ_NODE ืขื ืืื ืฆืืืช
vzctl stop CTID
ืืจืืืช ืืชืืื ื CTID:
vzctl mount CTID
ืขืืืจ ืื ืืชืืงืื /vz/root/CTID ืืืืฆืข
mount --bind /dev dev && mount --bind /sys sys && mount --bind /proc proc && chroot .
ืืชืืช ืืฉืืจืฉ, ืฆืืจ ืงืืืฅ /root/exclude.txt - ืืื ืืืื ืจืฉืืื ืฉื ืืจืืืื ืฉืื ืืืืขื ืืฉืจืช ืืืืฉ
/boot
/proc
/sys
/tmp
/dev
/var/lock
/etc/fstab
/etc/mtab
/etc/resolv.conf
/etc/conf.d/net
/etc/network/interfaces
/etc/networks
/etc/sysconfig/network*
/etc/sysconfig/hwconf
/etc/sysconfig/ip6tables-config
/etc/sysconfig/kernel
/etc/hostname
/etc/HOSTNAME
/etc/hosts
/etc/modprobe*
/etc/modules
/net
/lib/modules
/etc/rc.conf
/usr/share/nova-agent*
/usr/sbin/nova-agent*
/etc/init.d/nova-agent*
/etc/ips
/etc/ipaddrpool
/etc/ips.dnsmaster
/etc/resolv.conf
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-ens3
ืื ื ืืชืืืจืื ื KVM_NODE ืืืืฉืืง ืืช ืฉืื ื VMืื ืฉืืื ืขืืื ืื ืืืฉ ืืจื ืืจืฉืช.
ืขืืฉืื ืืื ืืืื ืืืขืืจื. ืืืืช!
ืฉืื 4
ืขืืืื ืชืืช ืืืฉืืฃ, ืื ืื ื ืืืคืืขืื
rsync --exclude-from="/root/exclude.txt" --numeric-ids -avpogtStlHz --progress -e "ssh -T -o Compression=no -x" / root@KVM_NODE:/
ืืคืงืืื rsync ืชืืฆืข ืืช ืืืขืืจื, ืื ื ืืงืืืื ืฉืืืคืชืืืช ืืจืืจืื - ืืืขืืจื ืืชืืฆืขืช ืชืื ืฉืืืจื ืฉื ืกืืืืื ืงืื, ืืืืืืช ืืืฉื, ืืขืืื ืืงืืืฆืืช, ืืืืฆืคื ื ืืืฉืืชืช ืืืืืจืืช ืืืืื ืืืชืจ (ืืคืฉืจ ืืืฉืชืืฉ ืืฆืืคื ืืืืจ ืืืชืจ, ืืื ืื ืื ืื ืื ืืฉืื ืืืฉืืื ืื), ืืื ืื ืืืืืกื ืืืฉืืชืช.
ืืืืจ ืืฉืืืช rsync, ืฆื ื-chroot (ืขื ืืื ืืืืฆื ืขื ctrl+d) ืืืคืขื
umount dev && umount proc && umount sys && cd .. && vzctl umount CTID
ืฉืื 5
ืืืื ื ืืฆืข ืืกืคืจ ืฉืืืื ืฉืืขืืจื ืื ื ืืืคืขืื ืืช ื-VM ืืืืจ ืืขืืจื ื-OpenVZ.
ืืฉืจืชืื ืขื SystemD ืืื ื ืืฆืข ืคืงืืื ืฉืชืขืืืจ ืื ื ืืืืื ืก ืืงืื ืกืืื ืจืืืื, ืืืฉื, ืืจื ืืกื ืฉืจืช VNC
mv /etc/systemd/system/getty.target.wants/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
ืขื ืฉืจืชืื CentOS 6 ะธ CentOS 7 ืืงืคื ืืืชืงืื ืืจืขืื ืืจื:
yum install kernel-$(uname -r)
ื ืืชื ืืืขืื ืืช ืืฉืจืช ืืื ื, ืื ืืืืจ ืืืขืืจื ืืื ืขืืื ืืืคืกืืง ืืขืืื ืื ืืืืืืง.
ืืฉืจืช CentOS 7 ืืชื ืฆืจืื ืืืืื ืชืืงืื ืงืื ืขืืืจ PolkitD, ืืืจืช ืืฉืจืช ืืงืจืืก ืื ืฆื:
getent group polkitd >/dev/null && echo -e "e[1;32mpolkitd group already existse[0m" || { groupadd -r polkitd && echo -e "e[1;33mAdded missing polkitd groupe[0m" || echo -e "e[1;31mAdding polkitd group FAILEDe[0m"; }
getent passwd polkitd >/dev/null
&& echo -e "e[1;32mpolkitd user already existse[0m" || { useradd -r -g polkitd -d / -s /sbin/nologin -c "User for polkitd" polkitd && echo -e "e[1;33mAdded missing polkitd usere[0m" || echo -e "e[1;31mAdding polkitd user FAILEDe[0m"; }
rpm -Va polkit* && echo -e "e[1;32mpolkit* rpm verification passede[0m" || { echo -e "e[1;33mResetting polkit* rpm user/group ownership & permse[0m"; rpm --setugids polkit polkit-pkla-compat; rpm --setperms polkit polkit-pkla-compat; }
ืืื ืืฉืจืชืื, ืื mod_fcgid ืขืืืจ Apache ืืืชืงื, ื ืืฆืข ืชืืงืื ืงืื ืขื ืืืืืืช, ืืืจืช ืืชืจืื ืืืฉืชืืฉืื ื-mod_fcgid ืืงืจืกื ืขื ืฉืืืื 500:
chmod +s `which suexec` && apachectl restart
ืืืืืจ ืืืืจืื ืฉืืืืฉื ืขืืืจ ืืคืฆืืช ืฉื ืืืืื ืื ืืืืืื. ืืขืจืืช ืืคืขืื ืื ืขืืืื ืืงืจืืก ืืืชืืื ื ืฆืื ืขื ืฉืืืื
ืืืืื ืืืจ ืืื. ืืืฆืืข ืืฆืขืจ ืืขื
ืื ื ืขืื, ืืื ืืชืืงื ืืงืืืช, ืชืืื ืืืจืกืช ืืขืจืืช ืืืคืขืื.
ืขื ืืืืื 9 ืืชืืงืื ื ืจืื ืื:
ืื ืื ื ืืืฆืขืื
dbus-uuidgen
ืื ื ืงืื ืฉืืืื
/usr/local/lib/libdbus-1.so.3: ืืจืกื `LIBDBUS_PRIVATE_1.10.8' ืื ื ืืฆืื
ืืืืง ืืช ื ืืืืืชื ืฉื LIBDBUS
ls -la /lib/x86_64-linux-gnu | grep dbus
libdbus-1.so.3 -> libdbus-1.so.3.14.15
libdbus-1.so.3.14.15 <-- ะฝัะถะตะฝ ััะพั
libdbus-1.so.3.14.16
ืื ืืื ืืกืืจ, ืื ืื ื ืขืืฉืื ืืช ืื
cd /lib/x86_64-linux-gnu
rm -rf libdbus-1.so.3
ln -s libdbus-1.so.3.14.15 libdbus-1.so.3
ืื ืื ืื ืขืืืจ, ื ืกื ืืช ืืืคืฉืจืืช ืืฉื ืืื.
ืืคืชืจืื ืืฉื ื ืืืขืื ืขื ืืืฆืืข ืืฆืขืจ ืืขื ืืชืืื ืืืขื ืืื ืืืคืฆืืช ืฉื ืืืืื ืื ืืืืืื.
ืื ื ืืืฆืขืื
bash -x /var/lib/dpkg/info/dbus.postinst configure
ืืืฉืืื ืืืืื ืื 14, ืืืืื 7 ืื ืืกืฃ ืื ื ืืืฆืขืื:
adduser --system --home /nonexistent --no-create-home --disabled-password --group messagebus
rm -rf /etc/init.d/modules_dep.sh
ืื ืขืฉืื ื? ืฉืืืจื ื ืืช messagebus, ืฉืืื ืืกืจ ืืืคืขืืช Debian/Ubuntu, ืืืกืจื ื ืืช modules_dep, ืฉืืืืข ื-OpenVZ ืืืคืจืืข ืืืขืื ืช ืืืืืื ืืืื ืจืืื.
ืฉืื 6
ืื ื ืืืชืืืื ืืช ื-VM, ืืืืงืื ื-VNC ืืืฆื ืืืขืื ื ืืชืงืืืช ืืืืืคื ืืืืืืื, ืืื ืืืืขื ืืื ืืขืืืช. ืืืจืืช ืฉืืืชืื ืฉืืืคืืขื ืืื ืืขืืืช ืกืคืฆืืคืืืช ืืืืจ ืืืืืจื, ืื ืืื ื ืืชืืื ืืืืืจ ืืื ืืืชืืงื ื ืืื ืฉืืชืขืืจืจื.
ืื ื ืืงืืื ืฉืืืืืข ืืื ืฉืืืืฉื! ๐
ืืงืืจ: www.habr.com