์ผ์์ ํ ๋ฒ ์ด์ OpenVZ ์ปจํ ์ด๋๋ฅผ ์ ์ฒด KVM ๊ฐ์ํ๊ฐ ํฌํจ๋ ์๋ฒ๋ก ์ ์กํด์ผ ํ๋ ์ฌ๋์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
- ๋๋ถ๋ถ์ ์ ๋ณด๋ ๋จ์ํ ์ค๋๋์์ผ๋ฉฐ EOL ์ฃผ๊ธฐ๋ฅผ ์ค๋ซ๋์ ํต๊ณผํ OS์ ๊ด๋ จ์ด ์์์ต๋๋ค.
- ์ด์ ์ฒด์ ๋ง๋ค ํญ์ ๋ค๋ฅธ ์ ๋ณด๊ฐ ์ ๊ณต๋๋ฉฐ ๋ง์ด๊ทธ๋ ์ด์ ์ค ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ ๊ณ ๋ ค๋์ง ์์ต๋๋ค.
- ๋๋ก๋ ๋ง์ด๊ทธ๋ ์ด์ ํ์ ์๋ํ๊ณ ์ถ์ง ์์ ๊ตฌ์ฑ์ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์๋ฒ 1๊ฐ๋ฅผ ์ด์ ํ๋ฉด ์ธ์ ๋ ์ง ์ฆ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง, ํด๋ฌ์คํฐ ์ ์ฒด๋ฅผ ์ด์ ํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ๋ ๊น์?
์ด ๊ธฐ์ฌ์์๋ ๊ฐ๋ ์ค์ง ์๊ฐ์ ์ต์ํํ๊ณ ๋ชจ๋ ๋ฌธ์ ์ ๋ํ ๋น ๋ฅธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก OpenVZ ์ปจํ ์ด๋๋ฅผ KVM์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์๊ท๋ชจ ๊ต์ก ํ๋ก๊ทธ๋จ: OpenVZ๋ ๋ฌด์์ด๊ณ KVM์ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๋ ์ฉ์ด์ ๋ํด ๊น์ด ๋ค๋ฃจ์ง ์๊ณ ์ผ๋ฐ์ ์ธ ์ฉ์ด๋ก ๋งํ ๊ฒ์ ๋๋ค.
OpenVZ โ ์ด์ ์ฒด์ ์์ค์ ๊ฐ์ํ, ํธ์คํธ ์์คํ ์ CPU ๋ช ๋ น ๋ฐ ๊ฐ์ํ ๊ธฐ์ ์ด ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ ์๋ ์ธ์ง์ ๋ฐฐํฌํ ์๋ ์์ต๋๋ค.
KVM - CPU์ ๋ชจ๋ ์ฑ๋ฅ์ ์ฌ์ฉํ๊ณ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ธ๋ก ๋ฐ ๊ฐ๋ก๋ก ์ ๋จํ์ฌ ๋ชจ๋ ๊ฒ์ ๊ฐ์ํํ ์ ์๋ ๋ณธ๊ฒฉ์ ์ธ ๊ฐ์ํ์ ๋๋ค.
ํธ์คํ ์ ๊ณต์ ์ฒด ์ค์์ OpenVZ๊ฐ ๊ณผ๋งค๋๋ ๊ฒ์ด๋ผ๋ ๋์ค์ ๋ฏฟ์๊ณผ๋ ๋ฌ๋ฆฌ, KVM์ ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ KVM์ ์ด์ ๊ทธ ํ์ ๋ณด๋ค ๋ ๋์์ง ์๊ฒ ๊ณผ๋งค๋๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ฌด์์ ์ด์ด๊ฐ ๊ฒ์ธ๊ฐ?
์ด์ ์ ์ํ ํ ์คํธ ๋์์ผ๋ก 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.
์ค์! ํ์ฌ CTID์์ ์คํ ์ค์ธ ์ด์ ์ฒด์ ์์ VM์ ์์ฑํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด 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 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 ๋จ๊ณ
OpenVZ์์ ์ ์กํ ํ VM์ ์์ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ช ๊ฐ์ง ๋จ๊ณ๋ฅผ ์ํํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ฒ์์ Systemd ์๋ฅผ ๋ค์ด VNC ์๋ฒ ํ๋ฉด์ ํตํด ์ผ๋ฐ ์ฝ์์ ๋ก๊ทธ์ธํ๋ ๋ฐ ๋์์ด ๋๋ ๋ช
๋ น์ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
mv /etc/systemd/system/getty.target.wants/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
์๋ฒ์์ 6 CentOS์ ะธ 7 CentOS์ ๋ฐ๋์ ์๋ก์ด ์ปค๋์ ์ค์นํ์ญ์์ค:
yum install kernel-$(uname -r)
์๋ฒ๋ฅผ ๋ก๋ํ ์ ์์ง๋ง ์ ์ก ํ์๋ ์๋์ด ์ค์ง๋๊ฑฐ๋ ์ญ์ ๋ ์ ์์ต๋๋ค.
์๋ฒ์์ 7 CentOS์ 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๋ ์ค๋ฅ๋ก ์ธํด ์๊ตฌ ๋ถํ ์ด ์ค๋จ๋ ์ ์์ต๋๋ค.
๋ฃจํ์ด ๋๋ฌด ๋น ๋ฆ ๋๋ค. ์คํ์ ์ฝ๊ฐ ์ ํ
๋ถํธํ์ง๋ง OS ๋ฒ์ ์ ๋ฐ๋ผ ์ฝ๊ฒ ๊ณ ์น ์ ์์ต๋๋ค.
์ ๋ฐ๋น์ 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
๊ทธ๋ฆฌ๊ณ ์ฐ๋ถํฌ 14, ๋ฐ๋น์ 7 ์ถ๊ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ค์์ ์ํํฉ๋๋ค:
adduser --system --home /nonexistent --no-create-home --disabled-password --group messagebus
rm -rf /etc/init.d/modules_dep.sh
์ฐ๋ฆฌ๋ ๋ฌด์์ ํ๋์? Debian/Ubuntu๋ฅผ ์คํํ๋ ๋ฐ ๋๋ฝ๋ messagebus๋ฅผ ๋ณต์ํ๊ณ OpenVZ์์ ์ ๊ณต๋์ด ๋ง์ ์ปค๋ ๋ชจ๋์ ๋ก๋ฉ์ ๋ฐฉํดํ๋ module_dep์ ์ ๊ฑฐํ์ต๋๋ค.
6 ๋จ๊ณ
VM์ ์ฌ๋ถํ ํ๊ณ VNC์์ ๋ก๋ฉ์ด ์ด๋ป๊ฒ ์งํ๋๊ณ ์๋์ง ํ์ธํ๋ฉด ์ด์์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ฌธ์ ์์ด ๋ก๋๋ฉ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ํ์ ์ผ๋ถ ํน์ ๋ฌธ์ ๊ฐ ๋ํ๋ ์๋ ์์ง๋ง ์ด๋ฌํ ๋ฌธ์ ๋ ์ด ๋ฌธ์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉฐ ๋ฐ์ํ๋ ๋๋ก ์์ ๋ ๊ฒ์ ๋๋ค.
์ด ์ ๋ณด๊ฐ ์ ์ฉํ๊ธธ ๋ฐ๋๋๋ค! ๐
์ถ์ฒ : habr.com