2023. 9. 30. 06:00ใ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] ์ค๋น์ค
๐ Controller Node ๊ตฌ์ฑ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
์คํ์คํ Compute(์ปดํจํธ)๋ฅผ ์ด์ฉํ์ฌ ํธ์คํธ์ ํด๋ผ์ฐ๋ ์ปดํจํ
์์คํ
์ ๊ด๋ฆฌํ ์ ์์ด์.
์คํ์คํ ์ปดํจํธ๋ Infrastructure-as-a-Service(IaaS) ์์คํ
์ ํต์ฌ์ด์์. ๋ชจ๋์ ํ์ด์ฌ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด์.
์คํ์คํ ์ปดํจํธ์์ ์ธ์ฆ์ ์คํ์คํ Identity๋ฅผ ์ด์ฉํ๊ณ , ๋์คํฌ์ ์๋ฒ ์ด๋ฏธ์ง๋ ์คํ์คํ ์ด๋ฏธ์ง ์๋น์ค๋ฅผ ์ด์ฉํ๊ณ ์์ด์. ์ด๋ฅผ ํตํด ์ฌ์ฉ์์ ๊ด๋ฆฌ์ ์ธํฐํ์ด์ค๋ฅผ ๋์๋ณด๋๋ฅผ ํตํ์ฌ ์ปจํธ๋กค ํ ์ ์์ด์.
์ด๋ฏธ์ง ์ ๊ทผ์ ํ๋ก์ ํธ, ์ฌ์ฉ์์ ๋ํด ์ ๊ทผ์ ํต์ ํ ์ ์์ด์.
Quota๋ ํ๋ก์ ํธ ๋น ์ ํ์ ๋งํด์.
(์: ์ธ์คํด์ค ์ซ์ ๋ฑ) ์คํ์คํ ์ปดํจํธ๋ ํ์ค Hardware(ํ๋์จ์ด)์์ ์ํ์ ํ์ฅ์ด ๊ฐ๋ฅํ๊ณ , ์คํํ๋ ์ธ์คํด์ค ์ด๋ฏธ์ง๋ฅผ ๋ด๋ ค๋ฐ๊ธฐ ํ ์ ์์ด์.
์คํ์คํ ์ปดํจํธ๋ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ง๊ณ ์์ด์.
๊ตฌ์ฑ ์์ | ์์ธ ๋ด์ฉ |
nova-api | ์ต์ข
์ฌ์ฉ์์ ๋ํ ์ปดํจํธ API ์์ฒญ์ ๋ํด ํ์ฉ ๋ฐ ์๋ต. ์คํ ์คํ ์ปดํจํธ API, Amazon EC2 API, ๊ถํ์ด ์๋ ์ฌ์ฉ์์ ๋ํ ํน์ Admin API์ ๋ํ ๊ด๋ฆฌ ์์ ์ ํ ์ ์๋๋ก ์ง์ ๋ฐ ์ ์ฑ ์ ์ฉ, ์ธ์คํด์ค ์คํ ๋ฑ orchestration ์์ . |
nova-api-metadata | ์ธ์คํด์ค์์์ ๋ฉํ๋ฐ์ดํฐ ์์ฒญ ํ์ฉ. nova-api-metadate ์๋น์ค๋ nova-network ์ค์นํ ๋์ ๋ค์ค ํธ์คํธ ๋ชจ๋ ์คํ ์ ์ฌ์ฉ. |
nova-compute | Woker ๋ฐ๋ชฌ์ ๊ฐ์ํ API๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ๋จธ์ ์ธ์คํด์ค ์์ฑ ๋ฐ ์ข
๋ฃ ๋ด๋น. โ XenServer/SCP์์์ XenAPI โ KVM ๋๋ QEMU์์์ libvirt โ VMware์์์ VMwareAPI |
nova-placement-api | ๊ฐ ํ๋ก๋ฐ์ด๋์ ๋ํ ์ฌ์ฉ๋ ์ถ์ ๋ฐ ๊ด๋ฆฌ |
nova-scheduler | Queue๋ก๋ถํฐ ๊ฐ์ ๋จธ์ ์ธ์คํด์ค๋ฅผ ์์ฒญํ๊ณ , ์ด๋ค compute Node์์ ์คํํ ๊ฒ์ธ์ง ๊ฒฐ์ |
nova-conductor | nova-compute ์๋น์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํธ์์ฉ ์ค์ฌ ์ญํ . nova-compute ์๋น์ค์ ์ํด ๋ง๋ค์ด์ง ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ๊ทผ ์ ์ด. nova-conductor ๋ชจ๋๊ณผ ์ํ์ ์ธ ํ์ฅ ๊ฐ๋ฅํ๋, nova-compute ์๋น์ค๊ฐ ์๋์ค์ธ Node์์๋ ๋ฐฐํฌํ๋ฉด ์๋จ. |
nova-cert | X.509 ์ธ์ฆ์์ ๋ํ Nova Cert ์๋น์ค ์ ๊ณต ์๋ฒ ๋ฐ๋ชฌ. euca-bundle-image์ ๋ํ ์ธ์ฆ์ ์์ฑ ๋ฐ ์ฌ์ฉ. EC2 API๋ฅผ ์ฌ์ฉํ ๋๋ง ํ์. |
nova-consoleauth | ์ฝ์ ํ๋ก์๋ฅผ ์ ๊ณตํ๋ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ ํ ๊ทผ ์ ๊ณต. nova-novncproxy์ nova-xvpvncproxy ์ฐธ๊ณ . ํด๋น ์๋น์ค๋ ์ฝ์ ํ๋ก์ ์์ ์ด ์๋๋์ด ์์ด์ผ ํ๋ฉฐ, ํด๋ฌ์คํฐ ๊ตฌ์ฑ์์ nova-consoleauth ์๋น์ค์ ๋ํ ๋ ์ข ๋ฅ ํ๋ก์ ์คํ ๊ฐ๋ฅ. |
nova-novncproxy | VNC ์ฐ๊ฒฐ์ ํตํด ์๋์ค์ธ ์ธ์คํด์ค ์ ๊ทผ์ ๋ํ ํ๋ก์ ์ ๊ณต. ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ novnc ํด๋ผ์ด์ธํธ ์ ๊ณต. ์คํ ์คํ ๋ง์ Java ํด๋ผ์ด์ธํธ ์ ๊ณต. |
nova-spicehtml5proxy | SPICE ์ฐ๊ฒฐ์ ํตํด ์๋์ค์ธ ์ธ์คํด์ค ์ ๊ทผ์ ๋ํ ํ๋ก์ ์ ๊ณต. ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ HTML5 ํด๋ผ์ด์ธํธ ์ ๊ณต. |
Queue | ๋ฐ๋ชฌ๊ฐ์ ํ๋ก์ธ์ฑ ๋ฉ์์ง ์ ๋ฌ์ ์ํ ์ค์ Hub. RabbitMQ๋ก ๊ตฌํ๋๋ฉฐ, Zero MQ์ ๊ฐ์ ๋ค๋ฅธ AMQP ๋ฉ์์ง ํ๋ก ๊ตฌํํ ์ ์์. |
SQL Database | ํด๋ผ์ฐ๋ ์ธํ๋ผ์ ๋ํ ์ํ ์ ์ฅ. โ ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์คํด์ค ํ์ โ ์ฌ์ฉ์ค์ธ ์ธ์คํด์ค โ ์ฌ์ฉ ๊ฐ๋ฅํ ๋คํธ์ํฌ โ ํ๋ก์ ํธ |
์คํ์คํ ์ปดํจํธ๋ SQLAlchemy๊ฐ ์ง์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์ํ๊ณ ์์ด์.
ํ
์คํธ ํ๊ฒฝ์์๋ SQLite3๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ๋ฐ ํ๊ฒฝ ํน์ ์ด์ ํ๊ฒฝ์์๋ MySQL, MariaDB, PostgreSQL์ ์ฌ์ฉํ๋ค๊ณ ํด์.
์ด๋ฒ ๊ธ์์๋ ์ปจํธ๋กค๋ฌ ๋
ธ๋์์ nova ํ๋ก์ ํธ ์ปดํจํธ ์๋น์ค๋ฅผ ์ค์นํ๊ณ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํด ๋ณผ๊ฒ์.
๐ฝ ๊ตฌ์ฑ ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ
๐ฆ Database ์์
์ต์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์๋น์ค ์ธ์ฆ์, API ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค๊ฒ์ธ๋ฐ, ๊ทธ ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ๋ถํฐ ์งํํ ๊ฑฐ์์.
์์ ๊ฐ์ด DB์ ๊ณ์ ์ ์์ฑํด์ฃผ๊ณ , ๊ถํ์ ์ฃผ์์ด์.
์ฐธ๊ณ ๋ก NOVA_DBPASS์๋ ํด๋น DB ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ผ์.
๐ฆ ๊ณ์ ์์ฑ ๋ฐ ์ ๊ทผ ๊ถํ ๋ฑ ์์ฑ
์ ๋ช
๋ น์ด๋ก ๊ด๋ฆฌ์ ๊ณ์ ์ credential์ ์ด์ฉํ์ฌ ๊ด๋ฆฌ์ ์ ์ฉ CLI ์ ๊ทผ ๊ถํ์ ํ์ฉํด ์ค๋๋ค.
์ ๋ช
๋ น์ด๋ก nova ๊ณ์ ์ ๋ง๋ค์ด์ฃผ๊ณ , servicepassword ๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ค๋๋ค.
์ ๋ช
๋ น์ด๋ก placement ๊ณ์ ์ ๋ง๋ค์ด์ฃผ๊ณ , servicepassword ๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ค๋๋ค.
service ํ๋ก์ ํธ์ nova์ placement ๊ณ์ ์ ์ถ๊ฐํ๊ณ , ๊ด๋ฆฌ์ ๊ถํ์ ๋ถ์ฌํด ์ฃผ์์ด์.
๋ง์ฝ ๊ณ์ ์ ์ ๋ชป ๋ง๋ค์ด ์ญ์ ํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ํ ์ ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด compute์ placement๋ผ๋ ์๋น์ค๋ฅผ ๋ง๋ค์ด ์ฃผ์ด์ผ ํด์.
์ด๋ฒ์๋ ์๋น์ค๋ฅผ ๋ง์ฝ ์ ๋ชป ๋ง๋ค์๋ค๋ฉด ์๋์ ๊ฐ์ด ์ง์ฐ๊ณ , ๋ค์ ๋ง๋ค ์ ์์ด์.
์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค๊ธฐ ์ ์์ ๊ฐ์ด controller ๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋๋ฉ์ธ ์ด๋ฆ๊ฐ์ ๋ฃ์ด ์ฃผ์์ด์.
openstack endpoint create --region RegionOne compute public http://$controller:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute internal http://$controller:8774/v2.1/%\(tenant_id\)s
์ ๋ช
๋ น์ด๋ค์ ํตํด ์ปดํจํธ API ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
์ ๋ช
๋ น์ด๋ค์ ์ด์ฉํ์ฌ placement API ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
๐ฆ ๊ตฌ์ฑ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ - nova.conf
์ต์ด ํจํค์ง๋ฅผ ๋จผ์ ์ค์นํด ์ค๊ฒ์.
10๋ฒ์งธ ์ค์ password ๋ถ๋ถ์๋ RabbitMQ์ ๊ณ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ฃผ์ด์ผ ํด์.
์์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ ๋ณด๋ฅผ ์์ ํด ์ฃผ์์ด์.
1106๋ฒ์งธ ์ค๊ณผ 1866๋ฒ์งธ ์ค์ PASSWD ํน์ NOVA_DBPASS๋ ๊ฐ๊ฐ์ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํด์.
์์ ๊ฐ์ด Identity ์๋น์ค ์ ๊ทผ ์ ๋ณด๋ฅผ ์ค์ ํด ์ฃผ์์ด์.
2874๋ฒ์งธ ์ค์๋ nova ๊ณ์ ์ ์ํธ๋ฅผ ์
๋ ฅํด ์ฃผ์ด์ผ ํด์.
์ด ๊ณณ์์ ์ปจํธ๋กค๋ฌ ๋
ธ๋์ ๊ด๋ฆฌ ์ธํฐํ์ด์ค IP์ฃผ์๋ฅผ VNC ํ๋ก์์์ ์ฌ์ฉํ ์ ์๋๋ก ํด ์ค ๋ถ๋ถ์ด์์.
์ ๋ด์ฉ์ ์ด๋ฏธ์ง API ์๋น์ค์ ๋ํ ๋ด์ฉ์ ์
๋ ฅํด ์ค ๋ถ๋ถ์ด์์.
์ด ๋ถ๋ถ์ ํตํด lock ๊ฒฝ๋ก๋ฅผ ๊ตฌ์ฑํด ์ฃผ๋ ๋ถ๋ถ์ด์์.
์ ๋ด์ฉ์ Placement API๋ฅผ ๊ตฌ์ฑํด ์ค ๋ถ๋ถ์ด์์.
4687๋ฒ์งธ ์ค์ servicepassword์๋ placement ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ฃผ์ด์ผ ํด์.
์ฌ๊ธฐ๊น์ง ๋์๋ค๋ฉด ์ ์ฅํ๊ณ ๋์ต๋๋ค.
๊ทธ๋ฐ ๋ค ํด๋น ์ค์ ํ์ผ์ ๊ถํ๊ณผ ์์ ๊ถ์ ์กฐ์ ํ์ฌ ์ฃผ์์ด์.
๐ฆ ๊ตฌ์ฑ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ - placement.conf
์์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ ๋ณด๋ฅผ ์์ ํด ์ฃผ์์ด์.
529๋ฒ์งธ ์ค์ password๋ placement DB ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํด์.
์ฌ๊ธฐ๊น์ง ๋์๋ค๋ฉด ์ ์ฅํ๊ณ ๋์ต๋๋ค.
๊ทธ๋ฐ ๋ค ์์ ๊ฐ์ด ํด๋น ์ค์ ํ์ผ์ ์์ ๊ถํ๊ณผ ์์ ๊ถ์ ๋ณ๊ฒฝํด ์ค๋๋ค.
๐ฆ ๊ตฌ์ฑ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ - placement-api.conf
์ ์ฅํ๊ณ , ๋์ ์ค๋๋ค.
๐ฆ ๊ตฌ์ฑ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ - nginx.conf
์ด๋ฒ์ Proxy ์ค์ ์ ์ํด Nginx ์ค์ ํ์ผ์ ์์ ํด ์ค๊ฒ์.
์์ ๊ฐ์ด Nginx ์ค์ ์ ์ถ๊ฐํด ์ฃผ์์ด์.
๋ง์ฝ https๋ฅผ ์ฌ์ฉํ ๋ถ๋ค์ ์ฃผ์์ฒ๋ฆฌ ๋ ๊ณณ์ ํ์ฑํ ํด ์ฃผ์
์ผ ํด์.
์ด์ ์ ๋ช
๋ น์ด๋ฅผ ํตํด ๊ฐ DB์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ์์ด์.
์ ๋ช
๋ น์ด๋ก cell0์ cell1์ด ์ ๋๋ก ๋ฑ๋ก๋์๋์ง ํ์ธํ ์ ์์ด์.
๐ฆ ์๋น์ค ๋ฑ๋ก ๋ฐ ์ฌ์์
์์ ๊ฐ์ด Nova ๊ด๋ จ ์๋น์ค๋ฅผ ์ฌ์์ํ๊ณ , ์๋น์ค์ ๋ฑ๋กํด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ , ์ํ์น์ nginx ์๋น์ค๋ฅผ ์ฌ ๊ธฐ๋ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด ์๋น์ค๊ฐ ๋ฑ๋ก๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ง ์ฐธ๊ณ ์๋ฃ