一、Openstack概述、安裝部署環境


虛擬化技術的底層構成:

內核的虛擬化模塊(KVM):從內核集去提供虛擬化及CPU指令集的支持,要求CPU支持,(CPU有VMX指令集)
 
硬件仿真層(QEMU):虛擬一些周邊設備,鼠標、鍵盤、網卡、聲卡、顯卡
 
libvirt:負責管理虛擬機,與虛擬機進行交互
 
用戶接口:virt-manager(圖形界面)、virsh(命令行)
 
虛擬機:配置文件、硬盤(鏡像文件)
qcow2 寫拷貝技術
前端盤(img) 后端盤(qcow2) xml文件一般不會更改
 
1.配置yum倉庫
 
CentOS7-1708光盤內容作為倉庫源
配置 RHEL7-extars內容加入倉庫源
RHEL7OSP-10光盤中包含多個目錄,每個目錄都是倉庫源(可以使用腳本生成)
 
配置 yum倉庫
警告:僅yum配置的第一個源(系統源)為gpgcheck=1需要導入公鑰,其他的都是gpgcheck=0,否則安裝會報錯。
]# mkdir /var/ftp/system  
]# mkdir /var/ftp/extras 
]# mkdir /var/ftp/HEL7OSP
]# vim /etc/fstab
/iso/RHEL7OSP-10.iso   /var/ftp/HEL7OSP iso9660 defaults 0 0
/iso/CentOS7-1708.iso  /var/ftp/system  iso9660 defaults 0 0
/iso/RHEL7-extras.iso  /var/ftp/extras  iso9660 defaults 0 0
]# mount –a
 
]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
enabled=1
gpgcheck=1
[local_extras]
name=extras
enabled=1
gpgcheck=0
[1local_devtools-rpms]
name=devtools-rpms
enabled=1
gpgcheck=0
[2local_optools-rpms]
name=optools-rpms
enabled=1
gpgcheck=0
[3local_rpms]
name=rpms
enabled=1
gpgcheck=0
[4local_tools-rpms]
name=tools-rpms
enabled=1
gpgcheck=0
[5local_mon-rpms]
name=mon-rpms
enabled=1
gpgcheck=0
[6local_osd-rpms]
name=osd-rpms
enabled=1
gpgcheck=0
[7local_rhceph-2-tools-rpms]
name=rhceph-2-tools-rpms
enabled=1
gpgcheck=0
[8local_agent-rpms]
name=agent-rpms
enabled=1
gpgcheck=0
[9local_installer-rpms]
name=installer-rpms
enabled=1
gpgcheck=0
[10local_rhscon-2-main-rpms]
name=rhscon-2-main-rpms
enabled=1
gpgcheck=0
 
2. 兩台虛擬機配置
 
2.1 創建兩台虛擬機后端盤:
images] qemu-img create -f qcow2 -b node.qcow2 openstack.img 50G
images] qemu-img create -f qcow2 -b node.qcow2 nova01.img 50G
 
2.2 創建img:
刪除centos7.0.xml里面所有的^mac*,^address*的行
qemu] sed 's,centos7.0,nova01,' centos7.0.xml > nova01.xml
qemu] sed 's,centos7.0,openstack,' centos7.0.xml > openstack.xml
 
2.3 創建虛擬機:
qemu] virsh define openstack.xml 
qemu] virsh define nova01.xml 
 
2.4 修改內存: 
] virsh edit openstack
...
8848000
8848000
...
 
 
] virsh edit nova01
...
6548000
6548000
...
 
 
添加網卡:(每個都添加第二張網卡)
添加硬件--網絡(private1,型號 virtio)--保存
 
2.5 登陸openstack
 
] ssh -X root@192.168.1.140
 
openstack:
]# lsblk(有50G)
]# export LANG=en_US
]# growpart /dev/vda 1 (lsblk 2G-50G)
]# xfs_growfs /    (df -h 2G-50G)
 
]# echo openstack > /etc/hostname 
stack ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.1"
PREFIX=24
GATEWAY=192.168.1.254
tack ~]# systemctl restart network
 
添加第二張網卡:
scripts]# cp ifcfg-eth0 ifcfg-eth1
scripts]# vim ifcfg-eth1
# Generated by dracut initrd
DEVICE="eth1"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.4.10"
PREFIX=24
scripts]# systemctl restart network(會有eth1)
 
配置DNS:
查看真機器
]# cat /etc/resolv.conf 
# Generated by NetworkManager
search tedu.cn
nameserver 176.233.0.227
虛擬機:
]# vim /etc/resolv.conf 
nameserver 176.233.0.227
測試
]# ping www.baidu.com
 
域名解析
tack ~]# vim /etc/hosts     
//在openstack和nova01主機上面操作
192.168.1.1 openstack
192.168.1.2 nova01
 
2.6 登陸nova01
 
]# ssh -X root@192.168.1.129
 
openstack:
]# lsblk(有50G)
]# export LANG=en_US
]# growpart /dev/vda 1 (lsblk 2G-50G)
]# xfs_growfs /    (df -h 2G-50G)
 
]# echo nova01 > /etc/hostname 
stack ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.2"
PREFIX=24
GATEWAY=192.168.1.254
tack ~]# systemctl restart network
 
添加第二張網卡:
scripts]# cp ifcfg-eth0 ifcfg-eth1
scripts]# vim ifcfg-eth1
# Generated by dracut initrd
DEVICE="eth1"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.4.11"
PREFIX=24
scripts]# systemctl restart network(會有eth1)
 
配置DNS:
查看真機器
]# cat /etc/resolv.conf 
# Generated by NetworkManager
search tedu.cn
nameserver 176.233.0.227
虛擬機:
]# vim /etc/resolv.conf 
nameserver 176.233.0.227
測試
]# ping www.baidu.com
 
域名解析
tack ~]# vim /etc/hosts     
//在openstack和nova01主機上面操作
192.168.1.1 openstack
192.168.1.2 nova01
 
3. 配置NTP服務器
將NTP服務與DNS服務部署在同一台主機上
確認NTP服務器的時區是東八區
確認NTP服務器的時間准確
計划安裝openstack的服務器與NTP服務器進行時間校正
 
3.1 配置NTP時間同步(真機操作)
]# yum -y install chrony
]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0            //允許所有人使用我的時間服務器 
cmdallow 127.0.0.1      //控制指令
]# systemctl restart chronyd
]# netstat -antup | grep chronyd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           23036/chronyd       
udp        0      0 127.0.0.1:323           0.0.0.0:*                           23036/chronyd
]# chronyc sources -v    //出現*號代表NTP時間可用
^* 120.25.115.20 
 
4. 環境准備
准備openstack的基礎環境
 
1)配置yum源
備注:只有系統源的gpgcheck=1,其他的都是gpgcheck=0)
]# scp /etc/yum.repos.d/local.repo \192.168.1.1:/etc/yum.repos.d/
//拷貝給openstack
]# scp /etc/yum.repos.d/local.repo \192.168.1.2:/etc/yum.repos.d/
//拷貝給nova.tedu.cn這台主機
 
2) 配置ip
給openstack主機添加eth1網卡 192.168.4.10/24
給nova01主機添加eth1網卡 192.168.4.11/24
 
3)配置卷組(真機創建,openstack添加)
room9pc01 images]# qemu-img create -f qcow2 disk.img 50G
room9pc01 ]# virsh -c qemu:///system attach-disk openstack \
 /var/lib/libvirt/images/disk.img vdb --subdriver qcow2 --sourcetype file
Disk attached successfully      //添加成功
 
stack ~]# yum install lvm2 
stack ~]# pvcreate /dev/vdb 
stack ~]# vgcreate cinder-volumes /dev/vdb
 
stack ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  50G  0 disk 
└─vda1 253:1    0  50G  0 part /
vdb    253:16   0  50G  0 disk 
 
stack~]# vgs
VG             #PV #LV #SN Attr   VSize   VFree  
cinder-volumes   1   0   0 wz--n- <50.00g <50.00g
 
4)安裝openstack的依賴包(openstack和nova01主機上面)
openstack ~]# yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools 
 
nova ~]# yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
 
5.部署Openstack
通過packstack部署Openstack
根據相關日志文件進行排錯
 
5.1 安裝packstack
stack ~]# yum install -y openstack-packstack
 
創建應答文件:
stack ~]# packstack --gen-answer-file answer.ini  
//answer.ini與answer.txt是一樣的,只是用vim打開answer.ini文件有顏色
Packstack changed given value  to required value /root/.ssh/id_rsa.pub
 
修改應答文件:
stack ~]# vim answer.ini
  11 CONFIG_DEFAULT_PASSWORD=redhat  //密碼
  42 CONFIG_SWIFT_INSTALL=n
  75 CONFIG_NTP_SERVERS=192.168.1.254   //時間服務器的地址
 333 CONFIG_KEYSTONE_ADMIN_PW=redhat    //openstack管理員的密碼,用戶名是admin
 554 CONFIG_CINDER_VOLUMES_CREATE=n     //創建卷,已經手動創建過了
 840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan   //網絡驅動類型
 876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5  //組播地址
//設置組播地址,最后一個隨意不能為0和255,其他固定
 910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex  //物理網橋的名稱,三層交換機
 921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0   
//br-ex橋的名稱與eth0連接,管理eth0,網橋與哪個物理網卡連接
 936 CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1  //內部的隧道網絡
1179 CONFIG_PROVISION_DEMO=n   //DEMO是否測試
 
仔細檢查是否正確,yum是不是10731,要裝至少20分鍾以上!
stack ~]# packstack --answer-file=answer.ini
 **** Installation completed successfully ******     //出現這個為成功
6.網絡管理
 
6.1查看外部OVS網橋
 
1)查看br-ex網橋配置(br-ex為OVS網橋設備)
openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex 
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.1"
PREFIX=24
GATEWAY=192.168.1.254
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge     (OVS交換機)
 
2)查看eth0網卡配置(該網卡為OVS網橋的接口)
openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs  //OVS類型
TYPE=OVSPort    //變為OV的一個端口
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
 
發現:eth0的IP被br-ex搶走了,原因:
openstack里有一台虛擬a
nova01里有一台虛擬機b
a,b只要通信,必須有一個實體的交換機,那連接實體交換機的網卡是誰?
--eth0,於是,虛擬機a,b要相互通信,通過內部虛擬交換機,同時a,b要連接外網,
那么openstack把虛擬交換機升級為三層交換機,eth0的網卡(4.10)變為虛擬交換機(三層)的一個接口。
通信過程:
a-->a(虛擬交換機)-->a(eth0)-->物理交換機-->b(eth0)-->b(虛擬交換機)-->b
 
3)驗證OVS配置
openstack ~]# ovs-vsctl show
    Bridge br-ex
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "eth0"     //端口eth0
            Interface "eth0"
        Port br-ex
            Interface br-ex
                type: internal
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
7.管理項目,基本操作
創建名為myproject的項目
查看項目信息
更新vcpu配額為30
刪除myproject
 
7.1 瀏覽器訪問openstack
 
1)火狐瀏覽器輸入 192.168.1.1
 //訪問失敗
2)需要改配置文件並重新加載
stack ~]# cd /etc/httpd/conf.d/
conf.d]# vim 15-horizon_vhost.conf
  35   WSGIProcessGroup apache
  36   WSGIApplicationGroup %{GLOBAL}     //添加這一行,是添加!
conf.d]# apachectl graceful  //重新載入配置文件
3)火狐瀏覽器輸入 192.168.1.1
出現登陸界面
 
查看密碼,登陸
stack ~]# cat keystonerc_admin 
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin
    export OS_PASSWORD=redhat
 
4)創建名為myproject的項目
stack ~]# source ~/keystonerc_admin  //初始化環境變量
admin)]# openstack project create myproject
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| enabled     | True                             |
| id          | 97c91571259b4419be2a758e2e1c88a7 |
| name        | myproject                        |
+-------------+----------------------------------+
 
5)查看項目信息
admin)]# openstack project list
+----------------------------------+-----------+
| ID                               | Name      |
+----------------------------------+-----------+
| 6b57f6e21b6f483ab4d5e8995c27f657 | services  |
| 97c91571259b4419be2a758e2e1c88a7 | myproject |
| bc07c5a9d6914bdd86b28a76207668cd | admin     |
+----------------------------------+-----------+
 
6)更新vcpu配額為30
admin)]# nova quota-update --cores 30 myproject
可以登陸查看
火狐瀏覽器輸入 192.168.1.1
 
7)刪除myproject
admin)]# openstack project delete myproject

 

8)安裝openstack工具包
stack ~]# yum -y install openstack-utils
stack ~]# openstack-status
 
 
***************************
重點知識整理:
 
1.虛擬機由兩部分構成
*.xml   *.img
 
2.配置openstack基礎准備
yum源     時間同步(同步阿里雲,自己也做服務器)
 
3.什么是雲計算
一種便捷的、按需的、提供互聯網相關服務的虛擬化資源管理服務。
 
4.雲計算的三種服務
IaaS(Infrastructure as a Service) ,基礎設施,即服務。
提供給消費者的服務是對所有計算基礎設施的利用,包括處理CPU,內存、網絡等和其他基本的計算資源,用戶能夠部署和運行任意軟件,包括操作系統和應用程序。 
IaaS通常分為三種用法:共有雲(虛擬機),私有雲(淘寶)和混合雲
 
PaaS(Platform-as-a-Service),平台服務,以服務平台或者開發環境為服務進行提供就成了PaaS.
SaaS(Software-as-a-Service),軟件即服務,廠商將應用軟件統一部署在服務器上,客戶可以根據自己的實際需求,通過互聯網向廠商訂購(租用,代維護,數據存儲)所需要的應用軟件服務。
 
5. Openstack 簡介
是一套IaaS解決方案,開源的雲計算管理平台,以Apache許可證為授權。
七大組件:
01:Horizon 
用於管理Openstack各種服務的、基於web的管理接口
通過圖形界面實現創建用戶、管理網絡、啟動實例等操作。
 
02:Keystone 
為其他服務提供認證和授權的集中身份管理服務
密碼認證、令牌認證、AWS(亞馬遜Web服務)、SSO認證服務等
也提供了集中的目錄服務
 
03:Neutron
軟件定義網絡服務
用於創建網絡、子網、路由器、管理浮動IP
實現虛擬交換機、路由器
實現項目中的VPN服務
 
04:Cinder
為虛擬機管理存儲卷的服務
為運行在Nova中的實例提供永久的塊存儲
可以通過快照進行數據備份
經常應用在實例存儲環境中,如數據庫文件
 
05:Nova
在節點上用於管理虛擬機的服務
分布式服務,能夠與Keystone交互實現認證,與Glance交互實現鏡像管理
Nova被設計在標准硬件上能夠進行水平拓展
啟動實例時,如果有則需要下載鏡像
相當於皇帝安插在各個大臣身邊的欽差,遠程管理各個虛擬機(安裝服務等)。
 
06:Glance
扮演虛擬機鏡像注冊的角色
允許用戶直接拷貝服務的鏡像
這些鏡像可以應用於新建虛擬機的模版
類似於yum源,任意雲主機想要創建前端盤,可以通過Glance服務器映射后端盤鏡像創建前端盤
 
07:Swift
對象存儲,底層相當於一個ceph,提供給openstack雲主機使用


免責聲明!

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



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