์ผ์์ ํ ๋ฒ ์ด์ OpenVZ ์ปจํ ์ด๋๋ฅผ ์ ์ฒด KVM ๊ฐ์ํ๊ฐ ํฌํจ๋ ์๋ฒ๋ก ์ ์กํด์ผ ํ๋ ์ฌ๋์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
- ๋๋ถ๋ถ์ ์ ๋ณด๋ ๋จ์ํ ์ค๋๋์์ผ๋ฉฐ EOL ์ฃผ๊ธฐ๋ฅผ ์ค๋ซ๋์ ํต๊ณผํ OS์ ๊ด๋ จ์ด ์์์ต๋๋ค.
- ์ด์ ์ฒด์ ๋ง๋ค ํญ์ ๋ค๋ฅธ ์ ๋ณด๊ฐ ์ ๊ณต๋๋ฉฐ ๋ง์ด๊ทธ๋ ์ด์ ์ค ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ ๊ณ ๋ ค๋์ง ์์ต๋๋ค.
- ๋๋ก๋ ๋ง์ด๊ทธ๋ ์ด์ ํ์ ์๋ํ๊ณ ์ถ์ง ์์ ๊ตฌ์ฑ์ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์๋ฒ 1๊ฐ๋ฅผ ์ด์ ํ๋ฉด ์ธ์ ๋ ์ง ์ฆ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง, ํด๋ฌ์คํฐ ์ ์ฒด๋ฅผ ์ด์ ํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ๋ ๊น์?
์ด ๊ธฐ์ฌ์์๋ ๊ฐ๋ ์ค์ง ์๊ฐ์ ์ต์ํํ๊ณ ๋ชจ๋ ๋ฌธ์ ์ ๋ํ ๋น ๋ฅธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก OpenVZ ์ปจํ ์ด๋๋ฅผ KVM์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์๊ท๋ชจ ๊ต์ก ํ๋ก๊ทธ๋จ: OpenVZ๋ ๋ฌด์์ด๊ณ KVM์ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๋ ์ฉ์ด์ ๋ํด ๊น์ด ๋ค๋ฃจ์ง ์๊ณ ์ผ๋ฐ์ ์ธ ์ฉ์ด๋ก ๋งํ ๊ฒ์ ๋๋ค.
OpenVZ โ ์ด์ ์ฒด์ ์์ค์ ๊ฐ์ํ, ํธ์คํธ ์์คํ ์ CPU ๋ช ๋ น ๋ฐ ๊ฐ์ํ ๊ธฐ์ ์ด ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ ์๋ ์ธ์ง์ ๋ฐฐํฌํ ์๋ ์์ต๋๋ค.
KVM - CPU์ ๋ชจ๋ ์ฑ๋ฅ์ ์ฌ์ฉํ๊ณ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ธ๋ก ๋ฐ ๊ฐ๋ก๋ก ์ ๋จํ์ฌ ๋ชจ๋ ๊ฒ์ ๊ฐ์ํํ ์ ์๋ ๋ณธ๊ฒฉ์ ์ธ ๊ฐ์ํ์ ๋๋ค.
์ผ๋ฐ์ ์ธ ํต๋ ๊ณผ๋ ๋ฌ๋ฆฌ, ํ๊ฒฝ์์ ํธ์คํ ์ ๊ณต์ ์ฒด OpenVZ๋ ๊ณผ๋๊ด๊ณ ๋์์ง๋ง KVM์ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋คํํ๋ ์ด์ KVM ์ญ์ OpenVZ ๋ชป์ง์๊ฒ ๊ณผ๋๊ด๊ณ ๋๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ฌด์์ ์ด์ด๊ฐ ๊ฒ์ธ๊ฐ?
ะ ะบะฐัะตััะฒะต ะฟะพะดะพะฟััะฝัั ะดะปั ะฟะตัะตะฝะพัะฐ ะฟัะธัะปะพัั ะธัะฟะพะปัะทะพะฒะฐัั ะฒะตัั ะปะตั ะพะฟะตัะฐัะธะพะฝะฝัั ัะธััะตะผ, ะบะพัะพััะต ะดะพัััะฟะฝั ะฝะฐ OpenVZ: CentOS (6 ะธ 7 ะฒะตััะธะธ), Ubuntu (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. ะะฐะฟัะธะผะตั, ะตัะปะธ ะฝะฐ CTID ัััะฐะฝะพะฒะปะตะฝะฐ Ubuntu 14, ัะพ ะธ ะฝะฐ VM ะฝัะถะฝะพ ััะฐะฒะธัั Ubuntu 14. ะะธะฝะพัะฝัะต ะฒะตััะธะธ ะฝะต ะฒะฐะถะฝั ะธ ะธั
ะฝะตัะพะฒะฟะฐะดะตะฝะธะต ะฝะต ััะพะปั ะบัะธัะธัะฝะพ, ะฐ ะฒะพั ะผะฐะถะพัะฝัะต โ ะดะพะปะถะฝั ะฑััั ะพะดะธะฝะฐะบะพะฒัะผะธ.
VM์ ์์ฑํ ํ CTID ๋ฐ VM์์ ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค(OS ์ ๋ฐ์ดํธ์ ํผ๋ํ์ง ๋ง์ญ์์ค. ์ ๋ฐ์ดํธํ์ง ์๊ณ ํจํค์ง๋ง ์ ๋ฐ์ดํธํ๋ฉฐ ํจํค์ง๊ฐ ๋์ฐฉํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๋ด์ OS ๋ฒ์ ์ ์ ๋ฐ์ดํธํฉ๋๋ค. ๋ฒ์ ).
์ CentOS ััะพั ะฟัะพัะตัั ะฒัะณะปัะดะธั ะฑะตะทะพะฑะธะดะฝะพ:
# yum clean all
# yum update -yะ ะฝะต ะผะตะฝะตะต ะฑะตะทะพะฑะธะดะฝะพ ะดะปั Ubuntu, Debian:
# apt-get update
# apt-get upgrade2 ๋จ๊ณ
์ค์น ๋ ์ง CTID, VZ_NODE ะธ VM ๊ณต์ต์ฌ์ rsync:
CentOS:
# yum install rsync -yDebian, Ubuntu:
# 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 CTID5 ๋จ๊ณ
OpenVZ์์ ์ ์กํ ํ VM์ ์์ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ช ๊ฐ์ง ๋จ๊ณ๋ฅผ ์ํํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ฒ์์ Systemd ์๋ฅผ ๋ค์ด VNC ์๋ฒ ํ๋ฉด์ ํตํด ์ผ๋ฐ ์ฝ์์ ๋ก๊ทธ์ธํ๋ ๋ฐ ๋์์ด ๋๋ ๋ช
๋ น์ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
mv /etc/systemd/system/getty.target.wants/getty@tty2.service /etc/systemd/system/getty.target.wants/getty@tty1.service์๋ฒ์์ 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; }๋ชจ๋ ์๋ฒ์์ Apache์ฉ mod_fcgid๊ฐ ์ค์น๋ ๊ฒฝ์ฐ ๊ถํ์ด ์๋ ์์ ์์ ์ ์ํํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด mod_fcgid๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ดํธ๊ฐ ์ค๋ฅ 500์ผ๋ก ์ถฉ๋ํฉ๋๋ค.
chmod +s `which suexec` && apachectl restartะ ะฟะพัะปะตะดะฝะตะต, ะฟัะธะณะพะดะธััั ะดะปั Ubuntu, Debian ะดะธัััะธะฑััะธะฒะพะฒ. ะญัะฐ ะะก ะผะพะถะตั ัะฟะฐััั ะฒ ะฒะตัะฝัะน ะฑัั ั ะพัะธะฑะบะพะน
๋ฃจํ์ด ๋๋ฌด ๋น ๋ฆ ๋๋ค. ์คํ์ ์ฝ๊ฐ ์ ํ
๋ถํธํ์ง๋ง OS ๋ฒ์ ์ ๋ฐ๋ผ ์ฝ๊ฒ ๊ณ ์น ์ ์์ต๋๋ค.
์ Debian 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๋์์ด ๋์ง ์์ผ๋ฉด ๋ ๋ฒ์งธ ์ต์ ์ ์๋ํด ๋ณด์ธ์.
๋ฌธ์ ์ ๋ํ ๋ ๋ฒ์งธ ํด๊ฒฐ์ฑ ์คํ์ ์ฝ๊ฐ ์ ํ ะฟะพะดั ะพะดะธั ะฟัะฐะบัะธัะตัะบะธ ะดะปั ะฒัะตั Ubuntu ะธ Debian ะดะธัััะธะฑััะธะฒะพะฒ.
์ฐ๋ฆฌ๋
bash -x /var/lib/dpkg/info/dbus.postinst configure๊ทธ๋ฆฌ๊ณ Ubuntu 14, Debian 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์์ ๋ก๋ฉ์ด ์ด๋ป๊ฒ ์งํ๋๊ณ ์๋์ง ํ์ธํ๋ฉด ์ด์์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ฌธ์ ์์ด ๋ก๋๋ฉ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ํ์ ์ผ๋ถ ํน์ ๋ฌธ์ ๊ฐ ๋ํ๋ ์๋ ์์ง๋ง ์ด๋ฌํ ๋ฌธ์ ๋ ์ด ๋ฌธ์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉฐ ๋ฐ์ํ๋ ๋๋ก ์์ ๋ ๊ฒ์ ๋๋ค.
์ด ์ ๋ณด๊ฐ ์ ์ฉํ๊ธธ ๋ฐ๋๋๋ค! ๐
์ถ์ฒ : habr.com
