Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

OpenStack 實戰部署全紀錄:All-in-One 控制節點安裝配置指南 (Ubuntu 11.10)

編輯:Linux 教學

前言

OpenStack 是管理虛擬機的開源雲平台,由多組件協同運作。本文記錄在單機(Controller)上部署 OpenStack(Diablo 版本)的完整流程,採用 EC2 相容認證,適合測試與學習環境。生產環境仍需考慮高可用架構、網路拓撲、儲存後端等進階議題。

關鍵角色定義

  • Controller(控制節點):類比 vCenter,運行 API、Scheduler、Network、Glance 等核心服務。
  • Compute Node(運算節點):類比 ESXi,運行 nova-compute、nova-network 管理實例生命週期。
  • nova:核心編排組件,負責實例、網路、儲存生命週期。
  • glance:映像檔服務,管理虛擬機模板。

環境準備

  • Ubuntu 11.10 Server,雙網卡:eth0 外網管理,eth1 內網數據平面(橋接至 br100)。
  • 系統更新與基礎套件:
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install bridge-utils

網路配置 /etc/network/interfaces

auto eth0
iface eth0 inet static
  address 192.168.200.21
  netmask 255.255.255.0
  gateway 192.168.200.10

auto br100
iface br100 inet static
  bridge_ports eth1
  bridge_stp off
  bridge_maxwait 0
  bridge_fd 0
  address 10.200.200.2
  netmask 255.255.255.0

sudo /etc/init.d/networking restart 生效。

核心套件安裝

# 消息佇列與 Python 依賴
$ sudo apt-get install -y rabbitmq-server python-greenlet python-mysqldb

# Nova 全家桶
$ sudo apt-get install nova-volume nova-vncproxy nova-api nova-ajax-console-proxy \
  nova-doc nova-scheduler nova-objectstore nova-network nova-compute

# Glance 映像服務
$ sudo apt-get install glance

# EC2 相容工具
$ sudo apt-get install -y euca2ools unzip

MySQL 資料庫部署

$ MYSQL_PASS=nova
$ sudo debconf-set-selections <<EOF
mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS
mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS
mysql-server-5.1 mysql-server/start_on_boot boolean true
EOF
$ sudo apt-get install -y mysql-server
$ sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
$ sudo service mysql restart

$ NOVA_PASS=notnova
$ sudo mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE nova;'
$ sudo mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'nova'@'%' WITH GRANT OPTION;"
$ sudo mysql -uroot -p$MYSQL_PASS -e "SET PASSWORD FOR 'nova'@'%' = PASSWORD('$NOVA_PASS');"

Nova 核心配置 /etc/nova/nova.conf

--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/data/openstack/nova
--instances_path=/data/openstack/nova/instances
--lock_path=/var/lock/nova
--force_dhcp_release=True
--use_deprecated_auth
--iscsi_helper=tgtadm
--verbose
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--network_manager=nova.network.manager.FlatDHCPManager
--my_ip=10.200.200.2
--public_interface=eth0
--sql_connection=mysql://nova:notnova@localhost/nova
--libvirt_type=kvm
--api_paste_config=/etc/nova/api-paste.ini
--image_service=nova.image.glance.GlanceImageService
--ec2_dmz_host=192.168.200.21
--ec2_url=https://192.168.200.21:8773/services/Cloud
--rabbit_host=localhost
--glance_api_servers=10.200.200.2:9292
--flat_network_bridge=br100
--flat_interface=eth1
--flat_network_dhcp_start=10.200.200.51
--fixed_range=10.200.200.0/24
--flat_injected=False
--multi_host=1
--libvirt_use_virtio_for_bridges

注意:/data/openstack/nova 需預先建立並歸屬 nova 用戶。

Glance 配置

  • /etc/glance/glance-api.conf:修改 filesystem_store_datadir 指定映像儲存路徑,權限歸 glance。
  • /etc/glance/glance-registry.conf:設定 sql_connection = mysql://nova:notnova@localhost/glance(需先建立 glance DB)。

權限與服務啟動

$ sudo chown -R root:nova /etc/nova
$ sudo chmod 640 /etc/nova/nova.conf

$ sudo restart libvirt-bin
$ sudo restart nova-network nova-compute nova-api nova-objectstore nova-scheduler
$ sudo restart glance-registry glance-api

註:nova-volume 需獨立 VG,暫不啟動。

資料庫同步與專案/用戶/網路建立

$ sudo nova-manage db sync
$ sudo nova-manage user admin test
# 輸出 EC2_ACCESS_KEY / EC2_SECRET_KEY

$ sudo nova-manage project create test-proj test
$ sudo nova-manage network create --label=test-net \
  --fixed_range_v4=10.200.200.0/24 --num_network=1 --network_size=256

$ sudo start nova-network nova-compute nova-scheduler

憑證打包與驗證

$ mkdir creds
$ sudo nova-manage project zipfile test-proj test creds/novacreds.zip
$ unzip creds/novacreds.zip -d creds/
$ source creds/novarc

每次新 Shell 需 source novarc,或寫入 ~/.bashrc。

驗證服務狀態

$ euca-describe-availability-zones verbose
# 應顯示 nova, nova-network, nova-compute, nova-scheduler 均為 enabled
$ sudo nova-manage service list
$ sudo nova-manage network list

建立並上傳 Windows/Linux 映像檔

$ sudo apt-get install kvm-pxe
$ kvm-img create -f raw server.img 5G
$ sudo kvm -m 1024 -cdrom rhel5.iso -drive file=server.img,if=virtio,index=0 -boot d -net nic -net user -nographic -vnc :0
# 用 VNC 連線 192.168.200.21:0 完成 OS 安裝

在映像檔 /etc/rc.local 加入雲端初始化腳本(抓取 SSH 公鑰、設定主機名等)。

上傳至 Glance 並啟動實例

$ glance --verbose add name="rhel5" disk_format=raw is_public=true < server.img
$ glance index
$ euca-describe-images
$ euca-run-instances -t m1.tiny ami-XXXXXXXX
$ euca-describe-instances

觀察 /var/log/nova/ 下各服務日誌排查問題。

後續演進建議

  • 生產環境建議使用穩定版(Diablo/Essex+)搭配 Keystone、Horizon Dashboard。
  • 測試環境可嘗試 Git 開發版,體驗最新功能(如 Quantum 網路、Cinder 區塊儲存)。
  • 多節點部署時,將 nova-compute、nova-network 分散至 Compute Node,Controller 僅跑 API/Scheduler/Glance/DB/MQ。
Copyright © Windows教程網 All Rights Reserved