linux 虛擬機 kvm

檢查硬件是否支持虛擬化linux

[root@localhost ~]# grep --color "vmx|svm" /proc/cpuinfocentos


安裝環境網絡

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


檢測是否已經加載KVM模塊ssh

[root@localhost ~]# lsmod | grep --color kvmide

ui

[root@localhost ~]# modprobe kvm_intelspa


配置虛擬網卡
操作系統

[root@localhost ~]# cd /etc/sysconfig/network-scripts/3d

[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-br0

[root@localhost network-scripts]# vi ifcfg-eth0

DEVICE=eth0

HWADDR=00:0C:29:EE:D0:8F

TYPE=Ethernet

UUID=7d11a486-8c8b-4d1b-9135-a3257fb54b7e

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

BRIDGE=br0

[root@localhost network-scripts]# vi ifcfg-br0

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.100

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=8.8.8.8

[root@localhost network-scripts]# service network restart


建立虛擬機1(網絡)

[root@localhost ~]# /etc/init.d/libvirtd restart ; /etc/init.d/messagebus restart

執行命令,若是結果相似,說明網絡配置正確

[root@localhost ~]# brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.000c2955a70a       no              eth0

virbr0          8000.525400391409       yes             virbr0-nic

執行命令建立qcow2格式的虛擬磁盤文件,不然虛擬機沒法生成快照

[root@localhost ~]# qemu-img create -f qcow2 -o preallocation=metadata  /data/vmCentOS1.qcow2 30G

建立虛擬機並安裝操做系統

[root@localhost ~]# virt-install \

--name  vmCentOS6.7_1 \

--ram 512 \

--disk path=/data/vmCentOS1.qcow2,format=qcow2,size=30,bus=virtio \

--vcpus 1 \

--os-type linux \

--os-variant rhel6 \

--network bridge=br0 \

--graphics none \

--console pty,target_type=serial \

--location 'http://mirrors.163.com/centos/6.7/os/i386/' \

--extra-args 'console=ttyS0,115200n8 serial'

#--ram 內存

#--disk path 虛擬磁盤保存路徑

#--vcpus CPU數

#--os-type 系統類型

#--os-variant 系統版本

#--nerwork bridge 虛擬網卡

#--location 源

#--graphics nano 文本格式安裝界面

如下看圖操做

圖1、選擇安裝語言

wKiom1aPbQXSDhkYAADJMk_stsc391.png

圖2、選擇手動設置IPwKioL1aPbZiSHgpYAADDa6ffMFY410.png

圖3、手動設置IP,此IP必須能夠聯網

wKiom1aPbbOiPlqhAADdh-Ue4rM695.png

圖4、

wKioL1aPbf_RjpZIAAB7q7GgGoM341.png

圖5、

wKiom1aPbhHj5bO6AACESF5rklE880.png

圖6、歡迎界面

wKiom1aPbjGivzhjAAB_AotRZS0586.png

圖7、

wKiom1aPblDjN5gPAACA4Ibyu7E223.png

圖8、選擇Re-initiallize all

wKioL1aPbpaj5TXlAAEAjua50cU621.png

圖9、選擇時區 Asia/Shanghai

wKioL1aPb7ahNniTAAC2HuGwth4913.png

圖10、設置root密碼

wKiom1aPb6TSMo-RAACo2W5esfo276.png

圖11、選擇 Replace existing Linux system -- OK

wKiom1aPb-Cjy9ZVAADyr0TeJ9U996.png

圖12、選擇 Write changes to disk

wKiom1aPb_7jqta5AACxg1bOxIE971.png

圖十3、

wKioL1aPcECAys39AACDRP0d7pU064.png

圖十4、

wKioL1aPcFfhEUJSAACc5iakQtE391.png

圖十5、安裝完成

wKioL1aPet_iUaiCAAC9A66KjZg934.png


建立虛擬機2(本地NFS)

掛載光驅或ISO文件

[root@localhost ~]# mount /dev/cdrom /mnt/

宿主配置NFS

[root@localhost ~]# yum install -y nfs-utils rpcbind

[root@localhost ~]# vi /etc/exports

/mnt 192.168.1.0/24(ro)

[root@localhost ~]# /etc/init.d/rpcbind restart ; /etc/init.d/nfs restart

[root@localhost ~]# showmount -e 192.168.1.2

Export list for 192.168.1.2:

/mnt 192.168.1.0/24

執行命令建立qcow2格式的虛擬磁盤文件,不然虛擬機沒法生成快照

[root@localhost ~]# qemu-img create -f qcow2 -o \

preallocation=metadata  /data/vmCentOS2.qcow2 30G

建立虛擬機並安裝操做系統

[root@localhost ~]# virt-install \

--name  vmCentOS6.7_2 \

--ram 512 \

--disk path=/data/vmCentOS2.qcow2,format=qcow2,size=30,bus=virtio \

--vcpus 1 \

--os-type linux \

--os-variant rhel6 \

--network bridge=br0 \

--graphics none \

--console pty,target_type=serial \

--location '/mnt/' \

--extra-args 'console=ttyS0,115200n8 serial'

如下按圖操做

圖1、選擇安裝語言

wKiom1aPgxXwoTu3AAC-ZjLmUrM337.png

圖2、選擇安裝媒體 NFS directory

wKioL1aPg2TgshNTAACWwJuzgi8197.png

圖3、選擇手動配置IP

wKiom1aPg2rCDlmlAADEOU0_340355.png

圖4、設置IP

wKioL1aPg7_hI32RAADgUoZoVJI527.png

圖5、wKiom1aPg7GweAmbAAB8yAbygIY435.png

圖6、填寫NFS服務端信息

NFS server name:                 (服務端IP)                 

CentOS directory:                /mnt/p_w_picpaths/install.img    

NFS mount options (optional):    ro                         

wKioL1aPg_eQel2JAADKF9u6wcU566.png

圖7、

wKioL1aPha_T3zqmAACDCOCDlAY176.png

圖8、

wKioL1aPhvXjhYPwAAD7UYMrDfs468.png

圖9、

wKiom1aPhufQvUbnAADAo8LBosQ078.png

圖10、

wKioL1aPh0OjNbUXAAC2I_KcwFk020.png

圖11、

wKiom1aPhz6zYgDxAAD2Z5x6Ets280.png

圖12、

wKioL1aPh6LwKIomAAC2Kh0B5Y0406.png

圖十3、

wKioL1aPh-GxuW1KAACaoHHrV1o474.png

圖十4、

wKioL1aPh_iRG4KaAADG3OXNsOI875.png


virsh經常使用操做

查看幫助信息

[root@localhost ~]# virsh --help

查看虛擬機列表,全部的

[root@localhost ~]# virsh list --all

查看虛擬機列表,正在運行的

[root@localhost ~]# virsh list

遠程(pts/0)進入虛擬機

[root@localhost ~]# ssh 192.168.1.2

遠程退出虛擬機

ctrl + d 

[root@localhost ~]# logout

本地(tty/0)進入虛擬機

[root@localhost ~]# virsh console vmCentOS6.5_1

本地退出虛擬機

ctrl + ]

虛擬機電源管理,首先虛擬機系統要安裝acpid,如下命令要在虛擬機系統內執行

[root@localhost ~]# yum install -y acpid

[root@localhost ~]# /etc/init.d/acpid start

關閉虛擬機

[root@localhost ~]# virsh shutdown vmCentOS6.5_1

從虛擬機列表刪除虛擬機,用該方法刪除虛擬機後,若是要從新添加該虛擬機到列表,能夠用virsh start方法(另外一種關閉虛擬機的方法)

[root@localhost ~]# virsh destroy vmCentOS6.5_1

啓動虛擬機

[root@localhost ~]# virsh start vmCentOS6.5_1

啓動虛擬機並進入控制檯

[root@localhost ~]# virsh start vmCentOS6.5_1 --console

掛起虛擬機

[root@localhost ~]# virsh suspend vmCentOS6.5_1

從掛起狀態中恢復虛擬機

[root@localhost ~]# virsh resume vmCentOS6.5_1

設置虛擬機隨系統自動啓動

[root@localhost ~]# virsh autostart vmCentOS6.5_1

取消虛擬機隨系統自動啓動

[root@localhost ~]# virsh autostart --disable vmCentOS6.5_1


完全刪除虛擬機

[root@localhost ~]# virsh destroy vmCentOS6.5_1

[root@localhost ~]# virsh undefine vmCentOS6.5_1

實際是刪除/etc/libvirt/qemu/vmCentOS6.5_1.xml

查看虛擬機對應的虛擬磁盤文件

[root@localhost ~]# virsh domblklist vmCentOS6.5_1

[root@localhost ~]# rm -f /data/vmCentOS1.qcow2

若是/data/vmCentOS1.qcow2不被刪除,未來還能夠恢復該虛擬機


克隆虛擬機,前提是源虛擬機已經關閉

[root@localhost ~]# virt-clone --original vmCentOS6.5_1 --name vmCentOS6.5_3 \

--file /data/vmCentOS6.5_3.qcow2

編輯虛擬機文件,實際編輯的是/etc/libvirt/qemu/vmCentOS6.5_1.xml

[root@localhost ~]# virsh edit /data/vmCentOS6.5_1.qcow2

轉換虛擬磁盤格式,例如原格式爲raw要轉換爲qcow2,注意是大寫字母O,不是數字0

[root@localhost ~]# qemu-img convert -f raw -O qcow2 \

/data/vmCentOS6.5_1.img /data/vmCentOS6.5_1.qcow2

查看虛擬磁盤文件格式

[root@localhost ~]# qemu-img info /data/vmCentOS6.5_1.qcow2 | grep "file format"


虛擬機快照

查看快照信息,Snapshot list 如下爲快照信息

[root@localhost ~]# qemu-img info /data/vmCentOS6.5_1.qcow2

[root@localhost ~]# virsh snapshot-list vmCentOS6.5_1

建立快照

[root@localhost ~]# virsh snapshot-create vmCentOS6.5_1

恢復快照,最後一串數字爲快照ID,查看快照信息的時候能夠查看到

[root@localhost ~]# virsh snapshot-revert vmCentOS6.5_1 1441043346

查看當前使用的是哪個快照,通常是在第二行

[root@localhost ~]# virsh snapshot-current vmCentOS6.5_1 

刪除快照

[root@localhost ~]# virsh snapshot-delete vmCentOS6.5_1 1441043346

快照文件保存目錄,vmCentOS6.5_1對應每一臺虛擬機

[root@localhost ~]# ls /var/lib/libvirt/qemu/snapshot/vmCentOS6.5_1/


虛擬磁盤擴容

查看虛擬機磁盤大小

[root@localhost ~]# qemu-img info /data/vmCentOS6.5_1.qcow2 | grep "virtual size"

給虛擬磁盤+5G

[root@localhost ~]# qemu-img resize /data/vmCentOS6.5_1.qcow2 +5G

重啓虛擬機,讓擴容後的磁盤生效(必須用如下方法重啓)

[root@localhost ~]# virsh destroy vmCentOS6.5_1 ; virsh start vmCentOS6.5_1

把新增的5G虛擬磁盤分區爲/dev/vda4,進入虛擬機,從新啓動

[root@localhost ~]# virsh console vmCentOS6.5_1

如下操做在虛擬機內執行

[root@localhost ~]# reboot

重啓後,執行

[root@localhost ~]# pvcreate /dev/vda4

查看有哪些物理卷

[root@localhost ~]# vgs

查看有哪些磁盤能夠加入現有物理卷

[root@localhost ~]# pvs

查看有哪些邏輯卷

[root@localhost ~]# lvs

把/dev/vda4加入VolGroup

[root@localhost ~]# vgextend VolGroup /dev/vda4

[root@localhost ~]# lvextend -l +100%FREE /dev/VolGroup/lv_root

[root@localhost ~]# resize2fs /dev/VolGroup/lv_root

至此,虛擬機磁盤擴容完畢


虛擬機添加虛擬磁盤

[root@localhost ~]# qemu-img create -f qcow2 /data/vmCentOS6.5_1_1.qcow2 5G

[root@localhost ~]# virsh destroy vmCentOS6.5_1

編輯虛擬機文件,修改以下

1、增長如下一整塊內容,修改<source file='/data/vmCentOS6.5_1_1.qcow2'/>爲上面添加的虛擬磁盤

2、刪除行<address type='pci' doman='0x0000' bus='0x00' slot='0x05' function='0x0/>

3、<target dev='vdb' bus='virtio'/>行,dev='vda'改成dev='vdb'

[root@localhost ~]# virsh edit vmCentOS6.5_1

<disk type='file' device='disk'>

  <driver name='qemu' type='qcow2' cache='none'/>

  <source file='/data/vmCentOS6.5_1_1.qcow2'/>

  <target dev='vdb' bus='virtio'/>

</disk>

[root@localhost ~]# virsh start vmCentOS6.5_1

至此,虛擬機添加虛擬磁盤完畢


利用vmCentOS6.5_2恢復vmCentOS6.5_1,假定虛擬磁盤文件存在

[root@localhost ~]# virsh dumpxml vmCentOS6.5_2 > /etc/libvirt/qemu/vmCentOS6.5_1.xml

[root@localhost ~]# vi /etc/libvirt/qemu/vmCentOS6.5_1.xml

對應虛擬機名字

<name>vmCentOS6.5_1</name>

UUID不能和原來的相同

<uuid>c239c60e-e916-bb16-87e1-e686a5e2ade9</uuid>

對應虛擬磁盤格式 type='qcow2' 或 type='raw'

<driver name='qemu' type='qcow2' cache='none'/>

指定虛擬磁盤文件路徑

<source file='/data/vmCentOS6.5_1.qcow2'/>

[root@localhost ~]# virsh define vmCentOS6.5_1

[root@localhost ~]# virsh define /data/vmCentOS6.5_1.qcow2

至此,虛擬機恢復完畢


調整CPU,內存

[root@localhost ~]# virsh edit vmCentOS6.5_1

內存上限,配置內存必須小於這個值,能夠改

<memory unit='KiB'>824288</memory>

內存相關

<currentMemory unit='KiB'>524288</currentMemory>

CPU相關

<vcpu placement='static'>2</vcpu>

[root@localhost ~]# virsh destroy vmCentOS6.5_1

[root@localhost ~]# virsh start vmCentOS6.5_1

查看虛擬機網卡

[root@localhost ~]# virsh domiflist vmCentOS6.5_1


臨時添加網卡,虛擬機正在運行

[root@localhost ~]# virsh attach-interface vmCentOS6.5_1 --type bridge --source br0

永久添加網卡,虛擬機關機

[root@localhost ~]# virsh edit vmCentOS6.5_1

<interface type='bridge'>

<mac address='54:52:00:92:56:25'/>

<source bridge='br0'/>

<model type='virtio'/>

</interface>

[root@localhost ~]# virsh start vmCentOS6.5_1

修改MAC地址對應的網卡名字

[root@localhost ~]# vi /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:92:56:11f", ATTR{type}="1", KERNEL=="eth*", NAME="eth0"

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR=52:54:00:92:56:11f

[root@localhost ~]# /etc/init.d/network restart


虛擬機遷移(本地遷移)

[root@localhost ~]# virsh dumpxml vmCentOS6.5_1 > /etc/libvirt/qemu/vmCentOS6.5_8.xml

[root@localhost ~]# cp /data/vmCentOS6.5_1 /data/vmCentOS6.5_8

[root@localhost ~]# vi /etc/libvirt/qemu/vmCentOS6.5_8.xml

如下三項必須修改

<name>vmCentOS6.5_8</name>

<uuid>c239c60e-e916-bb16-87e1-e686a5e4ade2</uuid>

<source file='/data/vmCentOS6.5_8.qcow2'/>

[root@localhost ~]# virsh define /data/vmCentOS6.5_8.qcow2

[root@localhost ~]# virsh start vmCentOS6.5_8


虛擬機暫時到這裏。

相關文章
相關標籤/搜索