2023. 9. 15. 21:30ใ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 ๊ตฌ์ฑ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
์คํ์คํ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ ๋ฉํฐ ํ
๋์ค๋ฅผ ์ํ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์์คํ
์ด๋ผ๊ณ ํด์. ํ์ฅ์ฑ์ด ๋๊ณ , RESTfull HTTP API๋ฅผ ํตํด ์ ๋น์ฉ์ผ๋ก ๊ตฌ์กฐํ ๋์ง ์์ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉํ ์ ์์ด์.
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ ์๋ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ง๊ณ ์์ด์.
๊ตฌ์ฑ ์์ | ์์ธ ๋ด์ฉ |
swift-proxy-server | ํ์ผ ์
๋ก๋ ๋ฐ ๋ฉํ ๋ฐ์ดํฐ ์์ , ์ปจํ
์ด๋ ์์ฑํ๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง API์ raw HTTP ์์ฒญ ์ฒ๋ฆฌ. ์น ๋ธ๋ผ์ฐ์ ์์ ํ์ผ์ด๋, ์ปจํ ์ด๋ ๋ชฉ๋ก ์ ๊ณต. ์ฑ๋ฅ ๊ฐ์ ์ ์ํด ํ๋ก์ ์๋ฒ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ memcache๋ฅผ ์ ํํ์ฌ ์บ์๋ก ์ฌ์ฉ. |
swift-account-server (๊ณ์ ๊ด๋ฆฌ) |
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์์ ์ ์๋ ๊ณ์ ๊ด๋ฆฌ. |
swift-container-server (์ปจํ ์ด๋ ์๋ฒ) |
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์์ ์ปจํ ์ด๋, ๋๋ ํฐ๋ฆฌ ๋งตํ ๊ด๋ฆฌ. |
siwft-object-server (์ค๋ธ์ ํธ ์๋ฒ) |
์คํ ๋ฆฌ์ง ๋ ธ๋์์ ํ์ผ์ด๊ธฐ๋ ํ ์ค์ ์ค๋ธ์ ํธ ๊ด๋ฆฌ. |
๋ค์ํ ์ฃผ๊ธฐ ํ๋ก์ธ์ค | ๊ฑฐ๋ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง์์ ๋ด๋ถ ์ผ ์ํ. ๋ณต์ ์๋น์ค๋ ํด๋ฌ์คํฐ๋ฅผ ํตํด ์ผ๊ด์ฑ๊ณผ ์ฌ์ฉ์ฑ ๋ณด์ฅ. ๋ค๋ฅธ ์ฃผ๊ธฐ ํ๋ก์ธ์ค์ ๋ํ ๊ฒ์ฌ, ์ ๋ฐ์ดํธ, reaper ํฌํจ. |
WSGI ๋ฏธ๋ค์จ์ด | ์คํ์คํ Identity๋ฅผ ํตํด ์ธ์ฆ ์ฒ๋ฆฌ. |
swift Client | ๊ด๋ฆฌ์, ๋ฆฌ์ ๋ฌ ์ฌ์ฉ์, swift ์ฌ์ฉ์ ์ค ํ๋์๊ฒ Command Line Client ๊ถํ์ ํตํด REST API์๊ฒ ๋ช ๋ นํ๋ ์ฌ์ฉ์๋ฅผ ์๋ฏธ. |
siwft-init | Ring ํ์ผ ๊ตฌ์ถ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ. ๋งค๊ฐ ๋ณ์๋ก ๋ฐ๋ชฌ ์ด๋ฆ ์ง์ ๋ฐ ๋ช ๋ น ์ ๊ณต. http://docs.openstack.org/developer/swift/admin_guide.html#managing-services |
siwtf-recon | CLI Tool์ siwft-recon ๋ฏธ๋ค์จ์ด๋ก ์์ง๋ ํด๋ฌ์คํฐ์ ๋ํ ๋ค์ํ ์ธก์ ๊ฐ๊ณผ telemetry ์ ๋ณด ๊ฒ์. |
swift-ring-builder | ์คํ ๋ฆฌ์ง ring์ ๊ตฌ์ถํ๊ณ , ๊ท ํ์ ๋ค์ ๋ง์ถ๋ Utility. http://docs.openstack.org/developer/swift/admin_guide.html#managing-the-rings |
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ ํ์ผ ํน์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋จ๋
์ผ๋ก ์ ์ฅํ๊ธฐ ์ํ ์ ์ฅ์๋ก ๊ฐ ์ฌ์ฉ์๋ง๋ค ๊ตฌ๋ถ๋ ์ปจํ
์ด๋๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ด์์.
๊ฐ ์ฌ์ฉ์๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๊ณ , ๋๋ ํฐ๋ฆฌ์ ํด๋นํ๋ ์ปจํ
์ด๋๋ฅผ ์์ฑ ๋๋ ์ญ์ ํ ์ ์๊ณ , ๋ฌธ์, ๋์์, ์ฌ์ง ๋ฑ์ ํ์ผ์ ์
๋ก๋ํ์ฌ ์ ์ฅํ ์๋ ์์ด์.
๋ฌผ๋ก ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์ ์ ์ฅ๋ ํ์ผ๋ค์ ๋ด๋ ค๋ฐ๊ธฐ ํ ์๋ ์์ด์.
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ก ์ ์ฅ๋๋ ํ์ผ๋ค์ key, value ํํ๋ก ์ ์ฅ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ , REST API๋ฅผ ํตํด ํ์ผ ์
/๋ค์ด๋ก๋๊ฐ ๊ฐ๋ฅํด์.
๋ํ, ์ค๋ธ์ ํธ๋ก ๋ถ๋ฆฌ๋ ๊ฐ ๋ฐ์ดํฐ ๋จ์๊ฐ ๊ฐ๋ณ๋ก ์ ์ฅ๋๊ฒ ๋๋๋ฐ, ํ์ผ ์คํ ๋ฆฌ์ง์ ๋ฌ๋ฆฌ ํ๋ฉด ๊ตฌ์กฐ(๋น ๊ตฌ์กฐํ)๋ก ๊ตฌ์ฑ๋์ด ์์ด์. ์ค๋๋ ๋น์ ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฒด ๋ฐ์ดํฐ์ 80% ์ด์์ ์ฐจ์งํ๋ค๊ณ ํ๋๋ฐ, ์ด ๋๋ฌธ์ ํด๋ผ์ฐ๋, ๋น
๋ฐ์ดํฐ, ์ธ๊ณต์ง๋ฅ ๋ถ์ผ์์ ๋น์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์คํ ๋ฆฌ์ง ์ํคํ
์ฒ ํ์์ฑ์ด ์ฆ๋๋๊ณ ์์ด์.
๋น์ ํ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ํ์ผ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ๋ฉํ ๋ฐ์ดํฐ๊ฐ ํ์ํด์. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค๋ธ์ ํธ๋ ๋ฉํ ๋ฐ์ดํฐ์ ์ปค์คํฐ๋ง์ด์ง์ ์ ๊ณตํ๊ณ , ์ด๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง์ ํน์ฅ์ ์ด ๋ ์ ์์ด์.
HTTP ๊ธฐ๋ฐ์ RESTful API๋ฅผ ์ง์ํ๊ณ , ๋คํธ์ํฌ ์์ HTTP ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ์ ์ํ ์ ์๋๋ก ํด์ฃผ๊ณ ์์ด์. (์: GET /obj=juny)
์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ ๋ธ๋ก ์คํ ๋ฆฌ์ง์ ๋ค๋ฅด๊ฒ ๋จ๋
์ผ๋ก ๊ตฌ์ฑํ ์ ์๊ณ , ์ฌ์ฉ์ ๊ณ์ ์ ์ปจํ
์ด๋์ ํ์ผ์๋, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ด์. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๋ณ๋ก ์ ์ฅ ๊ณต๊ฐ์ ๋๋๋ ์คํ ๋ฆฌ์ง ์์คํ
๊ตฌ์ถ ์ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํ๋ฉด ์ข์์.
๐ฝ ๊ตฌ์ฑ ์์ ์ค์น ๋ฐ ๊ตฌ์ฑ
๐ฆ keystone ์ด๊ธฐ ๊ตฌ์ฑ - ์ปจํธ๋กค๋ฌ ๋ ธ๋
์ต์ด ์์
์ ์ปจํธ๋กค๋ฌ ๋
ธ๋์์ ์งํํด์ผ ํด์.
์ปจํธ๋กค๋ฌ ๋
ธ๋์์ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ๊ด๋ จ ์ฌ์ฉ์ ๊ณ์ , ์๋น์ค์ ์๋ํฌ์ธํธ๋ฅผ Keystone์ ์์ฑํด ๋ณผ๊ฒ์.
password ๋ถ๋ถ์๋ ํด๋น ๊ณ์ ์ด ์ฌ์ฉํ ์ํธ๋ฅผ ์
๋ ฅํด ์ค์ผ ํ๋๋ฐ, ํน์๋ฌธ์๊ฐ ๋ค์ด๊ฐ์ง ์๊ฒ ์ํธ๋ฅผ ๋ง๋๋๊ฑธ ์ถ์ฒํด์.
๋ง๋ค์ด์ค ๊ณ์ ์ ๊ถํ์ ๊ด๋ฆฌ์(admin)์ผ๋ก ์ค์ ํด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด ์๋น์ค๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
swift ํ๋ก์ ์ ์๋ฅผ ์์ ๊ฐ์ด ํด ์ฃผ์๋๋ฐ, ์ฃผ๋๋ ๋คํธ์ํฌ ๋
ธ๋๋ฅผ ๋ฐ๋ก ๋ถ๋ฆฌํ์ง ์์๊ณ , ํด๋น ๊ธฐ๋ฅ์ ์ปจํธ๋กค๋ฌ ๋
ธ๋์์ ์ฒ๋ฆฌํ๊ฒ ๊ตฌ์ฑํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ด ์ปจํธ๋กค๋ฌ ๋
ธ๋๋ก ์ ์ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด public๊ณผ internal ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ admin ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
๐ฆ ์ด๊ธฐ ๊ตฌ์ฑ(ํ๋ก์) - ์ปจํธ๋กค๋ฌ ๋ ธ๋(๋คํธ์ํฌ ๋ ธ๋)
์ด ๋ถ๋ถ์ ๋คํธ์ํฌ ๋
ธ๋๋ฅผ ๋ฐ๋ก ๊ตฌ์ฑํ๋ค๋ฉด ๋คํธ์ํฌ ๋
ธ๋์์ ์งํํด์ฃผ์ด์ผ ํด์.
์ฃผ๋๋ ๋คํธ์ํฌ ๋
ธ๋ ์ญํ ์ ์ปจํธ๋กค๋ฌ ๋
ธ๋์์ ์งํํ ๊ฒ์ด๋ผ ์ปจํธ๋กค๋ฌ ๋
ธ๋์์ ์งํํ๋ ค๊ณ ํด์.
์ต์ด ํจํค์ง ์ค์น๋ฅผ ์งํํ ๊ฒ์.
๊ทธ๋ฐ ๋ค swift-server ์ค์ ํ์ผ์ ์์ ๊ฐ์ด ๋ด๋ ค๋ฐ์ ์ค๋๋ค.
454๋ฒ์งธ servicepassword๋ ์์์ ๋ง๋ swift ๊ณ์ ์ ์ํธ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํด์.
์์ ๊ฐ์ด ๋ณ๊ฒฝ์ด ์๋ฃ ๋์๋ค๋ฉด ์ ์ฅํ๊ณ , ๋์์ค๋๋ค.
์ด๋ฒ์ ์์ ๊ฐ์ด swift.conf ์ค์ ํ์ผ์ ๋ด๋ ค ๋ฐ์ ์ฃผ์์ด์.
์ฌ๊ธฐ๊น์ง ๋์๋ค๋ฉด ์ ์ฅํ๊ณ , ๋์ต๋๋ค.
ํด๋น ์ค์ ํ์ผ์ด ๋ด๊ธด swift ๋๋ ํฐ๋ฆฌ ์์ ์๋ฅผ ๋ณ๊ฒฝํด ์ฃผ์์ด์.
๐ฆ Swift Ring File ์ค์ - ์ปจํธ๋กค๋ฌ ๋ ธ๋ (๋คํธ์ํฌ ๋ ธ๋)
์ ๋ช
๋ น์ด๋ ์คํ์คํ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๊ณ , ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ring ํ์ผ์ ์์ฑํ๊ธฐ ์ํ ๋ช
๋ น์ด์์.
โ /etc/swift/account.builder ํ์ผ์ ์ฌ์ฉํ์ฌ ๊ณ์ ์คํ ๋ฆฌ์ง ํ์ผ ์์ฑ.
- 12: ํํฐ์
์. ํํฐ์
์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ ๋ฐฉ๋ฒ ์ค ํ๋
- 1: ๋๋ฐ์ด์ค ๊ฐ์. ๋๋ฐ์ด์ค๋ ์ค์ ์คํ ๋ฆฌ์ง ๋
ธ๋๋ฅผ ๋ํ๋ด๋ฉฐ, ์ด ์ซ์๋ ์ค์ ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ ๊ฐ๋ฅ.
- 1: ๋ณต์ ์. ์ฆ, ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ ๋ณต์ ํ์ฌ ์์ ์ฑ ํ๋ณด.
โ /etc/swift/container.builder ํ์ผ์ ์ฌ์ฉํ์ฌ ์ปจํ
์ด๋ ์คํ ๋ฆฌ์ง ring ํ์ผ ์์ฑ. ์ด ring ํ์ผ์ ์ปจํ
์ด๋ ๋ฐ์ดํฐ ์ ์ฅ์ฉ.
โ /etc/swift/object.builder ํ์ผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ring ํ์ผ ์์ฑ. ์ด ring ํ์ผ์ ์ค์ ์ค๋ธ์ ํธ ๋ฐ์ดํฐ ์ ์ฅ.
์ด ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ring ํ์ผ์ ์์ฑํ๊ณ , ๊ตฌ์ฑํ ๋ค์ ์คํ์คํ Swift์ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ ์ ์ฅํ ๊ธฐ๋ฐ์ ๊ตฌ์ถํ ์ ์์ด์. ring ํ์ผ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๋ถ์ฐ๋๊ณ , ์ ์ฅ๋ ์ง์ ๋ํ ์ค์ํ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ , ์ด๋ฌํ ํ์ผ์ ์ ์ํ ๋ค์๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์๋น์ค๋ฅผ ์์ํ ์ ์์ด์.
์ ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด์ ์คํ์คํ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์์ ์ฌ์ฉ๋๋ ring builder ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ
์คํ ๋ฆฌ์ง ๋๋ฐ์ด์ค๋ฅผ ์ถ๊ฐํ ์ ์์ด์.
์ด ๋ช
๋ น์ด๋ account.builder, container.builder, object.builder์ ๋ํด ์คํ๋์์ด์.
๋ช ๋ น์ด ๊ตฌ์กฐ | ์์ธ ๋ด์ฉ |
swift-ring-builder | Swift์ ring builder ๋๊ตฌ ์คํ ๋ช ๋ น์ด. |
/etc/swift/account.builder, /etc/swift/container.builder, /etc/swift/object.builder |
๊ฐ๊ฐ acount, container, object์ ๋ํ ring ํ์ผ ์๋ฏธ. ์ด ํ์ผ๋ค์ ์คํ ๋ฆฌ์ง ํด๋ฌ์คํฐ์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ์ ๋ณต์ ๊ณํ ์ ์ํ๋๋ฐ ์ฌ์ฉ. |
add | ๋๋ฐ์ด์ค ์ถ๊ฐ ๋ช ๋ น์ด |
r0z0-{Object Storage Node IP}:6000, r0z0-{Object Storage Node IP}:6001, r0z0-{Object Storage Node IP}:6002, |
๊ฐ ๋๋ฐ์ด์ค์ ์๋ณ์์ ์์น๋ฅผ ๋ํ๋. ํด๋น ๋๋ฐ์ด์ค ์๋ณํ๊ณ , ์์น ์ ์ ์ญํ . |
100 | ๋๋ฐ์ด์ค ๊ฐ์ค์น. ๊ฐ์ค์น๋ ๋ฐ์ดํฐ๊ฐ ํด๋น ๋๋ฐ์ด์ค์ ์ผ๋ง๋ ์์ฃผ ๋ฐฐํฌ๋๋์ง๋ฅผ ๋ํ๋ด๋ฉฐ, ๋์ ๊ฐ์ค์น๋ ํด๋น ๋๋ฐ์ด์ค์ ๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋จ์ ์๋ฏธ. |
์ ๋ช
๋ น์ด๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ํด๋ฌ์คํฐ ๊ตฌ์ฑ ๋ฐ ์คํ ๋ฆฌ์ง ๋๋ฐ์ด์ค ํด๋ฌ์คํฐ์ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ
๋ถ์ฐ ์ ์ฅํ๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช
๋ น์ด์์.
Swift์ ring builder ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ๊ด๋ฆฌํ๊ณ , ๋ฐ์ดํฐ์ ๋ณต์ ์ ๋ถ์ฐ์ ๊ด๋ฆฌํ ์ ์๋ต๋๋ค.
์ ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด์ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์๋น์ค์์ ์ฌ์ฉ๋๋ ring builder ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ ๋ฆฌ์ง ํํฐ์
(์: ๊ฐ์ฒด, ์ปจํ
์ด๋, ๊ณ์ )์ ๋ํด ์ฌ๋ฐฐ์น๋ฅผ ์ง์ํ ๋ถ๋ถ์ด์์.
๋ช ๋ น์ด ๊ตฌ์กฐ | ์์ธ ๋ด์ฉ |
swift-ring-builder | Swift์ ring builder ๋๊ตฌ ์คํ ๋ช ๋ น. |
/etc/swift/account.builder, /etc/swift/container.builder, /etc/swift/object.builder |
account, container, object์ ๋ํ ํ์ผ์ ๋ํ๋. ์ด ํ์ผ๋ค์ ์คํ ๋ฆฌ์ง ํด๋ฌ์คํฐ์ ๊ตฌ์กฐ์ ๋ณต์ ๊ณํ ์ ์ํ๋๋ฐ ์ฌ์ฉ. |
rebalance | ์คํ ๋ฆฌ์ง ํํฐ์ ์ ์ฌ๋ฐฐ์น ์์ ์คํ ๋ช ๋ น์ด |
์ฌ๋ฐฐ์น ์์
์ ์คํ ๋ฆฌ์ง ํด๋ฌ์คํฐ์ ๋ถํ๋ฅผ ๋ถ์ฐ์ํค๊ณ , ๋ฐ์ดํฐ์ ๋ณต์ ๋ฅผ ์ต์ ํํ๊ธฐ ์ํด ์ํํ๋ ๊ฒ์ด์์.
Reassigned ๋ผ์ธ์ ์ฌ๋ฐฐ์น ์์
์ด ๋ช ๊ฐ์ ํํฐ์
์ ๋ค์ ํ ๋นํ๋์ง ๋ํ๋ด๊ณ , Balance๋ ํ์ฌ ํํฐ์
์ ๊ท ํ์ ๋ํ๋ด๋ฉฐ, Dispersion์ ํํฐ์
๋ถ์ฐ ์ ๋๋ฅผ ๋ํ๋ด์.
๋ช
๋ น ๊ฒฐ๊ณผ Balance is now 0.00, Dispersion is now 0.00๋ ํํฐ์
์ฌ๋ฐฐ์น๊ฐ ์๋ฃ๋์๊ณ , ํํฐ์
์ ๊ท ํ๊ณผ ๋ถ์ฐ์ด ์ต์ ํ ๋์์์ ๋ํ๋ด๋ ๊ฒ์ด์์. Swift ํด๋ฌ์คํฐ๊ฐ ์์ ๋๊ณ ,
์ ๊ตฌ์ฑ๋์๋ค๋ฉด ์ด๋ฌํ ๊ฐ์ ์ต๋ํ 0์ ๊ฐ๊น๊ฒ ์ ์ง๋๋ต๋๋ค.
์ด๋ ๊ฒ ์ฃผ์ง์ ์ผ๋ก ์์
์ ์ํํด์ฃผ๋ฉด ์คํ ๋ฆฌ์ง ํด๋ฌ์คํฐ์ ์ฑ๋ฅ์ ์ต์ ํํ๊ณ , ์์ ์ฑ์ ์ ์งํ ์ ์์ด์.
์ด์ ์์ ๊ฐ์ด ์์ฑ๋ ring ํ์ผ ์์ ์๋ฅผ ๋ณ๊ฒฝํด ์ฃผ์๊ณ , swift-proxy ๋ฐ๋ชฌ์ ์ฌ๊ธฐ๋ํ๊ณ , ์๋น์ค์ ๋ฑ๋กํด ์ฃผ์์ด์.
๐ฆ Nginx ์ค์ - ์ปจํธ๋กค๋ฌ ๋ ธ๋ (๋คํธ์ํฌ ๋ ธ๋)
์์ ๊ฐ์ด ์๋ก์ด upstream์ ์ถ๊ฐํด ์ฃผ์์ด์.
์ ์ฅํ๊ณ , ๋์ต๋๋ค.
๊ทธ๋ฐ ๋ค nginx ๋ฐ๋ชฌ์ ์ฌ๊ธฐ๋ ํด ์ฃผ์์ด์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ง ์ฐธ๊ณ ์๋ฃ