===============================================================================
安装依赖和相关组件
yum -y install wget curl nc vim kvm virt-* libvirt bridge-utils qemu-img qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client gcc autoconf automake libtool glib* zlib* acpid
===============================================================================
===============================================================================
安装命令
(centos
网络镜像
)
virt-install \
--name test1_service \
--ram 4096 \
--vcpus 2 \
--file /home/kvm/centos_192.168.1.56_contes7.img \
--file-size 30 \
--network bridge:br0 \
--network bridge:br1 \
--extra-args 'ip=192.168.1.56 netmask=255.255.254.0 dns=114.114.114.114 gateway=192.168.1.254 console=ttyS0,115200n8'
注
:
如删除重名镜像名需要将镜像
(
centos_test1.img)
一并删除
,
否则磁盘大小会追加
,
定空会导致磁盘为空
.
可以使用
ks
文件
,
注意设置静态
IP
依据不同的网络环境进行更改
,
或直接使用命令指定已知的可以使用的
IP.
===============================================================================
安装命令
(centos
本地镜像
)
virt-install \
--name centos7 \
--ram 4096 \
--vcpus 2 \
--file /home/kvm/centos_7.qcow2 \
--file-size=30 \
--network bridge:br0 \
--location=/home/ios/CentOS-7-x86_64-Minimal-1611.iso \
--extra-args 'ip=192.168.1.63 netmask=255.255.254.0 dns=114.114.114.114 gateway=192.168.1.254 console=ttyS0,115200n8'
===============================================================================
===============================================================================
创建快照
1.qemu-img info
centos_test1.img
(查询镜像信息)
注
:
kvm虚拟机的raw格式磁盘文件不支持快照功能,在创建快照前需要先转换为qcow或qcow2格式。
2.qemu-img snapshot -c
init01 centos_test1.qcow2
(创建快照)
3.qemu-img snapshot -l
centos_test1.img
(列出所有快照)
4.qemu-img snapshot -a
init01
centos_test1.qcow2 (使用快照)
===============================================================================
===============================================================================
virsh dumpxml centos_6801 >centos_6801_0.xml
磁盘类型转换
VMDK–>qcow2
· qemu-img convert -f vmdk -O qcow2 SLES11SP1-single.vmdk SLES11SP1-single.img
qcow2–>raw
· qemu-img convert -O qcow2 image-raw.raw image-raw-converted.qcow
raw–>qcow2
· qemu-img convert -f raw -O qcow2 2fuel2.img 2fuel2.qcow2
virsh edit test1_service
查找到
<source file='/home/kvm/centos_test1.img'/>
更改为
<source file='/home/kvm/centos_test1.qcow2'/>
注
:
转换出
qcow2
格式的权限需要与源格式一致
virsh dumpxml
域名
> /etc/libvirt/qemu/
域名
.xml
uuidgen
域名
.img
更改
xml uuid
和
disk
中的
type
和
source.
===============================================================================
其他帮助
===============================================================================
qcow2
brctl show
查看网桥
virsh list --all
查看所有虚拟机
virsh destroy
虚拟机名称
(
强制中断虚拟机
)
virsh undefine
虚拟机名称
(
从域中删除虚拟机
)
virt-install --os-variant list
查看支持虚拟的系统
/etc/libvirt/qemu/
虚拟机配置文件
备份:拷贝
/etc/libvirt/qemu
目录下的
xml
配置文件,以及
xml
中设置的
img
文件。
恢复:进入
virsh
,执行
define
目录下的
xml
文件路径
virsh # define /etc/libvirt/qemu/winxp.xml
virsh autostart
虚拟机名称
(
开机自启虚拟机
)
克隆
KVM
虚拟机:
virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img
(
-o
原始客体的名称,
-n
新客户端的名称,
-f
作为新客户端磁盘映像的新文件)
virsh managedsave-remove winxp
Virsh
语法参考:
Autostart
自动开始一个域
Create
从一个
XML
文件创建一个域
Define
从一个
XML
文件定义(但不开始)一个域
edit
编辑某个域的
XML
配置
shutdown
关闭一个域
start
开始一个(以前定义的)非活跃的域
reboot
重新启动一个域
suspend
挂起一个域
resume
重新恢复一个域
vncdisplay vnc
显示
===============================================================================
使用
save
备份当前虚拟机状态
virsh save -bypass-cache RedHat /var/lib/libvirt/images/test.img -running
上面这个命令将
RedHat
的当前状态保存到
/opt/vm2_save
文件中。
-running
参数表示下次
restore
回来的时候能够自动启动
RedHat
。
这个命令会导致
RedHat
被关闭。
现在还原:必须先关闭虚拟机
virsh shutdown RedHat
virsh restore /var/lib/libvirt/images/test.img -bypass-cache -running
(还原时不要指定虚拟机名称
===============================================================================
===============================================================================
virsh console ccc(
虚拟机名
)
远程管理虚拟机
:需修改虚拟机下面文件(非宿主机),重启生效
1
、修改
/etc/securetty
到最后添加
ttyS0
echo ttyS0 >> /etc/securetty
2
、修改
/etc/inittab
到最后添加
S0:12345:respawn:/sbin/agetty/ ttyS0 115200
echo "S0:12345:respawn:/sbin/agetty/ ttyS0 115200" >> /etc/inittab
3
、修改
/etc/grub.conf
,如下图所示在
kernel
这一行的末尾,添加
console=ttyS0
(无需换行添加)
===============================================================================
===============================================================================
为虚拟机
增加磁盘空间
增加磁盘的格式为
sda/vda
生成一块新的硬盘
qemu-img create -f raw /data/kvm/diskone.img 10G
将磁盘附加到虚拟机上
virsh attach-disk test
(虚拟机名)
/data/kvm/diskone.img
(硬盘路径)
vdb
(硬盘名)
一:添加硬盘
方法
1
直接修改虚拟机的
XML
文件,这种方式虚拟机要重新
virhs start/create
才可以生效,具体略。
方法
2
用
attach-disk
命令添加
要添加的
LV
卷
/dev/vg01/lv_add01
即时生效,但是虚拟机配置文件不会添加,重启后就没了,如果要将运行状态保存至
XML
文件中,可以用
dumpxml
命令,用之前最好将
XML
做个备份。
ISO
以磁盘方式添加
Disk attached successfully
即时生效,成功后到
ipvs01
中查看
total 3520
-r-xr-xr-x 1 root root 112 Mar 7 2007 <a class="bdcs-inlinelink" href="
http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=autorun.inf
" target="_blank">autorun.inf</a>
-r-xr-xr-x 1 root root 322730 Mar 7 2007 <a class="bdcs-inlinelink" href="
http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=bootfont.bin
" target="_blank">bootfont.bin</a>
dr-xr-xr-x 1 root root 267478 Mar 7 2007 i386
dr-xr-xr-x 1 root root 184 Mar 7 2007 printers
-r-xr-xr-x 1 root root 18809 Mar 7 2007 read1st.htm
-r-xr-xr-x 1 root root 54458 Mar 7 2007 relnotes.htm
-r-xr-xr-x 1 root root 372014 Mar 7 2007 setupenterprise.htm
-r-xr-xr-x 1 root root 2564096 Mar 7 2007 setup.exe
dr-xr-xr-x 1 root root 142 Mar 7 2007 suppor
-r-xr-xr-x 1 root root 10 Mar 7 2007 win51
-r-xr-xr-x 1 root root 10 Mar 7 2007 win51ia
-r-xr-xr-x 1 root root 10 Mar 7 2007 win51ia.sp2
===============================================================================
===============================================================================
添加网卡
方法
1
,修改配置文件,略
方法
2
,
Interface Type Source Model MAC
-------------------------------------------------------
vnet2 bridge br2 virtio 52:54:00:06:88:f4
vnet6 bridge br1 - 52:54:00:8d:de:df
命令修改即时生效,但不会改动虚拟机
XML
文件,用下面命令更新至
xml
进入虚拟机修改网络配置文件,无需重启
DEVICE="eth1" #
改为
eth1
BOOTPROTO="static"
#HWADDR="52:54:00:06:88:F4" #mac
注释掉或者改为上面
list
中的值
IPADDR="10.10.0.90" #
修改
IP
IPV6INIT="yes"
MTU="1500"
NETMASK="255.255.255.0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
#<a class="bdcs-inlinelink" href="
http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=UUID
" target="_blank">UUID</a>="e5b102fb-1fdf-410b-8b59-5fef69b39df9" #
注释掉
UUID
重启后网卡
2
生效
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
Bringing up interface eth1: [ OK ]
===============================================================================
===============================================================================
KVM
动态迁移
1
迁移的主机处于开机状态
Virsh list -all
2
在源宿主机上开启
nfs
服务(也可在加一台
nfs
服务器)
/etc/init.d/nfs restart
3
修改源宿主机
/etc/export
加入
/var/lib/libvirt/images *(insecure,rw,sync,no_root_squash)
重启
nfs /etc/init.d/nfs restart
3
目标宿主机操作:(挂载命令)
mount -t nfs 10.0.6.26
(源宿主机)
:/var/lib/libvirt/images /var/lib/libvirt/images/
4
在源宿主机上执行迁移命令
virsh migrate --live node2 qemu+
ssh://10.0.6.34/system
出现错误
Cannot get interface MTU on 'br0': No such device
解决方法
在目标主机上配置
br0
出现错误
Unable to resolve address 'syxtest' service '49152': Name or service not known
解决方法
Vim /etc/hosts
10.0.6.34
(目标宿主机)
syxtest
(目标宿主机名)
5
在目标主机上看是否迁移成功
虽然启动了
但是还没配置文件
将配置文件从宿主机拷贝过来
路径一致
===============================================================================