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
複製代碼
經過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
複製代碼
內存的設置擁有一個「氣球(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
複製代碼