[Hyper-V] [Open Stack] [Controller Node] [Storage] โ‘ก-โ‘  Object Storage - Swift ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

2023. 9. 15. 21:30ใ†System ์ž‘์—…์‹ค/Server ๊ด€๋ จ

728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

 

 

 

OpenStack for Architects - Second Edition Paperback

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 




๐Ÿ—‚ ๋ชฉ์ฐจ

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)

์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋Š” ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€์™€ ๋‹ค๋ฅด๊ฒŒ ๋‹จ๋…์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ์ž ๊ณ„์ •์˜ ์ปจํ…Œ์ด๋„ˆ์— ํŒŒ์ผ์•„๋‹ˆ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์–ด์š”. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋ณ„๋กœ ์ €์žฅ ๊ณต๊ฐ„์„ ๋‚˜๋ˆ„๋Š” ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ ๊ตฌ์ถ• ์‹œ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด ์ข‹์•„์š”.


์ถœ์ฒ˜:์Šคํ† ๋ฆฌ์ง€ ๊ธฐ์ดˆ ์ง€์‹ 9ํŽธ: ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋ž€


 

 

 

    ๐Ÿ”ฝ ๊ตฌ์„ฑ ์š”์†Œ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

       ๐Ÿ“ฆ keystone ์ดˆ๊ธฐ ๊ตฌ์„ฑ - ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ

์ตœ์ดˆ ์ž‘์—…์€ ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์—์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•ด์š”.

์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์—์„œ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ๊ด€๋ จ ์‚ฌ์šฉ์ž ๊ณ„์ •, ์„œ๋น„์Šค์™€ ์—”๋“œํฌ์ธํŠธ๋ฅผ Keystone์— ์ƒ์„ฑํ•ด ๋ณผ๊ฒŒ์š”.

openstack user create --domain default --project service --password servicepassword swift


password ๋ถ€๋ถ„์—๋Š” ํ•ด๋‹น ๊ณ„์ •์ด ์‚ฌ์šฉํ•  ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ค˜์•ผ ํ•˜๋Š”๋ฐ, ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ฒŒ ์•”ํ˜ธ๋ฅผ ๋งŒ๋“œ๋Š”๊ฑธ ์ถ”์ฒœํ•ด์š”.


openstack user create --domain default --project service --password servicepassword swift



openstack role add --project service --user swift admin


๋งŒ๋“ค์–ด์ค€ ๊ณ„์ •์˜ ๊ถŒํ•œ์„ ๊ด€๋ฆฌ์ž(admin)์œผ๋กœ ์„ค์ •ํ•ด ์ฃผ์—ˆ์–ด์š”.


openstack service create --name swift --description "OpenStack Object Storage" object-store


๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.



export swift_proxy=private-controller


swift ํ”„๋ก์‹œ ์ •์˜๋ฅผ ์œ„์™€ ๊ฐ™์ด ํ•ด ์ฃผ์—ˆ๋Š”๋ฐ, ์ฃผ๋‹ˆ๋Š” ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š์•˜๊ณ , ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์ด ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ๋กœ ์ •์˜ํ•ด ์ฃผ์—ˆ์–ด์š”.


openstack endpoint create --region RegionOne object-store public http://$swift_proxy:8080/v1/AUTH_%\(tenant_id\)s; openstack endpoint create --region RegionOne object-store internal http://$swift_proxy:8080/v1/AUTH_%\(tenant_id\)s

๋ฐ˜์‘ํ˜•


์œ„์™€ ๊ฐ™์ด public๊ณผ internal ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.


openstack endpoint create --region RegionOne object-store admin http://$swift_proxy:8080/v1


๊ทธ๋ฆฌ๊ณ  admin ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.

 

 

 

       ๐Ÿ“ฆ ์ดˆ๊ธฐ ๊ตฌ์„ฑ(ํ”„๋ก์‹œ) - ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ(๋„คํŠธ์›Œํฌ ๋…ธ๋“œ)

์ด ๋ถ€๋ถ„์€ ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ๋ฅผ ๋”ฐ๋กœ ๊ตฌ์„ฑํ–ˆ๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ์—์„œ ์ง„ํ–‰ํ•ด์ฃผ์–ด์•ผ ํ•ด์š”.

์ฃผ๋‹ˆ๋Š” ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ ์—ญํ• ์„ ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์—์„œ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋ผ ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์—์„œ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•ด์š”.

์ตœ์ดˆ ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ• ๊ฒŒ์š”.

apt install -y swift swift-proxy python3-swiftclient python3-keystonemiddleware python3-memcache nginx libnginx-mod-stream



curl -o /etc/swift/proxy-server.conf https://opendev.org/openstack/swift/raw/branch/stable/zed/etc/proxy-server.conf-sample?h=stable/zed


๊ทธ๋Ÿฐ ๋’ค swift-server ์„ค์ • ํŒŒ์ผ์„ ์œ„์™€ ๊ฐ™์ด ๋‚ด๋ ค๋ฐ›์•„ ์ค๋‹ˆ๋‹ค.


vim /etc/swift/proxy-server.conf [DEFAULT] ๋ณ€๊ฒฝ



vim /etc/swift/proxy-server.conf [pipeline:main] ๋ณ€๊ฒฝ



vim /etc/swift/proxy-server.conf [app:proxy-server] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [app:proxy-server] ๋ณ€๊ฒฝ


454๋ฒˆ์งธ servicepassword๋Š” ์œ„์—์„œ ๋งŒ๋“  swift ๊ณ„์ •์˜ ์•”ํ˜ธ๋ฅผ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•ด์š”.




vim /etc/swift/proxy-server.conf [filter:keystoneauth] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:healthcheck] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:cache] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:ratelimit] ๋ณ€๊ฒฝ



vim /etc/swift/proxy-server.conf [filter:domain_remap] ๋ณ€๊ฒฝ





vim /etc/swift/proxy-server.conf [filter:catch_errors] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:cname_lookup] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:staticweb] ๋ณ€๊ฒฝ





vim /etc/swift/proxy-server.conf [filter:tempurl] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:formpost] ๋ณ€๊ฒฝ





vim /etc/swift/proxy-server.conf [filter:name_check] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:list-endpoints] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:proxy-logging] ๋ณ€๊ฒฝ

 

 

vim /etc/swift/proxy-server.conf [filter:bulk] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:slo] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:dlo] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:container-quotas] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:account-quotas] ๋ณ€๊ฒฝ





vim /etc/swift/proxy-server.conf [filter:gatekeeper] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:container_sync] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:xprofile] ๋ณ€๊ฒฝ




vim /etc/swift/proxy-server.conf [filter:versioned_writes] ๋ณ€๊ฒฝ



์œ„์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ์ด ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋ฉด ์ €์žฅํ•˜๊ณ , ๋‚˜์™€์ค๋‹ˆ๋‹ค.

curl -o /etc/swift/swift.conf https://opendev.org/openstack/swift/raw/branch/stable/zed/etc/swift.conf-sample?h=stable/zed


์ด๋ฒˆ์—” ์œ„์™€ ๊ฐ™์ด swift.conf ์„ค์ • ํŒŒ์ผ์„ ๋‚ด๋ ค ๋ฐ›์•„ ์ฃผ์—ˆ์–ด์š”.



vim /etc/swift/swift.conf [swift-hash] ๋ณ€๊ฒฝ ์ „



vim /etc/swift/swift.conf [swift-hash] ๋ณ€๊ฒฝ ๋’ค



์—ฌ๊ธฐ๊นŒ์ง€ ๋˜์—ˆ๋‹ค๋ฉด ์ €์žฅํ•˜๊ณ , ๋‚˜์˜ต๋‹ˆ๋‹ค.

chown -R swift. /etc/swift


ํ•ด๋‹น ์„ค์ • ํŒŒ์ผ์ด ๋‹ด๊ธด swift ๋””๋ ‰ํ„ฐ๋ฆฌ ์†Œ์œ ์ž๋ฅผ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ์–ด์š”.




 

 

       ๐Ÿ“ฆ Swift Ring File ์„ค์ • - ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ (๋„คํŠธ์›Œํฌ ๋…ธ๋“œ)

swift-ring-builder /etc/swift/account.builder create 12 1 1; swift-ring-builder /etc/swift/container.builder create 12 1 1; swift-ring-builder /etc/swift/object.builder create 12 1 1



์œ„ ๋ช…๋ น์–ด๋Š” ์˜คํ”ˆ์Šคํƒ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ring ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์—์š”.

โˆ™ /etc/swift/account.builder ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ • ์Šคํ† ๋ฆฌ์ง€ ํŒŒ์ผ ์ƒ์„ฑ.
   - 12: ํŒŒํ‹ฐ์…˜ ์ˆ˜. ํŒŒํ‹ฐ์…˜์„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜
   - 1: ๋””๋ฐ”์ด์Šค ๊ฐœ์ˆ˜. ๋””๋ฐ”์ด์Šค๋Š” ์‹ค์ œ ์Šคํ† ๋ฆฌ์ง€ ๋…ธ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ด ์ˆซ์ž๋Š” ์‹ค์ œ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์กฐ์ • ๊ฐ€๋Šฅ.
   - 1: ๋ณต์ œ ์ˆ˜. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ ๋ณต์ œํ•˜์—ฌ ์•ˆ์ •์„ฑ ํ™•๋ณด.

โˆ™ /etc/swift/container.builder ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์Šคํ† ๋ฆฌ์ง€ ring ํŒŒ์ผ ์ƒ์„ฑ. ์ด ring ํ„์ผ์€ ์ปจํ…Œ์ด๋„ˆ ๋ฐ์ดํ„ฐ ์ €์žฅ์šฉ.

โˆ™ /etc/swift/object.builder ํŒŒ์ผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€ ring ํŒŒ์ผ ์ƒ์„ฑ. ์ด ring ํŒŒ์ผ์€ ์‹ค์ œ ์˜ค๋ธŒ์ ํŠธ ๋ฐ์ดํ„ฐ ์ €์žฅ.

 

์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ring ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ๊ตฌ์„ฑํ•œ ๋‹ค์Œ ์˜คํ”ˆ์Šคํƒ Swift์˜ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•  ๊ธฐ๋ฐ˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์–ด์š”. ring ํŒŒ์ผ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ถ„์‚ฐ๋˜๊ณ , ์ €์žฅ๋ ์ง€์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ , ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ •์˜ํ•œ ๋’ค์—๋Š” ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์š”.


swift-ring-builder /etc/swift/account.builder add r0z0-192.168.20.4:6002/device 100; swift-ring-builder /etc/swift/container.builder add r0z0-192.168.20.4:6001/device 100;swift-ring-builder /etc/swift/object.builder add r0z0-192.168.20.4:6000/device 100

728x90



์œ„ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์˜คํ”ˆ์Šคํƒ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€์—์„œ ์‚ฌ์šฉ๋˜๋Š” 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 ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๋ณต์ œ์™€ ๋ถ„์‚ฐ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.



swift-ring-builder /etc/swift/account.builder rebalance; swift-ring-builder /etc/swift/container.builder rebalance;swift-ring-builder /etc/swift/object.builder rebalance


์œ„ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” 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์— ๊ฐ€๊น๊ฒŒ ์œ ์ง€๋œ๋‹ต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ฃผ์ง€์ ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋ฉด ์Šคํ† ๋ฆฌ์ง€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ , ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์š”.


chown swift. /etc/swift/*.gz; systemctl restart swift-proxy;systemctl enable swift-proxy


์ด์ œ ์œ„์™€ ๊ฐ™์ด ์ƒ์„ฑ๋œ ring ํŒŒ์ผ ์†Œ์œ ์ž๋ฅผ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ๊ณ , swift-proxy ๋ฐ๋ชฌ์„ ์žฌ๊ธฐ๋™ํ•˜๊ณ , ์„œ๋น„์Šค์— ๋“ฑ๋กํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

 

       ๐Ÿ“ฆ Nginx ์„ค์ • - ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ (๋„คํŠธ์›Œํฌ ๋…ธ๋“œ)

vim /etc/nginx/nginx.conf


์œ„์™€ ๊ฐ™์ด ์ƒˆ๋กœ์šด upstream์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ์–ด์š”.
์ €์žฅํ•˜๊ณ , ๋‚˜์˜ต๋‹ˆ๋‹ค.


systemctl restart nginx


๊ทธ๋Ÿฐ ๋’ค nginx ๋ฐ๋ชฌ์„ ์žฌ๊ธฐ๋™ ํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

 

Openstack Essentials Second Edition Paperback

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

๐Ÿง ์ฐธ๊ณ  ์ž๋ฃŒ

 

Ubuntu 22.04 LTS : OpenStack Zed : Configure Swift (Proxy Node) : Server World

root@network:~# swift-ring-builder /etc/swift/account.builder add r2z2-10.0.0.73:6002/device 100 Device d2r2z2-10.0.0.73:6202R10.0.0.73:6202/device_"" with 100.0 weight got id 2 root@network:~# swift-ring-builder /etc/swift/container.builder add r2z2-10.0.

www.server-world.info

 

 

 

728x90
๋ฐ˜์‘ํ˜•