玩轉OpenStack

1、OpenStack包含那些內容

一、預備知識linux

首先會有虛擬化和雲計算的「預備知識」,會介紹 KVM,IaaS 等技術。ubuntu

 

二、OpenStack核心bash

包含OpenStack的架構和和各個核心組件。

服務器

2、虛擬化的介紹

  虛擬化是雲計算的基礎。簡單的說,虛擬化使得在一臺物理的服務器上能夠跑多臺虛擬機,虛擬機共享物理機的 CPU、內存、IO 硬件資源,但邏輯上虛擬機之間是相互隔離的。
網絡

物理機咱們通常稱爲宿主機(Host),宿主機上面的虛擬機稱爲客戶機(Guest)。架構

那麼 Host 是如何將本身的硬件資源虛擬化,並提供給 Guest 使用的呢?
這個主要是經過一個叫作 Hypervisor 的程序實現的。工具

根據 Hypervisor 的實現方式和所處的位置,虛擬化又分爲兩種:
1型虛擬化和2型虛擬化性能

1型虛擬化

Hypervisor 直接安裝在物理機上,多個虛擬機在 Hypervisor 上運行。Hypervisor 實現方式通常是一個特殊定製的 Linux 系統。Xen 和 VMWare 的 ESXi 都屬於這個類型。學習

 

2型虛擬化

物理機上首先安裝常規的操做系統,好比 Redhat、Ubuntu 和 Windows。Hypervisor 做爲 OS 上的一個程序模塊運行,並對管理虛擬機進行管理。KVM、VirtualBox 和 VMWare Workstation 都屬於這個類型。測試

理論上講:

1型虛擬化通常對硬件虛擬化功能進行了特別優化,性能上比2型要高;

2型虛擬化由於基於普通的操做系統,會比較靈活,好比支持虛擬機嵌套。嵌套意味着能夠在KVM虛擬機中再運行KVM。

 

3、KVM

下面重點介紹KVM這種2型虛擬化技術。

基本概念

在 x86 平臺上最熱門運用最普遍的虛擬化方案莫過於 KVM 了。OpenStack 對 KVM 支持得也最好,咱們的教程也理所固然選擇 KVM 做爲 實驗環境的 Hypervisor。

KVM 全稱是 Kernel-Based Virtual Machine。也就是說 KVM 是基於 Linux 內核實現的。
KVM有一個內核模塊叫 kvm.ko,只用於管理虛擬 CPU 和內存。

那 IO 的虛擬化,好比存儲和網絡設備由誰實現呢?
這個就交給 Linux 內核和Qemu來實現。

說白了,做爲一個 Hypervisor,KVM 自己只關注虛擬機調度和內存管理這兩個方面。IO 外設的任務交給 Linux 內核和 Qemu。

Libvirt

你們在網上看 KVM 相關文章的時候確定常常會看到 Libvirt 這個東西。

Libvirt 是啥?
簡單說就是 KVM 的管理工具

其實,Libvirt 除了能管理 KVM 這種 Hypervisor,還能管理 Xen,VirtualBox 等。
OpenStack 底層也使用 Libvirt,因此頗有必要學習一下。

Libvirt 包含 3 個東西:後臺 daemon 程序 libvirtd、API 庫和命令行工具 virsh

    1. libvirtd是服務程序,接收和處理 API 請求;

    2. API 庫使得其餘人能夠開發基於 Libvirt 的高級工具,好比 virt-manager,這是個圖形化的 KVM 管理工具,後面咱們也會介紹;

    3. virsh 是咱們常常要用的 KVM 命令行工具,後面會有使用的示例。   

 

如何安裝KVM

KVM 是 OpenStack 使用最普遍的 Hypervisor,本節介紹如何搭建 KVM 實驗環境

KVM 是 2 型虛擬化,是運行在操做系統之上的,因此咱們先要裝一個 Linux。Ubuntu、Redhat、CentOS 均可以,這裏咱們以 Ubuntu14.04 爲例。

基本的 Ubuntu 操做系統裝好以後,安裝 KVM 須要的包 

1
sudo  apt-get  install  qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan -y

 經過這些安裝包咱們順便複習一下上一節介紹的 KVM 的相關知識。

  1. qemu-kvm 和 qemu-system 是 KVM 和 QEMU 的核心包,提供 CPU、內存和 IO 虛擬化功能

  2. libvirt-bin 就是 libvirt,用於管理 KVM 等 Hypervisor

  3. virt-manager 是 KVM 圖形化管理工具

  4. bridge-utils 和 vlan,主要是網絡虛擬化須要,KVM 網絡虛擬化的實現是基於 linux-bridge 和 VLAN,後面咱們會討論。

Ubuntu 默認不安裝圖形界面,手工安裝一下 

1
2
3
sudo  apt-get  install  xinit
sudo  apt-get  install  gdm
sudo  apt-get  install  kubuntu-desktop

小提示:

Redhat 和 CentOS 安裝相對簡單,安裝過程當中選擇虛擬化和圖形組件就能夠了。

在虛擬機上作實驗

做爲 2型虛擬化的 KVM,是支持虛擬化嵌套,這使得咱們能夠在虛擬機中實驗 KVM。 好比我在 VMWare Workstation 中安裝了一個 Ubuntu14.04 的虛擬機,爲了能讓 KVM 能建立 嵌套的虛機,要把 CPU 的虛擬化功能打開。以下圖在 VMWare 中設置如下 CPU 的模式。



Ubuntu 啓動後,用如下命令確認 CPU 支持虛擬化

1
2
# egrep -o '(vmx|svm)' /proc/cpuinfo
# vmx

 確認 Libvirtd 服務已經啓動

1
2
# service libvirt-bin status
libvirt-bin start /running , process 1478

 

啓動第一個KVM虛擬機

 

使用 virt-manager 啓動 KVM 虛機

首先經過命令 virt-manager 啓動圖形界面

# sudo virt-manager    #在root用戶下執行這條命令須要加上sudo不然報錯

Error: (注意這個坑)

 

 點上面的圖標建立虛機

 

給虛機命名爲 kvm1,這裏選擇從哪裏啓動虛機。若是是安裝新的 OS,能夠選擇第一項。若是已經有安裝好的鏡像文件,選最後一項(如上圖)

接下來須要告訴 virt-manager 鏡像的位置。

 

 點擊 「Browser」

 

 在個人系統中存放了一個 cirros-0.3.3-x86_64-disk.img 鏡像文件 。cirros 是一個很小的 linux 鏡像,很是適合測試用,你們能夠到 http://download.cirros-cloud.net/ 下載,而後放到 /var/lib/libvirt/images/ 目錄下,這是 KVM 默認查找鏡像文件的地方。

鏡像文件下載地址:

wget -P /tmp/images http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img

 

 

 爲虛擬機分配 CPU 和內存

點擊 「Forward」, 再確認一下信息,就能夠啓動虛機了。

 

virt-manager 會打開虛機 kvm1 的控制檯窗口,能夠看到啓動狀況

virt-manager 能夠對虛機進行各類管理操做,界面直觀友好,很容易上手。 同時咱們也能夠用命令 virsh 管理虛機,好比查看宿主機上的虛機 

1
2
3
4
root@ubuntu:~ # virsh list
Id    Name              State
--------------------------------
8     kvm1              running

 至此,第一個虛機已經跑起來了,採用的都是默認設置,後面咱們會逐步討論有關虛機更細節的內容,好比存儲和網卡的設置。

相關文章
相關標籤/搜索