do an su dung saltstack trien khai he thong private cloud openstack-xemtailieu[dot]com

Upload: hong-chuong

Post on 05-Jul-2018

217 views

Category:

Documents


0 download

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