do an su dung saltstack trien khai he thong private cloud openstack-xemtailieu[dot]com
TRANSCRIPT
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
1/95
Đ ÁN TT NGHIP
Đ tài:
S DNG SALTSTACK TRIN KHAI H THNG
PRIVATE CLOUD OPENSTACK
Ging viên hưng dn: Th.S Nguyn Tun Dũng
Sinh viên: Nguyn Vit Hưng
MSSV: 20081297
Lp: Toán tin 2 - K53
Ngày 22 tháng 5 năm 2013
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
2/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
3/95
1.4.7 Identity Service . . . . . . . . . . . . . . . . . . 23
1.4.8 Image Service . . . . . . . . . . . . . . . . . . . 24
1.4.9 Tính năng . . . . . . . . . . . . . . . . . . . . . 25
1.4.10 Cài đt và hot đng . . . . . . . . . . . . . . . 26
2 Qun lý cu hình 28
2.1 Sơ lưc v qun lý cu hình . . . . . . . . . . . . . . . 28
2.2 Các tiêu chí đánh giá mt h thng qun lý cu hình . 29
2.3 Mt s chương trình tiêu biu . . . . . . . . . . . . . . 30
2.3.1 CFEngine . . . . . . . . . . . . . . . . . . . . . 30
2.3.2 Puppet . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.3 Chef . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.4 Salt . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4 Nhng khó khăn trong trin khai th công h thng
cloud OpenStack . . . . . . . . . . . . . . . . . . . . . 32
2.5 Li ích khi s dng trình qun lý cu hình đ trin khai
h thng cloud OpenStack . . . . . . . . . . . . . . . . 33
2.6 Salt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.1 Khái nim . . . . . . . . . . . . . . . . . . . . . 35
2.6.2 Mô hình và thit k . . . . . . . . . . . . . . . . 36
2.6.3 Master và Minion . . . . . . . . . . . . . . . . . 37
2.6.4 State . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.5 SLS . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.6 Renderers . . . . . . . . . . . . . . . . . . . . . 44
ii
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
4/95
2.6.7 Pillar . . . . . . . . . . . . . . . . . . . . . . . . 44
2.6.8 Grains . . . . . . . . . . . . . . . . . . . . . . . 45
2.6.9 Quá trình chy mt SLS . . . . . . . . . . . . . 46
2.6.10 Returner . . . . . . . . . . . . . . . . . . . . . . 46
3 Cài đt h thng private cloud OpenStack s dng trình
qun lý cu hình Salt 48
3.1 Các công vic cn thc hin khi cài đt OpenStack . . 48
3.2 Trên mt node . . . . . . . . . . . . . . . . . . . . . . 51
3.2.1 Thit k state cho mysql . . . . . . . . . . . . . 51
3.2.2 Thit k state cho rabbitmq . . . . . . . . . . . 55
3.2.3 Thit k state cho keystone . . . . . . . . . . . 55
3.2.4 Thit k state cho glance . . . . . . . . . . . . . 58
3.2.5 Thit k state cho nova . . . . . . . . . . . . . . 62
3.2.6 Thit k state cho horizon . . . . . . . . . . . . 63
3.3 Trên nhiu node . . . . . . . . . . . . . . . . . . . . . . 64
4 Kt qu và đánh giá 66
4.1 Kt qu . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.1 Cloud OpenStack . . . . . . . . . . . . . . . . . 664.1.2 Salt . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2 Đánh giá hiu qu . . . . . . . . . . . . . . . . . . . . 75
Kt lun 76
iii
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
5/95
Tài liu tham kho 79
Danh sách hình v 79
Ph lc 81
Thit k state cho DNSimple . . . . . . . . . . . . . . . . . 81
Cài đt và s dng DNSimple . . . . . . . . . . . . . . . . . 82
iv
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
6/95
Li nói đu
Trong môi trưng doanh nghip, khi nhu cu s dng máy ch tăng
lên theo quy mô ca doanh nghip cũng là lúc ny sinh nhiu vn đ.
Trưc ht là bài toán ti ưu đ s dng ti đa công sut ca các máy
ch, tránh tình trng lãng phí tài nguyên, đng thi đòi hi h thng
có kh năng co giãn linh hot, chu li tt đ đm bo dch v vn vn
hành khi lưng tài nguyên trên mt máy tăng cao hay có s c xyra. Tip đó là bài toán qun lý mt lưng ln máy ch sao cho nhanh,
hiu qu, tn ít nhân lc và thi gian nht. Gii quyt hai vn đ trên,
trong đ án này gii thiu hai gii pháp cho ln lưt tng vn đ là
xây dng đám mây OpenStack và s dng công c qun lý cu hình
Salt. Hai công ngh này đu là các sn phm mã ngun m, min phí,
có lưng ngưi dùng đông đo và đc bit là đã đt đưc nhng thànhcông nht đnh.
OpenStack là mt tp hp các chương trình mã ngun m chy trên
môi trưng Linux, s dng các công ngh hàng đu đ xây dng nên
mt h thng cung cp máy o theo nhu cu ca ngưi dùng. Open-
1
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
7/95
Stack cho phép xây dng h thng cloud trên môi trưng phn cng
tiêu chun, không đòi hi bt c phn cng hay phn mm chuyên bit
nào. Vi thit k chia thành nhiu module và tuân theo các tiêu chun
có sn khin cho cht lưng ca các b phn cu thành OpenStack
nhanh chóng đưc phát trin và hoàn thin, thit k này còn cho phép
qun tr viên tùy ý la chn chương trình có cùng chc năng đ thay
th các thành phn mà h không thích. Cũng bi thit k module nàymà vic cài đt OpenStack đòi hi nhà qun tr h thng phi có am
hiu v các công ngh đưc s dng và b công sc cu hình các thành
phn đ vn hành đưc mt h thng cloud.
Mô hình cloud cho phép h thng có th s dng sc mnh ca
hàng nghìn máy tính, nhưng khi lưng máy tăng lên, vic qun lý các
máy tính này bt đu gp nhng khó khăn, đc bit là vn đ qunlý cu hình các dch v chy trên các máy ch. Các vn đ có th gp
phi:
• Cu hình các máy ch không có s nht quán: do mt ngưi
qun lý nhiu máy ch hoc do nhiu ngưi cùng qun lý mt
máy ch.
• Công vic lp đi lp li gây nhàm chán, tn thi gian, công sc,
d nhm ln.
• Các file cu hình nm phân tán khin vic kim tra, thay đi tn
nhiu thi gian.
2
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
8/95
• Tn nhiu thi gian và công sc nu lưng máy tăng lên đn 100
hay thm chí 1000 máy.
• Khó đm bo trng thái ca dch v tng máy.
Chương trình qun lý cu hình đã ra đi đ gii quyt các vn đ
nói trên. Xut hin t lâu (như CFEngine - năm 1993), các chương
trình qun lý cu hình luôn đưc phát trin và thay đi theo s đi
mi ca h thng, có kh năng m rng và t đng tt hóa hơn.
Chef, Puppet, CFEngine là ba chương trình ph bin nht trong
lĩnh vc này vào thi đim hin ti. Các chương trình đu đã đt đưc
nhng thành công nht đnh. Bên cnh nhng thành công đó, chúng
vn còn nhiu nhưc đim đc bit là vn đ v tính phc tp ca file
cu hình và kh năng m rng.
Salt là mt d án mã ngun m mi đưc bt đu t năm 2011
nhưng có s phát trin rt nhanh, luôn nhm ti s đơn gin, tính
module ca các b phn cu thành, kh năng m rng ca h thng
qun lý cu hình.
Đ án này thc hin tìm hiu các khái nim v đin toán đám mây,
đi sâu vào tìm hiu h thng OpenStack. T đó s dng Salt đ cài đtmt h thng IaaS cloud s dng OpenStack - mt h thng tương đi
phc tp đ chng minh s đơn gin mà linh hot ca trình qun lý
cu hình này. Kt qu thu đưc là mt tp hp các file cu hình giúp
tit kim v thi gian, công sc trong vic trin khai mt h thng
cloud, đng thi giúp nhanh chóng và d dàng mang li tri nghim
3
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
9/95
v đin toán đám mây cho ngưi dùng.
4
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
10/95
Li cm ơn
Em xin chân thành cm ơn thy Th.S Nguyn Tun Dũng đã dành
thi gian đ hưng dn em hoàn thành đ án này. Em xin chân thành
cm ơn các thy cô đã dy d, ch bo tn tình cho em sut 5 năm hc,
giúp em có kin thc thc hin đ án này, và sn sàng đ tr thành
mt k s, đóng góp cho s phát trin ca đt nưc.
5
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
11/95
Chương 1
Đin toán đám mây
1.1 Khái nim
Đin toán đám mây là mô hình cho phép dùng các tài nguyên camáy tính mt cách tin li, theo nhu cu. Các tài nguyên này đưc
nhà cung cp dch v d tr và cung cp nhanh chóng, ít tn công sc,
hoc thm chí có th đưc cp t đng.
1.2 Các đc tính cn có ca mô hình cloud
Mt h thng cloud bt kỳ cn có các đc tính sau:
• T phc v theo yêu cu: ngưi dùng có th đơn phương d liu
lưng tài nguyên mình cn s dng. Công vic này cn đưc t
đng hóa, không đòi hi ngưi dùng phi thông qua nhà cung
6
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
12/95
cp dch v.
• Truy cp rng rãi: luôn sn sàng, cho phép truy cp qua mng,
thông qua các loi client (đin thoi di đng, máy tính xách tay,
máy tính đ bàn, máy tính bng...)
• Tp trung tài nguyên: Tài nguyên đin toán đưc s dng đ
phc v cho nhiu khách hàng. Máy vt lý và máy o đưc cp
và thu hi linh hot cho các khách hàng theo nhu cu ca h.
Ngưi dùng không cn bit mi thông tin đa lý liên quan đn
nơi cung cp tài nguyên. Các tài nguyên gm có: kh năng lưu
tr, x lý, b nh, băng thông mng...
• Co giãn nhanh: có kh năng tăng hoc gim lưng tài nguyên khi
cn thit. Vi khách hàng, đc tính này giúp lưng tài nguyên có
th tr nên không gii hn nhưng có lúc li va đ vi nhu cu
s dng, tùy theo yêu cu ca tng thi đim.
• Các dch v có th đo đưc: đ cloud có th thc hin các tính
năng t đng qun lý, ti ưu tài nguyên, tính toán giá thành.
Ví d v mô hình đin toán đám mây ca Amazon: Amazon Web
Services (AWS). AWS là tp hp các web service kt hp vi nhau to
thành mt nn tng đin toán đám mây. Hai thành phn ni bt ca
AWS là Amazon EC2 và Amazon S3. Các thành phn chính ca AWS:
• Compute
7
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
13/95
Amazon Elastic Compute Cloud (EC2): dch v cung cp các
máy o, có th m rng d dàng, s dng Xen hypervisor
• Networking
Amazon Elastic Load Balancing (Amazon ELB): phân tán các
yêu cu truy cp ng dng ti nhiu máy o Amazon EC2, cung
cp kh năng chu li và m rng.
• Storage
Amazon Simple Storage Service (S3): cung cp nn tng lưu tr
da trên web service
Amazon Elastic Block Store (EBS): cung cp các volume lưu tr
mc khi cho EC2
• Database
Amazon RDS: cung cp các máy ch cơ s d liu quan h:
MySQL, Oracle, và SQL Server.
Amazon DynamoDB: cung cp các máy ch cơ s d liu h tr
NoSQL
Amazon ElastiCache: cung cp dch v caching trong b nh, h
tr Memcached
• Ngoài ra AWS còn cung cp các dch v tng ng dng như: dch
v thông báo, dch v chuyn đi video, nh, dch v truyn ti
8
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
14/95
thông đip gia các máy, dch v theo dõi và qun lý máy o,
ng dng, ...
1.3 Phân loi
1.3.1 Phân loi theo mô hình dch v cung cp
Infrastructure as a service (IaaS)
IaaS cung cp các máy tính (máy vt lý hoc máy o) và các tài
nguyên khác. Mt hypervisor (b phn qun lý máy o) đm nhn
chy các máy o. Mt tp hp các hypervisor trong h thng cloud
có th cung cp mt lưng ln các máy o, có th m rng hoc thu
hp mô hình theo yêu cu ca khác hàng. IaaS thưng h tr các tàinguyên khác như file nh, lưu tr, tưng la, cân ti, đa ch IP, mng
ni b o (VLANs), và các b phn mm. Ngun tài nguyên phc v
cho vic cung cp theo yêu cu đưc ly kho tài nguyên phn cng
trong các trung tâm d liu ca nhà cung cp dch v.
Các nhà cung cp IaaS trên th gii: Amazon EC2, Windows Azure
Virtual Machines, DynDNS, Google Compute Engine, Rackspace Cloud,HP Cloud, ...
Ví d v IaaS: Windows Azure Virtual Machines cho phép to các
máy o t kho các file nh sn có hoc s dng file nh do ngưi dùng
cung cp. Ngưi s dng có toàn quyn điu khin máy o đã to. Vi
9
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
15/95
dashboard, ngưi dùng có th theo dõi tình trng ca máy o qua biu
đ thi gian thc.
Hình 1.1: Dashboard ca Windows Azure
Platform as a service (PaaS)
PaaS đưa ra mt nn tng đin toán bao gm c h điu hành, môi
trưng lp trình, cơ s d liu và máy ch web. Các nhà phát trinng dng có th phát trin, chy các gii pháp phn mm ca h trên
mt nn tng cloud mà không cn lo đn chi phí và s phc tp ca
vic mua và qun lý h tng phn cng và phn mm bên dưi. Mt
s nhà cung cp PaaS h tr t đng cung cp thêm tài nguyên theo
10
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
16/95
nhu cu khi cn thit. Các t chc cung cp PaaS: Heroku, Google
App Engine, Windows Azure, ...
Ví d v PaaS: Heroku
Heroku cung cp nn tng h tr môi trưng lp trình các ngôn
ng Ruby, Java, Node.js Scala, Clojure, Python và PHP cùng vi các
cơ s d liu như PostgreSQL, MongoDB, Redis, ... trên nn tng h
điu hành Debian và Ubuntu. Các nhà phát trin phn mm đưa mãngun vào h thng ca Heroku, cu hình cách chương trình s chy.
Vic chy phn mm do h thng ca heroku t đng thc hin. Lưng
tài nguyên ng dng s dng đưc đo và ghi li, nhà phát trin s tr
tin cho lưng tài nguyên đó.
Hình 1.2: Giao din dashboard ca Heroku
11
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
17/95
Software as a service (SaaS)
SaaS là mt mô hình phân phi phn mm, trong đó các ng dng
s đưc cung cp, qun lý, vn hành bi mt nhà cung cp dch v,
ngưi dùng có th truy cp qua mng. Toàn b ng dng và d liu
ngưi dùng đu đưc lưu tr bi nhà cung cp dch v. Ngưi dùng
thưng truy cp SaaS qua trình duyt Web. Ví d: Gmail, Box.net,
Mediafire, ...Ví d v SaaS: Google Drive
Ngưi dùng đăng ký s dng dch v. Vi tài khon đã đăng ký,
Google cung cp cho ngưi dùng mt lưng dung lưng lưu tr và kh
năng truy cp ng dng Google Driver trc tuyn. Vi ng dng web
này, ngưi dùng có th son tho, lưu tr, chia s các file văn bn,
bng tính tương t như sn phm Word, Excel chy trên các máy tính
ca Microsoft Office. Ngưi dùng ch cn có mt client đ truy cp và
s dng ng dng bt c nơi đâu.
12
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
18/95
Hình 1.3: Giao din son tho Spreadsheet ca Google Drive
Ba mô hình nói trên thc hin cung cp các dch v ba tng khác
nhau. Các dch v tng trên nên đưc xây dng trên các dch v tng
thp hơn đ nâng cao kh năng m rng ca toàn b h thng.
13
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
19/95
Hình 1.4: Phân tng chc năng ca tng mô hình dch v
Hình minh ha 1.4 ch rõ chc năng ca mi mô hình đm nhn.
mi dch v, nhà cung cp s qun lý các phn có tô màu xám, ngưi
dùng s đưc qun lý các phn tô màu xanh. Vi IaaS, ngưi dùng s
không cn lo lng v h tng mng, kh năng lưu tr, máy vt lý và
công ngh o hóa mà ch cn qun lý h điu hành và các ng dng
chy trên đó. Vi PaaS, phn qun lý ca ngưi dùng thu hp li chcòn d liu và ng dng ca h, mi th khác đu do nhà cung cp
dch v qun lý và vn hành. Đn mô hình SaaS thì ngưi dùng không
còn qun lý bt c tài nguyên nào, tt c nhng gì h có là quyn truy
cp đn dch v, ngay c d liu cá nhân ca ngưi dùng cũng do nhà
14
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
20/95
cung cp nm gi và qun lý.
Ngoài ba mô hình trên, còn có các mô hình khác như Database as
a service (DBaaS), Network as a service (NaaS)...
1.3.2 Phân loi theo mô hình trin khai
Public cloud
Public cloud là loi cloud cung cp các tài nguyên (ng dng, lưu
tr, ...v.v) bi mt nhà cung cp. Các dch v này có th min phí
hoc tr tin theo mc s dng. Các nhà cung cp public cloud như
Amazon AWS, Microsoft, Google, Heroku, ...
Private cloud
Private cloud là cloud đưc vn hành bi mt t chc. T chc này
s t làm nhim v xây dng, vn hành và qun lý cloud.
So sánh public cloud và private cloudTiu chun Public cloud Private cloud
Chi phí khi đu Không có / thp Cao
Chi phí vn hành Có th d trù Không th d trùTùy bin Không th Có th
S riêng tư Không Có
Đăng nhp mt ln Không th Có th
M rng D dàng nhưng trong gii hn không gii hn
15
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
21/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
22/95
• các môi trưng tính toán hiu năng cao đòi hi x lý các công
vic đa dng và liên tc, cưng đ cao.
1.4.2 Cu to
OpenStack là s kt hp ca nhiu công ngh, gii pháp đã tn ti
vi nhng d án do chính OpenStack phát trin.
Các dch v ca OpenStack đưc thit k vi các tiêu chí:
• Có kin trúc module: giúp nhanh chóng thêm các tính năng mi.
• Tính sn sàng cao: đm nhim nhng công vic quan trng.
• Có kh năng chu li: tách ri các tin trình giúp chng hin
tưng dch v đ v hàng lot.
• Có kh năng khôi phc: d dàng phân tích, debug, điu chnh.
• Dùng các tiêu chun m: giúp loi b các nguy cơ tim n, to cơ
hi đ kt hp vi các ngành khác như đin toán di đng, phân
tích kinh doanh.
17
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
23/95
Hình 1.5: Sơ đ tương tác ca các dch v trong OpenStack
Sơ đ trên biu din s tương tác gia các dch v thành phn
ca OpenStack, các vòng tròn biu din các dch v cung cp bi
OpenStack, các hình ch nht là các thành phn bên ngoài, không
đưc bo trì bi d án OpenStack.
Mi service ca OpenStack tương tác vi mt hàng đi (RabbitMQ,
Qpid) và mt database (MySQL, PostgreSQL). Nova-api, identity ser-
18
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
24/95
vice, và image service là các service đc lp, không da vào các công
ngh bên ngoài.
Các thành phn ca OpenStack có th đưc thay th bi nhiu gii
pháp tương ng. Dưi đây là bng các công ngh và các gii pháp đã
trin khai đ phc v công ngh đó
Công ngh Các chương trình đã h tr
Hàng đi thông đip RabbitMQ, Qpid, ZeroMQ
iSCSI back-end LVM+IET, LVM+tgt,NetApp, Xen Storage
Manager, Ceph SAN , NexentaStor, Sheepdog
Cơ s d liu MySQL, PostgreSQL, sqlite
Web server Apache, Nginx
Session cache memcache, MySQL, PostgreSQL, sqlite
Openstack bao gm các dch v chuyên bit như Compute, Dashboard,Networking, Storage đm nhim nhng công vic riêng. Ngoài ra nó có
các dch v đưc dùng trong c ba tng tính toán, lưu tr và mng.
Nhng dch v này giúp vic cài đt và vn hành cloud d dàng hơn,
chúng bao gm: dch v xác thc, qun lý file nh, và mt giao din
19
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
25/95
(API) giúp liên kt các thành phn ca OpenStack vi nhau cũng như
vi các h thng bên ngoài đ cung cp mt tri nghim thng nht
cho ngưi dùng khi h s dng các tài nguyên cloud khác nhau.
1.4.3 OpenStack Compute
OpenStack compute cung cp và qun lý các máy o. Nó cung cp
tài nguyên tính toán qua các API cho lp trình viên xây dng ngdng cloud và qua giao din web cho ngưi dùng cũng như ngưi qun
lý. Compute s dng các công ngh hypervisor ph bin như KVM,
XenServer, hay Linux Container (LXC) nu cn thit. Bên cnh h tr
các hypervisor khác nhau, OpenStack Compute còn h tr kin trúc
ARM và các kin trúc phn cng khác. Compute da vào 1 driver o
hóa đ qun lý máy o, mc đnh là libvirt, đưc dùng đ qun lý
KVM. Compute đưa ra khái nim v khuôn mu cho các máy o. Mi
khuôn mu đnh nghĩa lưng RAM và kích thưc cng. Khi máy o
chy vi mt khuôn mu c th, Openstack Compute điu chnh kích
thưc đĩa nh cho phù hp vi khuôn đưa ra và cp CPU, RAM theo
yêu cu.
1.4.4 OpenStack Storage
OpenStack đã h tr Object Storage và Block Storage, vi nhiu
la chn cài đt tùy theo yêu cu s dng.
20
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
26/95
Object Storage là công ngh lưu tr lý tưng vi hiu qu v giá
thành và kh năng m rng không gian lưu tr. Nó cung cp nn tng
lưu tr phân tán, có th truy cp qua API giúp d dàng cho vic vit
ng dng backup, archiving. Công ngh này còn cho phép các thit
b khi (block devices) đưc kt ni vi các máy o đ m rng lưu
tr, cho hiu năng cao hơn và có th tích hp vi các nn tng lưu tr
doanh nghip như NetApp, Nexenta, SolidFire.Tính năng ca Object Storage
• OpenStack Storage cung cp gii pháp lưu tr object s dng
các cm máy ch đã đưc chun hóa có kh năng lưu tr nhiu
petabyte d liu.
•
Object Storage không phi là mt h thng file truyn thng màlà h thng lưu tr phân tán các d liu tĩnh như file nh ca
máy o, hình nh, email, backup.
• Các đi tưng và file đưc ghi vào nhiu đĩa tri khp sut các
máy ch trong trung tâm d liu, OpenStack chu trách nhim
cho vic đm bo s dư tha và tính toàn vn cho d liu xuyên
sut các cm máy.
• Các cm máy d dàng m rng bng vic thêm các máy ch mi.
Khi mt máy ch hay cng b hng, d liu đưc to li t các
máy trong cm ri phân tán đn các vùng khác. Do s dng logic
phn mm đ thc hin đm bo dư tha và phân tán khp các
21
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
27/95
thit b nên các phn cng thông thưng đu có th đưc dùng
cho vic lưu tr, không đòi hi phn cng chuyên dng.
Tính năng ca Block Storage
• H thng lưu tr khi qun lý vic to, gn và tháo các thit b
khi vi các máy ch. Nó đưc tích hp hoàn toàn vi OpenStack
compute và Dashboard cho phép ngưi dùng cloud t qun lý nhu
cu v lưu tr ca h.
• Bên cnh vic s dng máy ch Linux đ lưu tr, nó còn h tr
nhiu nn tng lưu tr khác như Ceph, NetApp, Nexenta, và
SolidFire
•
Block storage thích hp cho các trưng hp đòi hi hiu năngcao (như lưu tr cơ s d liu), yêu cu h thng file có th m
rng hoc cn cung cp mt máy ch vi kh năng truy cp mc
thp đn thit b lưu tr.
• Kh năng qun lý snapshot cung cp chc năng mnh m cho vic
backup d liu cha trên các thit b lưu tr khi. Các snapshot
có th dùng đ khôi phc hoc to mt thit b lưu tr khi mi.
1.4.5 OpenStack Networking
Gii quyt các vn đ liên quan đn kt ni mng gia các máy o
vi nhau và ra bên ngoài mng internet. S dng các công ngh như
22
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
28/95
Open vSwitch, Cisco UCS/Nexus, Linux Bridge, VLAN... giúp d m
rng h thng mng, vic qun lý IP và điu khin mng da trên API.
1.4.6 OpenStack Dashboard
Cung cp giao din đ ha cho ngưi qun tr và ngưi dùng giúp
d liu và t đng các ngun tài nguyên trên cloud. Có thit k giúp
d dàng tích hp dch v và sn phm ca bên th ba. H tr VNCclient da trên nn web, cung cp kh năng truy cp đn máy o qua
VNC consoles.
1.4.7 Identity Service
OpenStack Identity có hai tính năng chính:• Qun lý ngưi dùng: cung cp mt thư mc trung tâm ánh x
ngưi dùng đn các dch v OpenStack h đưc phép truy cp.
Nó là mt h thng xác thc chung xuyên sut cloud và có th
tích hp vi dch v thư mc đã có như LDAP. H tr nhiu hình
thc xác thc bao gm xác thc bng tài khon và mt khu,
token...
• Cung cp danh mc dch v: cung cp mt danh sách các dch
v đã trin khai trong cloud OpenStack. Ngưi dùng và các công
c ca bên th ba có th xem xét ngun tài nguyên nào h đưc
phép truy cp thông qua lp trình.
23
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
29/95
Vi quyn ngưi qun tr, OpenStack Identity cho phép:
• Cu hình tp trung các chính sách xuyên sut h thng.
• To ngưi dùng và bên thuê, đnh nghĩa quyn hn s dng các
tài nguyên tính toán, lưu tr và mng thông qua tính năng điu
khin truy cp da trên vai trò (RBAC)
• Tich hp vi mt thư mc đã tn ti như LDAP, to nên mt cơch xác thc duy nht cho toàn doanh nghip.
Vi quyn ngưi dùng, OpenStack cho phép:
• Ly danh sách các dch v có th truy cp
•
Gi yêu cu API hoc đăng nhp vào web dashboard đ to cáctài nguyên mà tài khon đã đưc cp.
1.4.8 Image Service
Dch v OpenStack Image cung cp tính năng khám phá, đăng ký
và truyn ti các dch v liên quan đn đĩa và file nh máy ch. Có
th sao chép hoc snapshot mt file nh máy ch và lưu tr nó ngay
lp tc là mt tính năng mnh m ca cloud OpenStack. Các nh máy
ch đã đưc lưu tr đưc dùng như mt khuôn mu đ khi to mt
máy ch mi nhanh chóng hơn và thng nht hơn khi cn d trù nhiu
máy ch thay vì vic cài đt tng h điu hành và cu hình riêng các
24
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
30/95
dch v đi kèm. Nó có th dùng đ lưu tr và lp danh mc mt lưng
backup không gii hn.
Image Service có th lưu tr đĩa và nh máy ch thông qua nhiu
back-end, bao gm các h thng file, OpenStack Object Storage, Ceph....
API cung cp mt giao din RESTFUL cho vic truy cp thông tin v
đĩa nh và cho phép ngưi dùng ly các đĩa nh v máy ch mi.
Các tính năng ca Image Service gm:
• Qun tr viên có th to các khuôn mu đ t đó ngưi dùng có
th chy các máy o mi
• Ngưi dùng đưc tùy ý la chn các file nh có sn, hoc có th
t to file nh ca riêng h nu mun.
• Lưu tr các snapshot, giúp backup máy o nhanh chóng
1.4.9 Tính năng
• Qun lý tp trung tài nguyên máy ch và CPU, b nh, đĩa cng,
card mng đã o hóa. Nâng cao kh năng tn dng, t đng hóa
các ngun tài nguyên, nâng cao hiu qu s dng tài nguyên, titkim chi phí.
• Qun lý mng LAN, Flat, Flat DHCP, VLAN DHCP, IPv6. H
tr tính năng cp IPs và VLANs bng lp trình, linh hot trong
25
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
31/95
vic thit k mô hình mng, phù hp vi yêu cu ca ng dng
và ngưi dùng.
• Kin trúc phân tán và không đng b: kh năng m rng và nâng
cao tính sn sàng ca h thng
• Qun lý file nh máy o: d dàng lưu tr, nhp, xut, chia s file
nh.
• Qun lý máy o trc tip: tăng năng sut vi s qun lý vòng
đi ca máy o.
• IP đng: kh năng gán và gán li IP cho các máy o
• Bo mt theo nhóm: linh hot gán và điu khin quyn truy cp
máy o bng cách to các t hp tài nguyên riêng bit.
• Điu khin truy cp da trên vai trò.
• VNC Proxy qua trình duyt web: d dàng, nhanh chóng trong
vic qun tr bng dòng lnh
• Lưu tr và qun lý file bng lp trình thông qua API: t đng
qun lý và d phòng tài nguyên
1.4.10 Cài đt và hot đng
Vic cài đt OpenStack có th thc hin trên mt máy hoc nhiu
máy. Vic cài đt trên mt máy ch mang mc đích th nghim. Trong
26
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
32/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
33/95
Chương 2
Qun lý cu hình
2.1 Sơ lưc v qun lý cu hình
Qun lý cu hình (Configuration Management) là mt quá trìnhthit lp và duy trì tính nht quán v tc đ, tính năng ca mt h
thng, mt dch v vi yêu cu, thit k và các thông tin vn hành
xuyên sut vòng đi ca nó.
Vic qun lý cu hình thưng thc hin bi quá trình xây dng
trưc mu cho các chương trình cn qun lý và ch cn thêm thông
s phù hp khi s dng. Các máy ch s ti cu hình dành cho mìnhv và thc thi các công vic cài đt, cu hình đ đt đưc mt trng
thái đnh trưc. Qun lý cu hình thưng s dng ngôn ng ca vn
đ cn gii quyt đ che đi s phc tp, khác bit gia các nn tng
phía dưi. Mt s chương trình h tr chc năng đ đm bo máy ch
28
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
34/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
35/95
hưng ln ti kh năng m rng ca nó. Mt chương trình s
dng mô hình máy ch - máy khách vi mt máy ch duy nht
s dn đn quá ti và không th m rng h thng.
2.3 Mt s chương trình tiêu biu
2.3.1 CFEngineD án bt đu t năm 1993, CFEngine ra đi đã tri qua nhiu
phiên bn và thay đi ln. Phiên bn mi nht là CFEngine3. CFEngine
là chương trình đã tn ti lâu nht trong lĩnh vc này, vi toàn b mã
ngun vit bng C, không phc thuc vào chương trình bên ngoài.
CFEngine là chương trình h tr nhiu nn tng nht, và thuc loi
chy nhanh nht và s dng ít tài nguyên nht trong các chương trình
qun lý cu hình. CFEngine đưc s dng bi các t chc ln như
AT&T, ADM, LinkedIn, Ebay, Cisco, IBM, NASA,... Đim yu ln
nht ca CFEngine là ngôn ng cu hình phc tp.
2.3.2 PuppetPh bin th hai sau CFEngine, Puppet có cng đng ngưi dùng
rng rãi nh ngôn ng cu hình đơn gin hơn nhiu so vi CFEngine
hay Chef. S dng ngôn ng th tc riêng ca Puppet đ vit cu hình
h thng. Năm 2010, Puppet đã thêm tính năng s dng Ruby DSL
30
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
36/95
đ nâng cao tính linh đng ca file cu hình nhưng đng thi cũng làm
gim đi tính đơn gin vn có ca Puppet.
Các khách hàng ln: Twitter, Nokia, SugarCRM,...
2.3.3 Chef
Chef đưc xây dng ngay t đu nhm ti th trưng cloud com-
puting. Chef đng th ba v đ ph bin trong th phn các chươngtrình qun lý cu hình. Chef dng ngôn ng Ruby đ vit cu hình h
thng, điu này giúp s linh hot trong cu hình ca Chef là không
gii hn nhưng cũng là ro cn ln nht cho ngưi dùng khi h phi
hc mt ngôn ng lp trình.
Chef đưc s dng bi nhiu hãng công ngh trên th gii trong
đó có Facebook và DreamHost.
2.3.4 Salt
Salt mi xut hin t năm 2011 và đang trong quá trình phát trin
rt mnh m. Ngay t khi ra đi, Salt nhanh chóng thu hút đưc s
quan tâm ca cng đng bi tính đơn gin trong cu hình và mô hìnhcó kh năng m rng. Salt s dng đnh dng YAML đ vit file cu
hình kt hp vi mt engine render template. Yu t này mang li s
đơn gin và linh hot cho Salt, vic vit mt file cu hình bng YAML
đơn gin hơn rt nhiu so vi vic hc mt ngôn ng lp trình mi.
31
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
37/95
Các khách hàng ni bt ca Salt có th k đn HP cloud, Rackspace,
LinkedIn, Paypal.
Đ án này s s dng Salt đ thc hin qun lý cu hình, bi sau
khi th nghim qua c bn chương trình này, Salt t ra là chương trình
có ngôn ng cu hình đơn gin hơn c, kt hp vi tài liu chính thc
ca Salt rt d đc, d hiu, giúp gim bt thi gian hc dùng Salt.
2.4 Nhng khó khăn trong trin khai th
công h thng cloud OpenStack
Vic cài đt OpenStack th công gp phi nhng khó khăn:
•
Đòi hi thc hin mt lưng ln công vic đ cài đt và cu hìnhnhiu phn mm. OpenStack là mt tp hp các phn mm mã
ngun m đ to nên mt h thng cloud, tính module ca mô
hình này là ưu đim cho phép phát trin đc lp các thành phn
nhưng cũng đng thi là nhưc đim khin cho quá trình cài đt
tr nên phc tp hơn.
• Vic cài đt lp đi lp li khi cn cài trên nhiu node. Mt h
thng cloud trong môi trưng chy tht luôn đòi hi đưc cài
trên ti thiu 3 máy vt lý có cu hình mnh. Khi cn đm bo
tính sn sàng và kh năng chia ti, h thng cn s dng thêm
nhiu máy vt lý đ đm bo các nhu cu ca cloud.
32
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
38/95
• Vic thay đi cu hình ca mt b phn trong cloud đòi hi phi
thc hin trên nhiu máy vt lý. Quá trình cu hình li bng tay
luôn tim n li do s bt cn ca qun tr viên khi phi làm
mt lưng công vic ln.
• Khi cn trin khai mt h thng cloud mi, phi thc hin cài
đt t đu. Ngưi vn hành cloud có th s dng các script đ
phc v vic t đng hóa, nhưng vic này kém linh hot, phc
tp và mang li năng sut thp hơn so vi vic s dng mt h
thng qun lý cu hình tp trung.
2.5 Li ích khi s dng trình qun lý cu
hình đ trin khai h thng cloud Open-Stack
S dng mt chương trình qun lý cu hình trong quá trình trin
khai h thng cloud OpenStack s mang li nhng li ích sau:
• T đng hóa công vic cài đt và cu hình, d dàng m rngh thng khi cn trin khai ti hàng trăm, thm chí hàng nghìn
máy. Gim sc lc và nhân lc cn thit đ qun lý mt h thng
ln.
• Vic cài đt và cu hình đưc thc hin đng thi trên nhiu
33
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
39/95
máy cùng lúc, giúp gim thi gian trin khai h thng. So vi
thc hin bng tay, s dng chương trình qun lý cu hình giúp
tăng tc đ thc hin lên gp N ln khi phi cài đt trên N máy.
So vi thc hin bng mt script vi kh năng chy song song
thì chương trình qun lý cu hình đơn gin, nhanh và bo mt
hơn.
• Khi cn thay đi, ch cn thay đi mt ln ti mt máy duynht, các máy cn thay đi s t đng thay đi theo. Ưu đim
này giúp gim bt lưng công vic cn làm ca nhà qun tr đng
thi gim nguy cơ v li trong quá trình thc hin.
• Nu quá trình cài đt xy ra li, h thng s t thu thp li và
tr v máy qun lý. Nh vy, gim thiu đưc mt lưng ln côngvic, không cn đăng nhp vào tng máy đ xem li xy ra. Các
log v li xy ra có th đưc lưu tr và phân tích phc v quá
trình gii quyt li.
• D dàng kt hp vi các h thng logging và monitor đ t đng
theo dõi và qun lý cloud nh tính phân tán ca mô hình qun
lý cu hình.
• Cu hình h thng cloud có th s dng li khi cn trin khai
các h thng khác. Nu đưc thc hin tt, cu hình này thm
chí có th s dng trên nhiu nn tng khác nhau, h tr cho
quá trình nghiên cu, hc tp và th nghim.
34
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
40/95
• Thích hp cho vic chia nh công vic, phát trin và th nghim
tng nhóm chc năng ca cloud cho nhiu nhóm phát trin. Tăng
tính chuyên môn hóa trong công vic và nâng cao cht lưng ca
h thng.
• Luôn đm bo các node trong h thng cloud mt trng thái
đnh trưc, lp tc thông báo khi có s c khin cho các dch v
hot đng sai lch so vi d đnh. Tính năng này giúp đm bo
tính nht quán ca vic qun lý h thng, đng thi giúp phát
hin và ngăn chn kp thi khi cu hình h thng b thay đi.
2.6 Salt
2.6.1 Khái nim
SaltStack hay Salt là chương trình qun lý h thng và cu hình
mã ngun m. H thng Salt xây dng trên mt mô hình phân tán
và có kh năng phân tng (Salt Syndic). Salt đưc vit bng ngôn
ng Python, các node trong mô hình tương tác vi nhau qua hàng đi
thông tin (Message Queue) s dng thư vin ZeroMQ. Salt gm có haichc năng chính:
• Thc thi lnh t xa (Remote execution)
• Qun lý cu hình da trên nn tng thc thi lnh t xa
35
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
41/95
2.6.2 Mô hình và thit k• Salt đưc chia nh thành các module nh, mi module đm nhim
mt chc năng riêng.
• Vic xây dng trên thư vin ZeroMQ thay vì mt h thng
AMQP riêng bit giúp Salt tr nên nh và nhanh hơn, không
cn tn tài nguyên duy trì thêm mt dch v chy AMQP. Đngthi s dng ZeroMQ giúp chuyn file hay data qua nhiu mô
hình mng phc tp mt cách d dàng hơn.
• Tính năng thc thi lnh t xa giúp thay th vic s dng SSH.
Sau khi h thng Salt đưc thit lp, qun tr viên có th thc
hin thc thi lnh trên nhiu máy cùng lúc. Vic chn nhóm đ
thc thi lnh d dàng đưc quyt đnh bi qun tr viên.
• Mô hình phân tng giúp có th m rng h thng lên ti hàng
trăm nghìn máy. Nu không có mô hình này, khi thc thi trin
khai cu hình, các máy s cùng ly thông tin cn thit t mt
máy tính duy nht và có th khin máy này b quá ti.
• Tính modular giúp d dàng phát trin và m rng tính năng cho
Salt. To cơ hi cho bên th ba tham gia đóng góp phát trin đ
s dng Salt qun lý sn phm ca chính h.
36
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
42/95
2.6.3 Master và MinionMt h thng qun lý cu hình dùng Salt bao gm mt hoc nhiu
máy tính đóng vai trò master. Các máy master cha các file cu hình.
Các máy đưc qun lý cu hình đ chy các dch v đóng vai trò là
minion và nhn lnh t phía master. Các minion khi bt đu chy s
gi yêu cu đưc qun lý ti máy master, các minion đưc chp nhn
mi có th đưc master qun lý.
Hình 2.1: Mô hình Master - Minion ca Salt
37
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
43/95
2.6.4 State
Salt s dng h thng file cu hình gi là SLS (SaLt State file) đ
cu hình các dch v trên máy minion. Mi SLS cha nhiu state, mi
state đm bo mt trng thái nào đó cho máy mà state đó đưc thc
thi. Các state cùng liên quan đn mt dch v thưng đưc tp trung
vào mt SLS hay nhiu SLS trong cùng mt thư mc.
Mt state mô t trng thái mà h thng cn có đưc (phn mmđưc cài, dch v đang chy, file cu hình tn ti, lnh đã đưc thc
thi...) Các state ca Salt đưc cha trong các file có đuôi m rng là
"sls". Mt state bt buc phi cha các thuc tính:
• ID: ID ca state phi là duy nht
• loi state: các state có sn hoc do ngưi dùng thêm vào h
thng Salt. Ví d: pkg đ qun lý gói (trng thái cài đt...), file
đ qun lý file (tn ti, mode, user, ,..), service đ qun lý mt
dch v trên Linux (trng thái ca dch v, các file mà dch v
theo dõi...).
• trng thái: quy đnh thng thái ca state, ph thuc vào loistate đưc s dng. Ví d:
pkg có các trng thái :
– installed: đm bo package đã đưc cài đt. Vic thc hin
cài đt do các chương trình qun lý gói ca tng h điu
38
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
44/95
hành đm nhim (apt-get vi Ubuntu/Debian, yum vi Fe-
dora/Redhat, pacman vi ArchLinux, ...)
– purged: đm bo package không đưc cài đt trên máy.
– latest: đm bo package luôn phiên bn mi nht. Khác
vi installed, lastest kim tra phiên bn ca package mi
ln chy, nu phát hin có phiên bn mi hơn, state này s
khin package đưc update.
service có các trng thái:
– running: đm bo dch v đang chy, nu dch v không
chy thì thc hin chy dch v.
– dead: đm bo dch v đang không chy, nu dch v đang
chy thì tt nó đi.
ngoài các thuc tính bt buc trên, mi state có th cha thêm nhiu
thuc tính tùy theo mi loi state quy đnh. Ví d vi service, có th
khai báo thuc tính watch và danh sách các file mà dch v này s theo
dõi, nu ni dung các file đó đưc thay đi thông qua Salt, dch v s
đưc Salt khi đng li đ áp dng cu hình mi.Ví d mt state:
1 /etc/mysql/my.cnf:
2 file:
3 − managed
4 − source: salt://mariadb/my.cnf.jinja2
39
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
45/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
46/95
• du gch ngang "-" : biu din kiu cu trúc d liu danh sách,
theo sau du gch ngang là danh sách các giá tr.
• sau mi du hai chm hay gch ngang cn có mt du cách nu
theo ngay sau nó là mt giá tr.
• s dng hai du cách đ tht l đ biu din cu trúc (không s
dng tab).• du thăng "#": dùng đ comment. Nu ni dung có cha du #,
bao quanh ni dung đó bng du ngoc kép " " đ YAML không
xem đó là comment.
Ví d SLS cài đt và chy dch v keystone (mt thành phn ca
OpenStack).1 include:
2 − essex.sqldata
3 − python.mysqldb
4
5 keystone:
6 pkg:
7 −
installed8 − require:
9 − pkg: python−mysqldb
10 service:
11 − running
12 − enable: True
13 − watch:
41
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
47/95
14 − file: keystone
15 − require:
16 − pkg: keystone
17 file:
18 − managed
19 − name: /etc/keystone/keystone.conf
20 − source: salt://essex/keystone.conf.jinja2
21 − template: jinja
22 − mode: 644
23 − user: root
24 − group: root
25 − required_in:
26 − service: keystone
27 cmd:
28 − wait
29 − name: ’keystone−manage db_sync’
30 − watch:
31 − pkg: keystone
32 − require:
33 − mysql_grants: mysql_keystone
34 − service: keystone
35
36 /var/lib/keystone/keystone.db:
37 file:
38 − absent
39 − require:
40 − pkg: keystone
41
42
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
48/95
42 /usr/local/src/sample_data.sh:
43 file:
44 − managed
45 − source: salt://essex/sample_data.sh
46 − template: jinja
47 − mode: 700
48
49 ./sample_data.sh:
50 cmd:
51 − wait
52 − cwd: /usr/local/src
53 − watch:
54 − cmd: keystone
55 − require:
56 − file: /usr/local/src/sample_data.sh
57 − mysql_grants: mysql_keystone
Khi SLS đưc chy, th t chy các state luôn thông nht qua các
ln chy nhưng không do th t state đưc vit trong SLS quyt đnh
mà theo th t t đin ca ID ca các state. Th t chy các state có
th đưc ch đnh s dng công c cung cp bi Salt như require hay
order.Mt file SLS có th nhúng (include) các file SLS khác vào, vic này
giúp các file SLS có th chia nh, d dàng s dng li và m rng.
43
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
49/95
2.6.6 Renderers
Do Salt thc hin thao tác trên các cu trúc d liu là dict và list,
ngưi dùng có th s dng bt c đnh dng nào đ vit SLS, ch cn có
mt module thc hin bin chúng thành các d liu mà Salt s dng,
loi module đó gi là renderer. Các renderer tích hp sn trong Salt
gm có: jinja, mako, py. Mc đnh, Salt s dng đnh dng YAML đ
vit SLS vi renderer là jinja. jinja là tên module Salt dùng đ gi Jinja2. Jinja2 là mt templating
engine thc hin x lý logic, vi kh năng thc hin các câu lnh điu
khin lung chương trình: if else, for và kh năng s dng bin giúp
cho vic cu hình tr nên linh hot.
Py là renderer s dng file python đ vit SLS.
2.6.7 Pillar
Pillar: dùng đ to d liu tùy ý cho minion đưc ch đnh. Các d
liu có th lưu tr pillar:
• Các d liu nhy cm: mt khu, khóa bí mt
• Các bin: nhng giá tr thay đi. Ví d như: ip ca 1 máy ch
• D liu tùy ý
44
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
50/95
2.6.8 Grains
Grains: grains giúp truy cp thông tin tĩnh ca các máy minion.
Các thông tin này đưc thu thp mt ln duy nht khi minion bt đu
chy và chuyn v cho master. Các thông tin grains ca mt máy bao
gm: IP, tên máy, kin trúc,...
Grains có th s dng trong nhiu mc đích khác nhau:
• đin thông tin ca tng máy vào SLS (hostname)
• vit state dùng đưc cho nhiu nn tng da trên thông tin trong
Grains.
• chn nhóm máy đ áp dng SLS
Ví d:1 id:
2 lappy
3 ipv4:
4 − 127.0.0.1
5 − 192.168.1.105
6 − 192.168.122.1
7 kernel:
8 Linux
9 kernelrelease:
10 3.2.0−39−generic
11 mem_total:
12 3744
45
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
51/95
13 num_cpus:
14 4
15 os:
16 Ubuntu
17 oscodename:
18 precise
Mt s grain trên máy tính có tên lappy chy Ubuntu 12.04, 4 CPU
2.6.9 Quá trình chy mt SLS
Khi master ch đnh chy mt SLS trên mt máy minion nào đó,
renderer bt đu thc hin quá trình x lý và bin đi file SLS v dng
cu trúc d liu dict và list. Ti đây các bin s, các giá tr grains,
pillar đưc thay bng các giá tr thc, các vòng lp, câu lnh điu kinđưc thc hin đ to ra mt SLS ch gm các d liu có th bin đi
v cu trúc d liu dict và list. Sau khi quá trình render SLS thành
công, master chuyn SLS v máy minion cn chy, minion nhn đưc
SLS thc hin chy các lnh tương ng vi các state đã khai báo. Sau
khi tt c các state đưc thc hin, minion gi kt qu v trng thái
ca các state v cho master thông qua kênh truyn zmq.
2.6.10 Returner
Kt qu ca mt quá trình chy states không bt buc phi tr v
cho master. Khi s dng returner, các kt qu này có th đưc gi ti
46
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
52/95
bt c h thng lưu tr hoc qun lý nào. Các returner Salt đang h
tr có th k đn:
• Sentry: H thng lưu tr log.
• Các database: mysql, mongodb, postgres...
• Cacbon: H thng theo dõi các tin trình.
• Syslog: Log ca h thng
47
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
53/95
Chương 3
Cài đt h thng private
cloud OpenStack s
dng trình qun lý cuhình Salt
3.1 Các công vic cn thc hin khi cài
đt OpenStack
• Cài và cu hình Identity Service (Keystone)
• Cài và cu hình Image Service (Glance)
48
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
54/95
• Cài Compute (Nova) lên mt hoc nhiu node
• Cu hình mng cho h thng các máy o
• Thêm các file nh
• Cài đt OpenStack Dashboard
49
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
55/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
56/95
nó ph thuc. Horizon ch cn truy cp đưc ti keystone đ xác thc
quyn truy cp là có th cho phép ngưi dùng qun lý c h thng
cloud bng giao din web.
Dưi đây trình bày vic thc hin thit k state cài đt openstack
phiên bn Essex trên h điu hành Ubuntu 12.04.
3.2 Trên mt nodeVic thc hin cài đt cloud trên mt node giúp mang li tri
nghim v cloud nhanh nht cho ngưi dùng, tránh khi các vn đ
gp phi khi chy nhiu node, mc dù không mang li ý nghĩa thc t
nào trong môi trưng sn phm.
Hai dch v Database và AMQP cn đưc cài đt trưc tiên bichúng là kênh lưu tr và giao tip chung cho c h thng cloud. đây
chn hai chương trình tương ng là Mariadb và RabbitMQ.
3.2.1 Thit k state cho mysql
Mariadb là mt phiên bn đưc tách ri và phát trin t MySQL t
sau khi Oracle mua li Sun. Vi kh năng thay th hoàn toàn MySQl,
Mariadb gi nguyên toàn b tên dch v, các giao din giao tip vi các
chương trình, thư vin, và đm bo cú pháp tương thích vi MySQL.
Các công vic cn thc hin đ cài đt và cu hình Mariadb: Thêm đa
ch kho phn mm cha Mariadb vào danh sách các kho lưu tr phn
51
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
57/95
mm ca Ubuntu. Thc hin bi state sau:
1 mariadb_repo:
2 pkgrepo:
3 − managed
4 − keyid: ’0xcbcb082a1bb943db’
5 − keyserver: keyserver.ubuntu.com
6 − name: deb http://repo.maxindo.net.id/mariadb/repo/5.5/ubuntu precise main
pkgrepo là state thc hin thêm mt kho phn mm (repository)
vào danh sách các kho phn mm ca ubuntu. Vi các tham s là keyid
cha mã đnh danh duy nht ca key, keyserver: máy ch cha key,
name: tên đy đ ca kho phn mm cha mariadb.
Công vic cài đt mariadb khi thc hin bng Salt có mt đim
cn chú ý: do trình cài đt mariadb là giao din tương tác trc tip
vi ngưi dùng nên trong quá trình chy t đng Salt s tìm cách đ
tr li các câu hi tương tác y. Có hai cách đ thc hin vic này:
• Vit trưc câu tr li và đưa vào debconf, thư vin debconf là
nơi mà trình cài đt s tìm câu tr li trưc khi đưa ra câu hi
vi ngưi dùng
• Do đc thù ca mysql, trình cài đt s không hi các thông tin
v mt khu ca root na nu như file debian.cnf đã tn ti và
cha mt khu y. đây s dùng cách này.
State thc hin cài đt mariadb và chy dch v mysql như sau:
52
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
58/95
1 mariadb_repo:
2 pkgrepo:
3 − managed
4 − keyid: ’0xcbcb082a1bb943db’
5 − keyserver: keyserver.ubuntu.com
6 − name: deb http://repo.maxindo.net.id/mariadb/repo/5.5/ubuntu precise main
7
8 /etc/mysql/debian.cnf:
9 file:
10 − managed
11 − source: salt://mariadb/debian.cnf
12 − mode: 600
13 − makedirs: True
14
15 /etc/mysql/my.cnf:
16 file:
17 − managed
18 − source: salt://mariadb/my.cnf.jinja2
19 − mode: 644
20 − makedirs: True
21
22 mariadb−server:
23 pkg:
24 − installed
25 − require:
26 − pkgrepo: mariadb_repo
27 − file: /etc/mysql/debian.cnf
53
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
59/95
28 − file: /etc/mysql/my.cnf
29 service:
30 − name: mysql
31 − running
32 − watch:
33 − file: /etc/mysql/my.cnf
34 − file: /etc/mysql/debian.cnf
35 − require:
36 − pkg: mariadb−server
State /etc/mysql/debian.cnf đm bo s tn ti ca file /etc/
mysql/debian.cnf vi mode là 600 đm bo ch user root mi có th
xem ni dung ca file này. Ni dung file này đưc vit sn trong đưng
dn salt://mariadb/debian.cnf. Đây là đưng dn tương đi vi
thư mc cha file top.sls ca Salt. Nói cách khác thư mc mariadbnm cùng thư mc vi file top.sls, còn debian.cnf nm trong thư mc
mariadb. Thuc tính makedirs: True đm bo thư mc /etc/mysql s
đưc to nu nó không tn ti.
Tương t đi vi state /etc/mysql/my.cnf đm bo file cu hình
my.cnf s nm ti đưng dn đnh trưc này vi mode là 644 - cho
phép tt c các user trên h thng có th đc đưc nhưng ch user rootcó quyn thay đi ni dung.
ID mariadb-server cha hai state con. State pkg thc hin cài gói
mariadb-server vi thuc tính require yêu cu state mariadb_repo phi
chy trưc nó đng thi hai file cu hình phi tn ti trưc khi gói này
54
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
60/95
đưc cài (đ tránh quá trình tương tác đã nói trên). State service
thc hin chy dch v có tên là mysql sau khi vic chy state pkg thc
hin xong, thuc tính watch ch ra rng dch v này s khi đng li
mi khi ni dung ca mt trong hai file cu hình b thay đi bi Salt.
3.2.2 Thit k state cho rabbitmq
Dch v rabbitmq đưc cài đt bng state sau:1 rabbitmq−server:
2 pkg:
3 − installed
4 service:
5 − running
6 − enable: True
Sau khi gói rabbitmq-server đưc cài đt, dch v tương ng đưc
Salt khi đng. Không có yêu cu đc bit nào v cu hình cn đưc
qun lý vi dch v này, nên ta có th s dng file cu hình đi kèm vi
gói đã cài đt.
3.2.3 Thit k state cho keystone
Bưc tip theo thc hin cài đt dch v keystone, keystone cn
đưc cài đt trưc ht bi tt c các dch v đu s s dng keystone
đ thc hin xác thc trưc khi thc hin bt c hành đng nào.
1 include:
55
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
61/95
2 − essex.sqldata
3 − python.mysqldb
4
5 keystone:
6 pkg:
7 − installed
8 − require:
9 − pkg: python−mysqldb
10 service:
11 − running
12 − enable: True
13 − watch:
14 − file: keystone
15 − require:
16 − pkg: keystone
17 file:
18 − managed
19 − name: /etc/keystone/keystone.conf
20 − source: salt://essex/keystone.conf.jinja2
21 − template: jinja
22 − mode: 644
23 − user: root
24 − group: root
25 − required_in:
26 − service: keystone
27 cmd:
28 − wait
29 − name: ’keystone−manage db_sync’
56
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
62/95
30 − watch:
31 − pkg: keystone
32 − require:
33 − mysql_grants: mysql_keystone
34 − service: keystone
35
36 /var/lib/keystone/keystone.db:
37 file:
38 − absent
39 − require:
40 − pkg: keystone
41
42 /usr/local/src/sample_data.sh:
43 file:
44 − managed
45 − source: salt://essex/sample_data.sh
46 − template: jinja
47 − mode: 700
48
49 ./sample_data.sh:
50 cmd:
51 − wait
52 − cwd: /usr/local/src
53 − watch:
54 − cmd: keystone
55 − require:
56 − file: /usr/local/src/sample_data.sh
57 − mysql_grants: mysql_keystone
57
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
63/95
đu SLS, câu lnh include thc hin nhúng ni dung hai SLSessex.sqldata và python.mysqldb vào SLS hin ti, bi các state trong
keystone.sls ph thuc vào các state trong hai SLS này. Các state pkg,
service và file đ cài đt keystone không có gì đc bit so vi các state
cùng loi ca mariadb. Sau khi dch v keystone đã chy, cn thc
hin chy hai câu lnh đ keystone có th hot đng đúng chc năng
ca nó. Trưc ht, cn chy câu lnh "keystone-manage db_sync" đthc hin đng b d liu (to các bng cn thit trong database) và
sau đó chy script sample_data.sh đ nhp vào các d liu v user,
service và role.
3.2.4 Thit k state cho glance
Sau khi keystone đã chy, dch v Image Service cn đưc cài đt
đ thc hin cung cp file nh h điu hành cho các máy o s dng.
Vic cài đt và cu hình dch v glance thc hin bi state sau:
1 include:
2 − essex.sqldata
3 − essex.keystone
4
5 glance:
6 pkg:
7 − installed
8
9 glance−services:
58
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
64/95
10 service:
11 − running
12 − names:
13 − glance−registry
14 − glance−api
15 − watch:
16 − file: /etc/glance/glance−registry.conf
17 − file: /etc/glance/glance−registry−paste.ini
18 − file: /etc/glance/glance−api.conf
19 − file: /etc/glance/glance−api−paste.ini
20 − require:
21 − pkg: glance
22
23 {% for i in (’api.conf’,’api−paste.ini’,’registry.conf’,’registry−paste.ini’)%}
24 /etc/glance/glance−{{ i }}:
25 file:
26 − managed
27 − source: salt://essex/glance−{{ i }}
28 − require:
29 − pkg: glance
30 − required_in:
31 − service: glance−services
32 {% endfor %}
33
34 glance_db_sync:
35 cmd:
36 − wait
37 − name: ’glance−manage version_control 0 && glance−manage db_sync
59
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
65/95
38 && service glance−api restart && service glance−registry restart’
39 − require:
40 − mysql_grants: mysql_glance
41 − service: glance−services
42 − cmd: ./sample_data.sh
43 − watch:
44 − pkg: glance
Glance bao gm hai dch v: glance-api và glance-registry. Đi kèmvi mi dch v này là hai file cu hình. SLS trên s dng mt vòng lp
for vi danh sách các file cu hình đ tránh vit lp li các phn ging
nhau ca các state. Hai dch v này s theo dõi bn file cu hình và s
restart nu như cu hình thay đi. Sau khi các dch v đã chy, state
glance_db_sync đưc thc hin đ đng b cơ s d liu nhm to
các bng cn thit. Vi thuc tính wait, câu lnh này ch chy mt ln
duy nht sau khi pkg: glance đưc cài đt và các dch v đã ng dng
cu hình mi. Trong thuc tính require ca state này, mysql_grants là
state thc hin to database, user và gán quyn cho user đã to. Ni
dung các state này có trong file essex.sqldata.
Đ t đng quá trình to file nh, SLS images thc hin ti file nh
ca mt h điu hành thu nh vi tên cirros và đưa vào h thng file
nh ca glance:
1 include:
2 − essex.glance
3
60
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
66/95
4 cirros_image:
5 file:
6 − managed
7 − name: /usr/local/src/cirros−0.3.0−x86_64−disk.img
8 − source: https://launchpad.net/cirros/trunk/0.3.0/+download/
9 cirros−0.3.0−x86_64−disk.img
10 − source_hash: md5=50bdc35edb03a38d91b1b071afb20a3c
11
12 glance_add_cirros:
13 cmd:
14 − run
15 − name: OS_USERNAME={{ pillar[’openstack’][’OS_USERNAME’] }}
16 OS_PASSWORD={{ pillar[’openstack’][’OS_PASSWORD’] }}
17 SERVICE_TOKEN={{ pillar[’openstack’][’SERVICE_TOKEN’] }}
18 OS_TENANT_NAME={{ pillar[’openstack’][’OS_TENANT_NAME’] }}
19 OS_AUTH_URL={{ pillar[’openstack’][’OS_AUTH_URL’] }}
20 SERVICE_ENDPOINT={{ pillar[’openstack’][’SERVICE_ENDPOINT’] }}
21 OS_REGION_NAME={{ pillar[’openstack’][’OS_REGION_NAME’] }}
22 glance index | grep −o cirros ||
23 OS_USERNAME={{ pillar[’openstack’][’OS_USERNAME’] }}
24 OS_PASSWORD={{ pillar[’openstack’][’OS_PASSWORD’] }}
25 SERVICE_TOKEN={{ pillar[’openstack’][’SERVICE_TOKEN’] }}
26 OS_TENANT_NAME={{ pillar[’openstack’][’OS_TENANT_NAME’] }}
27 OS_AUTH_URL={{ pillar[’openstack’][’OS_AUTH_URL’] }}
28 SERVICE_ENDPOINT={{ pillar[’openstack’][’SERVICE_ENDPOINT’] }}
29 OS_REGION_NAME={{ pillar[’openstack’][’OS_REGION_NAME’] }}
30 glance add name=cirros disk_format=raw container_format=bare < /usr/local
31 /src/cirros−0.3.0−x86_64−disk.img
61
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
67/95
32 − require:
33 − file: cirros_image
34 − cmd: glance_db_sync
State cirros_image thc hin đm bo s tn ti ca file ti đưng
dn /usr/local/src/cirros-0.3.0-x86_64-disk.img, vi ni dung file này
ly t URL https://launchpad.net/cirros/trunk/0.3.0/+download/
cirros-0.3.0-x86\_64-disk.img, giá tr source_hash giúp đm bofile nh ly v đưc nguyên vn, không b thay đi hay li trong quá
trình ti. State glance_add_cirros thc hin câu lnh "glance add"
đ thêm file nh cirros vào h thng file nh ca glance, câu lnh đòi
hi s có mt ca file nh cirros và state glance_db_sync đã chy
trưc nó. Do đc thù ca câu lnh glance đòi hi phi xác thc quyn
trưc khi thi hành, đon lnh trưc glance add thc hin gán bin môitrưng cn thit ly t pillar ri dùng bin đó vi câu lnh glance add.
3.2.5 Thit k state cho nova
Các dch v compute đưc cài đt trong state nova.sls. Quá trình
thc hin cài đt không có gì đc bit so vi dch v glance, ngoài victhc hin mt script sau khi dch v đã chy đ to network và thêm
các lut bo mt cho phép truy cp đn máy o qua cng 22 và ping
đn máy đó.
1 nova_network_and_inject_key:
2 cmd:
62
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
68/95
3 − script
4 − source: salt://essex/nova_sec.sh
5 − template: jinja
6 − require:
7 − file: /tmp/id_rsa.pub
8 − pkg: nova
9 − cmd: run_sync_nova
10 − service: nova−services
3.2.6 Thit k state cho horizon
Thành phn cui cùng đ chy mt cloud OpenStack là dashboard
vi tên horizon, vic cài đt dashboard thc hin đơn gin theo SLS
sau:
1 memcached:
2 pkg:
3 − installed
4 service:
5 − running
6
7
openstack−
dashboard:8 pkg:
9 − installed
10 − require:
11 − pkg: memcached
Ni dung file top.sls:
63
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
69/95
1 base:
2 ’∗’:
3 − essex.nova
4 − essex.images
5 − essex.keystone
6 − essex.glance
7 − essex.horizon
3.3 Trên nhiu node
Vic cài đt trên nhiu node đòi hi ngưi cài đt phi thit k
trưc mô hình, kin trúc ca h thng mà h s cài. Tùy theo nhu cu
và điu kin c th ca doanh nghip mà kin trúc cloud có th trnên rt khác bit. Ví d vi mt doanh nghip cn lưu tr nhiu, h
thng các node đ lưu tr s tăng lên, các đưng mng cn đm bo
kh năng truyn dn đ không gây ra hin tưng nghn c chai do lưu
lưng truyn ti cao. Vi các doanh nghip cn s dng nhiu máy o
và cn lưng tài nguyên CPU, RAM nhiu, vic cài đt các compute
node là cn thit.Vi compute node, ch cn cài mt dch v duy nht là ‘nova-
compute‘, cu hình các thông s phù hp là đã có th s dng đưc.
Các thông s cn thay đi đây là đa ch IP ca máy host, đa ch
này có th t đng ly thông qua grains, ngoài ra cn đin thông s
64
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
70/95
v đa ch ca mysql server, rabbitmq server đưc cung cp qua pillar
đ d dàng thay đi khi cn thit.
SLS cài compute node:
1 nova−compute:
2 pkg:
3 − installed
4 service:
5 − running
6 − watch:
7 − file: /etc/nova/nova.conf
8 − file: /etc/nova/api−paste.ini
9 − require:
10 − pkg: nova−compute
11
12 /etc/nova/api−paste.ini:
13 file:
14 − managed
15 − source: salt://essex/api−paste.ini
16 − template: jinja
17
18 /etc/nova/nova.conf:
19 file:20 − managed
21 − source: salt://essex/nova.conf
22 − template: jinja
65
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
71/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
72/95
• S máy o cirros dng lên t dashboard: 9
• Tt c các dch v đã đưc cài đt hot đng tt: mysql, rab-
bitmq, nova, keystone, glance, horizon
• Có th qun lý máy o (to mi, tt, xóa) bng dashboard hori-
zon
• Các máy o dng lên hot đng n đnh, đy đ chc năng màcirros cung cp như ping đn đn máy tht và các đa ch mng
internet, dch v ssh trên cirros chy n đnh, cho phép ngưi
dùng ssh t ngoài vào
67
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
73/95
Hình 4.1: Giao din horizon sau khi cài đt
Hình chp giao din ca dashboard horizon, vi project đưc chn làadmin, sau khi cài xong, chưa có máy o nào chy nên thông s phn
overview còn trng.
68
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
74/95
Hình 4.2: Giao din horizon khi to mt máy o
Hình trên chp bng đin thông tin khi to mt máy o vi tên cirros2,
s dng khuôn mu m1.tiny vi 1VCPU, 512MB RAM, và không s
dng thêm cng ngoài phn mà cirros yêu cu. Keypair là ssh key s
dng đ cloud đưa vào máy o khi nó đưc to, giúp cho ngưi dùng
có th SSH vào sau khi máy o đã chy. Security Groups cho phép la
chn nhóm các quy đnh bo mt đnh trưc, đây s dng nhóm có
tên default.
69
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
75/95
Hình 4.3: Giao din horizon sau khi to mt máy o
Hình chp horizon sau khi to thành công máy o cirros vi tên máy
là hvn01.
70
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
76/95
Hình 4.4: Giao din horizon sau khi to hai máy o
Hình chp horizon sau khi to 2 máy o cirros, phn Overview đã có
các thông s tng quan v 2 máy này bao gm tên máy, s VCPU,
lưng cng đưc cp, lưng RAM đưc cp, và thi gian mà máy o
đã chy.
71
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
77/95
Hình 4.5: Giao din horizon khi 10 máy o cirros đưc to
Hình trên chp màn hình phn giao din ca dashboard horizon sau
khi dng lên 10 máy o cirros. Ct Instance name là tên ca máy o,
ct IP Address hin th đa ch ip LAN ca các máy o. Ct Size ghi
thông tin v VCPU, RAM và cng mà máy o đưc cp, tt c 10máy này đu dùng 1 VCPU, 512 MB RAM, kích thưc cng mc
đnh theo đĩa cirros quy đnh. Ct Status ghi trng thái ca máy o,
máy cirros11 có status là error bi cloud không đ RAM đ cung cp
cho máy này, vy nên nó không đưc to và không có đa ch IP. Ct
Task ghi li nhim v mà cloud đang thc hin trong quá trình to,
xóa, bt, tt máy o. Ct PowerState ghi thông s v tình trng máy
o đang bt, tt hay li. Ct Actions cho phép ngưi dùng thay đi
trng thái máy o như bt, tt, xóa hoc xem log, kt ni VNC.
72
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
78/95
Hình 4.6: SSH vào máy o
nh chp GNOME terminal khi ssh vào mt máy o có IP LAN đưc
cp là 192.168.122.3, đăng nhp bng username cirros, sau khi đã truy
cp đưc vào máy o cirros, thc hin chy lnh ip addr đ hin thcác thông tin v các giao din mng ca máy o này.
Th nghim cài đt thêm 1 node vi vai trò nova-compute, t node
đu tiên có th lit kê các máy host bng dòng lnh và thu đưc kt
qu như sau khi cài trên 2 node:
Hình 4.7: Lit kê danh sách máy host (compute-node)
73
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
79/95
4.1.2 Salt
Sau quá trình vit state, thu đưc 9 file SLS thc hin cài toàn b
các dch v thit yu ca OpenStack. Các state này có th đưc chy
trên các máy s dng h điu hành Ubuntu 12.04 đ cài đt mt h
thng cloud hoàn chnh vi s compute node tùy ý. Vic s dng Salt
giúp vic cài đt cloud các ln sau tr nên vô cùng đơn gin vi công
vic chính là đin các thông s cn thit (IP máy cài mysql, IP máycài rabbitmq, subnet mng s dng, ...) ri chy state. Đc bit khi
cn thay đi cu hình, c th như cn thay đi đa ch ca máy chy
dnh v mysql, ch cn thay đi 1 ln duy nht 1 file duy nht, Salt
giúp phân tán file này đn tt c các máy compute node và restart li
dch v nova-compute đ áp dùng cu hình mi này.
Trin khai trên mt node, tng thi gian c quá trình cài đt bng
tng thi gian ti và cài đt các gói cng vi thi gian ti file nh cirros,
các phn công vic còn li chim thi gian không đáng k. Tc đ ca
quá trình ch yu ph thuc vào tc đ đưng truyn internet. Nu
thc hin cache trưc các file nh và các gói cn cài, quá trình chy
state s ch gm thi gian cài đt các gói, trên mô hình th nghim,
khong thi gian này dao đng t 7-10 phút, thi gian thc hin có
th rt khác tùy theo tc đ CPU, RAM và đĩa cng ca máy host.
Salt vi ngôn ng cu hình đơn gin giúp vic vit state không có
gì khó khăn, vi kh năng ch đnh th t chy các state giúp vic
cài đt theo th t nht đnh đưc đm bo. Các dch v ca salt
74
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
80/95
(salt-master, salt-minion) chy n đnh, s dng ít CPU và RAM.
4.2 Đánh giá hiu qu
• Cn cài đt thành công mt ln trưc khi vit các state đ có
đưc các file cu hình chun
• Trên mt node, vic cài đt nhanh hơn đáng k so vi cài đtbng tay.
• Thi gian vit state ph thuc ch yu vào s thành tho Salt và
hiu bit v dch v cn cài ca ngưi vit. Tng s dòng ca tt
c các file SLS thc hin cài đt: khong 265 dòng, vi khong
6800 ký t.
• Thi gian cài trên hai node ít hơn thi gian cài đt trên mt
node. Điu này có th lý gii do Salt thc hin hai quá trình cài
đt này cùng lúc trên hai máy khác nhau, nên thi gian cài đt
ca máy nào lâu nht thì đó cũng là thi gian ca c quá trình
cài đt. Do quá trình cài đt có s dng cache các gói phn mm
nên trong khi node 1 đang ti và cài các gói mysql, rabbitmq,keystone, glance thì node 2 thc hin ti gói nova-compute. Khi
node 1 cn cài nova-compute nó s không tn thi gian đ ti
gói này na (do va đưc cache li) dn đn kt qu như đã thu
đưc.
75
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
81/95
Kt lun
Đ án đã thc hin tìm hiu và cài đt OpenStack - mt h thng
giúp trin khai mô hình IaaS cloud, mt gii pháp hin đi và hiu qu
cho các doanh nghip có nhu cu s dng nhiu máy ch. Mô hình th
nghim đã dng lên mt h thng IaaS cloud chy trên 2 máy tính,
có kh năng cung cp các máy o mt cách nhanh chóng. Các dch v
thành phn ca cloud đu chy n đnh và thc hin đúng các chcnăng như mong đi.
Kt hp vi tìm hiu và ng dng công c qun lý cu hình Salt-
Stack, vic cài đt và qun lý h thng cloud tr nên nhanh chóng,
hiu qu hơn nhiu ln. Kt qu thu đưc là mt tp hp các file SLS
cho phép cài đt và qun tr mt h thng OpenStack cloud nhanh
chóng trên mt hoc nhiu máy tính chy h điu hành Ubuntu 12.04,chng minh cho tính kh thi ca gii pháp s dng OpenStack và Salt
đ thc hin cung cp và qun lý mt lưng ln máy ch cho doanh
nghip.
S dng hai công ngh mã ngun m chy trên nn tng h điu
76
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
82/95
hành nhân Linux, đ án góp phn mang li nhng suy nghĩ tích cc v
phn mm mã ngun m, đưa ra gii pháp giúp các doanh nghip có
th t làm ch các công ngh hin đi hiu qu mà không tn nhiu
tin ca. Trong hoàn cnh các doanh nghip công ngh thông tin trong
nưc đang đu tư vi s vn rt ln đ tìm hiu và làm ch công ngh
đin toán đám may, đ án giúp mang li tri nghim nhanh chóng cho
ngưi dùng ch vi lưng công sc và chi phí b ra thp nht. Hai côngngh đưc gii thiu trong đ án này s rt hu ích khi môi trưng
doanh nghip đ ln, giúp tit kim nhiu tin ca, công sc, nhưng
vi nhng doanh nghip nh, khi lưng máy cn qun lý không nhiu
thì vic s dng hai công ngh này có th mang li li ích không tương
xng vi công sc b ra.
Do điu kin v cơ s vt cht không cho phép nên đ án mi chdng li vic dng mt mô hình cloud trên 2 máy vt lý, chưa th
gii quyt bài toán thc t cung cp lưng ln server mà mi ch có
th cung cp đưc khong 10 server nh, chy ít dch v và các dch
v luôn trng thái rnh. Đ án có th đưc tip tc phát trin theo
hưng gii quyt các bài toán c th, thc hin cung cp các server
cho các d án tht kt hp vi vit các state đ t đng quá trình càiđt và qun lý cu hình, đng thi có th cài đt thêm các thành phn
tùy chn như OpenStack Storage đ thc hin lưu tr phân tán.
Đ án thc hin tìm hiu hai công ngh ln vi hai sn phm còn
khá mi m nên vic thiu xót là không th tránh khi, em rt mong
77
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
83/95
nhn đưc nhng phn hi và đóng góp ca các thy cô đ có đưc
mt tài liu tt hơn cho bn thân em nói riêng và cho ngành công ngh
thông tin nưc nhà nói chung.
78
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
84/95
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
85/95
Danh sách hình v
1.1 Dashboard ca Windows Azure . . . . . . . . . . . . . 10
1.2 Giao din dashboard ca Heroku . . . . . . . . . . . . 11
1.3 Giao din son tho Spreadsheet ca Google Drive . . 13
1.4 Phân tng chc năng ca tng mô hình dch v . . . . 14
1.5 Sơ đ tương tác ca các dch v trong OpenStack . . . 18
2.1 Mô hình Master - Minion ca Salt . . . . . . . . . . . . 37
3.1 Sơ đ th t cài đt các thành phn ca OpenStack . . 50
4.1 Giao din horizon sau khi cài đt . . . . . . . . . . . . 68
4.2 Giao din horizon khi to mt máy o . . . . . . . . . 69
4.3 Giao din horizon sau khi to mt máy o . . . . . . . 70
4.4 Giao din horizon sau khi to hai máy o . . . . . . . . 714.5 Giao din horizon khi 10 máy o cirros đưc to . . . . 72
4.6 SSH vào máy o . . . . . . . . . . . . . . . . . . . . . . 73
4.7 Lit kê danh sách máy host (compute-node) . . . . . . 73
80
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
86/95
Ph lc
Thit k state cho DNSimple
DNSimple là mt dch v online cho phép qun lý tên min và các
bn ghi mt cách đơn gin và hiu qu. Da trên API ca DNSipmle
cung cp, module dưi đây s thc hin thit k state cho DNSimple
phc v công vic s dng Salt qun lý tên min. Module đưc vitbng ngôn ng Python 2.7
Mt state module cn thc hin nhng công vic sau:
• Đc vào file SLS ca ngưi dùng
• Lưu gi trng thái trưc khi chy state
• Thc hin các thay đi như ni dung SLS yêu cu
• Tr v nhng thay đi và kt qu ca quá trình chy state
dnsimple module thc hin:
• đc vào các tên min cùng trng thái yêu cu
81
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
87/95
• đc vào các record cùng trng thái yêu cu
• ly toàn b thông tin hin ti v tên min và records
• thc hin các thay đi như to tên min, to record, thay đi ni
dung record
• ly kt qu sau khi thay đi so sánh vi d liu ban đu
• tr v kt qu ca quá trình chy state
Cài đt và s dng DNSimple
Module vit bng python :
1 # −∗− encoding: utf −8 −∗−
2
3 ’’’
4 DNSimple state
5 requires: requests==1.2.0
6 ’’’
7
8 import json
9 import logging
10 try:
11 import requests
12 except ImportError:
13 requests = None
14
82
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
88/95
15
16 log = logging.getLogger(__name__)
17
18 COMMON_HEADER = {’Accept’: ’application/json’,
19 ’Content−Type’: ’application/json’,
20 }
21 BASE_URL = ’https://dnsimple.com’
22
23
24 def __virtual__():
25 ’’’Verify requests is installed.’’’
26 if requests is None:
27 return False
28 return ’dnsimple’
29
30
31 def auth_session(email, token):
32 ses = requests.Session()
33 ses.auth = (email, token)
34 ses.headers.update(COMMON_HEADER)
35 ses.headers.update({’X−DNSimple−Token’: email + ":" + token})
36 return ses
37
38
39 def created(name, email, token):
40 domain = name
41 ret = {’name’: domain,
42 ’changes’: {},
83
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
89/95
43 ’result’: False,
44 ’comment’: ’’}
45
46 if __opts__[’test’]:
47 return {’name’: name,
48 ’changes’: {},
49 ’result’: None,
50 ’comment’: ’Domain {0} is set to be created’.format(
51 name)}
52
53 path = "/domains"
54 ses = auth_session(email, token)
55 data = {"domain": {"name": domain}}
56 resp = ses.post(BASE_URL + path, json.dumps(data))
57 log.info("{0} {1}".format(resp.status_code, resp.content))
58 if resp.status_code == 201:
59 ret[’result’] = True
60 ret[’changes’][domain] = "Created in your account"
61 elif resp.status_code == 400:
62 comment = "already in your account."
63 if comment in resp.content:
64 ret[’result’] = True
65 ret[’comment’] = comment
66 elif resp.status_code == 401:
67 ret[’result’] = False
68 else:
69 raise Exception("{0} {1}".format(resp.status_code, resp.content))
70 return ret
84
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
90/95
71
72
73 def normalise(records):
74 ’’’Return a data with structure same as which returned from API’’’
75 ret = {}
76 for domain in records:
77 li = []
78 for rectype in records[domain]:
79 data = {}
80 data[’record_type’] = rectype
81 recs = records[domain][rectype]
82 for recname in recs:
83 data[’name’] = recname
84 data.update(recs[recname])
85 li.append(data)
86 ret[domain] = li
87 return ret
88
89
90 def records_existed(name, email, token, records):
91 ’’’
92 Use returning ASAP when have any error happen. So if nothing change,
93 result is true
94
95 sls example
96
97 records_exists:
98 email:
85
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
91/95
99 token:
100 records:
101 blahblah.com:
102 A:
103 www:
104 content: 123.11.1.11
105 ttl: 123
106 prio: 2
107 blog:
108 content: 122.2.2.2
109 adomain.org:
110 A:
111 www:
112 content: 12.1.1.2
113 ...
114 ’’’
115
116 ret = {’name’: ’existed’,
117 ’changes’: {},
118 ’result’: True,
119 ’comment’: ’’}
120
121 ses = auth_session(email, token)
122 existing_records = {}
123 for domain in records:
124 path = "/domains/{0}/records".format(domain)
125 data = json.loads(ses.get(BASE_URL + path).content)
126 data = [i[’record’] for i in data]
86
-
8/15/2019 Do an Su Dung Saltstack Trien Khai He Thong Private Cloud Openstack-xemtailieu[Dot]Com
92/95
127 existing_records[domain] = data
128
129 to_update = {}
130 to_create = {}
131 new_records = normalise(records)
132 id2erc = {}
133 for domain in records:
134 ex_records = existing_records[domain]
135 new_domain_records = new_records[domain]
136 to_update[domain] = {}
137 for nrc in new_domain_records:
138 need_create = True
139 for erc in ex_records:
140 if nrc[’name’] == erc[’name’]:
141 # some records have same name, check their type for makeing
142 # sure correct update/create
143 # (DNSimple default have 4 NS record with name ’’)
144 if erc