CloudStack Network Model - cra16/overcast GitHub Wiki
์ด ๋ฌธ์๋ ์ค๋๋ ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ์ต์ ๋ด์ฉ์ผ๋ก ๊ฐฑ์ ํ ์์ ์ ๋๋ค.
์ด ๋ฌธ์๋ 2012๋ ๋น์์ CloudStack ์ค์น ๋ฐฉ๋ฒ์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ์ค์ต์ ํ์ฉํ๊ธฐ์๋ ๋ฌด๋ฆฌ๊ฐ ์์ผ๋ ์ค์น ํ๋ฆ์ ๋ฐฐ์ฐ๋ ๋จ์ ์ฐธ๊ณ ์ฉ์ผ๋ก ์ฌ์ฉํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
CloudStack์ ์์ฑ๋ ์ํํธ์จ์ด๋ก ์ ์ ๋ฆฌ๋ ๋ฌธ์๋ค์ ์ ๊ณตํ๋ค. ์ด๋ค ๋ฌธ์๋ค๋ง ์ฝ์ด๋ ํฐ ์ด๋ ค์ ์์ด ํด๋ผ์ฐ๋๋ฅผ ๊ตฌ์ถํ ์ ์๋ค. ํ์ง๋ง CloudStack์ ์ด์ฉํด์ ์ ๋๋ก๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ ์ด์ํ๋ ค๋ฉด CloudStack์์ ์ง์ํ๋ ํด๋ผ์ฐ๋ ๋คํธ์ํฌ ๋ชจ๋ธ๊ณผ ์คํ ๋ฆฌ์ง ๋ชจ๋ธ์ ์ดํดํ๊ณ ์์ด์ผ ํ๋ค.
๋จผ์ ํด๋ผ์ฐ๋ ์คํ์ network ๋ชจ๋ธ์ ์ค๋ช ํ๋ค.
ํ๊ฒฝ
์ด ๋ฌธ์์ ๋ด์ฉ์ ๋ค์ ํ๊ฒฝ์ ๊ธฐ์ค์ผ๋ก ๋ง๋ค์๋ค.
- Hypervisor
- XenServer 5.3
- ์ด์์ฒด์
- XenServer๋ ๋ฆฌ๋ ์ค์์๋ง ์๋ํ๋ค.
- CloudStack
์๊ท๋ชจ ํด๋ผ์ฐ๋ ๊ตฌ์ถ
์ค์๊ท๋ชจ์ ํ์ฌ๋ ์ฐ๊ตฌ์ค์์ ๊ฐ๋ฐ์ด๋ ํ ์คํธ๋ฅผ ์ํ ์์ ๊ท๋ชจ์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฒฝ์ฐ์ ์ฐธ๊ณ ํ ์ ์๋ ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ์ด๋ค.
- UTM
์ธํฐ๋ท์ ์ ์ ์ ๋์ด๋ ๋คํธ์ํฌ ์ฅ๋น๋ก ๋ฐฉํ๋ฒฝ, ๋ผ์ฐํฐ, NAT, port forwarding ๊ธฐ๋ฅ์ ์ํํ๋ ์ฅ๋น. ์ธํฐ๋ท์ผ๋ก ๋๊ฐ๊ธฐ ์ํด์๋ NAT, ๋ด๋ถ๋ก ๋ค์ด์ค๊ธฐ ์ํด์๋ port forwarding์ ์ด์ฉํ๋ค. port forwarding ๋์ SNAT์ ์ฌ์ฉํ ์๋ ์๊ฒ ๋ค.
- L2 Switch
๋ด๋ถ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๋ค.
- CNODE
Cloud node์ ์ค์๋ง๋ก ํด๋ผ์ฐ๋์ ์ฌ์ฉํ ๋ ธ๋๋ค์ด๋ค. Custom VM์ CNODE์ ๋ง๋ค์ด์ง๋ค.
- MNODE
Cloud ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ํํธ์จ์ด๊ฐ ์ค์น๋๋ ๊ด๋ฆฌ๋ ธ๋ (Management node)๋ก cloudstack ์ํํธ์จ์ด๊ฐ ์ค์น๋๋ค.
- SNODE
Storage node๋ก Custom VM์ ๋ง๋ค๊ธฐ ์ํ ISO ์ด๋ฏธ์ง, VHD Template, Snapshot์ ์ ์ฅํ๊ธฐ ์ํ ์ ์ฅ์๋ฅผ ์ ๊ณตํ๋ค. ๋๊ท๋ชจ ํด๋ผ์ฐ๋๋ฅผ ๊ตฌ์ถํ๋ ค ํ๋ค๋ฉด, Custom VM์ root disk๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉํ ์๋ ์๋ค. ์ ์ฅ์์ ์ ๊ทผํ๊ธฐ ์ํด์ NFS ํน์ ISCSI ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค.
๋ฆฌ๋ ์ค ์์คํ ๊ณผ NFS, ISCSI๋ฑ์ ๋ํ ์ดํด๊ฐ ์๋ค๋ฉด ๊ทธ๋ฆฌ๊ณ ๋ฌธ์๋ฅผ ๊ผผ๊ผผํ ์ฝ์ผ๋ฉด์ ์ค์นํ๋ค๋ฉด 3-4์ผ ์ด๋ด์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ ๊ฒ์ด๋ค.
๋๊ท๋ชจ ํด๋ผ์ฐ๋ ๊ตฌ์ฑ
๋ฐ๋ก ์์์ ๋ค๋ฃจ์๋ ํด๋ผ์ฐ๋ ๊ตฌ์ฑ์ ์ฌ์ค(private) ํด๋ผ์ฐ๋๋ก ์ค์ ๊ท๋ชจ์ ํ์ฌ์์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ์ ์ถฉ๋ถํ๋ค. ๊ทธ๋ฌ๋ ๋ํ์ด๋ ํฐ ๊ท๋ชจ์ ๊ธฐ์ ํน์ ํด๋ผ์ฐ๋๋ฅผ ์๋น์ค ํ๊ธฐ ์ํด์๋ ๊ทธ์ ๊ฑธ๋ง๋ ํด๋ผ์ฐ๋ ๊ตฌ์ฑ์ด ํ์ํ๋ค. ๋ค์์ ๋๊ท๋ชจ ํด๋ผ์ฐ๋ ๊ตฌ์ฑ์ ์ํ ์ ์์ด๋ค.
์ด ๊ตฌ์ฑ์ ๋ช๊ฐ์ POD๋ก ๊ตฌ์ฑ๋๋ค. POD๋ ์ ์ฅ์(storage)์ Cloud node cluster๋ก ๊ตฌ์ฑ๋ cloud ๊ตฌ์ฑ ๋จ์๋ก, ๋ฐ์ดํฐ ์ผํฐ์ rack๊ณผ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
Management POD์๋ cloud๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ํํธ์จ์ด๋ฅผ ๊ตฌ๋ํ๊ธฐ ์ํ ๋ ธ๋๋ค ๊ทธ๋ฆฌ๊ณ SNODE๊ฐ ์์นํ๋ค.
SNODE๋ฅผ ๋ณด๋ฉด ์ฃผ์ ์ฅ์(primary storage)์ ๋ถ์ ์ฅ์(secondary storage) ๋ ์ข ๋ฅ๊ฐ ์๋ค. primary storage๋ ๊ฒ์คํธ VM์ Root Disk์ Data volume๋ฑ ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ด๊ณ , Secondary storage๋ snapshot, template ๋ฑ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ด๋ค.
VM์ Root disk์ Data volume์ vm์ด ์์ฑ๋ CNODE์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ Primary storage๋ฅผ ๋ฐ๋ก ์ด์ฉํ ํ์๊ฐ ์๋ค๋ ์ฅ์ ์ด ์๋ ๋ฐ๋ฉด, vm์ด๋ backup ๊ธฐ๋ฅ๋ฑ์ ๊ตฌํ์ด ์ด๋ ค์์ง๋ฉฐ fault tolerantํ ์ด์์ด ์ด๋ ค์์ง๋ค๋ ๋จ์ ์ด ์๋ค.
Primary storage๋ฅผ ๋ฐ๋ก ์ด์ฉ์ ํ๋ฉด, storage๊น์ง ์ถ์ํํจ์ผ๋ก ์ข๋ ํด๋ผ์ฐ๋ ๋ค์ด ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
๋ฐ๋ฉด Primary storage๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด์๋ ๊ฝค ๋ง์ ๋ณ๋์ ๋น์ฉ์ด ํ์ํ๋ค๋ ๋จ์ ์ด ์๋ค. ๋ฃจํธ ๋์คํฌ์ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ๋์ญํญ๊ณผ ์ ๊ทผ์๋๊ฐ ์ค์ํ๋ฐ, ์ด๋ฅผ ๋ง์กฑํ๊ธฐ ์ํด์๋ ๊ณ ์ฑ๋ฅ์ ์ฅ๋น๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋์ ์คํ ๋ฆฌ์ง์ ๊ธฐ๋ฅ์ ์ด์ฉํด์ fault tolerantํ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋ค.
์๋ฅผ ๋ค์ด Primary storage๋ก ZFS๋ฅผ ์ฌ์ฉํ๋ค๋ฉด RAIDZ, snapshot, ์์ถ, hot-spot, mirror ๋ฑ์ ๊ธฐ๋ฅ์ ์ด์ฉํด์ ์์ ๋ ์คํ ๋ฆฌ์ง์์์ ์ ๊ณตํ ์ ์๋ค.
์ ๊ตฌ์ฑ์ ๋ชจ๋ VM์ด L2๋ก ๋ฌถ์ด๋ ๊ตฌ์ฑ์ผ๋ก, ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑํ ์ ์์ง๋ง ๋์ผํ ๋ธ๋ก๋์ผ์คํ ์์ญ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ฅญํ ๊ตฌ์ฑ์ด๋ผ๊ณ ๋ ํ ์ ์๋ค. ํด๋ผ์ฐ๋๋ก ์ผ๋ฐ ์ฌ์ฉ์์๊ฒ VM์ ์๋น์ค๋ฅผ ํ๋ค๋ฉด ์ ์ ๋ณ Network๊ฐ ๊ฒฉ๋ฆฌ(isolation)๊ฐ ์ค์ํ ํ ๋ฐ, L2 ๋คํธ์ํฌ์์ ์ฌ์ฉํ ๋งํ ๋ฐฉ๋ฒ์ผ๋ก๋ VLAN์ด ์ ์ผํ๋ค. VLAN๊ตฌ๊ฒฉ์ธ IEEE 802.1.q๋ ์ต๋ VLAN์ ํฌ๊ธฐ๋ฅผ 4092๋ก ์ ํ๊ณ ์๋ค. ์ด๋ ์ฌ์ฉ์ ์๊ฐ 4096๋ช ์ ๋์ด๊ฐ๋ฉด, ๋ ๊ฒฉ๋ฆฌํ ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ์ ๋ฅผ ์ถ๊ฐํ ์ ์์์ ์๋ฏธํ๋ค.
๋๋ฌธ์ ์ด ๊ตฌ์ฑ์ ๋ฐ์ดํฐ ์ผํฐ๊ธ์ ํด๋ผ์ฐ๋ ๊ตฌ์กฐ๋ก๋ ์ ํฉํ์ง ์๋ค. ๊ทธ๋ฌ๋ ์ ๋งํ ์ค/๋๊ท๋ชจ์ ํด๋ผ์ฐ๋ ์ผํฐ ๊ตฌ์ถ์๋ ์ถฉ๋ถํ๋ฆฌ๋ผ ์๊ฐ๋๋ค. ์ด ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํ ์ด์ ๋ CloudStack 2.2.13์ ๋ ๊ฐ ๋คํธ์ํฌ ๋ชจ๋ ์ค ํ๋์ธ Advanced Network mode๊ฐ ์ด ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Network ๋ถ๋ฆฌ
ํด๋ผ์ฐ๋๋ฅผ ์๋น์ค๋ ๋ง ๋ถ๋ฆฌ๊ฐ ํ์์ ์ด๋ค. 4๊ฐ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค.
- Public network. ์ธํฐ๋ท์ผ๋ก ์ฐ๊ฒฐํ๊ธฐ ์ํ ๋คํธ์ํฌ.
- Guest network. ์ผ๋ฐ ์ ์ ๋ฅผ ์ํ private ๋คํธ์ํฌ.
- Manage network. CNODE์ SNODE๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋คํธ์ํฌ, CloudStack API์ ํต๋ก๋ค.
- Storage network. Primary storage๋ ๋๋์ ๋ฐ์ดํฐ๊ฐ ์ด๋ํ๋ฏ๋ก ์ถฉ๋ถํ ๋์ญํญ์ ์ ๊ณตํด์ผ ํ๋ค. Secondary storage๋ ์๋น์ค ๊ท๋ชจ์ ๋ฐ๋ผ์ Manage network์ ์์นํด๋ ๋๋ค.
- 16.83.0.0/16 ํผ๋ธ๋ฆญ ๋คํธ์ํฌ๋ค. ์ ์ VM์ ์ด ๋คํธ์ํฌ๋ฅผ ์ด์ฉํด์ ์ธํฐ๋ท๊ณผ ์ฐ๊ฒฐํ ์ ์๋ค.
- 172.20.0.0/16 ์ ์ VM์ private ๋คํธ์ํฌ๋ค.
- 10.10.1.0/24 ๋งค๋์ง๋จผํธ๋ฅผ ์ํ ๋คํธ์ํฌ๋ค. ์ด ๋คํธ์ํฌ๋ฅผ ์ด์ฉํด์ ํด๋ผ์ฐ๋ ์์์ ๊ด๋ฆฌํ๋ค.
- 10.20.1.0/24 CNODE๋ ์ด ๋คํธ์ํฌ๋ฅผ ์ด์ฉํด์ ์คํ ๋ฆฌ์ง์ ์ ๊ทผํ ์ ์๋ค.
๋๋ต ์์คํ ๊ฒฌ์ ์ด ๋์จ๋ค.
- CNODE๋ 4๊ฐ ์ ๋์ 1G ๋คํธ์ํฌ ์นด๋๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฒ ์ข๊ฒ ๋ค.
- MNODE๋ 2๊ฐ์ 1G ๋คํธ์ํฌ ์นด๋๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
- SNODE๋ ๊ทธ๋ฆผ ์์ผ๋ก 2๊ฐ์ง๋ง ๋์ญํญ์ ํ๋ณดํด์ผ ํ๊ธฐ ๋๋ฌธ์, ๋ฉ๋์ง๋จผํธ์ฉ์ผ๋ก ์ฌ์ฉํ 1G ๋คํธ์ํฌ ์นด๋์ 2๊ฐ ์ด์์ 10G ๋คํธ์ํฌ์นด๋๊ฐ ํ์ํ๊ฒ ๋ค.
Storage ์์คํ ๋ฐ ๋คํธ์ํฌ ๊ตฌ์ฑ
Primary storage๋ ๋์ญํญ๊ณผ ์๋๊ฐ ์ค์ํ๋ฏ๋ก ๊ฒฐ๊ตญ NAS๋ฅผ ์ฌ์ฉํด์ผ ํ ๊ฒ ๊ฐ๋ค. iSCSI๋ฅผ ์คํ ๋ฆฌ์ง ์์ธ์ค ํ๋กํ ์ฝ๋ก ์ฌ์ฉํ๋ฉด ๋๊ฒ ๋ค. ์ด์ ์คํ ๋ฆฌ์ง๋ฅผ ๊ตฌ์ฑํ ํ์ผ์์คํ ์ ์ ํํด์ผ ํ๋๋ฐ, ZFS๋ฅผ ์ถ์ฒํ ๋ง ํ๋ค.
์คํ ๋ฆฌ์ง ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฐฉ๋ฒ 2๊ฐ์ง๋ฅผ ์๊ฐํ๋ค.
Link Aggregation
LACP๋ฅผ ์ด์ฉ ๋๊ฐ ์ด์์ NIC๋ฅผ ๋ฌถ์ด์ ํ๋์ ๋ฌผ๋ฆฌ์ ์ธ NIC์ธ ๊ฒ์ฒ๋ผ ๋ง๋ค ์ ์๋ค. ์ด๋ ๊ฒ ํด์ ๋์ญํญ์ ํ๋ณดํ ์ ์์ผ๋ฉฐ, NIC ์ฅ์ ์ ๋ํ Fail Over๊ฐ ๊ฐ๋ฅํ๋ค. Primary storage์ Secondary storage ๋ชจ๋์ ์ ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
Multipath I/O
๋คํธ์ํฌ ํธ๋ํฝ์ ๋๊ฐ ์ด์์ ์ค์์น๋ก ๋ถ์ฐํ๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฌผ๋ฆฌ์ NIC์ ํ๋์ NIC์ฒ๋ผ ๋ณด์ด๊ฒ ํ ์ ์์ผ๋ฉฐ, fail over๋ ๊ฐ๋ฅํ๋ค.