2023. 9. 9. 23:13ใSystem ์์ ์ค/Server ๊ด๋ จ
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ ๋ชฉ์ฐจ
1. [Hyper-V] [Open Stack] Open Stack์ด๋?
2. [Hyper-V] [Open Stack] [Controller Node] Hyper-V ๊ตฌ์ฑ ๋ฐ Ubuntu 22.04.3 LTS Server ์ค์น
3. [Hyper-V] [Open Stack] [Controller Node] โ ์คํ์คํ ํจํค์ง ์ค์น
4. [Hyper-V] [Open Stack] [Controller Node] โก NTP Server ๊ตฌ์ฑ
5. [Hyper-V] [Open Stack] [Controller Node] โข RabbitMQ - Message Queue ์ค์น ๋ฐ ๊ตฌ์ฑ
6. [Hyper-V] [Open Stack] [Controller Node] โฃ Memcached ์ค์น ๋ฐ ๊ตฌ์ฑ
7. [Hyper-V] [Open Stack] [Controller Node] โค Etcd ์ค์น ๋ฐ ๊ตฌ์ฑ
8. [Hyper-V] [Open Stack] [Controller Node] โฅ Keystone - Identity ์ค์น ๋ฐ ๊ตฌ์ฑ
9. [Hyper-V] [Open Stack] [Controller Node] โฆ Image Service - Glance ์ค์น ๋ฐ ๊ตฌ์ฑ
10. [Hyper-V] [Open Stack] [Controller Node] โง Compute Service - Nova ์ค์น ๋ฐ ๊ตฌ์ฑ
11. [Hyper-V] [Open Stack] [Contoller Node] โจ Neutron - Network ์๋น์ค ์ค์น ๋ฐ ๊ตฌ์ฑ
12. [Hyper-V] [Open Stack] [Controller Node] โ โช Horizon - Dashboard ์๋น์ค ์ค์น ๋ฐ ๊ตฌ์ฑ
11. [Hyper-V] [Open Stack] [Compute Node] ์ค๋น์ค
๐ Network ์๋น์ค ์ค์น ๋ฐ ๊ตฌ์ฑ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
์ด๋ฒ์๋ ๋คํธ์ํน ์๋น์ค๋ฅผ ์ ๊ณตํ๋ neutron์ ์ค์นํ๊ณ , ๊ตฌ์ฑํด ๋ณด๋ ค๊ณ ํด์.
๊ทธ๋์ provider networks ๋๋ self-service networks(์ด์ฉ์ ๊ด์ ) ์ต์
์ ์ฌ์ฉํ์ฌ ๋คํธ์ํน ์๋น์ค๋ฅผ ์ค์นํ๊ณ , ๊ตฌ์ฑํด ๋ณผ๊ฒ์.
์คํ์คํ์์ ์ ๊ณตํ๋ Provider ๊ด์ ์์์ ๋คํธ์ํฌ์ ํด๋ผ์ฐ๋๋ฅผ ์ด์ฉํ๋ ์ด์ฉ์ ๊ด์ ์์์ ๋คํธ์ํฌ๋ฅผ ๊ตฌ๋ถํ์ฌ ๊ตฌ์ฑํ ์ ์์ด์.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์คํ์คํ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ ์ ์์ด์.
Provider ๊ด์ ์์์ ๋คํธ์ํฌ์์๋ Management, Guest, External, API 4๊ฐ์ง๋ก ๋ถ๋ฅํ ์ ์์ด์.
์ข ๋ฅ | ์ ์ธ ๋ด ์ฉ |
Management Network | ์คํ์คํ์ ๊ตฌ์ฑํ๋ ์๋น์ค๋ค์ด ์ด์ฉํ๋ ๋คํธ์ํฌ. ์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋ ์ฌ์ด์ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ(VLAN) ์ด์ฉ. |
Guest Network | ์ธ์คํด์ค ์ฌ์ด์ ํต์ ์ ์ฌ์ฉ๋๋ ๋คํธ์ํฌ. ์ผ๋ฐ์ ์ผ๋ก VxLAN/GRE ๊ธฐ๋ฐ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์ด์ฉํ๋, ๋ฌผ๋ฆฌ ๋คํธ์ํฌ(VLAN)์ผ๋ก๋ ๊ตฌ์ฑ ๊ฐ๋ฅ. |
External Network | ์ธ์คํด์ค๋ค์ด ์ธ๋ถ์ ํต์ ์ ์ด์ฉ๋๋ ๋คํธ์ํฌ. ์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋ ์ฌ์ด์ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ(VLAN) ์ด์ฉ. |
API Network | ์คํ ์คํ์ ์๋น์ค API๋ฅผ ์ด์ฉ์์๊ฒ ๋
ธ์ถ์ํค๋ ํต๋ก๊ฐ ๋๋ ๋คํธ์ํฌ. ์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋ ์ฌ์ด์ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ(VLAN) ์ด์ฉ. |
์ด์ฉ์ ๊ด์ ์์์ ๋คํธ์ํฌ๋ Provider Network, Self-service Network๋ก ๋ถ๋ฅํ ์ ์์ด์.
์ข ๋ฅ | ์ ์ธ ๋ด ์ฉ |
Provicer Network | Provider(ํด๋ผ์ฐ๋ ๊ด๋ฆฌ์)๊ฐ ์์ฑํ๋ ๋คํธ์ํฌ. Provider๋ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ(VLAN) ๊ธฐ๋ฐ์ ๋คํธ์ํฌ๋, VxLAN/GRE ๊ธฐ๋ฐ์ ๊ฐ์ ๋คํธ์ํฌ ๋ชจ๋ ์์ฑ ๊ฐ๋ฅ. Provider ๊ด์ ์์์ Guest, External Network๊ฐ Provider Network๋ผ๊ณ ํ ์ ์์ผ๋ฉฐ, ์ธ์คํด์ค๋ค์ด ๋ฌผ๋ฆฌ ๋คํธ์ํฌ(VLAN) ๊ธฐ๋ฐ์ Provider ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋๊ธฐ ์ํด์๋ ํด๋น ๋ฌผ๋ฆฌ ๋คํธ์ํฌ๊ฐ ์ปดํจํธ ๋ ธ๋์๋ ์ฐ๊ฒฐ๋์ด ์์ด์ผ ํจ. |
Self-service Network | ํด๋ผ์ฐ๋ ์ด์ฉ์๊ฐ ์ง์ ์์ฑํ ๊ฐ์์ ๋คํธ์ํฌ. ์ด์ฉ์๋ VxLAN/GRE ๊ธฐ๋ฐ์ ๊ฐ์ ๋คํธ์ํฌ๋ง ์์ฑ ๊ฐ๋ฅ. Provider ๊ด์ ์์ Guest Network๊ฐ Self-service Network๋ผ๊ณ ํ ์ ์์. |
๋คํธ์ํน ์๋น์ค์ ํฌํจ๋ ๊ฐ์ ๋คํธ์ํน ๊ตฌ์ฑ ์์, ๋ ์ด์์, ํธ๋ํฝ ํ๋ฆ์ ๋ํ ๋ ๋ง์ ์ ๋ณด๋ OpenStack Networking Guide๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฑฐ ๊ฐ์์.
์คํ์คํ ๋คํธ์ํน (neutron)์ ๋ค๋ฅธ ์คํ์คํ ์๋น์ค๋ค์ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๊ณ , ์ธํฐํ์ด์ค ๋๋ฐ์ด์ค์ ๋ํ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ ์ ์์ด์. Plugin(ํ๋ฌ๊ทธ์ธ)์ผ๋ก ์คํ ์คํ ์ํคํ
์ฒ์ ๋ฐฐํฌ์ ๋ํ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ ๋ค๋ฅธ ๋คํธ์ํฌ ์ฅ๋น์ ์ํํธ์จ์ด๋ฅผ ์์ฉํ ์ ์๋๋ก ๊ตฌ์ฑํ ์ ์๋ค๊ณ ํด์.
์คํ์คํ ๋คํธ์ํน ์๋น์ค๋ ์๋ ๊ตฌ์ฑ์์๋ฅผ ๊ฐ์ง๊ณ ์์ด์.
๊ตฌ์ฑ ์์ | ์์ธ ๋ด์ฉ |
neutron-server | API ์์ฒญ์ ์๋ฝํ๊ณ , ์์ฒญ ์ํ์ ์ํ ์ ํฉํ OpenStack Networking Plugin์ ์ ๋ฌ. ์ปจํธ๋กค๋ฌ ๋ ธ๋์์ ๋์ํ๋ฉฐ, Provider ๋๋ ์ด์ฉ์์๊ฒ ๋คํธ์ํฌ API ์ ๊ณตํ๊ณ , ์์ฒญ์ ๋ฐ๋ผ ์ ๋ฐ์ ์ธ ์คํ์คํ ๋คํธ์ํฌ ์ ์ด ๋ฐ ๊ด๋ฆฌ ์ํ. ๋คํธ์ํฌ ์์ฑ, ์๋ธ๋ท ๋ฐ ๋ผ์ฐํฐ ์์ฑ ๋ฐ ์ญ์ , SQL Database ๊ด๋ฆฌ ๋ฑ์ ์์ฒญ์ API๋ฅผ ์ด์ฉํ์ฌ ์๋น์ค. ๋คํธ์ํฌ ์์ฑ, ์๋ธ๋ท ๋ฐ ๋ผ์ฐํฐ ์์ฑ ๋ฐ ์ญ์ , SQL Database ๊ด๋ฆฌ ๋ฑ์ ์์ฒญ์ API๋ฅผ ์ด์ฉํ์ฌ ์๋น์ค. |
ML2 Plugin Agnet | ๋คํธ์ํฌ ๋
ธ๋ ํน์ ์ปดํจํธ ๋
ธ๋์์ ๋์ํ๋ฉฐ, neutron-server์ ์ง์์ ๋ฐ๋ผ VLAN, Bridge, OVS(Open vSwitch)์ ๊ฐ์ L2 ๊ณ์ธต ์ ์ด. ๋ก์ปฌ ๊ฐ์ ์ค์์น ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ. ๋คํธ์ํฌ ํฌํธ์ ๋ํด ๋คํธ์ํฌ ๋๋ ์๋ธ๋ท์ ์์ฑ, IP ์ฃผ์ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉ. - L2 Agent: ์ผ๋ฐ์ ์ผ๋ก ๋คํธ์ํฌ์ ์ปดํจํธ ๋ ธ๋์ ์ค์น๋๋ฉฐ, RPC๋ฅผ ์ฌ์ฉํ์ฌ neutron-server์ ํต์ . L2 Agent๋ Device ์ถ๊ฐ ๋๋ ์ญ์ ์ํฉ์ Monitoring ํ๋ฉฐ, ๋์ค ๋ฌธ์ ๋ฐ์ ์ ์ด๋ฅผ ์ ๋ฌํ๊ณ , ํธ์คํธ ์์ ๋คํธ์ํฌ ์ค์ ์ญํ ์ํ. ๋ํ, linux brige, ovs(open vSwitch), ๋ณด์ ๊ทธ๋ฃน ๋ฐ vlan Tagging๋ ์ฒ๋ฆฌ ๊ฐ๋ฅ. - L3 Agent: ๋คํธ์ํฌ ๋ ธ๋์์ ๋์ํ๋ฉฐ, neutron-server์ ์ง์์ ๋ฐ๋ผ Router, Firewall๊ณผ ๊ฐ์ L3 ๊ณ์ธต ์ ์ด ๋ฐ Floting IP์ ๋ํ Message๋ฅผ ๋ฐ์ ๊ด๋ฆฌ. ๊ฐ ๋ด๋ถ ๋คํธ์ํฌ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ , ๋ด๋ถ ๋คํธ์ํฌ ์ ๋ณด๋ฅผ ๋ฐ์ ์ธ๋ถ ๋คํธ์ํฌ๋ก ์ ๋ฌํ๋ ์ญํ ์ํ. - DHCP Agent: ์ธ์คํด์ค์๊ฒ IP๋ฅผ ๋ถ์ฌํ๊ธฐ ์ํ DHCP Server ์ ์ดํ๋ฉฐ, Router์ Meta Proxy๋ฅผ ๋์ ํ๋ ๋ณ๋ Meta Proxy๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, neutron-server๋ก ๋ถํฐ ๋คํธ์ํฌ ์์ฑ ๋ฐ ์ญ์ ์ ๋ํ Message๋ฅผ ๋ฐ์ผ๋ฉด dnsmasq ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ DHCP ์๋ฒ๋ก ์ฌ์ฉ. DHCP Agent์ Meta Proxy๋ ์ธ์คํด์ค๊ฐ Router์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ๊ณ ๋ฆฝ๋ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ, ๊ณ ๋ฆฝ๋ ๋คํธ์ํฌ ID์ VM Metadata ์์ฒญ Packet์ ์๋ ์ธ์คํด์ค IP ์ ๋ณด๋ฅผ Meta Agent์๊ฒ ์ ๋ฌํ์ฌ Meata Agent๊ฐ VM Metadata๋ฅผ ์ป์ ์ ์๋๋ก ํจ. - Meta Agent: ์ธ์คํด์ค ๋ด๋ถ์์ ์ธ์คํด์ค ์ด๊ธฐํ๋ฅผ ์งํํ๋ Cloud-Init ๋๋ Cloudbase์๊ฒ ์ธ์คํด์ค ์ด๊ธฐํ์ ํ์ํ ์ธ์คํด์ค VM Metadata๋ฅผ Nova์๊ฒ ์ป์ด์ ์ ๋ฌ. Cloud-Init ๋๋ Cloudbase๋ก ๋ถํฐ ์ ๋ฌ๋ VM Metadata ์์ฒญ์ Router์ Routing Rule ๋ฐ ๊ฐ Router์ ํ๊ฐ์ฉ ์กด์ฌํ๋ Meta Proxy๋ฅผ ํตํด Meta Agent์๊ฒ ์ ๋ฌ. Meta Agent๋ VM Metadata ์์ฒญ์ด ์จ Router์ ID์ VM Metadata ์์ฒญ Packet์ ์๋ ์ธ์คํด์ค IP ์ ๋ณด๋ฅผ neutron-server์๊ฒ ์ ๋ฌํ์ฌ ์ธ์คํด์ค ID ํ๋ํ ๋ค Meta Agent๋ ์ธ์คํด์ค ID๋ฅผ ์ด์ฉํ์ฌ Nova์๊ฒ ์ป์ VM Metadata๋ฅผ ํด๋น ์ธ์คํด์ค์ Cloud-Init ๋๋ Cloudbase์ ์ ๋ฌ. ์ผ๋ฐ์ ์ผ๋ก ๋คํธ์ํฌ ๋ ธ๋์ ์ค์น๋๋ฉฐ, RPC๋ฅผ ํตํด neutron-server์ ํต์ ํ๊ณ , IP ์ฃผ์, ํธ์คํธ ์ด๋ฆ, ํ๋ก์ ํธ์ ๊ฐ์ด ์ธ์คํด์ค๊ฐ ์์ฒญํ ์ ๋ณด ์ ๊ณต. -Core Plugin: Network, Subnet๊ณผ ์ฐ๊ด๋ ๊ธฐ๋ฅ ์ํ. neurton API๋ฅผ ๊ตฌํํ๊ณ , ๋คํธ์ํฌ, ํฌํธ, ์๋ธ๋ท์ด ํํํ๋ ๋ ผ๋ฆฌ์ ๋คํธ์ํฌ๋ฅผ L2 Agent ๋ฐ IP ์ฃผ์ ๊ด๋ฆฌ ์์คํ ์ ์ํด ์ ์ฉ๋๋๋ก ํ๋ ์ญํ . - Service Plugin: Router, Load balancer, Firewall ๊ฐ์ L3 ๊ณ์ธต ์ฐ๊ด ์ญํ ์ํ. Routing, Firewall ๊ทธ๋ฆฌ๊ณ , Load balancer์ ๊ฐ์ ๋คํธ์ํฌ ์๋น์ค ์ถ๊ฐ. |
OpenStack Networking Plugin & Agent | Port ์ฐ๊ฒฐ, Unplug, Network ํน์ Subnet ์์ฑ ๋ฐ IP ์ฃผ์ ํ ๋น. ํด๋น Plugin๊ณผ Agent๋ค์ ํน์ ํด๋ผ์ฐ๋์ ์ฌ์ฉ๋ Vender ๋๋ ๊ธฐ์ ๋ฐฉ์์ ๋ฐ๋ผ ์ฐจ์ด์ ์ด ์์. OpenStack Networking์ Cisco์ ๊ฐ์ ๋ฐ ๋ฌผ๋ฆฌ ์ค์์น, NEC์ OpenFlow ์ ํ, Open vSwitch, Linux Bridge, ๊ทธ๋ฆฌ๊ณ VMware NSX ์ ํ์ ์ํ Plugin๊ณผ Agent๋ค์ ํฌํจ. ๊ณตํต์ ์ธ Agent๋ก L3(Layer 3), DHCP (๋์ ํธ์คํธ IP ์ฃผ์), ๊ทธ๋ฆฌ๊ณ Plugin Agent ์กด์ฌ. |
Message Queue | neutron-server์ ๋ค์ํ Agent ๊ฐ ์ ๋ณด ์ ๋ฌ์ ์ํด OpenStack Networking์์ ์ฌ์ฉ. ํน์ Plugin๋ค์ ์ํ Networking ์ํ ์ ์ฅ Data Base๋ก๋ ์ด์ฉ. OpenStack Networking์ ์ฃผ๋ก OpenStack Compute Node์ ์ฐ๋๋์ด ์ธ์คํด์ค๋ฅผ ์ํ Network ์ฐ๊ฒฐ ์ ๊ณต. |
Ml2 Plugin์ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค๊ฒ์ผ๊น์?
- Ml2 Network Driver: ์คํ์คํ ํ๊ฒฝ์ ์ฌ์ฉํด ๋ค์ํ ๋คํธ์ํฌ 2๊ณ์ธต ๊ธฐ์ ์ ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํ๋ Framework(ํ๋ ์์ํฌ)
- Ml2 Plugin: LOCAL, FLAT, VLAN, GRE, VxLAN ๋คํธ์ํฌ ํ์
์ ๋ํ Driver(๋๋ผ์ด๋ฒ) ์ง์.
โ LOCAL: ๋จ์ผ ๋
ธ๋์์ ํ
์คํธ ์ฉ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ํธ์คํธ ๊ฐ ์ฐ๊ฒฐ ์ง์ํ์ง ์์.
โ FLAT: ๋ชจ๋ ์ธ์คํด์ค๋ค์ ๋์ผ ๋คํธ์ํฌ์ ์์นํ๋ฉฐ, ์ฌ๋ฌ ํธ์คํธ์ ๊ณต์ ๊ฐ๋ฅ. ๋คํธ์ํฌ๋ฅผ ๋ถ๋ฆฌํด์ ์์ฑํ ์ ์์.
โ VLAN: ๊ฐ์ ์ค์์น์์ ์คํ์ค์ธ ์ธ์คํด์ค์ ๋คํธ์ํฌ ํธ๋ํฝ ๋ถํ ์ํด ์ฌ์ฉ. ์ฌ์ฉ์์ ํ์์ ๋ฐ๋ผ
์ฌ๋ฌ Provider(ํ๋ก๋ฐ์ด๋) ๋๋ Project(ํ๋ก์ ํธ) ๋คํธ์ํฌ๋ฅผ ์์ฑํ ์ ์๋๋ก ํ๋ฉฐ, ์ธ์คํด์ค ๊ฐ ํต์ ์ด ๊ฐ๋ฅํ๊ณ ,
Layer 2 (2๊ณ์ธต)์ ์์นํ Firewall(๋ฐฉํ๋ฒฝ), Load Balancer(๋ก๋๋ฐธ๋ฐ์)์๋ ํต์ ๊ฐ๋ฅ.
โ GRE: ์ธ์คํด์ค ์ํธ ๊ฐ ๋คํธ์ํฌ ํฐ๋์ ์ด์ฉํ์ฌ ์ฌ์ค ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธฐ์ .
โ VxLAN: ๋คํธ์ํฌ Overlay(์ค๋ฒ๋ ์ด) ๊ธฐ์ ์ค ํ๋๋ก, L2 ๋คํธ์ํฌ์ ํ์ฅ๋ ๊ธฐ์ (Mac over IP/UDP).
์คํ์คํ ๋คํธ์ํน (neutron)์ ๊ฐ์ ๋คํธ์ํน ์ธํ๋ผ (VNI)์ ๋ํ ๋ชจ๋ ๋คํธ์ํน ์ธก๋ฉด๊ณผ ์คํ์คํ ํ๊ฒฝ์์ ๋ฌผ๋ฆฌ ๋คํธ์ํน ์ธํ๋ผ(PNI)์ ์ ๊ทผ ๊ณ์ธต ์ธก๋ฉด์ผ๋ก ๊ด๋ฆฌ๋๋ค๊ณ ํด์.
์คํ์คํ ๋คํธ์ํน์ firewall(๋ฐฉํ๋ฒฝ), Load balancer(๋ก๋ ๋ฐธ๋ฐ์), private network(VPN) ๊ฐ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ , ํ๋ก์ ํธ์์ ๊ณ ๊ธ ๊ฐ์ ๋คํธ์ํฌ ํ ํด๋ฆฌ์ง๋ฅผ ์์ฑํ ์ ์๋ค๊ณ ํฉ๋๋ค.
๋คํธ์ํน์์๋ ๊ฐ์ฒด ์ถ์ํ๋ฅผ ํตํด ๋คํธ์ํฌ, Subnet(์๋ธ๋ท), Router(๋ผ์ฐํฐ)๋ฅผ ์ ๊ณตํ๊ณ ์๊ณ , ๊ฐ ์ถ์ ๋ฌผ๋ฆฌ ๊ตฌ์ฑ๊ณผ ๋์ผํ ๊ฐ์ํ ๊ธฐ๋ฅ๋ค์ด ์๋ค๊ณ ํด์.
๋คํธ์ํฌ๋ ์๋ธ๋ท์ด ํฌํจ๋์ด ์๊ณ , ๋ค๋ฅธ ์๋ธ๋ท๊ณผ ๋คํธ์ํฌ ๊ฐ ํธ๋ํฝ์ ๋ผ์ฐํฐ๋ฅผ ํตํ์ฌ ๋๋ ์ง๋ค๊ณ ํฉ๋๋ค.
๋ํ, ์์๋ก ์ฃผ์ด์ง ๋คํธ์ํน์ ํ๋ ์ด์์ ์ธ๋ถ ๋คํธ์ํฌ๋ฅผ ๊ฐ๊ณ ์์ ์ ์์ด์.
๋ค๋ฅธ ๋คํธ์ํฌ์ ๋ฌ๋ฆฌ ์ธ๋ถ ๋คํธ์ํฌ๋ ๋จ์ง ๊ฐ์์ผ๋ก ์ ์๋ ๋คํธ์ํฌ๋ฅผ ์๋ฏธํ์ง ์์์.
ํ์ง๋ง, ์คํ ์คํ ํ๊ฒฝ ์ธ๋ถ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ๋ฌผ๋ฆฌ, ์ธ๋ถ ๋คํธ์ํฌ์ ๋ํ ํ๋ฉด์ ์ ๊ณตํ๋ค๊ณ ํฉ๋๋ค.
์ธ๋ถ ๋คํธ์ํฌ์ IP ์ฃผ์๋ ์ธ๋ถ ๋คํธ์ํฌ ์์ ์์์ ๋ฌผ๋ฆฌ์ ์ธ ๊ฐ์ฒด์์ ์ ๊ทผ์ด ๊ฐ๋ฅํด์.
์ธ๋ถ ๋คํธ์ํฌ ๋ฟ ์๋๋ผ, ์์์ ๋คํธ์ํน์ ํ๋ ์ด์์ ๋ด๋ถ ๋คํธ์ํฌ๋ฅผ ๊ฐ๊ฒ ํด์ฃผ์ด์ผ ํด์.
์ด๋ฌํ ๊ฐ์ ๋คํธ์ํฌ๋ค์ ๊ฐ์ฑ ๋จธ์ ์ ์ง์ ์ฐ๊ฒฐ๋๊ณ , ์์์ ์ฃผ์ด์ง ๋ด๋ถ ๋คํธ์ํฌ ๋๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋น์ทํ ๋ผ์ฐํฐ์ ์ฐ๊ฒฐ๋ ์๋ธ๋ท ์์ ๊ฐ์๋จธ์ ์์๋ง ๋์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ๊ฐ์๋จธ์ ์ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํด์.
์ธ๋ถ ๋คํธ์ํฌ์์ ๊ฐ์๋จธ์ ์ ์ ๊ทผํ๊ฑฐ๋, ๋ฐ๋์ ๊ฒฝ์ฐ ๋คํธ์ํฌ ์ฌ์ด์ ๋ผ์ฐํฐ๋ผ๋ ์ฅ๋น๊ฐ ํ์ํด์.
๊ฐ ๋ผ์ฐํฐ๋ ์ธ๋ถ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ํ๋์ Gateway(๊ฒ์ดํธ์จ์ด)์ ํ๋ ์ด์์ ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๋ ๋ด๋ถ ๋คํธ์ํฌ๋ก ๊ตฌ์ฑ๋์ด ์์ด์.
๋ฌผ๋ฆฌ์ ๋ผ์ฐํฐ์ ๊ฐ์ด ๋์ผํ ๋ผ์ฐํฐ์ ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ์๋ธ๋ท ๊ฐ์ ๋จธ์ ์ ์ ๊ทผํ ์ ์๊ณ , ๊ฐ์ ๋จธ์ ์์ ๋ผ์ฐํฐ์ ๊ฒ์ดํธ์จ์ด๋ฅผ ํตํด ์ธ๋ถ ๋คํธ์ํฌ์ ์ ์๋ ํ ์ ์์ด์.
๋ํ, ์ธ๋ถ ๋คํธ์ํฌ๋ฅผ ๋ด๋ถ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ๋๋ก IP ์ฃผ์๋ฅผ ํ ๋นํ ์ ์์ด์. ํ์ ๋คํธ์ํฌ์ ์ด๋ค Port(ํฌํธ)๊ฐ ์ฐ๊ฒฐ๋์๊ฑด ๊ฐ์ ๋ง์ด์ง์. ์ธ๋ถ ๋คํธ์ํฌ IP ์ฃผ์๋ฅผ ๊ฐ์ ๋จธ์ ์ ํฌํธ์ ํ ๋นํ ์ ์์ด์.
์ด ๋ฐฉ๋ฒ์ ์ด์ฉํด์ ์ธ๋ถ ๋คํธ์ํฌ์์ ๊ฐ์ ๋จธ์ ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋คํธ์ํน์ Security Group(๋ณด์ ๊ทธ๋ฃน)์ ์ง์ํ๋ค๊ณ ํด์.
๋ณด์ ๊ทธ๋ฃน์ ๊ทธ๋ฃน๋ด ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ ์ํ๊ณ , ๊ด๋ฆฌํ๋ ๊ด๋ฆฌ์๋ฅผ ์์ฑํ ์ ์์ด์.
๊ฐ์ ๋จธ์ ์ ํ๋์์ ์ฌ๋ฌ ๋ณด์ ๊ทธ๋ฃน์ ์ํ ์ ์๊ณ , ๋ณด์ ๊ทธ๋ฃน์์ ํฌํธ๋ฅผ ๋ง๊ฑฐ๋ ์ด๊ณ , ํฌํธ ๋ฒ์, ๊ฐ์ ๋จธ์ ์ ๋ํ ํธํจํฝ Type(ํ์
) ๋ฑ์ ๊ท์น์ ์ ์ฉํ ์ ์์ด์.
๋คํธ์ํน์์ ์ฌ์ฉ๋๋ ๊ฐ ํ๋ฌ๊ทธ์ธ์ ๊ฐ์๋ง์ ๋ฐฉ์๋ค์ ๊ฐ๊ณ ์๋๋ฐ, VNI ๋ฐ ์คํ ์คํ ํ๊ฒฝ์ ์ด์ํ๋๋ฐ, ํ์ ์ฌํญ์ ์๋์ง๋ง, ์ด๋ฌํ ๋ฐฉ์์ ๋ํ ์ดํด๋ ๋คํธ์ํน ํ๊ฒฝ ๊ตฌ์ฑ์ ๋์์ด ๋ ๊ฑฐ์์.
๋ชจ๋ ๋คํธ์ํน ์ค์น๋ ํต์ฌ ํ๋ฌ๊ทธ์ธ๊ณผ ๋ณด์ ๊ทธ๋ฃน ํ๋ฌ๊ทธ์ธ (๋๋ ์ฐ์ No-Op ๋ณด์ ๊ทธ๋ฃน ํ๋ฌ๊ทธ์ธ)์ ์ฌ์ฉํ๋ค๊ณ ํด์.
๋ถ๊ฐ์ ์ผ๋ก Firewall-as-aServer(FWaas) ๋ฐ Load-Balancer-asa-Service (LBaas)๋ ์ฌ์ฉํ ์ ์๋ค๊ณ ํด์.
๐ฝ ๊ตฌ์ฑ ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ
๐ฆ ๊ตฌ์ฑ ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ - Controller Node
์คํ ์คํ ๋คํธ์ํน (neutron) ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ Data Base(๋ฐ์ดํฐ ๋ฒ ์ด์ค), ์๋น์ค credential, endpoint(์๋ํฌ์ธํธ)๋ฅผ ์์ฑํด ์ฃผ์ด์ผ ํด์.
๋จผ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์์ฑํด ๋ณด๋๋ก ํ ๊ฒ์.
MariaDB root ๊ณ์ ์ผ๋ก ์์ ๊ฐ์ด DB๋ฅผ ์์ฑํ๊ณ , ๊ณ์ ์ ๋ง๋ค๊ณ , ๊ถํ์ ๋ถ์ฌํด ์ค๋๋ค.
๊ทธ๋ฐ ๋ค ์ด์ ์ keystone ์์
์ ํตํด ๋ง๋ค์๋ admin-openrc ์คํฌ๋ฆฝํธ๋ฅผ ์คํํด ์ค๊ฒ์.
ํด๋น ๋ด์ฉ์ ๋ํด์๋ ์ด ๊ณณ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
์ด์ ์๋น์ค credential ๋ง๋ค๊ธฐ ์ํด ์๋ ๋จ๊ณ๋ฅผ ์งํํด ๋ณผ๊ฒ์.
์ต์ด neutron ์ฌ์ฉ์๋ฅผ ๋ง๋ค์ด ๋ณผ๊ฒ์.
์์ ๊ฐ์ด ๊ณ์ ์ ๋ง๋ค๊ณ , servicepassword์๋ neutron ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฑ๋กํด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด neutron ๊ณ์ ์ ๊ด๋ฆฌ์ ๊ถํ์ ๋ถ์ฌํด ์ฃผ์์ด์.
์ด๋ฒ์๋ neutron ์๋น์ค Entity(์ํฐํฐ)๋ฅผ ์์ฑํด ์ฃผ์์ด์.
์ด๋ฒ์๋ ๋คํธ์ํน ์๋น์ค API ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
๐ฆ ๋คํธ์ํน ์ต์ ๊ตฌ์ฑ
์ต์
1, 2์ ์ํด ํํ๋๋ ๋ ์ํคํ
์ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํน ์๋น์ค๋ฅผ ๋ฐฐํฌํ ์ ์์ด์.
์ต์
1์ ํ๋ก๋ฐ์ด๋(์ธ๋ถ) ๋คํธ์ํฌ์ ๋ํ ์ธ์คํด์ค ์ฐ๊ฒฐ๋ง์ ์ง์ํ๋ ๊ฐ๋ฅํ ๋จ์ ์ํคํ
์ฒ๋ก ๋ฐฐํฌํฉ๋๋ค. Self-Service (์
ํ ์๋น์ค) ์ฌ์ค ๋คํธ์ํฌ, ๋ผ์ฐํฐ ๋๋ ํ๋กํ
IP ์ฃผ์๋ ์์ด์.
๊ด๋ฆฌ์ ๋๋ ๊ธฐํ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ง ํ๋ก๋ฐ์ด๋ ๋คํธ์ํฌ๋ฅผ ๊ด๋ฆฌํ๊ฒ ํ ์ ์์ด์.
์ต์
2๋ ์ต์
1์ ์
ํ ์๋น์ค ๋คํธ์ํฌ์ ๋ํ ์ธ์คํด์ค ์ฐ๊ฒฐ์ ์ง์ํ๋ layer-3 ์๋น์ค๋ฅผ ํ์ฅํ ์ ์์ด์.
demo ๋๋ ๊ด๋ฆฌ์ ๊ถํ์ ๊ฐ์ง ์์ ์ฌ์ฉ์๊ฐ ์
ํ ์๋น์ค์ ํ๋ก๋ฐ์ด๋ ๋คํธ์ํฌ ๊ฐ ์ฐ๊ฒฐ์ ์ ๊ณตํ๋ ๋ผ์ฐํฐ๋ฅผ ํฌํจํ ์
ํ ์๋น์ค ๋คํธ์ํฌ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ต๋๋ค.
๋ถ๊ฐ์ ์ผ๋ก ํ๋กํ
IP ์ฃผ์๋ ์ธํฐ๋ท๊ณผ ๊ฐ์ ์ธ๋ถ ๋คํธ์ํฌ๋ก๋ถํฐ ์
ํ ์๋น์ค ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ๋ํ ์ฐ๊ฒฐ์ ์ ๊ณตํด์.
์
ํ ์๋น์ค ๋คํธ์ํฌ๋ ๋ณดํต Overlay(์ค๋ฒ๋ ์ด) ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํด์. VXLAN๊ณผ ๊ฐ์ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ ํ๋กํ ์ฝ์ Over Head(์ค๋ฒํค๋)๋ฅผ ์ฆ๊ฐ์ํค๊ณ Payload(ํ์ด๋ก๋) ๋๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ํด ์ฌ์ฉ ๊ฐ๋ฅํ ์ฉ๋์ ๊ฐ์ ์ํค๋ ์ถ๊ฐ์ ์ธ Packet Header(ํจํท ํค๋)๋ฅผ ํฌํจํ๊ณ ์์ด์.
๊ฐ์ ๋คํธ์ํฌ ์ธํ๋ผ์ ๋ํ ์ง์์ด ์๋๋ผ๋ ๊ธฐ๋ณธ Ethernet(์ด๋๋ท)์ ๋ํ 1500 Byte(๋ฐ์ดํธ)์ maxinum transmission unit(MTU)๋ฅผ ์ฌ์ฉํ์ฌ ํจํท ์ ์ก์ ํ ์ ์์ด์.
๋คํธ์ํน ์๋น์ค๋ DHCP๋ฅผ ํตํด ์ธ์คํด์ค์ ์๋ง์ MTU ๊ฐ์ ์๋์ผ๋ก ์ ๊ณตํ๊ณ ์์ด์. ๊ทธ๋ฌ๋, ๋ช๋ช ํด๋ผ์ฐ๋ ์ด๋ฏธ์ง๋ DHCP๋ฅผ ์ฌ์ฉํ์ง ์๊ฑฐ๋, DHCP MTU ์ต์
์ ๋ฌด์ํ๋ฉฐ, ๋ฉํ๋ฐ์ดํฐ ๋๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๊ตฌ์ฑ์ ํ์๋ก ํ๋ค๊ณ ํด์.
์ฃผ๋๋ ์ต์
2 ๋ฐฉ์์ ์
ํ ์๋น์ค ๋คํธ์ํฌ ๋ฐฉ์์ ์ด์ฉํ์ฌ ๊ตฌ์ฑํ๋ ค๊ณ ํด์.
๋ง์ฝ ์ต์
1 ๋ฐฉ์์ ํ๋ก๋ฐ์ด๋ ๋คํธ์ํฌ ๋ฐฉ์์ ์ด์ฉํ์ฌ ๊ตฌ์ฑํ๊ณ ์ถ์ผ์๋ค๋ฉด ์ด ๊ณณ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
๐ฆ ๋คํธ์ํน ์ต์ 2: ์ ํ ์๋น์ค ๋คํธ์ํฌ ๊ตฌ์ฑ - neutron.conf
์ต์ด ํจํค์ง ์ค์น ์์
์ ์งํํด ๋ณผ๊ฒ์.
ํจํค์ง ์ค์น๊ฐ ์๋ฃ๋๋ฉด ๊ตฌ์ฑ ์์๋ฅผ ๊ตฌ์ฑํด ๋ณด๋๋ก ํ ๊ฒ์.
์ต์ด [DEFAULT] ์น์
์ Modular Layer 2(ML2) ํ๋ฌ๊ทธ์ธ, ๋ผ์ฐํฐ ์๋น์ค ๋ฐ overlapping IP ์ฃผ์(4 ~ 5, 8๋ฒ์งธ ์ค)๋ฅผ ํ์ฑํ ๋ฐ RabbitMQ ๋ฉ์์ง ํ ์ก์ธ์ค ๊ตฌ์ฑ(12๋ฒ์งธ ์ค), Identity ์๋น์ค ์ก์ธ์ค ๊ตฌ์ฑ(6๋ฒ์งธ ์ค), ๋คํธ์ํฌ ํ ํด๋ก์ง ๋ณ๊ฒฝ ๋ฐ์ ์ Compute์ ์๋ ค์ฃผ๋ ๋คํธ์ํน ๊ตฌ์ฑ(9 ~ 10๋ฒ์ฌ ์ค) ํ์ฑํ ์ค์ ์ ํด ์ค๊ฑฐ์์.
์ด๋ฒ์๋ 876๋ฒ์งธ ์ค์ ์์ ํ ๊ฑฐ์์.
์์ ๊ฐ์ด Maria DB ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์
๋ ฅํด ์ฃผ์์ด์.
์ฐธ๊ณ ๋ก PASSWORD ๋ถ๋ถ์๋ DB neutron ๊ณ์ ์ ์ํธ๋ฅผ ์
๋ ฅํด ์ฃผ๋ฉด ๋๋ต๋๋ค.
์ด๋ฒ์๋ Identity ์๋น์ค ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํด ์ค๊ฑฐ์์.
password ์ค์๋ neutron ๊ณ์ ์ ์ํธ๋ฅผ ์
๋ ฅํด ์ฃผ์ด์ผ ํด์.
์ด๋ฒ์๋ ๋คํธ์ํฌ ํ ํด๋ก์ง ๋ณ๊ฒฝ์ด ๋ฐ์ํ์ ๋, Compute์ ์๋ ค์ฃผ๋๋ก ๋คํธ์ํน์ ๊ตฌ์ฑํ๋ ๋ถ๋ถ์ด์์.
password ์ค์๋ Compute Node์ ์ค์นํ Nova ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ฃผ๋ ๋ถ๋ถ์ด์์.
์ฌ๊ธฐ๊น์ง ๋์๋ค๋ฉด ์ ์ฅ ํด ์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ค์ ํ์ผ์ ๊ถํ๊ณผ ์์ ๊ทธ๋ฃน์ ๋ณ๊ฒฝํด ์ฃผ์์ด์.
์์ ๊ฐ์ด ์ ๋ ฅํ๊ณ , ์ ์ฅํ๊ณ ๋์ต๋๋ค.
๐ฆ ๋คํธ์ํน ์ต์ 2: ์ ํ ์๋น์ค ๋คํธ์ํฌ ๊ตฌ์ฑ - ml2_conf.ini
์ด๋ฒ์๋ Modular Layer 2(ML2) ํ๋ฌ๊ทธ์ธ์ ๋ํด ๊ตฌ์ฑํด ๋ณผ๊ฒ์.
ML2 ํ๋ฌ๊ทธ์ธ์ ์ธ์คํด์ค์ ๋ํ Layer-2 (๋ธ๋ฆฌ์ง๊ณผ ์ค์์นญ) ๊ฐ์ ๋คํธ์ํน ์ธํ๋ผ ๊ตฌ์ถํ๊ธฐ ์ํ์ฌ ๋ฆฌ๋
์ค ๋ธ๋ฆฟ์ง ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์์ ๊ฐ์ด ๊ถํ๊ณผ ์์ ๊ถ์ ๋ณ๊ฒฝํด ์ฃผ์์ด์.
Nova ์ค์ ํ์ผ์ Neutron๊ณผ ๊ด๋ จํ ๋ด์ฉ์ ์ถ๊ฐํด ์ฃผ์์ด์.
Password์๋ neutron ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ฃผ์ด์ผ ํด์.
๊ทธ๋ฆฌ๊ณ , ์ ์ฅํ๊ณ , ๋์์ค๋๋ค.
์ ์ค์ ํ์ผ์ neutron-api ๋ด์ฉ์ ์ถ๊ฐํด ์ฃผ์์ด์.
์์ ๊ฐ์ด neutron ๊ด๋ จ ์๋น์ค๋ฅผ ์์ํด ์ฃผ์์ด์.
๐ฆ ๋คํธ์ํน ์ต์ 2: ์ ํ ์๋น์ค ๋คํธ์ํฌ ๊ตฌ์ฑ - neutron_ovn_metadata_agent.ini
์ฌ๊ธฐ๊น์ง ๋์์ผ๋ฉด ์ ์ฅํ๊ณ , ๋์ ์ค๋๋ค.
๐ฆ ๋คํธ์ํน ์ต์ 2: ์ ํ ์๋น์ค ๋คํธ์ํฌ ๊ตฌ์ฑ - openvswitch-switch
์ฌ๊ธฐ๊น์ง ๋์์ผ๋ฉด ์ ์ฅํ๊ณ , ๋์ ์ค๋๋ค.
๐ฆ ๋คํธ์ํน ์ต์ 2: ์ ํ ์๋น์ค ๋คํธ์ํฌ ๊ตฌ์ฑ - nova.conf
์ด๋ฒ์๋ ๋คํธ์ํน ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด Compute ์๋น์ค ๊ตฌ์ฑ ์งํํด ๋ณผ๊ฒ์.
์ด ์ ์ ์ถ๊ฐํ๋ ๋ด์ฉ ๋ฐ์ ์ ๋ด์ฉ์ ์ถ๊ฐํด ์ฃผ์์ด์.
์ ๋ด์ฉ์ ํตํด neutron์์ ์ ๊ทผ ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฑํ๊ณ , ๋ฉํ ๋ฐ์ดํฐ ํ๋ก์๋ฅผ ํ์ฑํํ๊ณ , ์ํธ๋ฅผ ๊ตฌ์ฑํด ์ฃผ์์ด์.
Identity ์๋น์ค์์ neutron ์ฌ์ฉ์ ๊ณ์ ์ ์ํธ๋ฅผ servicepassword (3700 ๋ฒ์งธ ์ค)์ ์
๋ ฅํด ์ฃผ์ด์ผํด์.
์ฌ๊ธฐ๊น์ง ๋์๋ค๋ฉด ์ ์ฅํ๊ณ , ๋์ต๋๋ค.
๐ฆ ๋คํธ์ํฌ ๊ตฌ์ฑ - nginx.conf
์ด ์ ์ ์์ฑํ๋ ๋ด์ฉ์ 105 ~ 112๋ฒ์งธ ์ค ๋ด์ฉ์ ์ถ๊ฐํด ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค ์ ์ฅํ๊ณ , ๋์ ์ฃผ์์ด์.
๐ฆ ์ค์น ๋ง๋ฌด๋ฆฌ
์ต์ด ์์ ๊ฐ์ด ์๋น์ค๋ฅผ ๋ฑ๋กํ๊ณ , ์ฌ ๊ธฐ๋ ์์ผ ์ฃผ์์ด์.
์ ๋ช
๋ น์ด๋ก ๊ฐ์ ๋ธ๋ฆฟ์ง๋ฅผ ์์ฑํ๋ ค ํ๋๋ฐ, ์ด๋ฏธ ์๋ค๊ณ ํ๋ค์.
์ ๋ช
๋ น์ด๋ฅผ ํตํด DB์ Data๋ฅผ ๋ฃ์ด ์ฃผ์์ด์.
์์ ๊ฐ์ด ์๋น์ค ๋ฑ๋ก ๋ฐ ์ฌ ๊ธฐ๋ ํด ์ฃผ์์ด์.
root@dlp ~(keystone)# ovn-nbctl set-connection ptcp:6641:10.0.0.30 -- set connection . inactivity_probe=60000
root@dlp ~(keystone)# ovn-sbctl set-connection ptcp:6642:10.0.0.30 -- set connection . inactivity_probe=60000
root@dlp ~(keystone)# ovs-vsctl set open . external-ids:ovn-remote=tcp:10.0.0.30:6642
root@dlp ~(keystone)# ovs-vsctl set open . external-ids:ovn-encap-type=geneve
root@dlp ~(keystone)# ovs-vsctl set open . external-ids:ovn-encap-ip=10.0.0.30
์ ๋ช
๋ น์ด๋ OVN(Open Virutal Network) ๊ตฌ์ฑ ๋ช
๋ น์ด์์.
OVN์ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ ์ดํ๋๋ฐ ์ฌ์ฉ๋๋ ์คํ์์ค ๋คํธ์ํฌ ์๋ฃจ์
์ด์์.
์ ๋ช
๋ น์ด์ ์์ธ ๋ด์ฉ์ ์๋์ ๊ฐ์์.
๋ช ๋ น์ด | ๋ด ์ฉ |
ovn-nbctl set-connection ptcp:6641:{Controller Node IP} -- set connection . inactivity_probe=60000 | OVN ์ปจํธ๋กค๋ฌ(ovn-northd)์ OVN ๋คํธ์ํฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค(ovn-nb) ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ์ฐ๊ฒฐ์ ๋นํ๋์ฑ ๊ฐ์ง ์๊ฐ์ 60000๋ฐ๋ฆฌ์ด(60์ด)๋ก ์ค์ . ํฌํธ 6641์ ์ฌ์ฉํ์ฌ TCP ์ฐ๊ฒฐ ์ค์ ๋ฐ ํธ์คํธ IP Controller Node๋ก ์ฐ๊ฒฐ. |
ovn-sbctl set-connection ptcp:6642:{Controller Node IP} -- set connection . inactivity_probe=60000 | OVN ์ปจํธ๋กค๋ฌ(ovn-controller)์ OVN ์ค์์น ๋ฐ์ดํฐ๋ฒ ์ด์ค(ovn-sb) ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ์ฐ๊ฒฐ์ ๋นํ๋์ฑ ๊ฐ์ง ์๊ฐ์ 60000๋ฐ๋ฆฌ์ด(60์ด)๋ก ์ค์ . ํฌํธ 6642๋ฅผ ์ฌ์ฉํ์ฌ TCP ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ํธ์คํธ IP Controller Node IP๋ก ์ฐ๊ฒฐ. |
ovs-vsctl set open . external-ids:ovn-remote=tcp:{Controller Node IP}:6642 | Open vSwitch(OVS) ๊ตฌ์ฑ์ ๋ํ ์ต์
์ ์ค์ . external-ids ์น์ ์ ovn-remote ํค๋ฅผ ์ถ๊ฐํ๊ณ ๊ฐ์ tcp:Controller Node IP:6642๋ก ์ค์ ํ์ฌ OVN ์ค์์น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์๊ฒฉ ์ฐ๊ฒฐ์ ์ ์. |
ovs-vsctl set open . external-ids:ovn-encap-type=geneve | OVN ์์บก์๋ ์ด์
์ ํ์ ์ค์ . external-ids ์น์ ์ ovn-encap-type ํค๋ฅผ ์ถ๊ฐํ๊ณ ๊ฐ์ geneve๋ก ์ค์ ํ์ฌ Geneve ์์บก์๋ ์ด์ ์ ์ฌ์ฉ ์ค์ . |
ovs-vsctl set open . external-ids:ovn-encap-ip={Controller Node IP} | OVN ์์บก์๋ ์ด์
์ ์ฌ์ฉํ IP ์ฃผ์๋ฅผ ์ค์ . external-ids ์น์ ์ ovn-encap-ip ํค๋ฅผ ์ถ๊ฐํ๊ณ ๊ฐ์ Controller Node IP๋ก ์ค์ ํ์ฌ Geneve ์์บก์๋ ์ด์ ์ ์ฌ์ฉํ IP ์ฃผ์๋ฅผ ์ง์ . |
๊ทธ๋ฐ ๋ค ๋ดํธ๋ก ๊ด๋ จ ๋ฐ๋ชฌ๊ณผ nova ๊ด๋ จ ๋ฐ๋ชฌ์ ์ฌ๊ธฐ๋ํ์ฌ ์ฃผ์์ด์.
์ ๋ช
๋ น์ด๋ก ๋คํธ์ํฌ ์์ด์ ํธ ๋ชฉ๋ก์ ํ์ธํ ์ ์์ด์.
๐ฆ ์ค์
ํ์ฌ ์ปจํธ๋กค๋ฌ ๋
ธ๋์๋ ๋ ๊ฐ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๊ฐ ๋ฌ๋ ค ์์ด์.
์ด์ FLAT ์ ํ์ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํด ๋ณผ๊ฒ์.
์ ํ์ผ์ ์๋ก ๋ง๋ค์ด ์์ ๊ฐ์ด ์์ฑํด ์ฃผ์์ด์.
์ด๊ฒ์ ์ต๋ช
์ธํฐํ์ด์ค ์ค์ ํ์ผ ์์ฑ์ ํ ๊ฒ์ด๊ณ , [eth1] ์ด๋ฆ์ ์ฌ์ฉ์ ํ๊ฒฝ์ผ๋ก ๋ฐ๊พผ ๋ถ๋ถ์ด์์.
์ ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด์ eth1 ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ํ์ฑํ ํ์ฌ ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์ ๋ช
๋ น์ด๋ก bridge(๋ธ๋ฆฟ์ง)๋ฅผ ๋ง๋ค์ด ์ฃผ์๋๋ฐ, br-eth1 ์ด๋ผ๋ ์ด๋ฆ์ ์์ ๋กญ๊ฒ ๋ง๋ค ์ ์์ด์.
๊ทธ๋ฆฌ๊ณ ์ ๋ช
๋ น์ด๋ก ๋ธ๋ฆฟ์ง ํฌํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
์ด๊ฒ์ [eth1]์ ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ง์ถฐ์ฃผ๋ฉด ๋๋ ๋ถ๋ถ์ด์์.
Open vSwitch(OVS) ๊ตฌ์ฑ์ ์ค์ ํ๋ ๋ช
๋ น์ด์์.
์ด ๋ช
๋ น์ด๋ OVN (Open Virtual Network)์ ๋ธ๋ฆฌ์ง ๋งคํ ์ค์ ์ ๋ณ๊ฒฝํ๊ณ ,
๋ฌผ๋ฆฌ ๋คํธ์ํฌ์ OVN ๋ธ๋ฆฌ์ง ๊ฐ์ ๋งคํ์ ์ ์ํด ์ค ๋ถ๋ถ์ด์์.
์ด ๋ช
๋ น์ด๋ OVN๊ณผ ๊ด๋ จํ์ฌ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ์ ๋
ผ๋ฆฌ์ ์ธ ๊ฐ์ ๋คํธ์ํฌ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ฑฐ๋ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํ๋ค๊ณ ํด์. ๋ธ๋ฆฌ์ง ๋งคํ์ ๊ฐ์ ๋คํธ์ํฌ์ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ ๊ฐ์ ๋งคํ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ,
OVN์ ๋คํธ์ํฌ ๊ฐ์ํ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ง์ํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํด์.
projectID ๋ณ์์ service๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ํ๋ก์ ํธ์ ID ๊ฐ์ ๋ฃ์ด์ฃผ์์ด์.
์ ๋ช
๋ น์ด๋ก ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด ์ค๊ฑด๋ฐ, ๊ฐ์ ๋คํธ์ํฌ์ ์ด๋ฆ์ sharednet1์ผ๋ก ํด ์ฃผ์์ด์.
์ด๋ฒ์๋ 10.0.0๋ฒ ๋์ญ์ผ๋ก subnet์ ๋ง๋ค์ด ๊ฐ์ ๋คํธ์ํฌ์ ๋ฃ์ด๋ณผ๊ฒ์.
์ ๋ช
๋ น์ด๋ ๋คํธ์ํฌ ์๋ธ๋ท์ ๋ง๋๋ ๋ช
๋ น์ด์ธ๋ฐ, ์ต์
์ ์๋์ ๊ฐ์์.
๐ค Option ๋ด์ฉ
1. openstack subnet create subnet1: subnet1์ด๋ผ๋ ์๋ธ๋ท์ ์์ฑํ๋ ๋ช ๋ น์ด์ ๋๋ค. subnet1์ ์๋ก์ด ์๋ธ๋ท์ ์ด๋ฆ์ ๋๋ค. ํ์์ ๋ฐ๋ผ ๋ค๋ฅธ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
2. --network sharednet1: ์๋ก ์์ฑ๋ ์๋ธ๋ท์ ์ด๋ค ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ๊ฒ์ธ์ง๋ฅผ ์ง์ ํ๋ ์ต์ ์ ๋๋ค. sharednet1์ ์ฐ๊ฒฐํ ๋คํธ์ํฌ์ ์ด๋ฆ ๋๋ ID์ ๋๋ค.
3. --project $projectID: ์๋ธ๋ท์ ์ด๋ค ํ๋ก์ ํธ์ ์ํ๋๋ก ๋ง๋ค ๊ฒ์ธ์ง๋ฅผ ์ง์ ํ๋ ์ต์ ์ ๋๋ค. $projectID๋ ํด๋น ํ๋ก์ ํธ์ ID์ ๋๋ค.
4. --subnet-range 10.0.0.0/24: ์๋ก ์์ฑ๋ ์๋ธ๋ท์ IP ์ฃผ์ ๋ฒ์๋ฅผ ์ง์ ํ๋ ์ต์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ 10.0.0.0/24๋ก ์ค์ ๋์ด ์์ผ๋ฏ๋ก ์ด ์๋ธ๋ท์ 10.0.0.0๋ถํฐ 10.0.0.255๊น์ง์ IP ์ฃผ์ ๋ฒ์๋ฅผ ๊ฐ์ง๋๋ค.
5. --allocation-pool start=10.0.0.200,end=10.0.0.254: ์๋ธ๋ท์์ ์ฌ์ฉ ๊ฐ๋ฅํ IP ์ฃผ์ ๋ฒ์๋ฅผ ์ค์ ํ๋ ์ต์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ 10.0.0.200๋ถํฐ 10.0.0.254๊น์ง์ IP ์ฃผ์๊ฐ ํ ๋น ๊ฐ๋ฅํ ๋ฒ์๋ก ์ง์ ๋์์ต๋๋ค.
6. --gateway 10.0.0.1: ์๋ธ๋ท์ ๊ฒ์ดํธ์จ์ด IP ์ฃผ์๋ฅผ ์ง์ ํ๋ ์ต์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ 10.0.0.1๋ก ์ค์ ๋์ด ์์ผ๋ฏ๋ก ์ด IP ์ฃผ์๊ฐ ์๋ธ๋ท์ ๊ฒ์ดํธ์จ์ด ์ญํ ์ ํฉ๋๋ค.
7. --dns-nameserver 10.0.0.10: ์๋ธ๋ท์์ ์ฌ์ฉํ DNS ๋ค์ ์๋ฒ๋ฅผ ์ง์ ํ๋ ์ต์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ 10.0.0.10์ผ๋ก ์ค์ ๋์ด ์์ผ๋ฏ๋ก ์ด DNS ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ๋ด์์ DNS ์กฐํ๋ฅผ ์ํํฉ๋๋ค.
์ด ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด OpenStack์์ subnet1์ด๋ผ๋ ์๋ก์ด ์๋ธ๋ท์ ์์ฑํ๊ณ ์ง์ ํ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ๋ฉฐ, ์๋ธ๋ท์ IP ์ฃผ์ ๋ฒ์, ํ ๋น ๊ฐ๋ฅํ IP ์ฃผ์ ๋ฒ์, ๊ฒ์ดํธ์จ์ด ๋ฐ DNS ๋ค์ ์๋ฒ๋ฅผ ์ค์ ํฉ๋๋ค. ์ด๊ฒ์ ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฐ ๊ฐ์ ๋จธ์ ์ธ์คํด์ค์ ๋ํ IP ํ ๋นํ ์ ์์ด์.
๋คํธ์ํฌ์ ์๋ธ๋ท์ด ์ ๋ง๋ค์ด์ง๊ฑธ ํ์ธํ ์ ์์ด์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ง ์ฐธ๊ณ ์๋ฃ