linux 虚拟机 kvm

检查硬件是否支持虚拟化

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


安装环境

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


检测是否已经加载KVM模块

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

[root@localhost ~]# modprobe kvm_intel


配置虚拟网卡

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

[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 文本格式安装界面

以下看图操作

图一、选择安装语言

wKiom1aPbQXSDhkYAADJMk_stsc391.png

图二、选择手动设置IPwKioL1aPbZiSHgpYAADDa6ffMFY410.png

图三、手动设置IP,此IP必须可以联网

wKiom1aPbbOiPlqhAADdh-Ue4rM695.png

图四、

wKioL1aPbf_RjpZIAAB7q7GgGoM341.png

图五、

wKiom1aPbhHj5bO6AACESF5rklE880.png

图六、欢迎界面

wKiom1aPbjGivzhjAAB_AotRZS0586.png

图七、

wKiom1aPblDjN5gPAACA4Ibyu7E223.png

图八、选择Re-initiallize all

wKioL1aPbpaj5TXlAAEAjua50cU621.png

图九、选择时区 Asia/Shanghai

wKioL1aPb7ahNniTAAC2HuGwth4913.png

图十、设置root密码

wKiom1aPb6TSMo-RAACo2W5esfo276.png

图十一、选择 Replace existing Linux system -- OK

wKiom1aPb-Cjy9ZVAADyr0TeJ9U996.png

图十二、选择 Write changes to disk

wKiom1aPb_7jqta5AACxg1bOxIE971.png

图十三、

wKioL1aPcECAys39AACDRP0d7pU064.png

图十四、

wKioL1aPcFfhEUJSAACc5iakQtE391.png

图十五、安装完成

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'

以下按图操作

图一、选择安装语言

wKiom1aPgxXwoTu3AAC-ZjLmUrM337.png

图二、选择安装媒体 NFS directory

wKioL1aPg2TgshNTAACWwJuzgi8197.png

图三、选择手动配置IP

wKiom1aPg2rCDlmlAADEOU0_340355.png

图四、设置IP

wKioL1aPg7_hI32RAADgUoZoVJI527.png

图五、wKiom1aPg7GweAmbAAB8yAbygIY435.png

图六、填写NFS服务端信息

NFS server name:                 (服务端IP)                 

CentOS directory:                /mnt/images/install.img    

NFS mount options (optional):    ro                         

wKioL1aPg_eQel2JAADKF9u6wcU566.png

图七、

wKioL1aPha_T3zqmAACDCOCDlAY176.png

图八、

wKioL1aPhvXjhYPwAAD7UYMrDfs468.png

图九、

wKiom1aPhufQvUbnAADAo8LBosQ078.png

图十、

wKioL1aPh0OjNbUXAAC2I_KcwFk020.png

图十一、

wKiom1aPhz6zYgDxAAD2Z5x6Ets280.png

图十二、

wKioL1aPh6LwKIomAAC2Kh0B5Y0406.png

图十三、

wKioL1aPh-GxuW1KAACaoHHrV1o474.png

图十四、

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

编辑虚拟机文件,修改如下

一、增加以下一整块内容,修改<source file='/data/vmCentOS6.5_1_1.qcow2'/>为上面添加的虚拟磁盘

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

三、<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


虚拟机暂时到这里。

你可能感兴趣的:(虚拟机,linux,kvm)