More Related Content Similar to OpenStack Object Storage; Usage
Similar to OpenStack Object Storage; Usage (20) OpenStack Object Storage; Usage1. OSC2012 Tokyo/Spring
openstack
Open source software to build public and private clouds.
Object Storage; Usage
ããªããžã§ã¯ãã¹ãã¬ãŒãžã¯ãã䜿ãïŒã
2012.03.17
æ¥æ¬ OpenStack ãŠãŒã¶äŒ
@irix_jp
1
2. â ãã¿ãè±å¯ãª Nova ã«æ¯ã¹ Swift ã¯ãã¿ãç¡ãã»ã»ã»
Swift
Nova
èªäž»èŠå¶ èªäž»èŠå¶
ãå¯¿åž åµããã飯
次㯠Glance ã®è©±ãäžç·ã«ãããã
Glance
èªäž»èŠå¶
ãããã
2
3. Agenda
â Swift ã£ãŠäœïŒ
â Swift ã泚ç®ãããã¯ã±
â Swift ã䜿ãäžã§æããŠãããã€ã³ã
â 䜿ãæ
â ãã¥ãŒã¹
â ãŸãšã
3
5. Swift ã£ãŠäœïŒ
â OpenStack ã®äžéšã§ Object Storage æ©èœãæ
åœ
â Amazon S3 çžåœïŒäºæ API ããïŒ
â æ®æ®µã¯ Glance ãšé£æºããŠã Nova ã䜿ãä»®æ³ãã·
ã³ã€ã¡ãŒãžã®ä¿åå
ãšããŠåäœã
5
6. Swift ã£ãŠäœïŒ
â Swift ã®å®æ
ã¯ã·ã³ãã«ãªãã¡ã€ã«ãµãŒã
Account
http Proxy http Storage Container
Client
Node Swift
Node Object
â ç¹åŸŽ
â å®äŸ¡ãªããŒããŠã§ã¢ã§å®å
šã«ãã¡ã€ã«ä¿åãå¯èœ
â ããã©ã«ã㧠3 ã€ã®ã¬ããªã«ãäœæ
â 匷åãªèªå·±ä¿®åŸ©æ©èœ
â HTTP(REST) ã§ãã¡ã€ã«ã®å
¥åºåïŒæäœ
â 容éãšæ§èœããªãã¢ã«ã¹ã±ãŒã«ããåäžé害ç¹ç¡ã
â ã·ã³ã°ã«ããŒã ã¹ããŒã¹ã§æ°çŸ PB ã管ç
6
7. Swift ã£ãŠäœïŒ
â é«ãå®æ床ãšå®çžŸ
â åçšãµãŒãã¹ïŒ Rackspace Cloud Files ïŒãããŒã¹ãšã
㊠OSS åãããŠãããã OpenStack ã®äžã§ãçžå¯Ÿç
ã«å®æ床ãé«ãã
n
tio
â æ¢ã«å€§èŠæš¡ç°å¢äžã§ã®éçšå®çžŸ
â 1PB ïŒ KR ïŒ
uc y!
d d
â
â
5.5PB ïŒ US ïŒ
Etc...
ro e a
P R
â Swift åäœã§ãå©çšå¯èœ
â æ§é ãã·ã³ãã«ïŒå€§èŠæš¡ç°å¢ã«ãããŠè¶
éèŠïŒ
7
8. Swift ã£ãŠäœïŒ
â åèè³æ
â Swift ã®å
éšæ§é ã¯ãã®ãããã®è³æãåç
§
â http://www.slideshare.net/irix_jp/openstack-object-
storage-overview
â ã€ã³ã¹ããŒã«æ¹æ³
â http://techtarget.itmedia.co.jp/tt/news/1109/20/ne
ws02.html
â OpenStack ã®éçºã«åå ããã人ã¯ãããåç
§
â http://wiki.openstack.org/DevQuickstart/ja
8
10. Swift ã泚ç®ãããèæ¯
â åŸæ¥ã®ã¹ãã¬ãŒãžã·ã¹ãã
â äŒæ¥ãã¿ãŒã²ããã«ããŠçºå±
â é«äŸ¡ã§é«ä¿¡é Œãªã·ã¹ãã
â ããŒã¿ãçµ±åããŠéçŽç®¡ç èªäž»èŠå¶
ãšã³ã¿ãŒãã©ã€ãºã€ã¡ãŒãž
10
11. Swift ã泚ç®ãããèæ¯
â ä»åŸããŒã¿ã¯ãŸããŸãå¢ããŠãããšèšããããã»ã»ã»
IDC
åœå
ãã£ã¹ã¯ã¹ãã¬ãŒãžã·ã¹ãã åžå Žã
èªäž»èŠå¶ ãã¡ã€ã«ããŒã¹ïŒãããã¯ããŒã¹å¥åºè·
容éå®çžŸãšäºæž¬ã 2005 å¹Žïœ 2015 幎
â å®éå¢ããŠããã®ã¯äŒæ¥å
ã®ããŒã¿ã§ã¯ãªã WEB
ç³»
â åçãåç»ãã¢ã¯ã»ã¹ãã°ãã²ãŒã çã
ã»ã»ã»
http://www.idcjapan.co.jp/Press/Current/20110831Apr.html 11
12. Swift ã泚ç®ãããèæ¯
â ãããççºçã«å¢ããŠãã WEB ç³»ããŒã¿ã«å¯ŸããŠ
åŸæ¥ã®ã¹ãã¬ãŒãžã¯èŠªåæ§ãäœã
â WEB ã®åæ£ã¹ã±ãŒã«ã¢ãŠãã«ã€ããŠãããªã
â åŸæ¥ã¹ãã¬ãŒãžã¯ã¹ã±ãŒã«ã¢ããã§ã®å¯Ÿå¿
â ã·ã³ã°ã«ããŒã ã¹ããŒã¹ã§ç®¡çã§ãã容éã®äžéãäœã
â ãããã³ã«ãã€ã³ã¿ãŒããããçµç±ããããšãåæãšããŠããªã
12
13. Swift ã泚ç®ãããèæ¯
â ãããççºçã«å¢ããŠãã WEB ç³»ããŒã¿ã«å¯ŸããŠ
åŸæ¥ã®ã¹ãã¬ãŒãžã¯èŠªåæ§ãäœã
â ããŒã¿å®¹éãäŒæ¥ã«æ¯ã¹ããšæ¡éãã«å€ããããã³ã¹ã
ãããããããã
â ç€Ÿå¡ 5000 人 ïœ 10GB/ 人 = 50TB
â ãŠãŒã¶ 5000 äžäºº x 1GB/ 人 = 50PB
ãã·ãã·ã£ãŠã¬ãã«
ãããªãã ãã»ã»ã»
èªäž»èŠå¶
ããã°ããŒã¿ ã©ãŒã¡ã³ããããŸããŸã
13
14. Swift ã泚ç®ãããèæ¯
â ããã§åæ£ãªããžã§ã¯ãã¹ãã¬ãŒãžã泚ç®ããããã
ã«ãªã£ãã
â æè¡çãªåé¡
â HTTP ãå©çšããå
¥åºå
â ã¹ã±ãŒã«ã¢ãŠãæ§é ã®äºæïŒ
â ã³ã¹ãçãªåé¡
â å®äŸ¡ãªããŒããŠã§ã¢ã䜿ããé«ä¿¡é Œãªæ§é
14
16. BASE ãš CAP å®ç
â Swift ã®ãã©ã³ã¶ã¯ã·ã§ã³ã¢ãã«ã¯ BASE
â Basically Available
â Proxy ãš Storage Node ã®äžŠååã«ããåé·æ§
â Soft-State
â åãåºãããŒã¿ãææ°ãã©ããã¯å€æããªã
â Eventually Consistent
â 楜芳çã¬ããªã±ãŒã·ã§ã³ã«ããçµææŽåæ§
â ãåèã Cloud ã®æè¡çç¹åŸŽã«ã€ããŠ
â http://qcontokyo.com/tokyo-
2009/pdf/GeneralSession-Day2-Maruyama.pdf
CAP ã BASE ã DB ã®è©±ãªã®ã§ç¡çããåœãŠã¯ããŠãŸãã 16
17. BASE ãš CAP å®ç
â CAP å®çãšã®é¢ä¿
â Consistency ïŒäžè²«æ§ïŒ
â Availability ïŒå¯çšæ§ïŒ
â Partition-tolerance ïŒåæèæ§ïŒ
éåžžã® Swift
ãã¡ã€ã«ãµãŒã
Consistency â â
Availability â³ â
Partition-tolerance â â
CAP ã BASE ã DB ã®è©±ãªã®ã§ç¡çããåœãŠã¯ããŠãŸãã 17
18. BASE ãš CAP å®ç
â éèŠãªã®ã¯ãçµææŽåæ§ã
â 楜芳çã¬ããªã±ãŒã·ã§ã³
â ããŒã¿ã®åãåºãã¯ã¬ããªã±ãŒã·ã§ã³ããã©ã³ãã
â ããŒãé害ããã®åŸ©æ§æçãã¬ããªã±ãŒã·ã§ã³ãçµãã£ãŠ
ããªãç¶æ
ã«ãããŠå€ãããŒã¿ãåãåºãããå¯èœæ§
ããã
â ãã®ç¹æ§ãç解ããäžã§ã·ã¹ãã ã«é©å¿ããã¹ãã¬ãŒãž
ã·ã¹ãã ãæ¡çšããå¿
èŠãããã
CAP ã BASE ã DB ã®è©±ãªã®ã§ç¡çããåœãŠã¯ããŠãŸãã 18
20. Swift ã®äœ¿ãæ
è©äŸ¡
â ãªã³ã©ã€ã³ã¹ãã¬ãŒãž
â Swift ã䜿ããšã»ã»ã»
â å€æ°ã®ã¯ã©ã€ã¢ã³ãããã®çŽ°ããªåæã¢ããããŒããããŠ
ã³ããŒãã«ã察å¿å¯èœ
â å®äŸ¡ã«å€§å®¹éã®ç¢ºä¿ãå¯èœ
â ãã¡ã€ã«ã«å±æ§ä»å å¯èœ
20
21. Swift ã®äœ¿ãæ
è©äŸ¡
â EC ãµã€ãã®ããã¯ãšã³ãã¹ãã¬ãŒãž
â äŸïŒãŠãŒã¶ããã®åçã¢ããããŒãã®ä¿åå
â Swift ã䜿ããšã»ã»ã»
â ããã°ã©ã ãç°¡æœã«èšè¿°å¯èœ
â ã¹ãã¬ãŒãžãšã¯ã©ã€ã¢ã³ããçŽçµã§ãã
â ããŒã ã¹ããŒã¹ãåäžã«ã§ãã
â çªçºçãªè² è·ã«ã匷ã
21
22. Swift ã®äœ¿ãæ
è©äŸ¡
â ã¹ããªãŒãã³ã°çšã¹ãã¬ãŒãž
â Swift ã䜿ããšã»ã»ã»
â å®äŸ¡ã«é«ã¹ã«ãŒããããªé
ä¿¡ç°å¢ãæ§ç¯
â è€è£œããã©ã³ãã ã«ããŒã¿ãååŸããã®ã§ãã¬ããªã«ãå¢ãã
ããšã§ãªãã¢ã«ã¹ã«ãŒããããåäžããããã
â ãã¡ã€ã«ãéäžããååŸå¯èœ
â ãã¡ã€ã«ãè€æ°ã®ããŒãã«åæ£å¯èœ
22
23. Swift ã®äœ¿ãæ
è©äŸ¡
â 倧éãã°ã®ä¿ç®¡å
ïŒåãåºã
â äŸïŒå€æ°ã®ãµãŒãããã®ãã°ã¢ããããŒã
â äŸïŒè§£æçš Hadoop ãžã®å€§éããŒã
â Swift ã䜿ããšã»ã»ã»
â ã¹ã±ãŒã«ã¢ãŠãããã®ã§ãæ§èœã®ç¢ºä¿ãå®äŸ¡ã«å¯èœ
23
24. Swift ã®äœ¿ãæ
è©äŸ¡
â 瀟å
ã®ãã¡ã€ã«ãµãŒã
â Swift ã䜿ããšã»ã»ã»
â 䜿ããªãã¯ç¡ããã©ã»ã»ã»
â OS æšæºã§ãµããŒããããªãã®ã§ã CIFS/NFS ã«æ¯ã¹ã
ãšäœ¿ãåææªãã
â 瀟å
ã®ããŒã¿ã¯ããããæ°å TB
24
25. Swift ã®äœ¿ãæ
è©äŸ¡
â ããŒã¿ããŒã¹ã®ä¿ç®¡å
â äŸïŒ RDBMS ã® DBF æ ŒçŽå
â Swift ã䜿ããšã»ã»ã»
â ãããã察å¿ããŠã DB ãç¡ã
â ä»®ã«å¯Ÿå¿ãããšããŠããããã¯ã¬ãã«ã§ã®ã¢ã¯ã»ã¹ã§ããª
ãããé
ããã»ã»ã»
25
26. Swift ã®äœ¿ãæ
â ãŸãšã
â å¿
ãããå
šãŠã®ã·ã¹ãã ã«äœ¿ããããã§ã¯ç¡ã
â æ±çšçã«äœ¿ããã IF ããµããŒãããŠãªããã
â ç¹ã«ããã±ãŒãžç³»ã¯ãŸã ãŸã 䜿ãããã®ãå°ãªã
â ããã¯ã¢ãããœãããäžå¿ã« Swift API/S3 API ã«å¯Ÿå¿ããŠãã
ãã®ãåŸã
ã«å¢ããŠããŠãã
â 䜿ãã°ã¢ããªéçºã楜ã«ãªã
â åŸæ¥ã¹ãã¬ãŒãžã«ãããã¡ãªåé¡ãã»ãŒè§£æ±ºã§ãã
26
27. Hadoop/HDFS ãšã®é¢ä¿
è¶
倧容éãåºåéã§ã®å©çšãæ³å®ãã
Hadoop ãã¡ã€ã«å
¥åºåãšä¿ç®¡ã«ç¹å
ã» SPOF ç¡ã
MapReduce ã»ã·ã³ãã«ã«å€§èŠæš¡ã¹ã±ãŒã«
ã» HTTP/HTTPS ã«ããæäœ
解æã®æ¯æŽã
ç®ç HDFS Amazon S3 Swift
HTTP/HTTPS
Java API S3 API Swift API
27
29. Essex ãªãªãŒã¹
Blueprint 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8
11-11-24 12-01-09 12-02-10 12-03-09 12-03-22
Number of Fixed Bugs 14 8 11 10 äºå®
Self Destructing Files â
add more detail to rate limit errors â
add swift man pages â
better ring builder error messages â
change ring builder exit codes â
create swift recon docs â
swift recon socket stats â
tempauth autocreate accounts â
zone specific recon â
Old and/or hung process tools â
suppot marker queries in swift cli â
add memcache.conf â
form post â
remove rfc.sh â
Remove old swift-stats-populate, swift-stats-report, and â
etc/stats-conf-sample
29
30. Essex ãªãªãŒã¹
â æ©èœæ¡åŒµã¯ããšãªãã
â ãã¡ã€ã«ã®æéæ¶å»
â Formpost/TempURL
â éçšé¢ã®æ¯æŽæ©èœãå
å®
â ãŸãŒã³çµ±èšæ
å ±
â ãœã±ããçµ±èšæ
å ±ïŒ /proc/net/socketstat ïŒ
â åçš® man ããŒãž / ããã¥ã¡ã³ãæŽå
â ãšã©ãŒã¡ãã»ãŒãžãã³ãŒãã®èŠçŽã
30
32. ãŸãšã
â Swift ã¯ã»ã»ã»
â HTTP ïŒ REST ïŒã§éä¿¡ãããã¡ã€ã«ãµãŒãã§ãã
â å®äŸ¡ãªããŒãã§å®å
šã«åããŸãã RAID äžèŠã
â 容éã»æ§èœãã¹ã±ãŒã«ãã SPOF ããããŸããã
â æ±çšæ§ãé«ã Swift åäœã§äœ¿ããŸãã
â æ§é ãã·ã³ãã«ã§ãã©ãã«èŠçŽ ãå°ãªãã
â å®çšã¬ãã«ãŸã§éããŠããã PB ã¯ã©ã¹ã®åçšãµãŒãã¹
å®çžŸãããïŒ
â ãã ãçšéã«ã¯åãäžåãããã
32
34. åèãµã€ã
â OpenStack( æ¬å®¶ )
â http://www.openstack.org/
â æ¥æ¬ OpenStack ãŠãŒã¶äŒ
â http://openstack.jp/
â API ããã¥ã¢ã«ïŒæ¬å®¶ïŒ
â http://docs.openstack.org/api/openstack-object-storage/1.0
34
35. åèãµã€ã
â 䜿çšãããŠããã ããçŽ æ
â http://cool-liberty.com/
â http://tanukifont.sblo.jp/article/41432838.html
â http://office.microsoft.com/ja-jp/images/
35
37. Swift ã®èªèšŒæ©æ§
â ïŒã€ã®èªèšŒæ¹åŒ
â Keystone
â OpenStack å
±éèªèšŒæ¹åŒ
â TempAuth
â Swift å°çšèªèšŒæ©èœãç°¡æçãªèªèšŒæ©èœ
â WSGI ããã«ãŠã§ã¢ïŒ Proxy äžã§çšŒåïŒ
â SWAuth
â Swift å°çšèªèšŒæ©èœã Swift ã«ç¹åããèªèšŒæ©èœ
â WSGI ããã«ãŠã§ã¢ïŒ Proxy äžã§çšŒåïŒ
37
38. Swift ã®èªèšŒæ©æ§
â èªèšŒæ¹åŒæ¯èŒ
é
ç® Keystone TempAuth SWAuth
ç¯å² OpenStack å
±é Swift å°çš Swift å°çš
èªèšŒæ¹åŒ
DB MySQL+Swift Swift Swift
ã¢ã«ãŠã³ãæäœ å°çšã³ãã³ã Proxy èšå®ãã¡ å°çšã³ãã³ã
ã€ã«ãžãã¿æžã
ãµãŒã圢æ
å°çšãµãŒã Proxy äžã®ãã Proxy äžã®ãã
ã«ãŠã§ã¢ ã«ãŠã§ã¢
SPOF æã ïŒ 1 ç¡ã ç¡ã
ã¹ã±ãŒã«ã¢ãŠã ããªã ïŒ 1 ãã ãã
*1) diablo æã®å®è£
38
39. SWAuth
â SWAuth ã¯ãã€ãŠ Swift æšæºã®èªèšŒæ©æ§ã ã£ã
ãã Keystone ã OpenStack å
šäœã®å
±éèªèšŒãš
ããŠæ¡çšãããäºã決å®ããªã¯ã³ã³å
39
40. SWAuth
â SWAuth ã¯ãã€ãŠ Swift æšæºã®èªèšŒæ©æ§ã ã£ã
ãã Keystone ã OpenStack å
šäœã®å
±éèªèšŒãš
ããŠæ¡çšãããäºã決å®ããªã¯ã³ã³å
â ã»ã»ãããã®æ§ã«èŠããããå¥ãããžã§ã¯ããšããŠç¶
ç¶ã
â OpenStack Authentication (for Swift)
â https://launchpad.net/swauth
40
41. SWAuth
â æ°ç SWAuth ã®ãããšãã
â Proxy ã®ããã«ãŠã§ã¢ãšããŠåäœ
â Swift ã®ã¡ãªããã享å
â ã¹ã±ãŒã«ïŒèé害æ§
â ããã¯ãšã³ã DB ã Swift
â Swift å€éšã« DB ãæã€å¿
èŠãç¡ã
â äžè²«ãã ID 管ç
â Swift ã®ã¡ãªããã享å
â ã¹ã±ãŒã«ïŒèé害æ§
â WebConsole ããã
41
42. SWAuth
â Swift ãåäœã§å©çšããå Žåã SWAuth ã®å©çšã
ãããã
â Keystone 㯠Swift çã«ã¯ãŸã 䜿ãåæãæªã
â èé害æ§ãæ§èœé¢ã§ã課é¡ãã
â ããŒã¿ã®äºéæã¡ïŒ Keystone/Swift ïŒ
â TempAuth ã¯ãã¹ãçš
â ãŠãŒã¶ã®è¿œå ã»å€æŽã®ãã³ã« Proxy ã®åèµ·å
â ã¢ã«ãŠã³ãã®åé€äžå¯
â ãã¡ããç¬èªã«äœã蟌ãã§ãè¯ãã
â ãã®å Žå㯠TempAuth/SWAuth ã®å®è£
ãåèã«ãªãã
42
43. SWAuth
â SWAuth ã䜿ã
â TempAuth 㧠Swift ãåãç¶æ
ã«ããŠãã
â Proxy ãµãŒãäžã§å®æœ
â cd ~
â git clone git://github.com/gholt/swauth.git
â cd swauth
â python setup.py build
â python setup.py install
43
44. SWAuth
â SWAuth ã䜿ã
â èšå®ãã¡ã€ã«ãæžãæã
[pipeline:main]
#pipeline = healthcheck cache tempauth proxy-server
pipeline = healthcheck cache swauth proxy-server
[filter:swauth]
use = egg:swauth#swauth
set log_name = swauth
super_admin_key = swauthkey
â swift-init proxy reload
44
45. SWAuth
â SWAuth ã䜿ã
â åæå (.super_admin:.super_admin ãäœæ )
â swauth-prep -A http://xxx/auth -K swauthkey
â ã¢ã«ãŠã³ãïŒã°ã«ãŒãïŒã®è¿œå
â swauth-add-account -A http://xxx/auth -K swauthkey group1
â ãŠãŒã¶ã®è¿œå
â swauth-add-user -A http://xxx/auth -K swauthkey -a group1 user1 pass1
45
46. SWAuth
â WebConsole ã䜿ã
â swauth ã® .super_admin ãŠãŒã¶ã® .webadmin ã³ã³
ãããžä»¥äžã®ãã¡ã€ã«ãã¢ããããŒããã
â <git>/swauth/webadmin/index.html
â swift -A http://127.0.0.1:8080/auth/v1.0
-U .super_admin:.super_admin
-K swauthkey upload .webadmin index.html
46