2023. 9. 17. 02: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 ์๋น์ค ์ค์น ๋ฐ ๊ตฌ์ฑ
13. [Hyper-V] [Open Stack] [Compute Node] Hyper-V ๊ตฌ์ฑ ๋ฐ Ubuntu 22.04.3 LTS Server ์ค์น ๋ฐ ์ด๊ธฐ ๊ตฌ์ฑ
14. [Hyper-V] [Open Stack] [Compute Node] โ ์คํ์คํ ํจํค์ง ์ค์น
15. [Hyper-V] [Open Stack] [Compute Node] โก Nova ์ค์น ๋ฐ ๊ตฌ์ฑ
16. [Hyper-V] [Open Stack] [Compute Node] โข Neutron - Network ์๋น์ค ์ค์น ๋ฐ ๊ตฌ์ฑ
๐ Controller Node ๊ตฌ์ฑ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
CloudKitty๋ ์คํ์คํ์ ์ํ Rating-as-aService์์.
์ฆ, ์คํ์คํ์๋ ์๋ Pricing, Billing ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ด์์.
์คํ์คํ Ceilometer์ ์ฐ๋๋์ด ์ฌ์ฉ๋์ ๋ฐ๋ผ ๊ณผ๊ธ ์ ์ฑ
์ ์ก๋ ๋ฑ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ํ ๋ฐํ์ผ๋ก ์ผ์ ์ ์์ด์.
์ฆ, ์คํ ์์ค ๋น์ฉ ๊ด๋ฆฌ ๋ฐ ์์ ์ถ์ ๋๊ตฌ๋ก ์คํ์คํ ๊ธฐ๋ฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ๋น์ฉ ๋ฐ ์์ ์ฌ์ฉ์ ๋ํ ํฌ๋ช
์ฑ์ ์ ๊ณตํด์.
CloudKitty๋ ํด๋ผ์ฐ๋ ์๋น์ค ๋ฐ ์์ ์ฌ์ฉ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ , ๋ถ์ํ์ฌ ๋น์ฉ์ ์ต์ ํ ํ๊ณ , ์์ ์ฌ์ฉ์ ํจ์จํ ํ ์ ์๋๋ก ๋์์ค๋ต๋๋ค.
์ด ๋๊ตฌ๋ ํด๋ผ์ฐ๋ ์ธํ๋ผ์์ ์ฌ์ฉ๋๋ ์ธ์คํด์ค, ์คํ ๋ฆฌ์ง, ๋คํธ์ํฌ ๋ฑ๊ณผ ๊ฐ์ ์์์ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ๊ณ , ํด๋น ์์์ ๋น์ฉ์ ๊ณ์ฐํ๋ฉฐ, ๋น์ฉ์ ๋ถ์ํ์ฌ ์์ ์ฌ์ฉ์ ํจ์จ์ฑ์ ํฅ์ํ๋๋ฐ, ๋์์ ์ค๋ต๋๋ค.
CloudKitty๋ ๋ค์ํ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๊ณ , ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต ์
์ฒด, ๊ธฐ์
๋ฐ ์กฐ์ง์ด ํด๋ผ์ฐ๋ ๋น์ฉ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ ํ๊ณ , ๋น์ฉ์ ์ค์ด๋๋ฐ, ๋์์ ์ป์ ์ ์์ด์.
์ฃผ๋๊ฐ ์ด๊ฒ์ ์ค์นํ๋ ค๋ ์ด์ ๋ ๊ฐ์ธ ํด๋ผ์ฐ๋์ ๊ฐ ์ข
์ ํ๋ฆฌ์ผ์ด์
ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ , ์ด์ฉํด๋ณด๋ฉด์ TCO๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด ๋ณด๊ณ , ๋ํ, ์ด๋์ ๋ ์ด์ฉ์ ์ ์
์ด ์์ด ๋ณธ๊ฒฉ์ ์ผ๋ก ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํด์ผ ํ ๋, ๊ทธ๋๋ ์ต์ํ์ TCO๋ก ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ๋ฐํ์ผ๋ก ์ผ์ผ๋ ค๊ณ ํด์.
๐ฝ ๊ตฌ์ฑ ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ
๐ฆ CloudKitty ์ด๊ธฐ ๊ตฌ์ฑ - ์ปจํธ๋กค๋ฌ ๋ ธ๋
์ต์ด Keystone์ ๊ณ์ ๋ฐ ์๋น์ค, ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ค๊ฒ์.
๋จผ์ ์์ ๊ฐ์ด ๊ณ์ ์ ์์ฑํด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ , ํด๋น ๊ณ์ ์๊ฒ ๊ด๋ฆฌ์ ๊ถํ์ ๋ถ์ฌํด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ , ์์ ๊ฐ์ด rating์ด๋ผ๋ ๊ถํ์ ๋ง๋ค์ด ์ฃผ์์ด์.
์์ ๊ฐ์ด rating์ด๋ผ๋ ์๋น์ค๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ , ์์ ๊ฐ์ด DB์ ๊ณ์ ์ ๋ง๋ค์ด ์ฃผ์์ด์.
์ด์ ํจํค์ง๋ฅผ ์ค์นํ๊ณ , ์ค์ ์์
์ ๋์
ํด ๋ณผ๊ฒ์.
์ ๋ด์ฉ๋ค์ ๋ฌผ์ด๋ณด๋ฉด No๋ฅผ ์ ํํด ์ค๋๋ค.
[DEFAULT]
log_dir = /var/log/cloudkitty
transport_url = rabbit://openstack:password@private-controller
auth_strategy = keystone
[collect]
collector = gnocchi
# set period for rating
# default is 3600 (sec)
# * following short period is for testing one
period = 600
metrics_conf = /etc/cloudkitty/metrics.yml
[collector_gnocchi]
auth_section = keystone_authtoken
region_name = RegionOne
[database]
connection = mysql+pymysql://cloudkitty:password@192.168.20.254/cloudkitty
[fetcher]
backend = gnocchi
[fetcher_gnocchi]
auth_section = keystone_authtoken
region_name = RegionOne
[fetcher_keystone]
keystone_version = 3
auth_section = keystone_authtoken
region_name = RegionOne
[keystone_authtoken]
www_authenticate_uri = http://private-controller:5000/v3
auth_url = http://private-controller:5000/v3
memcached_servers = private-controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cloudkitty
password = servicepassword
region_name = RegionOne
service_token_roles_required = true
# if using self-signed certs on Apache2 Keystone, turn to [true]
insecure = false
[oslo_messaging_notifications]
driver = messagingv2
transport_url = rabbit://openstack:password@private-controller
[storage]
backend = sqlalchemy
version = 1
[orchestrator]
coordination_url = mysql://cloudkitty:password@192.168.20.254/cloudkitty
์ฌ๊ธฐ๊น์ง ์ถ๊ฐํด์ฃผ์์ผ๋ฉด ์ ์ฅํ๊ณ , ๋์ต๋๋ค.
metrics:
cpu:
unit: instance
alt_name: instance
groupby:
- id
- user_id
- project_id
metadata:
- flavor_name
- flavor_id
- vcpus
mutate: NUMBOOL
extra_args:
aggregation_method: mean
resource_type: instance
force_granularity: 300
volume.size:
unit: GiB
groupby:
- id
- user_id
- project_id
metadata:
- volume_type
extra_args:
aggregation_method: mean
resource_type: volume
force_granularity: 300
๊ธฐ์กด์ ์๋ ๋ด์ฉ์ ๋ชจ๋ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ , ์์ ๊ฐ์ด ์ ๋ ฅํด ์ฃผ์์ด์.
์์ ๊ฐ์ด ํ์ ์ค์ ํ์ผ๋ค์ ๊ถํ๊ณผ ์์ ๊ทธ๋ฃน์ ๋ณ๊ฒฝํด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด ๋ฐ๋ชฌ์ ์ฌ๊ธฐ๋ํ๊ณ , ์๋น์ค์ ๋ฑ๋กํด ์ฃผ์์ด์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ง ์ฐธ๊ณ ์๋ฃ