kvm虛擬化之qemu虛擬機安裝

檢測是否支持KVM

Kvm是基於x86虛擬化拓展(Intel VT或者 AMD-V)技術的虛擬機軟件,因此查看CPU是否支持VT技術,就能夠判斷是否支持kvm .有返回結果,若是結果中有vmx(inel)或svm(AMD)字樣,就說明CPU的支持的.linux

#cat /proc/cpuinfo | egrep 'vmx|svm'
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse

關閉selinux,將/etc/sysconfig/selinux中的selinux=enforcing修改成 selinux=disable

#vi /etc/sysconfig/selinux
複製代碼

安裝kvm環境

經過yum安裝kvm基礎包和管理工具

Kvm相關安裝包及其做用:
.qemu-kvm 主要的kvm程序包
.Python-virtinst 建立虛擬機所須要的命令行工具和程序庫
.virt-manager GUI虛擬機管理工具
.virt-top 虛擬機統計命令
.virt-viewer GUI鏈接程序,鏈接到已配置好的虛擬機
.libvirt C語言工具包,提供libvirt服務
.libvirt-client 爲虛擬客戶機提供的c語言工具包
.virt-install 基於libvirt服務的虛擬機建立命令
.bridge-utils 建立和管理橋接設備的工具

#安裝qemu libvirt
yum -y install qemu-kvm qemu-img libvirt virt-install bridge-utils qemu-kvm-tools virt-manager

#能夠重啓一下宿主機,以便加載kvm模塊
Reboot

#查看kvm模塊是否被正確加載
#lsmod | grep kvm
kvm_intel             162153  0
kvm                   525259  1 kvm_intel

開啓kvm服務,而且設置其開自動啓動
#systemctl start libvirtd
#systemctl enable libvirtd

#查看運行狀況
#systemctl status libvirtd

設置一下語言環境
#LANG="en_US.UTF-8"
複製代碼

#在根下建立一個目錄/data ,(不把虛擬機的文件放在/root或根主要是虛擬機啓動以後qemu這些用戶沒有權限去/root或根下讀取虛擬機的配置文件)vim

#mkdir /data
#cd /data
#wget http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso (下載一個centos的ISO鏡像)
複製代碼

安裝虛擬機

安裝前要設置環境語言爲英文LANG="en_US.UTF-8",若是是中文的話某些版本可能會報錯。CentOS 7 在這裏修改 /etc/locale.conf。centos

kvm建立虛擬機,特別注意.iso鏡像文件必定放到/data 或者根目錄從新建立目錄,否則會由於權限報錯,沒法建立虛擬機。api

.建立一個虛擬磁盤, -f指定格式, 路徑是/data/kvm.qcow2 ,大小爲30G
qemu-img create -f qcow2 -o preallocation=metadata /data/kvm.qcow2 30G
複製代碼

首先學virt-install命令,在這裏使用-help查看,而且只學習重要的,其餘的能夠後面學習.bash

.virt-install -help
-n (name) : 指定虛擬機的名稱
-memory (-raw) : 指定內存大小
-cpu : 指定CPU的核數(默認爲1)
-cdrom : 指定鏡像
-disk: 指定磁盤路徑(即預先建立的虛擬磁盤)
-virt-type : 指定虛擬機類型(kvm, qemu , xen)
-network : 指定網絡類型
複製代碼

執行建立虛擬機命令網絡

# virt-install --virt-type=kvm --name=centos88 --vcpus=2 --memory=4096 --location=/data/CentOS-7-x86_64-Minimal-1810.iso --disk path=/data/kvm.qcow2,size=20,format=qcow2 --network network=default --graphics none --extra-args='console=ttyS0' --force
複製代碼

上面建立虛擬機命令最終須要配置一下系統基礎設置,帶[!]基本都是要配置的,按照順序往下配置,按對用的數字以此進行設置.dom

步驟1.Timezone settings 時區設置選擇 2) Asia亞洲,再選擇城市 64) Shanghai上海socket

Installation Destination 安裝目的地工具

Autopartitioning Options 自動分區選項性能

[ ] 1) Replace Existing Linux system(s) 替換現有的Linux系統

[x] 2) Use All Space 使用全部空間

[ ] 3) Use Free Space 使用可用空間

Partition Scheme Options 分區方案選項

[ ] 1) Standard Partition 標準分區

[ ] 2) Btrfs Btrfs

[x] 3) LVM LVM(邏輯卷管理)

[ ] 4) LVM Thin Provisioning 精簡配置

安裝完成默認是進入到系統裏面去了.

查看虛擬機

virsh list              # 查看在運行的虛擬機
virsh list --all         # 查看全部虛擬機
複製代碼

#鏈接到虛擬機的命令
#virsh console centos88 (若是報錯,多是安裝完成以後已經在界面進入了,須要退出那個界面,再登陸就行了,本身應變一下)
複製代碼

虛擬機基本操做學習

生成kvm虛擬機:virt-install 
查看在運行的虛擬機:virsh list 
查看全部虛擬機:virsh list –all 
查看kvm虛擬機配置文件:virsh dumpxml name 
啓動kvm虛擬機:virsh start name 
正常關機:virsh shutdown name 
非正常關機(至關於物理機直接拔掉電源):virsh destroy name 
刪除:virsh undefine name(完全刪除,找不回來了,若是想找回來,須要備份/etc/libvirt/qemu的xml文件) 
根據配置文件定義虛擬機:virsh define file-name.xml 
掛起,終止:virsh suspend name 
恢復掛起狀態:virsh resumed name
複製代碼

編輯kvm的xml文件,更改虛擬機CPU配置 .配置虛擬機的CPU有兩種方式(啓動的時候指定核數,更改xml) .第一種方法:爲了實現CPU的熱添加,就須要更改CPU的最大值,熱添加的個數不能超過最大值.

#virsh list --all 查看虛擬機
#virsh edit centos88 打開虛擬機的xml文件,找到以下項
複製代碼

當前爲2,改成自動括容,最大爲4

<vcpu placement='auto'current="2">4</vcpu>
複製代碼

.重啓虛擬機,查看CPU信息,確認CPU的個數,再進行CPU熱添加

#virsh shutdown centos88
#virsh start centos88
複製代碼

#virsh setvcpus centos88 --live
複製代碼

再去虛擬機查看cpu信息

.第二種方法:安裝的時候指定

# -vcpus 5,maxcpus=10,cpuset=1-4,6,8 
 -vcpus sockets=2,cores=4,thread=2 
複製代碼

編輯kvm的xml文件,更改虛擬機內存配置

內存的設置擁有一個「氣球(balloon)機制」,能夠增大減小,可是也要設置一個最大值,默認並無設置最大值,也能夠在安裝的時候指定

.#virsh dominfo centos88 查看虛擬機信息
複製代碼

#virsh edit centos88
. <memory unit='KiB'>6000640</memory> (最大內存爲6G)
  <currentMemory unit='KiB'>4194304</currentMemory>  (當前內存爲4G)

#virsh setmem centos88 5G (增大或減少)
可以在線調整的最大內存不能超過爲虛擬機分配的最大內存,不然須要關閉虛擬機上調最大內存
複製代碼

經過鏡像建立虛擬機

鏡像製做原則

.分區的時候,只分一個/根分區,並不須要swap分區,因爲虛擬機的磁盤性能就很差,若是設置了swap分區,當swap工做的時候,性能會更差。例如阿里雲主機,就沒有交換分區。

.鏡像製做須要刪除網卡(eth0)中的UUID

.關閉selinux,關閉iptables

.安裝基礎軟件的包:net-tools lrzsz screen tree vim wget

建立虛擬機鏡像文件

#複製第一次安裝的乾淨系統鏡像,做爲基礎鏡像文件,後面建立虛擬機使用這個基礎鏡像.
#cp /data/centos.88.qcow2 /data/centos7.base.qcow2

.使用基礎鏡像文件,建立新的虛擬機鏡像
#cp /data/centos7.base.qcow2 /data/centos7.113.qcow2

建立虛擬機配置文件
.複製第一次安裝的乾淨的系統鏡像,做爲基礎配置文件.
#virsh dumpxml centos88 > /data/centos7.base.xml

.使用基礎虛擬機鏡像配置文件,建立新的虛擬機配置文件
#cp /data/centos7.base.xml /data/centos.113.xml

複製代碼

編輯新虛擬機配置文件

主要是修改虛擬機文件名,UUID,鏡像地址和網卡地址,其中 UUID 在 Linux 下可使用 uuidgen 命令生成



<domain type='kvm'>
  <name>centos.113</name>
  <uuid>1e86167a-33a9-4ce8-929e-58013fbf9122</uuid>
  <devices>
    <disk type='file' device='disk'>
      <source file='/home/vms/centos.113.img'/>
    </disk>
    <interface type='bridge'>
      <mac address='00:00:00:00:00:04'/>
    </interface>    
    </devices>
</domain>

# virsh define /data/centos.113.xml
複製代碼
相關文章
相關標籤/搜索