目錄
簡介
一、云計算與 OpenStack 基礎概念
1.1 云計算概述
1.2 OpenStack 簡介
二、OpenStack 單機環境部署
2.1 環境準備
2.2 部署前準備工作
2.3 在線部署 OpenStack(Train 版本)
三、通過 Dashboard 部署 OpenStack 的功能
3.1 登錄 Dashboard
3.2 Dashboard 界面功能解析
四、創建可聯網的云主機
4.1 創建私有網絡與路由
4.2 準備鏡像與創建實例
4.3 測試云主機連通性
五、總結
簡介
在云計算技術蓬勃發展的今天,OpenStack 作為開源云計算領域的標桿項目,已成為企業構建私有云的首選方案。本文將帶領讀者了解云計算基本概念,掌握 OpenStack 單機環境部署,并通過實戰創建一臺可聯網的云主機。
一、云計算與 OpenStack 基礎概念
1.1 云計算概述
云計算是一種基于網絡的超級計算模式,通過按需分配計算資源、存儲資源和網絡資源,實現資源的彈性擴展。就像使用水電一樣,用戶無需關心底層基礎設施,只需按需求付費使用。
云計算的三種服務模型:
- IaaS(基礎設施即服務):提供服務器、存儲、網絡等底層硬件資源,用戶可自行安裝操作系統和應用(如 OpenStack)。
- PaaS(平臺即服務):提供開發環境和平臺服務,面向開發人員(如 Heroku)。
- SaaS(軟件即服務):直接提供可使用的軟件應用,面向普通用戶(如 Office 365)。
1.2 OpenStack 簡介
OpenStack 是由 Rackspace 和 NASA 于 2010 年發起的開源項目,目標是提供簡單、可擴展的云平臺解決方案。它通過模塊化設計管理數據中心的計算、存儲和網絡資源,目前已成為全球最流行的 IaaS 開源項目。
OpenStack 核心服務組件:
服務 | 功能描述 |
Nova | 計算服務,管理虛擬機生命周期,支持 KVM 等多種虛擬化技術 |
Neutron | 網絡服務,為虛擬機創建網絡拓撲,實現租戶網絡隔離 |
Keystone | 身份認證服務,管理用戶、租戶和角色的認證與授權 |
Horizon | 控制面板服務,提供 Web 管理界面與底層服務交互 |
Glance | 鏡像服務,管理虛擬機鏡像的注冊與分發 |
Cinder | 塊存儲服務,為虛擬機提供持久化存儲設備 |
Swift | 對象存儲服務,提供彈性分布式存儲,支持集群無單點故障 |
Ceilometer | 計量服務,監控和度量資源使用情況,為計費提供數據支持 |
二、OpenStack 單機環境部署
2.1 環境準備
硬件要求(最低配置):
- CPU:4 核 64 位處理器(支持硬件虛擬化)
- 內存:8GB
- 磁盤空間:30GB
- 網絡:1 個 1Gbps 網卡
軟件環境:
- CentOS 7.3 最小化安裝
- 靜態 IP 地址配置(示例:192.168.9.137)
2.2 部署前準備工作
1. 配置靜態 IP 與主機名
# 修改主機名
hostnamectl set-hostname openstack
bash # 使主機名立即生效# 配置靜態 IP(示例配置,根據實際環境修改)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 添加以下內容(注意不要包含 DOMAIN 配置)
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.9.137
PREFIX=24
GATEWAY=192.168.9.1
DNS1=114.114.114.114
解釋:靜態 IP 確保主機網絡地址固定,便于后續訪問;主機名設置為 ??openstack?
? 便于識別。
2. 關閉防火墻與 SELinux
# 關閉防火墻并禁用開機啟動
systemctl stop firewalld
systemctl disable firewalld# 禁用 SELinux
vi /etc/selinux/config
# 修改為 SELINUX=disabled
setenforce 0 # 立即生效
解釋:防火墻和 SELinux 可能阻止 OpenStack 組件間的通信,生產環境需謹慎配置規則,測試環境可暫時關閉。
3. 禁用 NetworkManager 并配置 hosts
# 禁用 NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager# 添加 hosts 綁定
vi /etc/hosts
# 添加以下內容
192.168.9.137 openstack
解釋:NetworkManager 可能與 OpenStack 網絡配置沖突;hosts 綁定確保主機名與 IP 對應,避免云主機訪問問題。
4. 更新系統與安裝常用工具
yum -y update # 更新系統包
yum -y install vim wget net-tools lrzsz # 安裝常用工具
解釋:確保系統為最新狀態,安裝必要工具便于后續操作。
2.3 在線部署 OpenStack(Train 版本)
1. 安裝 OpenStack 源
yum install -y centos-release-openstack-train
解釋:添加 OpenStack Train 版本的官方 YUM 源,包含該版本所有組件包。
2. 安裝 packstack 部署工具
yum install -y openstack-packstack
解釋:packstack 是 OpenStack 官方提供的一鍵部署工具,通過 Puppet 自動化部署所有組件。
3. 執行一鍵部署
packstack --allinone
解釋:??--allinone?
? 參數表示在單節點部署所有 OpenStack 組件,部署過程中會自動配置數據庫、消息隊列、各服務 API 等。
4. 部署后網絡配置
# 查看網絡接口
ifconfig br-ex # 虛擬網橋 br-ex 已自動創建# 復制物理網卡配置到 br-ex
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br-ex# 修改 br-ex 配置
vi /etc/sysconfig/network-scripts/ifcfg-br-ex
# 保留以下關鍵配置
TYPE=Ethernet
BOOTPROTO=none
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
IPADDR=172.24.4.1
PREFIX=24# 重啟網絡服務
systemctl restart network
解釋:br-ex 是 OpenStack 的外部網絡網橋,配置固定 IP 確保外部網絡連通性。
三、通過 Dashboard 部署 OpenStack 的功能
3.1 登錄 Dashboard
部署完成后,在瀏覽器中訪問 ??http://192.168.9.137/dashboard?
??,登錄憑據存儲在 ??keystonerc_admin?
? 文件中:
cat keystonerc_admin
# 輸出包含用戶名和密碼
export OS_USERNAME=admin
export OS_PASSWORD=81a7af7313ce46d2 # 實際密碼以生成的為準
3.2 Dashboard 界面功能解析
1. 項目(Project)標簽頁
- 計算:管理虛擬機實例、鏡像、密鑰對
- 網絡:創建虛擬網絡、路由、安全組
- 卷:管理塊存儲卷和快照
- 對象存儲:管理分布式存儲容器
2. 管理員(Admin)標簽頁
- 擁有更高權限,可管理所有項目資源
- 包含系統信息、服務狀態、資源配額等高級功能
3. 身份管理(Identity)
- 管理用戶、租戶、角色和認證策略
- 支持多租戶隔離和權限控制
四、創建可聯網的云主機
4.1 創建私有網絡與路由
1. 創建私有網絡
- 在 Dashboard 中依次點擊 項目 → 網絡 → 網絡 → 創建網絡
- 輸入網絡名稱 ?
?private?
?,勾選 創建子網 - 子網配置:
- 網絡地址:?
?192.168.100.0/24?
? - 網關 IP:?
?192.168.100.1?
? - DHCP 地址池:?
?192.168.100.100-192.168.100.200?
? - DNS 服務器:?
?114.114.114.114?
?
2. 創建路由并關聯網絡
- 點擊 項目 → 網絡 → 路由 → 新建路由
- 路由名稱 ?
?my_route?
??,外部網絡選擇 ??public?
? - 為路由添加內部接口:關聯到 ?
?private?
? 網絡的子網
4.2 準備鏡像與創建實例
1. 上傳有效鏡像
# 下載 cirros 鏡像(示例,實際需使用有效鏡像)
wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img# 在 Dashboard 中創建鏡像:
# 名稱 `cirros01`,格式 `QCOW2`,可見性 `公有`
解釋:cirros 是輕量級 Linux 鏡像,用于測試,生產環境需使用完整操作系統鏡像。
2. 創建云主機實例
- 點擊 項目 → 計算 → 實例 → 創建實例
- 實例名稱 ?
?test?
??,選擇 ??cirros01?
? 鏡像 - 實例類型選擇 ?
?m1.tiny?
?(1CPU, 512MB 內存, 1GB 磁盤) - 網絡選擇 ?
?private?
? 網絡 - 確認配置后點擊 創建實例
4.3 測試云主機連通性
- 進入實例控制臺,登錄用戶名 ?
?cirros?
??,密碼 ??gocubsgo?
? - 查看 IP 配置:?
?ifconfig?
??,確認獲取到 ??192.168.100.XXX?
? 地址 - 測試外網連通性:?
?ping -c 3 baidu.com?
? - 若 ping 不通,檢查宿主機路由轉發:
# 開啟路由轉發
vi /etc/sysctl.conf
# 添加 net.ipv4.ip_forward = 1
sysctl -p # 立即生效
五、總結
從云計算概念到 OpenStack 實戰的全流程體驗。OpenStack 的模塊化設計使其具備強大的擴展性,但生產環境部署需考慮:
- 多節點架構:將控制節點、計算節點、存儲節點分離,提升性能和可靠性
- 高可用性:配置數據庫集群、消息隊列集群和服務冗余
- 安全加固:細化防火墻規則,啟用 SELinux 策略,限制 API 訪問
- 監控與告警:集成 Ceilometer、Grafana 等工具監控資源使用和服務狀態
OpenStack 社區活躍且版本更新頻繁(每半年發布新版本),建議通過官方文檔和社區論壇持續學習,深入掌握各組件原理與高級配置,逐步從入門走向專業。
# 生產環境常用命令示例
openstack server list # 查看所有實例
openstack network list # 查看網絡列表
openstack volume create --size 10 my_volume # 創建 10GB 卷