kvm 安装虚拟机

===============================================================================
安装依赖和相关组件
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 \
--os-variant rhel6 -l http://centos6.3jia5.com/ \
--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 
[ root@KVM   ~]#virsh attach-disk kvm_ipvs01 /dev/vg01/lv_add01 vdc 
即时生效,但是虚拟机配置文件不会添加,重启后就没了,如果要将运行状态保存至 XML 文件中,可以用 dumpxml 命令,用之前最好将 XML 做个备份。
[ root@KVM   ~]#virsh dumpxml kvm_ipvs01  >kvm_ipvs01.xml 
ISO 以磁盘方式添加
[ root@KVM  qemu]# virsh attach-disk KVM_ipvs01 /root/tasks/win2003.iso vdd
Disk attached successfully
即时生效,成功后到 ipvs01 中查看
[ root@KVM_ipvs01  ~]# mount /dev/vdd /mnt/
[ root@KVM_ipvs01  ~]# cd /mnt/
[ root@KVM_ipvs01  mnt]# ll
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
[ root@KVM   ~]#virsh attach-interface SNKVM_ipvs01 --type bridge --source br1
[ root@KVM   ~]#virsh domiflist SN349_ipvs01   查看 vnet6 为新增的网卡
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
[ root@KVM   ~]#virsh dumpxml kvm_ipvs01 >kvm_ipvs01.xml
进入虚拟机修改网络配置文件,无需重启
[ root@ipvs01  network-scripts]# cp -a ifcfg-eth0 ifcfg-eth1
[ root@ipvs01  network-scripts]# vi ifcfg-eth1
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 生效
[ root@KVM_ipvs01  network-scripts]# /etc/init.d/network restart
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
在源宿主机上开启 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
目标宿主机操作:(挂载命令)
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 在目标主机上看是否迁移成功
虽然启动了   但是还没配置文件
将配置文件从宿主机拷贝过来   路径一致
===============================================================================
 



猜你喜欢

转载自blog.csdn.net/u010842538/article/details/80343763