kvm是linux下的一款虚拟机软件,KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
众所周知,运行一个操作系统需要传统的五大部件。
bashroot@mykernel:/zz/images # qemu-img create -f qcow2 -o preallocation=metadata,size=80G c7_pxr.img
bashroot@mykernel:/zz/images # virt-install --name c-pxr-7-2 --ram 2048 --vcpus 4 --disk /zz/images/c7_pxr.img --cdrom CentOS1511.iso --network bridge=br-int --graphics vnc,listen=0.0.0.0
#/zz/images/c7_pxr.img 为1中创建的虚拟机
# --cdrom CentOS1511.iso 指定使用的系统镜像文件
# --network 指定网络模型
# --graphics 控制台链接模式
# listen 监听的地址
bashroot@mykernel:/zz/images # virsh list
Id Name State
----------------------------------------------------
15 c-pxr-7-2 running
# virsh console c-pxr-7-2
#说明1:此处建议使用虚拟机的名称进行连接,因为每次destroy后在start虚拟机,其id会变化。
#说明2:如果此处敲回车无效需要进入虚拟机内运行。
#
## systemctl enable serial-getty@ttyS0.service
## systemctl start serial-getty@ttyS0.service
bash#a.添加网卡
root@mykernel:/zz/images # virsh attach-interface c-pxr-7-2 bridge br-int
#加--config参数,直接写入配置文件,永久生效,重启生效。
root@mykernel:/zz/images # virsh attach-interface c-pxr-7-2 bridge br-int --config
#其中br-int 是宿主机上的桥
#b.删除网卡
root@mykernel:/zz/images # virsh detach-interface c-pxr-7-2 bridge --mac 52:54:00:c1:a1:61
#加--config参数,直接写入配置文件,永久生效,重启生效。
root@mykernel:/zz/images # virsh detach-interface c-pxr-7-2 bridge --mac 52:54:00:c1:a1:61 --config
#--mac 是虚拟机中的网卡mac地址
bash#a.命令行添加磁盘
#创建需要添加的磁盘
root@mykernel:/zz/images # qemu-img create -f qcow2 -o size=20G,preallocation=metadata /images/test.qcow2
#添加磁盘到虚拟机中
root@mykernel:/zz/images # virsh attach-disk c-pxr-7-2 /images/test.qcow2 vdb --targetbus virtio
#vdb为磁盘在虚拟机内显示的名称,不能与虚拟机中已经有的磁盘重名。
#b.删除磁盘
root@mykernel:/zz/images # virsh detach-disk 15 vdb
#以上的修改都是临时生效的,重启或者克隆的虚拟机将会被销毁。所以若要永久有效,需要重新保存下配置文件。
root@mykernel:/zz/images # virsh dumpxml c-pxr-7-2 > /etc/libvirt/qemu/c-pxr-7-2.xml
bash##命令行克隆虚拟机
#a.关闭虚拟机
root@mykernel:/zz/images # virsh destroy 15
#b. 克隆
root@mykernel:/zz/images # virt-clone -o c-pxr-7-2 -n c7_clone -f /zz/images/c7_pxr_clone1.img
#-o是源虚拟机名称
#-n是新虚拟机名称
##说明:修改网卡设备文件/etc/udev/rules.d/70-persistent-net.rules,或者直接将其删除,再重启克隆的目的虚拟机
bash#命令行快照与恢复
#a.创建快照
root@mykernel:/zz/images # virsh snapshot-create-as c-pxr-7-2 kz kuaizhao
##kz:快照别名
##kuaizhao:描述
#b. 查看虚拟机快照
root@mykernel:/zz/images # virsh snapshot-list c-pxr-7-2
##running 表示运行时建立的快照
##shutoff 表示虚拟机关闭时的快照
#c.快照恢复(回滚)
root@mykernel:/zz/images # virsh snapshot-revert --domain c-pxr-7-2 kz
##说明1:内置磁盘快照可以随意回滚,比如先回滚到sn1,在回滚到sn3都是OK的
##说明2:注意一点是虚拟机开启状态下,不能回滚到State为running的快照点
#d.快照删除
root@mykernel:/zz/images # virsh snapshot-delete c-pxr-7-2 kz
或者
root@mykernel:/zz/images # virsh snapshot-delete --domain c-pxr-7-2 --snapshotname kz
bash#a. 启动虚拟机
root@mykernel:/zz/images # virsh start vm_name
##vm_name 可以使用virsh list –all 命令查看到
#b.删除虚拟机和磁盘
root@mykernel:/zz/images # virsh undefine centos7.2 –remove-all-storage
#c.编辑虚拟机的配置文件
root@mykernel:/zz/images # virsh edit c-pxr-7-2
#d.导出虚拟机配置文件
root@mykernel:/zz/images # virsh dumpxml c-pxr-7-2 > /kvm/config/c7.xml
#e.进入Virtual Machine Manager管理界面
root@mykernel:/zz/images # virt-manager
#f.关闭虚拟机
root@mykernel:/zz/images # virsh destroy c-pxr-7-2
在windows上链接虚拟机需要安装xmanager套件。 如果键盘失灵请检查相关配置。
本文作者:mykernel
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!