IaaS(Virtual Data Center) ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋น์ฌ๋
KVM, VmWare, Xen, Virtuozzo6/7 ๋ฐ ๋์ผํ Virtuozzo์ ์ปจํ ์ด๋๊ฐ ์ปดํจํ ๋ ธ๋ ํ์ดํผ๋ฐ์ด์ ๋ก ์ง์๋ฉ๋๋ค. ์ง์๋๋ ์คํ ๋ฆฌ์ง ์ต์ ์๋ ๋ก์ปฌ, NFS, Ceph ๋ฐ Virtuozzo Storage๊ฐ ํฌํจ๋ฉ๋๋ค.
FCO๋ ๋จ์ผ ์ธํฐํ์ด์ค์์ ์ฌ๋ฌ ํด๋ฌ์คํฐ์ ์์ฑ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. ์ฆ, Virtuozzo ํด๋ฌ์คํฐ์ KVM + Ceph ํด๋ฌ์คํฐ๋ฅผ ๋ง์ฐ์ค ํด๋ฆญ๋ง์ผ๋ก ์ ํํ์ฌ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก FCO๋ ์ค์ผ์คํธ๋ ์ด์ ์ธ์๋ ์ฒญ๊ตฌ, ๋ชจ๋ ์ค์ , ๊ฒฐ์ ํ๋ฌ๊ทธ์ธ, ์ก์ฅ, ์๋ฆผ, ๋ฆฌ์ ๋ฌ, ๊ด์ธ ๋ฑ์ ํฌํจํ๋ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ฅผ ์ํ ํฌ๊ด์ ์ธ ์๋ฃจ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฒญ๊ตฌ ๋ถ๋ถ์ ๋ฌ์์์ ๋ชจ๋ ๋์์ค๋ฅผ ๋ค๋ฃฐ ์ ์์ผ๋ฏ๋ก ๋ค๋ฅธ ์๋ฃจ์ ์ ์ ํธํ์ฌ ์ฌ์ฉ์ ํฌ๊ธฐํ์ต๋๋ค.
์ด๋ฏธ์ง, ๋์คํฌ, ์ ํ, ์๋ฒ, ๋ฐฉํ๋ฒฝ ๋ฑ ๋ชจ๋ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค์ ๋ํ ๊ถํ์ ๋ฐฐํฌํ๊ธฐ ์ํ ์ ์ฐํ ์์คํ ์ ๋งค์ฐ ๋ง์กฑํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ์ฌ์ฉ์ ๊ฐ์, ์ฌ์ง์ด ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์ ์ฌ์ฉ์ ๊ฐ์๋ "๊ณต์ "๋๊ณ ๊ถํ์ด ๋ถ์ฌ๋ ์ ์์ต๋๋ค. ๊ฐ ํด๋ผ์ด์ธํธ๋ ํด๋ผ์ฐ๋์ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ๋ง๋ค๊ณ ๋จ์ผ ์ ์ดํ์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๊ตฌ์กฐ์ ์ผ๋ก FCO๋ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ๋ถ๋ถ์๋ ์์ฒด ๋
๋ฆฝ์ ์ธ ์ฝ๋๊ฐ ์๊ณ ์ผ๋ถ์๋ ์์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ต๋๋ค.
์งํ์ โ ๊ด๋ฆฌ ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค
์ฅ โ ๋น์ฆ๋์ค ๋ก์ง, ๋น๋ง, ์์
๊ด๋ฆฌ
Tigerlily โ ์๋น์ค ์ฝ๋๋ค์ดํฐ๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ํด๋ฌ์คํฐ ๊ฐ์ ์ ๋ณด ๊ตํ์ ๊ด๋ฆฌํ๊ณ ์กฐ์ ํฉ๋๋ค.
XVP๊ด๋ฆฌ์ โ ํด๋ฌ์คํฐ ์์ ๊ด๋ฆฌ: ๋
ธ๋, ์คํ ๋ฆฌ์ง, ๋คํธ์ํฌ ๋ฐ ๊ฐ์ ๋จธ์ .
XVPAgent โ XVPManager์ ์ํธ ์์ฉํ๊ธฐ ์ํด ๋
ธ๋์ ์ค์น๋ ์์ด์ ํธ
๋ฌผ๋ก ํด๋น ์ฃผ์ ๊ฐ ๊ด์ฌ์ ๋ถ๋ฌ์ผ์ผํจ๋ค๋ฉด ์ผ๋ จ์ ๊ธฐ์ฌ์ ๊ฐ ๊ตฌ์ฑ ์์์ ์ํคํ
์ฒ์ ๋ํ ์์ธํ ์ด์ผ๊ธฐ๋ฅผ ํฌํจํ ๊ณํ์
๋๋ค.
FCO์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ "๋ฐ์คํ" ํน์ฑ์ ์์ต๋๋ค. ๋จ์์ฑ๊ณผ ๋ฏธ๋๋ฉ๋ฆฌ์ฆ์ด ๊ทํ์ ์๋น์ค์ ์์ต๋๋ค. ์ ์ด ๋ ธ๋์ ๊ฒฝ์ฐ Ubuntu์ ํ๋์ ๊ฐ์ ๋จธ์ ์ด ํ ๋น๋์ด ํ์ํ ๋ชจ๋ ํจํค์ง๊ฐ ์ค์น๋ฉ๋๋ค. ๋ชจ๋ ์ค์ ์ ๋ณ์ ๊ฐ ํ์์ผ๋ก ๊ตฌ์ฑ ํ์ผ์ ๋ฐฐ์น๋ฉ๋๋ค.
# cat /etc/extility/config/vars
โฆ
export LIMIT_MAX_LIST_ADMIN_DEFAULT="30000"
export LIMIT_MAX_LIST_USER_DEFAULT="200"
export LOGDIR="/var/log/extility"
export LOG_FILE="misc.log"
export LOG_FILE_LOG4JHOSTBILLMODULE="hostbillmodule.log"
export LOG_FILE_LOG4JJADE="jade.log"
export LOG_FILE_LOG4JTL="tigerlily.log"
export LOG_FILE_LOG4JXVP="xvpmanager.log"
export LOG_FILE_VARS="misc.log"
โฆ
์ ์ฒด ๊ตฌ์ฑ์ ์ฒ์์ ํ
ํ๋ฆฟ์์ ํธ์ง๋ ๋ค์ ์์ฑ๊ธฐ๊ฐ ์์๋ฉ๋๋ค.
#build-config๋ vars ํ์ผ์ ์์ฑํ๊ณ ์๋น์ค์ ๊ตฌ์ฑ์ ๋ค์ ์ฝ๋๋ก ๋ช
๋ นํฉ๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ํ๋ฅญํ๊ณ ์ฝ๊ฒ ๋ธ๋๋ํํ ์ ์์ต๋๋ค.
๋ณด์๋ค์ํผ ์ธํฐํ์ด์ค๋ ์ฌ์ฉ์๊ฐ ์ ์ดํ ์ ์๋ ์์ ฏ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ํ์ด์ง์์ ์์ ฏ์ ์ฝ๊ฒ ์ถ๊ฐ/์ ๊ฑฐํ์ฌ ํ์ํ ๋์๋ณด๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
ํ์์ ์ธ ํน์ฑ์๋ ๋ถ๊ตฌํ๊ณ FCO๋ ๊ณ ๋๋ก ๋ง์ถคํ ๊ฐ๋ฅํ ์์คํ ์ ๋๋ค. ์ํฌํ๋ก ๋ณ๊ฒฝ์ ์ํ ์๋ง์ ์ค์ ๊ณผ ์ง์ ์ ์ด ์์ต๋๋ค.
- ์ฌ์ฉ์ ์ ์ ํ๋ฌ๊ทธ์ธ์ด ์ง์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์ฒด ์ฒญ๊ตฌ ๋ฐฉ๋ฒ์ด๋ ์ธ๋ถ ๋ฆฌ์์ค๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ค์์ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ํน์ ์ด๋ฒคํธ์ ๋ํ ์ฌ์ฉ์ ์ ์ ํธ๋ฆฌ๊ฑฐ๊ฐ ์ง์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ํด๋ผ์ด์ธํธ๊ฐ ์์ฑ๋ ๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋จธ์ ์ ํด๋ผ์ด์ธํธ์ ์ถ๊ฐํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด YouTube ๋น๋์ค๋ฅผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ง์ ์ฝ์ ํ๋ ๋ฑ ์ธํฐํ์ด์ค์ ์ฌ์ฉ์ ์ ์ ์์ ฏ์ด ์ง์๋ฉ๋๋ค.
๋ชจ๋ ์ฌ์ฉ์ ์ ์๋ Lua๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ FDL๋ก ์์ฑ๋ฉ๋๋ค. Lua๋ฅผ ์๋ค๋ฉด FDL์๋ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ ๋๋ค.
๋ค์์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ํธ๋ฆฌ๊ฑฐ ์ค ํ๋์ ์์ ๋๋ค. ์ด ํธ๋ฆฌ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ์์ ์ ์ด๋ฏธ์ง๋ฅผ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์ ๊ณต์ ํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค. ์ด๋ ํ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์๋ฅผ ์ํด ์ ์์ ์ธ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
function register()
return {"pre_user_api_publish"}
end
function pre_user_api_publish(p)
if(p==nil) then
return{
ref = "cancelPublishImage",
name = "Cancel publishing",
description = "Cancel all userโs images publishing",
triggerType = "PRE_USER_API_CALL",
triggerOptions = {"publishResource", "publishImage"},
api = "TRIGGER",
version = 1,
}
end
-- Turn publishing off
return {exitState = "CANCEL"}
end
๋ ์ง์คํฐ ํจ์๋ FCO ์ปค๋์ ์ํด ํธ์ถ๋ฉ๋๋ค. ํธ์ถํ ํจ์์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค. ์ด ํจ์์ "p" ๋งค๊ฐ๋ณ์๋ ํธ์ถ ์ปจํ ์คํธ๋ฅผ ์ ์ฅํ๋ฉฐ ์ฒ์ ํธ์ถ๋ ๋ ๋น์ด ์์ต๋๋ค(nil). ๊ทธ๋ฌ๋ฉด ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค. TriggerType์์๋ ๊ฒ์ ์์ ์ ์ ํธ๋ฆฌ๊ฑฐ๊ฐ ํธ์ถ๋๊ณ ์ฌ์ฉ์์๊ฒ๋ง ์ํฅ์ ๋ฏธ์น๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค. ๋ฌผ๋ก ์์คํ ๊ด๋ฆฌ์๊ฐ ๋ชจ๋ ๊ฒ์ ๊ฒ์ํ๋ ๊ฒ์ ํ์ฉํฉ๋๋ค. TriggerOptions์์๋ ํธ๋ฆฌ๊ฑฐ๊ฐ ์คํ๋๋ ์์ ์ ์์ธํ ์ค๋ช ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ return {exitState = โCANCELโ}์ด๋ฉฐ, ์ด๊ฒ์ด ํธ๋ฆฌ๊ฑฐ๊ฐ ๊ฐ๋ฐ๋ ์ด์ ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์ ์ดํ์์ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๋ ค๊ณ ํ๋ฉด ์คํจ๋ฅผ ๋ฐํํฉ๋๋ค.
FCO ์ํคํ ์ฒ์์ ๋ชจ๋ ๊ฐ์ฒด(๋์คํฌ, ์๋ฒ, ์ด๋ฏธ์ง, ๋คํธ์ํฌ, ๋คํธ์ํฌ ์ด๋ํฐ ๋ฑ)๋ ๊ณตํต ๋งค๊ฐ๋ณ์๊ฐ ์๋ ๋ฆฌ์์ค ์ํฐํฐ๋ก ํ์๋ฉ๋๋ค.
- ์์ UUID
- ๋ฆฌ์์ค ์ด๋ฆ
- ๋ฆฌ์์ค ์ ํ
- ๋ฆฌ์์ค ์์ ์ UUID
- ๋ฆฌ์์ค ์ํ(ํ์ฑ, ๋นํ์ฑ)
- ๋ฆฌ์์ค ๋ฉํ๋ฐ์ดํฐ
- ๋ฆฌ์์ค ํค
- ๋ฆฌ์์ค๋ฅผ ์์ ํ ์ ํ์ UUID
- ๋ฆฌ์์ค VDC
์ด๋ ๋ชจ๋ ๋ฆฌ์์ค๊ฐ ๋์ผํ ์์น์ ๋ฐ๋ผ ์๋ํ๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ๋ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. ์ ํ์ ๊ณต๊ธ์๊ฐ ๊ตฌ์ฑํ๊ณ ๊ณ ๊ฐ์ด ์ฃผ๋ฌธํฉ๋๋ค. ์ฒญ๊ตฌ์๊ฐ ์ธก๋ฉด์ ์์ผ๋ฏ๋ก ๊ณ ๊ฐ์ ํจ๋์์ ๋ชจ๋ ์ ํ์ ์์ ๋กญ๊ฒ ์ฃผ๋ฌธํ ์ ์์ต๋๋ค. ๋์ค์ ์ฒญ๊ตฌ ์ ๊ณ์ฐ๋ฉ๋๋ค. ์ ํ์ ์๊ฐ๋น IP ์ฃผ์, ์๊ฐ๋น ์ถ๊ฐ GB ๋๋ ์๋ฒ์ผ ์ ์์ต๋๋ค.
ํค๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ๋ฆฌ์์ค๋ฅผ ํ์ํ์ฌ ์์ ๋ ผ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Weight ํค๋ก ์ธ ๊ฐ์ ๋ฌผ๋ฆฌ์ ๋ ธ๋๋ฅผ ํ์ํ๊ณ ์ผ๋ถ ํด๋ผ์ด์ธํธ๋ฅผ ๋์ผํ ํค๋ก ํ์ํ์ฌ ์ด๋ฌํ ๋ ธ๋๋ฅผ ํด๋น ํด๋ผ์ด์ธํธ์ ๊ฐ์ธ์ ์ผ๋ก ํ ๋นํ ์ ์์ต๋๋ค. VM ์์ ์๋ ์ด์์ ์ข์ํ์ง ์๋ VIP ํด๋ผ์ด์ธํธ๋ฅผ ์ํด ์ด ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ฅ ์์ฒด๋ ํจ์ฌ ๋ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๋ผ์ด์ผ์ฑ ๋ชจ๋ธ์๋ ๋ฌผ๋ฆฌ์ ๋ ธ๋์ ๊ฐ ํ๋ก์ธ์ ์ฝ์ด์ ๋ํ ๋น์ฉ ์ง๋ถ์ด ํฌํจ๋ฉ๋๋ค. ๋น์ฉ์ ํด๋ฌ์คํฐ ์ ํ์ ์์๋ ์ํฅ์ ๋ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด KVM๊ณผ VMware๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๋ผ์ด์ผ์ค ๋น์ฉ์ด ์ฆ๊ฐํฉ๋๋ค.
FCO๋ ๋ณธ๊ฒฉ์ ์ธ ์ ํ์ด๊ณ ๊ธฐ๋ฅ์ด ๋งค์ฐ ํ๋ถํ๋ฏ๋ก ๋คํธ์ํฌ ๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋ํ ์์ธํ ์ค๋ช ๊ณผ ํจ๊ป ์ฌ๋ฌ ๊ธฐ์ฌ๋ฅผ ํ ๋ฒ์ ์ค๋นํ ๊ณํ์ ๋๋ค.
์ด ์ค์ผ์คํธ๋ ์ดํฐ์ ์๋ ๋์ ์์ ํ ๊ฒฐ๊ณผ ๋งค์ฐ ์ ํฉํ๋ค๊ณ ํ๊ฐํ ์ ์์ต๋๋ค. ์์ฝ๊ฒ๋ ์ ํ์ ๊ฒฐํจ์ด ์๋ ๊ฒ์ ์๋๋๋ค.
- ์ฟผ๋ฆฌ์ ๋ฐ์ดํฐ ์์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ฟผ๋ฆฌ ์๋๊ฐ ๋๋ ค์ง๊ธฐ ์์ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ต์ ํํด์ผ ํ์ต๋๋ค.
- ํ ๋ฒ์ ์ฌ๊ณ ํ, ๋ฒ๊ทธ๋ก ์ธํด ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ์ด ์๋ํ์ง ์์๊ณ , ์ฐ๋ฆฌ๋ ์์ฒด ์คํฌ๋ฆฝํธ ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํํ ๊ณ ๊ฐ์ ์๋์ฐจ๋ฅผ ๋ณต๊ตฌํด์ผ ํ์ต๋๋ค.
- ๋ ธ๋ ๋น๊ฐ์ฉ์ฑ์ ๊ฐ์งํ๋ ๋ฉ์ปค๋์ฆ์ ์ฝ๋์ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค. ์ฆ, ๋ ธ๋์ ๊ฐ์ฉ์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํ ์์ฒด ์ ์ฑ ์ ๋ง๋ค ์ ์์ต๋๋ค.
- ๋ก๊น ์ด ํญ์ ์์ธํ์ง๋ ์์ต๋๋ค. ๋๋ก๋ ํน์ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋งค์ฐ ๋ฎ์ ์์ค์ผ๋ก ๋ด๋ ค ๊ฐ์ผ ํ ๋ ์ผ๋ถ ๊ตฌ์ฑ ์์์ ๋ํ ์์ค ์ฝ๋๊ฐ ์ถฉ๋ถํ์ง ์์ ์ด์ ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.
์ด๊ณ : ์ ๋ฐ์ ์ผ๋ก ์ ํ์ ์ธ์์ ์ข์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ค์ผ์คํธ๋ ์ดํฐ ๊ฐ๋ฐ์๋ค๊ณผ ์ง์์ ์ผ๋ก ์ ์ดํ๊ณ ์์ต๋๋ค. ์ฌ๋๋ค์ ๊ฑด์ค์ ์ธ ํ๋ ฅ์ ๊ด์ฌ์ด ์์ต๋๋ค.
๋จ์ํจ์๋ ๋ถ๊ตฌํ๊ณ FCO๋ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ํฅํ ๊ธฐ์ฌ์์๋ ๋ค์ ์ฃผ์ ์ ๋ํด ๋ ์์ธํ ์์๋ณผ ๊ณํ์ ๋๋ค.
- FCO์์์ ๋คํธ์ํน
- ์ค์๊ฐ ๋ณต๊ตฌ ๋ฐ FQP ํ๋กํ ์ฝ ์ ๊ณต
- ๋๋ง์ ํ๋ฌ๊ทธ์ธ๊ณผ ์์ ฏ ์์ฑ
- Load Balancer, Acronis ๋ฑ ์ถ๊ฐ ์๋น์ค ์ฐ๊ฒฐ
- ์ง์
- ๋ ธ๋ ๊ตฌ์ฑ ๋ฐ ๊ตฌ์ฑ์ ์ํ ํตํฉ ๋ฉ์ปค๋์ฆ
- ๊ฐ์ ๋จธ์ ๋ฉํ๋ฐ์ดํฐ ์ฒ๋ฆฌ
ZY ๋ค๋ฅธ ์ธก๋ฉด์ ๊ด์ฌ์ด ์์ผ๋ฉด ์๊ฒฌ์ ์์ฑํ์ญ์์ค. ๊ณ์ ์ง์ผ๋ด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค!
์ถ์ฒ : habr.com