歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> kvm 使用入門詳解,kvm入門詳解

kvm 使用入門詳解,kvm入門詳解

日期:2017/3/3 17:59:41   编辑:學習Linux

kvm 使用入門詳解,kvm入門詳解

kvm 使用入門詳解,kvm入門詳解


kvm 是虛擬化技術的一個典型實現,功能非常強大,使用很方便。kvm 本身主要實現對 CPU 的虛擬化,內存和IO的虛擬化使用了開源軟件 qemu,qemu 是純軟件層面的虛擬化,其實就是個模擬器。kvm 要求 cpu 必須支持硬件虛擬化,可以通過 Linux 命令查看。

說到 kvm 必須提及 libvirt 程序集,它是用來管理 kvm 虛擬機的,當然其實也可以管理 xen 等其它虛擬化的虛擬機。libvirt 包括三部分:(1). libvirtd是後台服務程序;(2). libvirt 是管理虛擬機的 API 接口,可以通過 python c java 等語言來編寫程序管理虛擬機,比較典型的 virt-manager 就是使用 python 寫的可視化工具;(3). virsh 等命令行管理工具。

一、准備工作

1. 實驗環境

操作系統:CentOS 6.4 x86_64 mini
宿主機:vmware workstation 虛擬機

2. 檢查宿主機處理器是否支持虛擬化

[root@kvm ~]# egrep -o 'vmx | svm' /proc/cpuinfo | wc -l

如果顯示數值是 0,則表示該 CPU 不支持虛擬化。

3. 配置或設置宿主機

CPU:2-4 core 開啟 cpu 虛擬化(bios 設置 或 vmware 設置)
內存:4-8 GB
硬盤:100 GB

4. 關閉 iptables 和 selinux

關閉 iptables 服務:

[root@kvm ~]# service iptables stop
[root@kvm ~]# chkconfig iptables off

關閉 selinux:

[root@kvm ~]# setenforce 0
[root@kvm ~]# vi /etc/selinux/config
SELINUX=disabled

二、安裝和配置 kvm 環境

1. 安裝 kvm 虛擬化相關軟件包

[root@kvm ~]# yum install -y kvm virt-* libvirt bridge-utils qemu-img

2. 查看 kvm 模塊是否加載到內核

[root@kvm ~]# lsmod | grep kvm_intel
kvm_intel              53484  0
kvm                   316506  1 kvm_intel

如果沒有加載,可以嘗試執行命令:modprobe kvm_intel ,不行的話,試試重啟宿主機。

3. 設置相關網絡

設置方式一:網橋模式。

[root@kvm ~]# cd /etc/sysconfig/network-scripts/
[root@kvm ~]# cp ifcfg-eth0 ifcfg-br0
[root@kvm ~]# vi ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0

[root@kvm ~]# vi ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.16.1.8
PREFIX=24
GATEWAY=172.16.1.1
DNS1=114.114.114.114
NAME=br0

# 重啟網絡
[root@kvm ~]# service network restart

設置方式二:NAT 模式。

暫 略。

4. 啟動 libvirtd 相關服務

[root@kvm ~]# /etc/init.d/libvirtd start
[root@kvm ~]# /etc/init.d/messagebus restart

遇到錯誤:

[root@vip ~]# /etc/init.d/libvirtd start
libvirtd: relocation error: libvirtd: ... version ... libdevmapper.so.1.02     [失敗]

解決:

[root@kvm ~]# yum upgrade device-mapper-libs

結果:

[root@kvm ~]# brctl show
bridge name    bridge id           STP enabled    interfaces
br0         8000.000c29181c75   no          eth0
virbr0      8000.525400c207c7   yes         virbr0-nic

三、安裝虛擬機

1. 創建虛擬機鏡像

關於虛擬機鏡像,有很多種類型:raw、qcow2、vmdk等,我們推薦使用 qcow2 格式的鏡像,因為 qcow2 格式的鏡像支持快照,使用的比較廣泛。在創建虛擬機之前需要手動去創建 qcow2 格式的鏡像磁盤文件,以供安裝虛擬機時使用。按照如下命令進行創建:

qemu-img create -f qcow2 -o preallocation=metadata /data/kvm/liwei01.qcow2 50G

2. 執行虛擬機的安裝

安裝方式一:通過網絡鏡像安裝,文本控制台,無vnc支持。

virt-install --name liwei01 --ram 1024 --vcpus 1 \
    -f /data/kvm/liwei01.qcow2  --os-type linux \
    --os-variant rhel6 --network bridge=br0 \
    --graphics none --console pty,target_type=serial \
    --location 'http://mirrors.163.com/centos/6.8/os/i386/' \
    --extra-args 'console=ttyS0,115200n8 serial'

安裝方式二:通過網絡鏡像安裝,支持 vnc ,默認無文本控制台。

virt-install --name liwei01 --ram 1024 --vcpus 1 \
    -f /data/kvm/liwei01.qcow2  --os-type linux \
    --os-variant rhel6 --network bridge=br0 \
    --graphics vnc,listen=0.0.0.0,port=5920 \
    --location 'http://mirrors.163.com/centos/6.8/os/i386/'

安裝方式三:通過 iso 鏡像實現本地安裝,支持 vnc ,無文本控制台。

virt-install --name liwei01 --ram 1024 --vcpus 1 \
    -f /data/kvm/liwei01.qcow2  --os-type linux \
    --os-variant rhel6 --network bridge=br0 \
    --cdrom CentOS-6.8-i386-minimal.iso \
    --graphics vnc,listen=0.0.0.0,port=5920

安裝方式四:通過基礎鏡像模板快速安裝(拷貝)

創建鏡像文件:

[root@kvm ~]# qemu-img create -f qcow2 /data/kvm/liwei.qcow2 50G
# 通過 liwei.qcow2 安裝虛擬機 ... 安裝完畢.
[root@kvm ~]# cp /data/kvm/liwei.qcow2 /data/kvm/liwei01.qcow2

安裝命令:

# 以拷貝的 liwei01.qcow2 為模板進行安裝,安裝方式是從 liwei01.qcow2 鏡像啟動
[root@kvm ~]# virt-install --name liwei01 --ram 1024 --vcpus=1 \ --disk /data/kvm/liwei01.qcow2,format=qcow2,bus=virtio \ --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5904 \ --boot hd

說明:

本方式創建 img 鏡像的時候沒有指定 preallocation=metadata 選項,這樣存儲文件空間顯示比較小,方便拷貝,不加這個選項時,在 virt-install 時候需要在 --disk 選項後邊加上 bus=virtio,如果不加在安裝操作系統的時候似乎是識別不出來磁盤空間,會提示磁盤空間不足。采用這種方式安裝的速度非常快,其實就是從已經存在的操作系統鏡像啟動虛擬機並 define 一個新的虛擬機 liwei01,可以通過腳本快速創建出多個相同配置的虛擬機。當然可以在基礎鏡像中安裝公共的軟件包和設置相同的配置,這樣後續基於這個 img 安裝的虛擬機都有類似的配置,省去重復安裝軟件包的麻煩。

安裝方式五:通過基礎鏡像模板快速安裝(共享)

創建鏡像:

[root@kvm ~]# qemu-img create -f qcow2 -o preallocation=metadata /data/kvm/liwei.qcow2 50G
# 通過 liwei.qcow2 安裝虛擬機 ... 安裝完畢.
# 以 liwei.qcow2 鏡像為模板創建 liwei01.qcow2 鏡像
[root@kvm ~]# qemu-img create -f qcow2 -o backing_file=liwei.qcow2 liwei01.qcow2 10G

安裝命令:

[root@kvm ~]# virt-install --name liwei01 --ram 1024 --vcpus=1 \
    --disk /data/kvm/liwei01.qcow2,format=qcow2,bus=virtio \
    --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5904 \
    --boot hd

說明:

在創建鏡像 liwei01.qcow2 指定了 backing_file=liwei.qcow2 選項,表示以 liwei.qcow2 為後端鏡像,以後對虛機 liwei01 的所有的寫操作都會記錄到 liwei01 鏡像,實際操作系統是在 liwei.qcow2 鏡像中,liwei.qcow2 鏡像是只讀的。也就是說後續以 liwei.qcow2 鏡像為後端的虛機都共享這個鏡像,而具體某個虛機的寫操作內容都要記錄到對應自己的鏡像文件中去。注意和方式4的區別。

3. 通過 vnc 或 文本控制台進行系統安裝

方式一:通過文本控制台進行管理安裝 virsh console liwei01 後續也能用此方式進行登陸管理虛擬機。
方式二:通過 vnc 客戶端進行連接, virsh vncdisplay liwei01 :20 客戶端通過url: 172.16.1.8:20 進行連接。
方式三:同方式二一樣,具體安裝過程與普通操作系統安裝過程一樣,過程略。

四、kvm 虛擬機常見的基礎操作命令

開機:virsh start vm
關機:virsh shutdown vm 如果不生效,需要在 vm 中執行:yum install -y acpid
強關:virsh destroy vm
刪除:virsh undefine vm
定義:virsh define vm
掛起:virsh suspend vm
恢復:virsh resume vm

虛擬機列表:virsh list
包含關機的虛機:virsh list --all
設置自動啟動:virsh autostart vm
關閉自動啟動:virsh autostart --disable vm
登陸虛機控制台:virsh console vm # 只對指定了console的虛機才管用,方式一
退出虛機控制台:ctrl + ]

五、虛擬機的克隆

將虛擬機 liwei01 克隆為虛擬機 liwei02

[root@kvm ~]# virt-clone --original liwei01 --name liwei02 --file /data/kvm/liwei02.qcow2

注意:克隆前需要先關閉虛擬機;克隆完畢,一般需要設置虛擬機的網絡。

六、創建虛擬機的快照

1. 創建快照的條件

  • 虛擬機是關機狀態。
  • 虛擬機鏡像格式是 qcow2。

2. 創建快照

[root@kvm ~]# virsh snapshot-create liwei

3. 查看快照列表

[root@kvm ~]# virsh snapshot-list liwei
# 可以通過 qemu-img 查看鏡像的快照信息
[root@kvm ~]# qemu-img info /data/kvm/liwei.img

4. 切換快照

[root@kvm ~]# virsh snapshot-revert liwei 1477285698

5. 查看當前快照

[root@kvm ~]# virsh snapshot-current liwei

6. 刪除快照

[root@kvm ~]# virsh snapshot-delete liwei 1477285698

7. 快照文件存儲位置

/var/lib/libvirt/qemu/snapshot

七、虛擬機磁盤擴容和添加磁盤

1. 虛擬機擴容磁盤,給現有磁盤增加容量

[root@kvm ~]# qemu-img resize /data/kvm/liwei.qcow2 +5G
# 重啟虛擬機 reboot虛機不生效
[root@kvm ~]# virsh destroy liwei
[root@kvm ~]# virsh start   liwei

在虛擬機中使用 fdisk -l 查看,通過觀察block 塊 id 可以發現存儲空間多了,還必須將多余部分分區、格式化使用,默認使用 lvm 。

2. 給虛擬機添加磁盤

按照如下步驟:

  • 關閉虛擬機
  • 使用 qemu-img 創建磁盤鏡像
  • 使用 virsh edit liwei 編輯虛機配置文件,添加一條磁盤記錄,適當修改信息
  • 虛擬機開機 -> fdisk -> 格式化 -> ok.

注:可以嘗試不分區直接格式化,也可以嘗試使用 lvm 。

八、使用虛擬磁盤恢復虛擬機

思路:首先得有鏡像文件(已有) + xml 配置文件

[root@kvm ~]#  virsh dumpxml liwei > /etc/libvirt/qemu/liwei01.xml
# 編輯配置文件,修改為適當的值
# 添加定義
virsh define /etc/libvirt/qemu/liwei01.xml
virsh list --all   #即可查到該虛擬機

九、調整CPU、內存規格

如果要調整的 cpu 核數和內存超過安裝虛機時指定的最大值,則需要關閉虛機來修改最大值,動態調整的值不能超過設置最大值,擦,一般使用值和最大值都是保持一致,一起修改。所以在線動態修改沒什麼意義,推薦直接修改配置文件就 OK。

[root@kvm ~]# virsh edit liwei01
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>

重啟虛機 liwei01 就ok.

十、調整虛擬機網卡

1. 添加虛擬機網卡

# 臨時命令生效
[root@kvm ~]# virsh attach-interface liwei --type bridge --source br0  

# 修改虛機配置文件
[root@kvm ~]# virsh dumpxml liwei > /etc/libvirt/qemu/liwei.xml
[root@kvm ~]# virsh define /etc/libvirt/qemu/liwei.xml 

2. 刪除虛擬機網卡

[root@kvm ~]# virsh detach-interface liwei --type bridge --mac 52:54:00:14:86:cf

3. 指定網卡類型

暫 略。

十一、虛擬機的遷移

幾個步驟:

1.關閉虛擬機
2.拷貝鏡像文件
3.拷貝配置文件
4.virsh define vm

待更新......

http://xxxxxx/Linuxjc/1181649.html TechArticle

Copyright © Linux教程網 All Rights Reserved