網(wǎng)站建設(shè)咨詢公企業(yè)網(wǎng)站建設(shè)門戶
目錄
一、云計(jì)算概述
(一)云計(jì)算的定義
(二)云計(jì)算的服務(wù)模型
(三)OpenStack 概述
二、OpenStack 一鍵部署
(一)環(huán)境要求
(二)在線安裝前準(zhǔn)備工作
(三)在線部署 OpenStack
(四)離線安裝前準(zhǔn)備工作
(五)離線部署 OpenStack
三、通過 Dashboard 體驗(yàn) OpenStack 功能
(一)登錄 Dashboard
(二)Dashboard 界面功能
四、創(chuàng)建云主機(jī)
(一)創(chuàng)建網(wǎng)絡(luò)
(二)創(chuàng)建路由
(三)創(chuàng)建鏡像
(四)創(chuàng)建云主機(jī)
(五)管理云主機(jī)并測(cè)試連通性
w、OpenStack 核心服務(wù)深度解析
(一)Nova 計(jì)算服務(wù)
關(guān)鍵功能特性:
配置文件關(guān)鍵點(diǎn):
(二)Neutron 網(wǎng)絡(luò)服務(wù)
核心組件:
典型網(wǎng)絡(luò)架構(gòu):
(三)Keystone 身份認(rèn)證服務(wù)
核心概念:
認(rèn)證流程:
初始化 Keystone 命令:
(四)Glance 鏡像服務(wù)
鏡像工作流程:
上傳鏡像示例:
六、OpenStack 部署實(shí)戰(zhàn)進(jìn)階
(一)多節(jié)點(diǎn)部署架構(gòu)規(guī)劃
控制節(jié)點(diǎn)(Controller Node):
計(jì)算節(jié)點(diǎn)(Compute Node):
存儲(chǔ)節(jié)點(diǎn)(Storage Node):
(二)高可用部署要點(diǎn)
1. 服務(wù)高可用
2. 存儲(chǔ)高可用
3. 網(wǎng)絡(luò)高可用
(三)部署故障排除指南
1. 安裝失敗常見原因
2. 實(shí)例創(chuàng)建失敗排查
3. 網(wǎng)絡(luò)連通性故障
七、Dashboard 高級(jí)操作指南
(一)資源配額管理
命令行配置示例:
(二)主機(jī)聚合與資源調(diào)度
實(shí)例調(diào)度到指定聚合:
(三)監(jiān)控與計(jì)量
命令行查看計(jì)量數(shù)據(jù):
八、生產(chǎn)環(huán)境最佳實(shí)踐
(一)安全加固建議
(二)性能優(yōu)化策略
(三)備份與容災(zāi)方案
九、OpenStack 社區(qū)與生態(tài)
(一)版本迭代與特性
(二)社區(qū)參與方式
(三)生態(tài)工具與集成
一、云計(jì)算概述
(一)云計(jì)算的定義
云計(jì)算是一種基于網(wǎng)絡(luò)的超級(jí)計(jì)算模式,能夠根據(jù)用戶需求提供計(jì)算資源、存儲(chǔ)資源、網(wǎng)絡(luò)資源等。它有廣義和狹義之分:
- 狹義云計(jì)算:通過網(wǎng)絡(luò)按需向用戶提供 IT 基礎(chǔ)設(shè)施(硬件、平臺(tái)、軟件),用戶視 “云” 中資源為無限,可橫向擴(kuò)展,如使用水電煤氣般按需付費(fèi)。
- 廣義云計(jì)算:指服務(wù)的交付和使用模式,通過網(wǎng)絡(luò)以按需、易擴(kuò)展方式獲得所需服務(wù),服務(wù)范圍廣泛。
(二)云計(jì)算的服務(wù)模型
- IaaS(基礎(chǔ)設(shè)施即服務(wù))
- 提供底層 IT 基礎(chǔ)設(shè)施,包括處理能力、存儲(chǔ)空間、網(wǎng)絡(luò)資源等。
- 用戶獲取硬件或虛擬硬件資源(裸機(jī)或虛擬機(jī))后,可安裝操作系統(tǒng)和應(yīng)用程序。
- 面向?qū)ο鬄?IT 管理人員。
- PaaS(平臺(tái)即服務(wù))
- 將安裝好開發(fā)環(huán)境的系統(tǒng)平臺(tái)作為服務(wù)通過互聯(lián)網(wǎng)提供。
- 用戶可安裝其他應(yīng)用程序,但不能修改已安裝的操作系統(tǒng)和運(yùn)行環(huán)境。
- 主要面向開發(fā)人員。
- SaaS(軟件即服務(wù))
- 直接通過互聯(lián)網(wǎng)為用戶提供軟件和應(yīng)用程序服務(wù)。
- 用戶通過租賃方式獲取安裝在廠商或服務(wù)供應(yīng)商處的軟件。
- 面向普通用戶,常見模式是提供賬號(hào)密碼。
(三)OpenStack 概述
- 起源
- 2010 年 7 月由 Rackspace 和美國(guó)國(guó)家航空航天局(NASA)共同發(fā)起。
- Rackspace 貢獻(xiàn)存儲(chǔ)源碼(Swift),NASA 貢獻(xiàn)計(jì)算源碼(Nova)。
- 定義
- 是通過數(shù)據(jù)中心控制計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源的云平臺(tái),也是以 Apache 許可證授權(quán)的開源軟件。
- 目標(biāo)是提供簡(jiǎn)單實(shí)施、可擴(kuò)展且功能豐富的云產(chǎn)品,支持公有云和私有云建設(shè)與管理。
- 核心項(xiàng)目(服務(wù))
| 服務(wù) | 項(xiàng)目名稱 | 功能描述 |
|----|----|----|
|Compute(計(jì)算服務(wù))|Nova | 負(fù)責(zé)實(shí)例生命周期管理,屏蔽 Hypervisor,支持多種虛擬化技術(shù),可橫向擴(kuò)展 |
|Network(網(wǎng)絡(luò)服務(wù))|Neutron | 管理虛擬網(wǎng)絡(luò),為實(shí)例創(chuàng)建網(wǎng)絡(luò)拓?fù)?#xff0c;面向租戶且租戶間互不影響 |
|Identity(身份認(rèn)證服務(wù))|Keystone | 類似 LDAP 服務(wù),對(duì)用戶、租戶、角色、服務(wù)進(jìn)行認(rèn)證與授權(quán),支持多認(rèn)證機(jī)制 |
|Dashboard(控制面板服務(wù))|Horizon | 提供 Web 管理界面,與底層服務(wù)交互 |
|Image Service(鏡像服務(wù))|Glance | 注冊(cè)與管理虛擬機(jī)鏡像模板,支持多格式鏡像 |
|Block Storage(塊存儲(chǔ)服務(wù))|Cinder | 為運(yùn)行實(shí)例提供持久塊存儲(chǔ)設(shè)備,可擴(kuò)展,按需付費(fèi) |
|Object Storage(對(duì)象存儲(chǔ)服務(wù))|Swift | 提供基于云的彈性存儲(chǔ),支持集群無單點(diǎn)故障 |
|Telemetry(計(jì)量服務(wù))|Ceilometer | 度量、監(jiān)控和控制數(shù)據(jù)資源,為用戶提供記賬途徑 | - 優(yōu)勢(shì)
- 控制性:完全開源,模塊化設(shè)計(jì),提供 API 接口,方便與第三方技術(shù)集成。
- 兼容性:兼容其他公有云,便于用戶數(shù)據(jù)遷移。
- 可擴(kuò)展性:采用模塊化設(shè)計(jì),支持主流 Linux 發(fā)行版本,可橫向擴(kuò)展。
- 靈活性:用戶可按需建立基礎(chǔ)設(shè)施,輕松增加群集規(guī)模。
- 行業(yè)標(biāo)準(zhǔn):眾多 IT 領(lǐng)軍企業(yè)加入,可能成為云計(jì)算行業(yè)標(biāo)準(zhǔn)。
二、OpenStack 一鍵部署
(一)環(huán)境要求
- 硬件最低配置
| 類型 | 最低配置要求 |
|----|----|
|CPU | 支持 Intel 64 或 AMD64,啟用硬件虛擬化支持的 64 位 x86 處理器,4 核 |
| 內(nèi)存 | 8GB|
| 磁盤空間 | 30GB|
| 網(wǎng)絡(luò) | 1 個(gè) 1Gbps 網(wǎng)卡 | - 案例環(huán)境
| 主機(jī)名 | IP 地址 / 掩碼 | 角色 |
|----|----|----|
|openstack|ens33:192.168.9.137/24 | 安裝所有 OpenStack 組件及所需環(huán)境 |
(二)在線安裝前準(zhǔn)備工作
- 準(zhǔn)備虛擬機(jī)
- 通過 VMware 等軟件創(chuàng)建虛擬機(jī),配置靜態(tài) IP、網(wǎng)關(guān)及 DNS,測(cè)試網(wǎng)絡(luò)連通性。
- 注意 IP 配置中不要有 “DOMAIN=x.x.X.X” 行,以免影響 nova 配置。
- 修改主機(jī)名
[root@localhost ~]# hostnamectl set-hostname openstack
[root@localhost ~]# bash
[root@openstack ~]#
- 更新系統(tǒng)并安裝常用軟件
[root@openstack ~]# yum -y update
[root@openstack ~]# yum -y install vim wget net-tools lrzsz
- 關(guān)閉防火墻并取消開機(jī)啟動(dòng)
[root@openstack ~]# systemctl stop firewalld
[root@openstack ~]# systemctl disable firewalld
- 禁用 NetworkManager
[root@openstack ~]# systemctl stop NetworkManager
[root@openstack ~]# systemctl disable NetworkManager
- 禁用 Selinux
[root@openstack ~]# cat /etc/sysconfig/selinux
# 修改SELINUX=disabled
SELINUX=disabled
- 添加 hosts 綁定
[root@openstack ~]# cat /etc/hosts
192.168.9.137 openstack
(三)在線部署 OpenStack
- 安裝 Train 版 YUM 源
[root@openstack ~]# yum install -y centos-release-openstack-train
- 安裝 Packstack 軟件包
[root@openstack ~]# yum install -y openstack-packstack
- 一鍵部署 OpenStack
[root@openstack ~]# packstack --allinone
部署過程中會(huì)顯示各項(xiàng)安裝進(jìn)度,當(dāng)出現(xiàn) “successfully” 時(shí)表示安裝成功。
- 配置虛擬網(wǎng)橋 br-ex
[root@openstack network-scripts]# cp ifcfg-ens33 ifcfg-br-ex
[root@openstack network-scripts]# cat ifcfg-br-ex
TYPE=Ethernet
BOOTPROTO=none
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
IPADDR=172.24.4.1
PREFIX=24
(四)離線安裝前準(zhǔn)備工作
- 虛擬機(jī)準(zhǔn)備
- 配置靜態(tài) IP,確保磁盤空間大于 30G(建議 40G)。
- IP 配置示例:
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO=static
IPADDR="192.168.9.137"
PREFIX="24"
GATEWAY="192.168.9.1"
DNS1="114.114.114.114"
# 不要出現(xiàn)DOMAIN配置項(xiàng)
- 修改主機(jī)名、安裝軟件等
- 與在線安裝相同,執(zhí)行修改主機(jī)名、更新系統(tǒng)、關(guān)閉防火墻等操作。
- 禁用 Selinux
[root@openstack ~]# sed -i '/SELINUX=/s/enforcing/disabled/' /etc/selinux/config
[root@openstack ~]# setenforce 0
[root@openstack ~]# getenforce # 應(yīng)顯示Permissive
(五)離線部署 OpenStack
- 上傳并解壓 Train 版離線安裝包
[root@openstack ~]# mkdir /data && cd /data
[root@openstack data]# tar zxf openstack.tgz
[root@openstack data]# ls
- 配置本地 YUM 源
[root@openstack ~]# cd /etc/yum.repos.d/
[root@openstack yum.repos.d]# mkdir backup
[root@openstack yum.repos.d]# mv *.repo backup
[root@openstack yum.repos.d]# vim local.repo
[base]
name=base
baseurl=file:///data/base
gpgcheck=0
enabled=1
[centos-ceph-nautilus]
name=centos-ceph-nautilus
baseurl=file:///data/centos-ceph-nautilus
gpgcheck=0
enabled=1
[centos-nfs-ganesha28]
name=centos-nfs-ganesha28
baseurl=file:///data/centos-nfs-ganesha28
gpgcheck=0
enabled=1
[centos-openstack-train]
name=centos-openstack-train
baseurl=file:///data/centos-openstack-train
gpgcheck=0
enabled=1
[centos-qemu-ev]
name=centos-qemu-ev
baseurl=file:///data/centos-qemu-ev
gpgcheck=0
enabled=1
[extras]
name=extras
baseurl=file:///data/extras
gpgcheck=0
enabled=1
[openstack-train]
name=openstack-train
baseurl=file:///data/openstack-train
gpgcheck=0
enabled=1
[rdo-qemu-ev]
name=rdo-qemu-ev
baseurl=file:///data/rdo-qemu-ev
gpgcheck=0
enabled=1
[updates]
name=updates
baseurl=file:///data/updates
gpgcheck=0
enabled=1
- 更新 YUM 源數(shù)據(jù)
[root@localhost data]# createrepo /data/base/
[root@localhost data]# createrepo /data/centos-ceph-nautilus/
[root@localhost data]# createrepo /data/centos-nfs-ganesha28/
[root@localhost data]# createrepo /data/centos-openstack-train/
[root@localhost data]# createrepo /data/centos-qemu-ev/
[root@openstack data]# createrepo /data/extras
[root@openstack data]# createrepo /data/openstack-train/
[root@openstack data]# createrepo /data/rdo-qemu-ev/
[root@openstack data]# createrepo /data/updates/
[root@openstack data]# yum clean all
[root@openstack data]# yum makecache
- 安裝 openstack-packstack
[root@localhost ~]# yum -y install openstack-packstack
- 一鍵部署 OpenStack
[root@openstack ~]# packstack --allinone
部署完成后,配置 br-ex 網(wǎng)橋,與在線部署步驟相同。
三、通過 Dashboard 體驗(yàn) OpenStack 功能
(一)登錄 Dashboard
- 在瀏覽器中輸入http://192.168.9.137/dashboard,進(jìn)入登錄界面。
- 用戶名和密碼存儲(chǔ)在 root 用戶 Home 目錄下的 keystonerc_admin 文件中:
[root@openstack ~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD=81a7af7313ce46d2 # 實(shí)際密碼以生成的為準(zhǔn)
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=http://192.168.9.137:5000/v3
export PS1='[\u@\h \W(keystone_admin)]\$'
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
(二)Dashboard 界面功能
- 項(xiàng)目選項(xiàng)卡
- 訪問 API:顯示所有組件的服務(wù)端點(diǎn)。
- 計(jì)算類:包含概況、實(shí)例、鏡像、密鑰對(duì)、主機(jī)組等子類,可管理計(jì)算資源。
- 卷類:管理云主機(jī)存儲(chǔ)卷,可創(chuàng)建卷和快照。
- 網(wǎng)絡(luò)類:包含網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)、路由、安全組等子類,管理網(wǎng)絡(luò)資源。
- 對(duì)象存儲(chǔ)類:包含容器子類,用于存儲(chǔ)數(shù)據(jù)。
- 管理員選項(xiàng)卡
- 擁有更高權(quán)限,包含概況、計(jì)算類、卷類、網(wǎng)絡(luò)類、系統(tǒng)類等,可對(duì)系統(tǒng)資源進(jìn)行更高級(jí)管理。
- 身份管理選項(xiàng)卡
- 管理項(xiàng)目、用戶、組、角色等,實(shí)現(xiàn)身份認(rèn)證和授權(quán)。
四、創(chuàng)建云主機(jī)
(一)創(chuàng)建網(wǎng)絡(luò)
- 依次單擊 “項(xiàng)目”→“網(wǎng)絡(luò)”→“網(wǎng)絡(luò)”,點(diǎn)擊 “+ 創(chuàng)建網(wǎng)絡(luò)”。
- 輸入網(wǎng)絡(luò)名稱 “private”,點(diǎn)擊 “下一步”。
- 輸入子網(wǎng)名稱 “private_subnet”,網(wǎng)絡(luò)地址 “192.168.100.0/24”,網(wǎng)關(guān) IP“192.168.100.1”,點(diǎn)擊 “下一步”。
- 配置 DHCP,分配地址池 “192.168.100.100,192.168.100.200”,DNS 服務(wù)器 “114.114.114.114”,點(diǎn)擊 “創(chuàng)建”。
(二)創(chuàng)建路由
- 依次單擊 “項(xiàng)目”→“網(wǎng)絡(luò)”→“路由”,點(diǎn)擊 “+ 新建路由”。
- 輸入路由名稱 “my_route”,外部網(wǎng)絡(luò)選擇 “public”,點(diǎn)擊 “新建路由”。
- 點(diǎn)擊路由名稱進(jìn)入詳情頁(yè),選擇 “接口” 標(biāo)簽,點(diǎn)擊 “+ 增加接口”。
- 選擇子網(wǎng) “private_subnet”,點(diǎn)擊 “提交”。
(三)創(chuàng)建鏡像
- 依次單擊 “項(xiàng)目”→“計(jì)算”→“鏡像”,點(diǎn)擊 “+ 創(chuàng)建鏡像”。
- 輸入鏡像名稱 “cirrors01”,選擇鏡像源文件,鏡像格式 “QCOW2”,可見性 “公有”,點(diǎn)擊 “創(chuàng)建鏡像”。
(四)創(chuàng)建云主機(jī)
- 依次單擊 “項(xiàng)目”→“計(jì)算”→“實(shí)例”,點(diǎn)擊 “創(chuàng)建實(shí)例”。
- 輸入實(shí)例名稱 “test”,點(diǎn)擊 “下一步”。
- 選擇鏡像 “cirrors01”,點(diǎn)擊 “下一步”。
- 選擇實(shí)例類型 “m1.tiny”,點(diǎn)擊 “下一步”。
- 選擇網(wǎng)絡(luò) “private”,點(diǎn)擊 “創(chuàng)建實(shí)例”。
(五)管理云主機(jī)并測(cè)試連通性
- 點(diǎn)擊云主機(jī)名稱,選擇 “控制臺(tái)” 進(jìn)入云主機(jī)控制臺(tái)。
- 輸入用戶名 “cirros”,密碼 “gocubsgo” 登錄。
- 運(yùn)行 ifconfig 命令查看 IP 地址:
$ ifconfig
- 測(cè)試網(wǎng)絡(luò)連通性:
$ ping -c 1 baidu.com
$ ping 192.168.9.232 # Windows本機(jī)IP
- 若 ping 外網(wǎng)不通,檢查 br-ex 配置并啟動(dòng):
[root@openstack ~]# ifconfig br-ex 172.24.4.1 netmask 255.255.255.0 up
- 檢查并開啟路由轉(zhuǎn)發(fā):
[root@localhost ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
w、OpenStack 核心服務(wù)深度解析
(一)Nova 計(jì)算服務(wù)
Nova 是 OpenStack 的計(jì)算核心組件,負(fù)責(zé)管理實(shí)例的生命周期,包括創(chuàng)建、啟動(dòng)、暫停、刪除等操作。它通過屏蔽底層 Hypervisor 的差異,支持 KVM、VMware、Hyper-V 等多種虛擬化技術(shù)。在單節(jié)點(diǎn)部署中,Nova 會(huì)將所有計(jì)算資源整合到統(tǒng)一的資源池,通過調(diào)度算法(如過濾器和權(quán)重計(jì)算)為實(shí)例分配合適的物理資源。
關(guān)鍵功能特性:
- 實(shí)例管理:支持實(shí)例的創(chuàng)建、刪除、重啟、暫停等全生命周期操作。
- 資源調(diào)度:通過調(diào)度器(Scheduler)根據(jù)資源利用率、主機(jī)負(fù)載等條件選擇最佳節(jié)點(diǎn)。
- Hypervisor 支持:默認(rèn)支持 KVM,可通過配置擴(kuò)展其他虛擬化技術(shù)。
- 橫向擴(kuò)展:通過添加計(jì)算節(jié)點(diǎn)實(shí)現(xiàn)資源池的水平擴(kuò)展,滿足高并發(fā)需求。
配置文件關(guān)鍵點(diǎn):
Nova 的主要配置文件為?/etc/nova/nova.conf
,需關(guān)注以下參數(shù):
[DEFAULT]
# 計(jì)算節(jié)點(diǎn)使用的 Hypervisor
compute_driver = libvirt.LibvirtComputeDriver
# 調(diào)度器類
scheduler_driver = nova.scheduler.filter_scheduler.FilterScheduler
# 實(shí)例類型定義路徑
instance_type_path = /etc/nova/instance_types
(二)Neutron 網(wǎng)絡(luò)服務(wù)
Neutron 負(fù)責(zé) OpenStack 中的網(wǎng)絡(luò)資源管理,為實(shí)例提供虛擬網(wǎng)絡(luò)功能,包括創(chuàng)建網(wǎng)絡(luò)、子網(wǎng)、路由、安全組等。它支持多種網(wǎng)絡(luò)插件(如 OVN、Open vSwitch),允許租戶自定義網(wǎng)絡(luò)拓?fù)?#xff0c;并通過隔離機(jī)制確保不同租戶網(wǎng)絡(luò)互不干擾。
核心組件:
- Neutron Server:接收和處理 API 請(qǐng)求,協(xié)調(diào)各插件操作。
- 網(wǎng)絡(luò)插件:實(shí)現(xiàn)具體的網(wǎng)絡(luò)功能,如 OVN 提供二層和三層網(wǎng)絡(luò)服務(wù)。
- 代理(Agent):運(yùn)行在計(jì)算節(jié)點(diǎn)上,執(zhí)行網(wǎng)絡(luò)配置,如 L2 Agent 處理二層流量,L3 Agent 處理三層路由。
典型網(wǎng)絡(luò)架構(gòu):
Neutron 支持扁平網(wǎng)絡(luò)、VLAN 網(wǎng)絡(luò)、VXLAN 等多種網(wǎng)絡(luò)模式。在單節(jié)點(diǎn)部署中,通常使用 OVN 作為后端,采用 Geneve 封裝實(shí)現(xiàn)租戶網(wǎng)絡(luò)隔離。以下是創(chuàng)建私有網(wǎng)絡(luò)的關(guān)鍵命令示例:
# 創(chuàng)建私有網(wǎng)絡(luò)
neutron net-create private --shared false
# 創(chuàng)建子網(wǎng)
neutron subnet-create private 192.168.100.0/24 --name private_subnet --gateway 192.168.100.1
# 配置 DHCP 地址池
neutron subnet-update private_subnet --allocation-pool start=192.168.100.100,end=192.168.100.200 --dns-nameservers list=true 114.114.114.114
(三)Keystone 身份認(rèn)證服務(wù)
Keystone 作為 OpenStack 的統(tǒng)一身份認(rèn)證中心,負(fù)責(zé)用戶、租戶、角色的管理與認(rèn)證,提供令牌(Token)管理和服務(wù)目錄(Service Catalog)功能。它支持多種認(rèn)證機(jī)制,如密碼認(rèn)證、Token 認(rèn)證、LDAP 集成等。
核心概念:
- 用戶(User):訪問 OpenStack 的實(shí)體,可關(guān)聯(lián)到多個(gè)項(xiàng)目。
- 租戶(Project):資源分配的基本單位,類似于 “項(xiàng)目” 或 “租戶”。
- 角色(Role):定義用戶在項(xiàng)目中的權(quán)限,如管理員、普通用戶。
- 令牌(Token):用戶認(rèn)證后的憑證,用于訪問各服務(wù) API。
認(rèn)證流程:
- 用戶發(fā)送用戶名和密碼到 Keystone。
- Keystone 驗(yàn)證憑證,生成 Token 和服務(wù)目錄。
- 用戶使用 Token 訪問其他服務(wù),服務(wù)通過 Keystone 驗(yàn)證 Token 有效性。
初始化 Keystone 命令:
# 創(chuàng)建服務(wù)實(shí)體
openstack service create --name keystone --description "OpenStack Identity" identity
# 創(chuàng)建認(rèn)證端點(diǎn)
openstack endpoint create --region RegionOne identity public http://192.168.9.137:5000/v3
openstack endpoint create --region RegionOne identity internal http://192.168.9.137:5000/v3
openstack endpoint create --region RegionOne identity admin http://192.168.9.137:35357/v3
(四)Glance 鏡像服務(wù)
Glance 用于存儲(chǔ)和管理虛擬機(jī)鏡像,支持多種鏡像格式(如 QCOW2、RAW、VDI),并可對(duì)接外部存儲(chǔ)(如 Ceph、Swift)。用戶可通過 Glance 上傳、下載、注冊(cè)鏡像,實(shí)例創(chuàng)建時(shí)從 Glance 拉取鏡像模板。
鏡像工作流程:
- 用戶通過 Horizon 或 CLI 上傳鏡像到 Glance。
- Glance 將鏡像元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù),鏡像文件存儲(chǔ)在后端存儲(chǔ)(默認(rèn)本地文件系統(tǒng))。
- Nova 創(chuàng)建實(shí)例時(shí),從 Glance 獲取鏡像元數(shù)據(jù),下載鏡像文件到計(jì)算節(jié)點(diǎn)。
上傳鏡像示例:
# 上傳 cirros 鏡像
glance image-create --name "cirros01" --file cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --public
# 查看鏡像列表
glance image-list
+--------------------------------------+----------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+----------+-------------+------------------+----------+--------+
| 0c8e9605-6217-4a4c-85f1-1234567890ab | cirros01 | qcow2 | bare | 15728640 | active |
+--------------------------------------+----------+-------------+------------------+----------+--------+
六、OpenStack 部署實(shí)戰(zhàn)進(jìn)階
(一)多節(jié)點(diǎn)部署架構(gòu)規(guī)劃
單節(jié)點(diǎn)部署適用于測(cè)試環(huán)境,生產(chǎn)環(huán)境通常采用多節(jié)點(diǎn)架構(gòu),將不同服務(wù)分離到獨(dú)立節(jié)點(diǎn),提高性能和可靠性。典型多節(jié)點(diǎn)架構(gòu)包括:
控制節(jié)點(diǎn)(Controller Node):
- 運(yùn)行 Keystone、Glance、Nova API、Neutron Server 等控制平面服務(wù)。
- 配置要求:至少 4 核 CPU、16GB 內(nèi)存、100GB 磁盤。
計(jì)算節(jié)點(diǎn)(Compute Node):
- 運(yùn)行 Nova Compute、Neutron Agent 等,負(fù)責(zé)實(shí)例計(jì)算和網(wǎng)絡(luò)處理。
- 配置要求:根據(jù)實(shí)例規(guī)模調(diào)整,建議 8 核 CPU、32GB 內(nèi)存、500GB 磁盤。
存儲(chǔ)節(jié)點(diǎn)(Storage Node):
- 運(yùn)行 Cinder、Swift 等存儲(chǔ)服務(wù),提供塊存儲(chǔ)和對(duì)象存儲(chǔ)。
- 配置要求:大容量磁盤陣列,建議使用 SSD 加速 IO。
(二)高可用部署要點(diǎn)
生產(chǎn)環(huán)境中,高可用(HA)是關(guān)鍵需求,可通過以下方式實(shí)現(xiàn):
1. 服務(wù)高可用
- 控制器集群:使用 Pacemaker + Corosync 構(gòu)建控制節(jié)點(diǎn)集群,實(shí)現(xiàn)服務(wù)故障轉(zhuǎn)移。
- 數(shù)據(jù)庫(kù)集群:采用 MySQL Galera Cluster 實(shí)現(xiàn)數(shù)據(jù)庫(kù)多節(jié)點(diǎn)復(fù)制。
- 消息隊(duì)列集群:使用 RabbitMQ 集群確保消息服務(wù)不中斷。
2. 存儲(chǔ)高可用
- 塊存儲(chǔ):Cinder 支持多后端存儲(chǔ),可對(duì)接 Ceph RBD 實(shí)現(xiàn)存儲(chǔ)高可用。
- 對(duì)象存儲(chǔ):Swift 采用分布式架構(gòu),通過多副本或 EC(糾刪碼)確保數(shù)據(jù)冗余。
3. 網(wǎng)絡(luò)高可用
- 物理網(wǎng)絡(luò)冗余:配置雙網(wǎng)卡綁定,避免單網(wǎng)卡故障。
- 虛擬網(wǎng)絡(luò)冗余:Neutron L3 Agent 支持 DVR(分布式虛擬路由)和 HA 模式。
(三)部署故障排除指南
1. 安裝失敗常見原因
- 網(wǎng)絡(luò)配置錯(cuò)誤:檢查 IP 地址、子網(wǎng)掩碼、網(wǎng)關(guān)是否正確,禁用 NetworkManager。
- SELinux 和防火墻未關(guān)閉:確保 SELINUX=disabled,firewalld 已停止并禁用。
- YUM 源問題:離線部署時(shí)檢查本地源配置和 createrepo 生成的元數(shù)據(jù)。
2. 實(shí)例創(chuàng)建失敗排查
- 鏡像問題:確認(rèn)鏡像格式正確且可啟動(dòng),大小符合實(shí)例類型要求。
- 資源不足:檢查計(jì)算節(jié)點(diǎn) CPU、內(nèi)存、磁盤是否充足。
- 網(wǎng)絡(luò)配置錯(cuò)誤:驗(yàn)證 Neutron 網(wǎng)絡(luò)和路由是否正確關(guān)聯(lián)。
3. 網(wǎng)絡(luò)連通性故障
- br-ex 網(wǎng)橋未配置:檢查 ifcfg-br-ex 文件,確保 IP 地址正確并啟用。
- 路由轉(zhuǎn)發(fā)未開啟:執(zhí)行?
sysctl -w net.ipv4.ip_forward=1
?開啟轉(zhuǎn)發(fā)。 - 安全組規(guī)則限制:檢查安全組是否允許 ICMP 和目標(biāo)端口流量。
七、Dashboard 高級(jí)操作指南
(一)資源配額管理
OpenStack 支持對(duì)項(xiàng)目資源進(jìn)行配額限制,避免資源濫用。在 Dashboard 中可通過以下步驟配置:
- 進(jìn)入 “管理員”→“系統(tǒng)”→“默認(rèn)值”。
- 在 “計(jì)算配額” 標(biāo)簽頁(yè)中,可設(shè)置實(shí)例數(shù)量、VCPU 數(shù)量、內(nèi)存容量等限制。
- 在 “卷配額” 標(biāo)簽頁(yè)中,可設(shè)置卷數(shù)量、卷大小、快照數(shù)量等。
命令行配置示例:
# 設(shè)置項(xiàng)目 quotatest 的實(shí)例配額為 5
openstack quota set --instances 5 quotatest
# 查看項(xiàng)目配額
openstack quota show quotatest
+---------------------+-------+
| Field | Value |
+---------------------+-------+
| instances | 5 |
| cores | 20 |
| ram | 51200 |
| floatingips | 10 |
| fixed_ips | -1 |
| volumes | 10 |
| snapshots | 10 |
| gigabytes | 100 |
| rbd_volume_backups | 10 |
| backup_gigabytes | 1000 |
| security_groups | 10 |
| security_group_rules | 100 |
+---------------------+-------+
(二)主機(jī)聚合與資源調(diào)度
主機(jī)聚合(Host Aggregate)用于將計(jì)算節(jié)點(diǎn)分組,實(shí)現(xiàn)資源隔離和調(diào)度策略。
- 創(chuàng)建聚合:進(jìn)入 “管理員”→“計(jì)算”→“主機(jī)聚合”,點(diǎn)擊 “+ 創(chuàng)建聚合”。
- 添加節(jié)點(diǎn):選擇聚合,點(diǎn)擊 “添加主機(jī)”,將計(jì)算節(jié)點(diǎn)加入聚合。
- 設(shè)置元數(shù)據(jù):為聚合添加調(diào)度策略元數(shù)據(jù)(如?
cpu_arch=amd64
)。
實(shí)例調(diào)度到指定聚合:
創(chuàng)建實(shí)例時(shí),在 “配置”→“scheduler hint” 中添加聚合元數(shù)據(jù):
{"aggregate_instance_extra_specs": {"cpu_arch": "amd64"}
}
(三)監(jiān)控與計(jì)量
Ceilometer 提供 OpenStack 資源的監(jiān)控和計(jì)量功能,可通過以下方式查看:
- 進(jìn)入 “管理員”→“系統(tǒng)”→“系統(tǒng)信息”→“計(jì)量服務(wù)”。
- 查看實(shí)例、卷、網(wǎng)絡(luò)等資源的使用 metrics。
- 配置告警規(guī)則:進(jìn)入 “管理員”→“系統(tǒng)”→“Alarming”,設(shè)置閾值告警。
命令行查看計(jì)量數(shù)據(jù):
# 列出所有計(jì)量指標(biāo)
ceilometer meter-list
+----------------------------+----------------------------------+-------+------------------+
| Name | Type | Unit | Resource Type |
+----------------------------+----------------------------------+-------+------------------+
| cpu | gauge | core | instance |
| memory usage | gauge | MB | instance |
| disk.read_bytes | cumulative | B | instance |
| disk.write_bytes | cumulative | B | instance |
| network.incoming.bytes | cumulative | B | network_interface|
| network.outgoing.bytes | cumulative | B | network_interface|
+----------------------------+----------------------------------+-------+------------------+
八、生產(chǎn)環(huán)境最佳實(shí)踐
(一)安全加固建議
-
身份認(rèn)證強(qiáng)化:
- 啟用多因素認(rèn)證(MFA),避免密碼泄露。
- 定期輪換管理員密碼,限制非必要用戶的管理員權(quán)限。
-
網(wǎng)絡(luò)安全配置:
- 配置安全組規(guī)則,僅允許必要端口通信(如 SSH 22、HTTP 80、HTTPS 443)。
- 啟用 Neutron 防火墻服務(wù)(FWaaS),過濾惡意流量。
-
數(shù)據(jù)加密保護(hù):
- 對(duì) Cinder 卷啟用加密,使用 LUKS 或 dm-crypt。
- 對(duì) Swift 對(duì)象存儲(chǔ)啟用服務(wù)器端加密。
(二)性能優(yōu)化策略
-
計(jì)算性能優(yōu)化:
- 啟用 CPU 超線程(HT),提高物理 CPU 利用率。
- 配置 NUMA(非統(tǒng)一內(nèi)存訪問),減少內(nèi)存訪問延遲。
-
存儲(chǔ)性能優(yōu)化:
- 使用 SSD 作為 Cinder 卷的后端存儲(chǔ),提升 IO 性能。
- 為 Glance 鏡像存儲(chǔ)配置緩存,加速鏡像拉取。
-
網(wǎng)絡(luò)性能優(yōu)化:
- 啟用 Neutron 的 DVR(分布式虛擬路由),分擔(dān)路由負(fù)載。
- 配置 SR-IOV(單根 I/O 虛擬化),實(shí)現(xiàn)物理網(wǎng)卡直通。
(三)備份與容災(zāi)方案
-
配置備份策略:
- 定期備份 Keystone 數(shù)據(jù)庫(kù)、Glance 鏡像元數(shù)據(jù)。
- 對(duì) Cinder 卷創(chuàng)建快照,支持增量備份。
-
容災(zāi)架構(gòu)設(shè)計(jì):
- 跨數(shù)據(jù)中心部署控制節(jié)點(diǎn)集群,使用異步復(fù)制確保數(shù)據(jù)一致性。
- 配置 Swift 的多站點(diǎn)復(fù)制,實(shí)現(xiàn)對(duì)象存儲(chǔ)的異地容災(zāi)。
九、OpenStack 社區(qū)與生態(tài)
(一)版本迭代與特性
OpenStack 每半年發(fā)布一個(gè)新版本,采用火車命名法(如 Train、Ussuri、Victoria)。截至文檔發(fā)布,最新版本為 Train(2019 年 10 月發(fā)布),主要特性包括:
- Neutron OVN 后端增強(qiáng):優(yōu)化網(wǎng)絡(luò)性能和擴(kuò)展性。
- Cinder 支持 IBM Spectrum Scale:擴(kuò)展存儲(chǔ)后端支持。
- Nova 增強(qiáng)裸機(jī)部署:簡(jiǎn)化物理服務(wù)器管理。
(二)社區(qū)參與方式
- 貢獻(xiàn)代碼:通過 Gerrit 提交補(bǔ)丁,參與核心組件開發(fā)。
- 報(bào)告 Bug:在 Launchpad 上提交問題報(bào)告和 feature 請(qǐng)求。
- 技術(shù)討論:加入 OpenStack 郵件列表(dev@openstack.org)和 IRC 頻道(#openstack-dev on Freenode)。
(三)生態(tài)工具與集成
- 配置管理工具:使用 Ansible、Puppet 自動(dòng)化部署和配置 OpenStack。
- 監(jiān)控工具:集成 Prometheus、Grafana 實(shí)現(xiàn)可視化監(jiān)控。
- 容器集成:與 Kubernetes 對(duì)接,實(shí)現(xiàn)容器與虛擬機(jī)混合部署。