OpenStack(企業私有雲)萬里長征第四步——DevStack整體安裝規划及使用


一、前言

前期成功通過DevStack安裝OpenStack,現將從機房規划到虛擬機搭建的整個過程總結如下,以供日后查閱或有需之人參考。

二、機房規划

這個整個安裝過程的重點,能不能成功就看規划的如何。一旦此步有問題會導致整個安裝失敗,當然后續步驟操作過程中你也可以發現此步存在的問題,修改完善也可。

2.1 服務器規划

首先服務器按照性能划分功能。選擇一台性能最好的服務器(內存足夠大、CPU足夠多、硬盤要求不高)用於控制節點。另選若干台性能一般的服務器用於計算節點。此外如果需要虛擬機之間共享存儲的話可以選一些內存一般、CPU一般但是硬盤足夠大或者掛載了磁盤陣列的服務器用於建立共享存儲,一般選擇ceph。

每台服務器至少包含兩塊網卡(如果考慮主備則為四塊),最好是兩塊萬兆,根據自己條件而定,沒有萬兆也可,此塊與下部網絡規划相對應。磁盤陣列需要的配置單獨考慮。主節點需要多裝一塊網卡,用於與外部網絡(此處的外網可以是互聯網也可以是公司內部網絡)進行通信。

2.2 網絡規划

服務器選擇好后規划網絡,網絡是整個機房規划的重點。至少需要兩台交換機(如果考慮主備則需要四台),一台用於虛擬機之間的通信網絡構建,一台用於宿主機之間的信息交換也稱為管理網絡和API網絡。當然如果都是萬兆交換機最好,否則可以將虛擬機之間的通信網路規划成萬兆,管理網絡規划成千兆,如果實在沒有條件都做成千兆也可。並將外部網絡從交換機接出一根線至主節點。

管理網絡不需要特殊設置,只需要為每台服務器的對應網卡配上此網段固定IP即可。虛擬機之間通信網絡對應的交換機需要進行設置,包含以下功能:1、設置vlan 1 至 100(100個足夠了,如果不夠可以設置的更大);2、所有端口設置成trunk模式,並允許所有vlan通過。

以h3c 6300為例,配置如下:

vlan 2 to 100
int range T 2/0/1 to T 2/0/32
port link-type trunk
port trunk permit vlan all

虛擬機通信交換機的其他配置項以及管理網絡的配置根據自己的需求進行相應設置。

三、服務器配置

  1. 選擇ubuntu16.04版(目前DevStack對此版本支持較好),在安裝軟件環節選擇虛擬host項。

  2. 啟用root賬戶。

vim /etc/ssh/sshd_config

修改

PermitRootLogin prohibit-password

PermitRootLogin yes
  1. 修改阿里的apt源。修改如下:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
  1. 創建stack用戶
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo su - stack
  1. 修改豆瓣的pip源,root用戶和stack用戶均需修改,在root用戶的根目錄以及stack用戶的根目錄創建.pip文件夾,在此文件夾中新建pip.conf文件,寫入以下內容:
[global]
index-url = https://pypi.douban.com/simple
download_cache = ~/.cache/pip
[install]
use-mirrors = true
mirrors = http://pypi.douban.com/
  1. 修改網絡配置
vim /etc/network/interfaces

將管理網絡設置成固定IP,並需要打開虛擬機內部通信網絡以及主節點外部網絡的相應網卡。設置內容大致如下:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp3s0f0
iface enp3s0f0 inet manual

auto enp3s0f1
iface enp3s0f1 inet static
address 192.168.166.101
netmask 255.255.255.0
gateway 192.168.166.1
dns-nameservers 114.114.114.114

其中網卡名稱根據服務器配置而定。

  1. 進行ntp時間同步

只需安裝ntp軟件即可:

sudo apt-get install ntp

四、安裝DevStack

4.1 下載及配置openstack

使用的是devstack newton版。具體部署過程也可以參考cloudman的視頻http://cloudman.cc/

  1. 下載
git clone https://git.openstack.org/openstack-dev/devstack -b stable/newton

下載完后,進入devstack目錄,新建local.conf文件,根據節點的功能不同,分別寫入不同配置,具體下面詳細說明。

  1. 主節點配置
[[local|localrc]]

MULTI_HOST=true

# management & api network
HOST_IP=192.168.166.101
LOGFILE=/opt/stack/logs/stack.sh.log

# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz

# enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=10:100
PHYSICAL_NETWORK=default

LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
  1. 計算節點配置
[[local|localrc]]

MULTI_HOST=true
# management & api network
HOST_IP=192.168.166.102

# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz

# Service information
SERVICE_HOST=192.168.166.101
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
Q_HOST=$SERVICE_HOST
KEYSTONE_AUTH_HOST=$SERVICE_HOST
KEYSTONE_SERVICE_HOST=$SERVICE_HOST

ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=10:100
PHYSICAL_NETWORK=default

# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN

LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

其中HOST_IP均為當前主機管理網絡的IP地址,計算節點的SERVICE_HOST項內容為控制節點的管理網絡IP地址。主從節點分別按上述配置即可安裝成功,注意先安裝主節點再安裝從節點。

4.2 修改/etc/neutron/plugins/ml2/ml2_conf.ini文件

此文件中的信息管理着當前節點的網絡對應情況。

  1. 所有節點

physical_interface_mappings修改如下:

[linux_bridge]
physical_interface_mappings = default:enp130s0f1

其中enp130s0f1為當前節點虛擬機之間通信的網卡名稱。

2、主節點

flat_networks修改如下:

[ml2_type_flat]
flat_networks = default,public,external

即添加external項,用於虛擬機訪問外部網絡。

physical_interface_mappings修改如下:

[linux_bridge]
physical_interface_mappings = default:enp130s0f1,external:enp3s0f0

其中enp3s0f0為主節點與外部網絡相連的網卡的名稱。即在計算節點的基礎上添加此external項。

如此便完成了OpenStack的安裝。

五、OpenStack使用

以下操作基本全部在Web管理界面進行。地址為主節點的ip地址,密碼為主節點的配置項中設置的密碼。

5.1 創建虛擬機網絡

在Admin下的Networks中點擊Create Network。按照如下配置新建網絡。此處的vlan可隨意設置,但需在第一步交換機配置的vlan范圍內。

而后點擊進入此網絡創建Subnet。如下:

重復上述操作,創建足夠自己使用的vlan網絡。

5.2 創建router實現vlan間通信

在Project下Network下的Routers中點擊Create Router創建路由,點擊創建的router,進入詳細信息,再點擊Add Interface,選擇剛剛創建的網絡,重復添加接口,直到需要的vlan全部在此router中,這樣就實現了需要的vlan之間相互通信。

5.3 創建外部網絡,實現虛擬機訪問外部網絡

在Admin下的Networks中點擊Create Network創建網絡。與之前網絡不同的是此處type選為flat,physical network設置為external(4.2中主節點修改項),勾選external network項。然后創建子網,ip地址即為外部的IP地址(必須一致),網關設置為外部網絡網關。而后點擊上面創建的router的set gateway選擇此網絡即可。這樣便可實現虛擬機訪問外部網絡。

5.4 創建虛擬機

  1. 創建鏡像

根據自己的需求下載相應的操作系統鏡像,也可以直接使用DevStack中自帶的cirros。如果是ubuntu的話需要下載cloud版(此處有全部對應版本)。下載完后點擊Project下Compute下的Images中的Create Image,選擇下載的文件,注意Fomat選擇QCOW2。

  1. 創建虛機

在Project下Compute下的Instacnces中點擊Launch Instance,選擇創建的鏡像和創建的網絡以及需要的配置大小,便可完成虛擬機創建。可以測試虛擬機之間是否能夠正常通信以及是否能夠訪問外網。

5.5 創建floating ip,實現外部訪問虛擬機

點擊Project下Compute下的Access & Security下的Floating IPs中的Allocate IP to Project,選擇創建的外部網絡,獲取一個浮動IP,而后將此IP綁定到需要通過外部訪問的虛擬機上。便可實現外部網絡訪問虛擬機。

5.6 設置Security Group解決ping不同的問題

通過上述步驟創建完網絡虛擬機之后有時會發現外部無法ping通或者ssh虛擬機或訪問虛擬機http端口等問題,這是由於OpenStack的安全規則造成的,點擊Project下Compute下的Access & Security下的security groups為default組加上ingress 和egress的all tcp rule、all ICMP rule、以及all udp rule。

六、總結

以上是使用DevStack安裝OpenStack及使用的完整步驟,整個機房除了刷牆、鋪地板沒有涉及,其他的基本都涉及到了。當你真的徹底徹底能夠實操一遍,你會發現整個世界徹底清晰了,頓時豁然開朗,一切事都不再是事,更勿論再安裝其他軟件,都是灑灑水啦!OpenStack真的有如此魅力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM