## (1)OpenStack的認識
OpenStack是當今互聯網上熱門的開源云平臺管理項目之一。企業與個人用戶可以通過官方文檔指導搭建OpenStack私有云,使管理員通過儀表板調度整個數據中心計算、網絡和存儲資源的大型資源池。
OpenStack的主要功能是管理數據中心的虛擬化資源。它們分別是:
- 計算資源:OpenStack不提供虛擬化功能,通過計算節點上KVM的虛擬化,使得OpenStack可以調度其資源部署并管理數量眾多的實例。其次管理員可以通過dashboard查看和使用其計算資源的使用情況和剩余空間,更大化利用資源。
- 存儲資源:OpenStack為企業云端服務提供了不同的存儲模式,如glance組件提供了實例鏡像存儲服務,cinder提供了塊設備存儲服務,swift提供了對象對象存儲服務。傳統單機存儲已經不能保證數據的安全性和完整性,多樣的存儲分類讓企業可以在云端更多樣性、安全的存儲數據。
- 網絡資源:OpenStack為企業云服務提供提供API以構建豐富的網絡拓撲,并在云中配置高級網絡策略。如今數據中心機房大量的網絡硬件設備劃分成虛擬虛擬網絡,導致了IP地址數量暴增、路由配置淆亂、安全規則爆炸式增長。OpenStack的網絡規則及IP管理,使得管理員來最大限度地管理網絡資源。
## (2)OpenStack架構
OpenStack項目是很多開源組件構成的云計算平臺,每一個組件提供不同的服務,每個服務又提供應用程序編程接口促進了這種集成。根據項目需求,用戶可以按照官方文檔安裝介紹選擇部分或全部服務。下面對 OpenStack 主要五大基礎服務模塊進行一一介紹:
- 計算組件Nova
Nova是云端中計算資源的控制中心,實例生命周期的一切活動都是由nova組件負責處理的。但實際上需要知道,nova本身并沒有虛擬化的功能,其實現方式通常是計算節點上的libvirt API實現的。如今OpenStack已經支持多種虛擬化形式,如KVM,Xen, VMware vSphere和Hyper-V等等。Nova的主要核心服務有API、Compute、Conductor、Scheduler。nova-api負責虛擬機生命周期的操作,nova-scheduler實現控制在哪個計算節點上啟動實例,nova-conductor主要是防止云端上計算節點直接訪問數據庫。計算節點上的nova-compute來完成供給實例計算資源。

- 鏡像主件Glance
Glance服務主要是上傳、創建、檢索、刪除虛擬機實例的鏡像文件。需要注意的一點是,在向Glance添加鏡像時,必須指定虛擬機的磁盤格式和容器模式,在本文中使用了qcow2的磁盤格式和bare容器格式,下面來介紹一下常見的磁盤格式和Glance主要構件。
| 磁盤格式 | |
| --- | --- |
| raw | 原始磁盤格式,是硬盤出廠時的原始格式 |
| vhd | VMware,Xen,微軟,VirtualBox等虛擬機監視器使用的常見磁盤格式 |
| vmdk | 這是VHDX磁盤格式,vhd格式的增強版本,支持更大的磁盤大小 |
| vdi | VirtualBox虛擬機監視器和QEMU模擬器支持的磁盤格式 |
| qcow2 | QEMU模擬器支持的磁盤格式,支持動態擴展并支持寫入復制 |
| ploop | Virtuozzo支持并用于運行OS容器的磁盤格式 |
| iso | 光盤數據內容的存檔格式(例如 Cdrom) |
| aki | Glance中存儲的是Amazon內核映像 |
| ari | Glance中存儲的是Amazon ramdisk映像 |
| ami | Glance中存儲的是Amazon機器映像 |
Glance主要有兩個構件,一個是Glance-API服務進程,主要功能處理和存儲鏡管理的Restful請求,響應鏡像查詢、獲得和存儲的調用。默認綁定端口是9292。另外一個是Glance-Registry服務進程,主要負責處理和存儲鏡像元數據的Restful請求,例如鏡像的大小和類型調用。默認綁定的端口是9191。

- 認證組件keystone
Keystone在OpenStack中如同“鑰匙”,它在云端中提供令牌認證和策略訪問服務的作用,通過生成允許訪問身份驗證令牌,項目中的用戶如admin通過將其有效憑證提供給認證服務來獲取該令牌和其他服務API的URL端點。身份認證請求的主體必須包含指定內容驗證方法的有效內容,官方上指定的驗證方法有兩種,一種是password,另一種是token。本文使用的是fernet token,信息包負載數據,并用Crypto.encrypt對其對稱加密,使得設計的邏輯序列化,且負載均衡得到控制。另外可用端點URL訪問服務,在OpenStack組件中如果需要訪問一個服務,必須知道其端點。不同的組件服務有不同的服務訪問地址,而且使用的權限也會有所不同。
- Dashboard組件Horizon
作為私有云云端用戶,可以使用OpenStack儀表盤在web控制面板中,配置自己的資源。另外還可以創建、修改、查看、刪除實例、鏡像文件、ssh密鑰對、存儲卷、網絡等功能。
通過輸入管理員賬號和密碼登陸到儀表盤中,在左邊能直觀看到項目、管理員、身份,設置四大選項卡,項目是OpenStack云中的組織賬號,每個用戶都是一個或多個項目成員。在項目選項卡可以訪問項目的概述、查看,創建,編輯,導入和刪除實例、鏡像、密鑰對等作用。在管理選項卡下可以查看主機聚合摘要,查看、創建、編輯、刪除實例、卷、Flavors、網絡等作用。在身份選項卡中,可以查看、創建、分配、刪除用戶和項目。在設置選項卡中可以查看和管理儀表盤設置已經更改用戶使用密碼。通過使用儀表盤工具,能夠進行最直觀簡單的交互web界面,使得管理員快速入門管理整個OpenStack架構。
- 網絡組件neutron
Neutron在OpenStack云端上能對實例提供網絡、子網和路由器抽象功能,提供了對云端上網絡的網絡拓撲,負責管理內網和外網的通訊、管理虛擬機網絡之間的通信、虛擬機上防火墻的設置等等。在計算節點中,neutron構建插入Openstack租戶網絡的高級網絡服務,為每個用戶提供獨立的網絡環境。同時在Horizon上支持創建和刪除子網、路由、端口配置,使得網絡配置更加具有條理性。
## OpenStack的發展趨勢
如今Openstack開始漸漸追趕虛擬化商業巨頭VMware、citrix、微軟的步伐。如下圖所示,通過2017年Openstack和其他云項目的部署情況對比圖。可以發現越來越多的使用者擁抱開源,已經在使用或計劃使用OpenStack搭建私有云。

OpenStack項目的使用公司眾多,通過查看官方主頁上使用公司列表,國外有redhat,intel,cisco,IBM等企業,國內有華為,新華三,EasyStack等。眾多的世界排名企業都紛紛開始了OpenStack云架構的競賽中,使得項目發展迅速,穩定成熟,廣泛的運用在互聯網各個行業中。

眾多的開發者活躍在OpenStack社區上,使得社區發帖量、回復量、問題處理速度等極速上升,在選擇開源項目時,管理者主要聚焦與技術指標,比如性能、可靠性、功能等方案,OpenStack致力于一個開放式的設計過程,定時收集企業項目、開發者、普通用戶的意見指定版本發展線路,時間頻率是是每半年一次。

- 獻給我的朋友們
- 一、個人對學習的看法
- 二、運維技能圖譜
- 三、運維常用技能
- 3.1 Vim(最好用的編輯器)
- 3.2 Nginx & Tengine(Web服務)
- 1. Nginx介紹和部署
- 2. Nginx配置解析
- 3. Nginx常用模塊
- 4. Nginx 的session 一致性問題
- 3.3 Tomcat(Web中間件)
- 3.4 Keepalived(負載均衡高可用)
- 3.5 Memcache(分布式緩存)
- 3.6 Zookeeper(分布式協調系統)
- 3.7 KVM(開源虛擬化)
- 1. 虛擬化介紹
- 2. KVM基礎
- 3. 設置VNC和時間同步
- 4. kvm虛擬機快照備份
- 5. kvm虛擬機在線擴展磁盤
- 6. kvm虛擬機靜態遷移
- 7. kvm虛擬機動態遷移
- 8. kvm虛擬機存儲池配置
- 9. cpu添加虛擬化功能
- 3.8 GitLab(版本控制)
- 3.8.1 GitLab安裝與漢化
- 3.9 Jenkins(運維自動化)
- 3.10 WAF(Web防火墻)
- 3.10.1初探WAF
- 四、常用數據庫
- 4.1 MySQL(關系型數據庫)
- 1. MySQL源碼安裝
- 4.2 Mongodb(適用與大數據分析的數據庫)
- 4.3 Redis(非關系數據庫)
- 五、自動化運維工具
- 5.1 Cobbler(系統自動化部署)
- 5.2 Ansible(自動化部署)
- 5.3 Puppet(自動化部署)
- 5.4 SaltStack(自動化運維)
- 六、存儲
- 6.1 GFS(文件型存儲)
- 6.2 Ceph(后端存儲)
- 七、運維監控工具
- 7.1 對監控的理解
- 7.2 Zabbix(運維監控)
- 7.2.1 Zabbix簡介
- 7.2.2 Zabbix服務部署
- 1. Zabbix服務端部署
- 2. Zabbix客服端部署
- 3. 配置前端展示
- 4. zabbix告警配置
- 7.2.3 Zabbix監控服務
- 1. 監控網絡設備
- 2. 自定義Nginx監控
- 7.3 云鏡(安全監控)
- 7.4 ELK(日志收集展示)
- 八、運維云平臺
- 8.1 OpenStack(開源云操作系統)
- 8.1.1 OpenStack簡介
- 8.1.2 實驗架構設計
- 8.1.3 集群環境準備
- 8.1.4 controller節點部署
- 1. 安裝Mariadb Galera Cluster集群
- 2. 安裝RabbitMQ Cluster集群
- 3. 安裝Pacemaker
- 4. 安裝HAProxy
- 5. 安裝配置Keystone
- 6. 安裝配置glance
- 1. 制作鏡像模板
- 7. 安裝配置nova
- 8. 安裝配置neutron
- 1. 配置虛擬機網絡
- 9. 安裝Dashboard
- 10. 安裝配置cinder
- 8.1.5 compute節點部署
- 1. 安裝相關軟件包
- 2. 安裝Neutron
- 3. 配置cinder
- 4. 創建第一個虛擬機
- 8.1.6 OpenStack報錯處理
- 1. cinder僵尸卷刪除
- 8.1.7 快速孵化虛擬機方案
- 8.1.8 Kolla容器化部署OpenStack
- 1. 單點部署
- 2. 多節點部署
- 8.2 Tstack(騰訊云平臺)
- 8.3 K8s(微服務容器化)
- 九、運維編程技能
- 9.1 Shell(運維必會語言)
- 9.2 Python(萬能的膠水語言)
- 十、Devops運維
- 10.1 理念
- 10.2 Devops實戰