OpenStack實戰指南 筆記

志_祥發表於2014-11-07

OpenStack實戰指南

跳轉至: 導航 搜尋

目錄

OpenStack簡介

  1. 2010,來自於NASA Nebula(之前用的是Eucalyptus) + Rackspace Swift
  2. vs CloudStack
    1. p7 Apache專案成員均以個人名義列入,而不是他們所代表的公司
    2. Neutron接受來自虛擬機器的指令來定義VM需要的網路,然後轉發給交換機和路由器建立這些網路(SDN?)
    3. OpenStack為分散式元件模式(不可熱插拔?),CloudStack是一個可插拔式的模型
    4. 都支援KVM、Xen、VMWare,OpenStack還支援Hyper-V、PowerVM、LXC via libvirt、Baremental、QEMU、Docker
  3. 建立虛擬機器例項
    1. Horizon將使用者的HTTP請求轉換為REST分發給Nova API,這期間會將映象檔案下載到Nova節點,並進行虛擬機器配置
  4. 非核心專案
    1. Ironic:管理物理機的生命週期?
      1. 前身:Nova baremental驅動,主要通過PXE和IPMI進行管理?
    2. Tempest:功能測試、整合測試;基於unittest2和nose

OpenStack安裝

  1. OpenStack通過AMQP實現RPC服務:RabbitMQ、Qpid、ZeroMQ
  2. 新增Havana的源(Ubuntu 12.04預設是Essex)
    1. # apt-get install -y python-software-properties
    2. # add-apt-repository cloud-archive;avana
    3. # apt-get update
    4. # apt-get upgrade -y
    5. # apt-get dist-upgrade -y
  3. # apt-get install -y ntp
  4. # apt-get install -y mysql-server python-mysqldb
    1. sed -I"s/127.0.0.1/10.80.80.10/" /etc/mysql/my.conf (這麼修改mysql配置檔案可靠嗎?)
  5. # apt-get install -y rabbitmq-server
    1. rabbitmqctl change_password guest NEWPWD
  6. 安裝部署Keystone
    1. # vi /etc/keystone/keystone.conf:admin_token?
    2. # keystone-manage db_sync(有點rails風格)
    3. p41 建立Tenant、使用者、角色(略)
      1. # keystone user-role-add --user admin --role admin --tenant admin
    4. 定義Services和API Endpoints
  7. 安裝Glance映象元件(主要包括glance-api和glance-registry兩個服務)
    1. # glance image-create --name my1stimg --is-public true --container-format bare --disk-format qcow2 --file a.img
  8. 安裝Neutron元件(實際實現依賴與更底層的Open vSwitch、Nicira等)
    1. 當Grizzly版本釋出後,網路元件改名叫Neutron,以前叫Quantum
  9. 安裝Nova(略)
  10. 安裝Cinder(略)
  11. 安裝Horizon(略)
  12. 網路節點的安裝*(這部分內容感覺有點技術含量啊)
    1. 負責虛擬機器的網路控制,包括DHCP、虛擬路由、公網訪問等,使用Open vSwitch作為底層驅動
  13. 計算節點的安裝
    1. 負責執行虛擬機器,KVM + libvirt
  14. 塊儲存節點的安裝(負責提供volume)
  15. *在Ubuntu上使用原始碼編譯安裝
    1. p68 學習DevStack
    2. p71 使用tmux啟動keystone(tmux看起來是個不錯的工具,它和一般shell/ssh的區別是什麼?)
      1. $ tmux new-session -s keystone
      2. $ bin/keystone-all --config-file /etc/keystone/keystone.conf
    3. 下略

OpenStack組織結構一覽

  1. 在Grizzly版本中,nova-compute不再之間與database互動,而是通過nova-conductor代理

OpenStack API的介紹和開發

  1. Nova API:以WSGI為入口,加上Routes、Webob和Paste等Python元件
    1. 分頁查詢:marker(上次最後一條記錄name) limit end_marker
  2. 理解Eventlet(Python庫,依賴於Greenlet和select.epoll)
  3. 自定義Dashboard皮膚
    1. Horizon基於Django

Keystone認證元件

  1. 哈哈,從這一章看來,OpenStack開發其實就是Python語言的程式設計

Glance映象元件

  1. 表結構:glance# \dt
    1. image_locations
    2. images
    3. migrate_version
  2. 映象狀態:queued saving active killed deleted pending_delete
  3. 映象格式
    1. RAW
    2. qcow2(QEMU的Copy on Write)
    3. VHD(微軟的Virtual PC和Hyper-V)
    4. VMDK
    5. VDI
    6. ISO
    7. AKI、ARI、AMI
  4. 延時刪除?glance-scrubber
  5. 設定後端儲存:Ceph*
  6. 製作映象

Nova計算元件

  1. 虛擬機器(instance)狀態:vm_state task_state power_state
    1. p194 在libvirt中,虛擬機器被定義為Domain,簡稱Dom
  2. Context
    1. service_catalog到底是什麼?

Neutron網路元件

  1. 虛擬裝置:network subnet router port
  2. p205 在一個實際的部署Neutron環境中,往往會在不同的節點上安裝多個服務,這是初學者不容易理解的地方
    1. 哈哈,網路管理配置本來就不容易,這算是一個技術壁壘了
  3. 外掛?
    1. ML2?
    2. neutron-XXX-agent:DHCP、l3、metadata、LBaaS、FWaaS
  4. 使用Open vSwitch(OVS)的外掛
    1. 網路型別:Provider / Tenant
    2. L3 agent:實現網路層路由轉發和NAT;Floating IP

Cinder塊儲存元件

  1. dbus(IPC服務)導致libvirt出錯?

OpenStack日常運維

  1. 集中管理日誌:rsyslog?

使用Fuel快速安裝OpenStack 

相關文章