各种虚拟化的软件品牌与服务
VMware:VMware Workstation vSphere
Microsoft: VirtuaLPC Hyper-V
RenHat:KVM RHEV
Citrix:Xen
Oracle: Oracle VM VirtualBox
其中KVM和vSphere这两种属于企业级的服务我们今天了解的是KVM服务
KVM是linux内核的模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V ,内存的相关如intel的EPT和AMD的PVI技术
虚拟机的组成:内核虚拟化模块(KVM)
系统设备仿真(QEMU)
虚拟机管理程序(LIBVIRT)
一个xml文件(虚拟机配置文件)在/etc/libvirt/qemu/
一个磁盘镜像文件(虚拟机的硬盘)在/var/libvirt/images/
安装kvm虚拟化服务平台需要的软件
qemu-kvm 为kvm提供底层仿真支持
libvirt-daemon 守护进程,管理虚拟机
libvirt-client 用户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu libvirtd连接qemu的驱动
非必要软件
virt-iinstall 系统安装工具
virt-manager 图形管理工具
virt-v2v 虚拟机迁移工具
virt-p2v 物理机迁移工具
[root@localhost ~]#yum -y install qemu-kvm libvirt-daemon libvt-daemon-driver-qemu libvirt-client
[root@localhost ~]# systemctl start libvirtd.service
命令合适:virsh 控制指令 [虚拟机名称] [参数]
列出虚拟机
[root@room9pc01 ~]# virsh list --all 列出所有
Id 名称 状态
----------------------------------------------------
1 db1 running
2 web1 running
3 test running
4 node5 running
- tedu_node01 关闭
- win2008 关闭
[root@room9pc01 ~]# virsh list 列出开启的虚拟机
Id 名称 状态
----------------------------------------------------
1 db1 running
2 web1 running
3 test running
4 node5 running
[root@room9pc01 ~]#
启动虚拟机
[root@room9pc01 ~]# virsh start db1
域 db1 已开始
停止虚拟机
[root@room9pc01 ~]# virsh shutdown db1
域 db1 被关闭
重启虚拟机
[root@room9pc01 ~]# virsh reboot web1
域 web1 正在被重新启动
强制停止虚拟机
[root@room9pc01 ~]# virsh destroy db1
域 db1 被删除
console 真机连接虚拟机
[root@room9pc01 ~]# virsh console web1
连接到域 web1
换码符为 ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64
localhost login: root
Password:
edit 修改虚拟机的配置
[root@room9pc01 ~]# virsh edit web1
autostart 设置虚拟机自启动
[root@room9pc01 ~]# virsh autostart web1
域 web1标记为自动开始
domiflist 查看虚拟机网卡信息
[root@room9pc01 ~]# virsh domiflist web1
接口 类型 源 型号 MAC
-------------------------------------------------------
vnet1 bridge vbr virtio 52:54:00:86:c5:cf
domblklist 查看虚拟机硬盘信息
[root@room9pc01 ~]# virsh domblklist web1
目标 源
------------------------------------------------
vda /var/lib/libvirt/images/web1.img
virsh 虚拟网络管理 和 管理虚拟机的区别就一个 选项前面家 net
virsh net-list [–all] 列出虚拟机网络
net-statr 启动虚拟交换机
net-destroy 强制停止虚拟交换机
net-define 根具xml文件 创建虚拟网络
net-undefine 删除一个细腻网络设备
net-edit 修改虚拟交换机的配置
net-autostatr 设置虚拟机开机自启
命令都一样,这里不多说了
命令格式:qemu-img 命令 参数 块问价名称 大小
create 创建一个磁盘
convert 转换磁盘格式
info 查看磁盘信息
resize 扩容磁盘空间
[root@room9pc01 images]# qemu-img create -b .node_base.qcow2 -f qcow2 yxt.img 20G
Formatting 'yxt.img', fmt=qcow2 size=21474836480 backing_file='.node_base.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[root@room9pc01 images]# ls
content lost+found tedu-wallpaper-01.png web1.img
db1.img node5.img test.img win.img
iso tedu_node01.img virt yxt.img
[root@room9pc01 images]# qemu-img info yxt.img
image: yxt.img
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 196K
cluster_size: 65536
backing file: .node_base.qcow2 后端盘位置
Format specific information:
compat: 1.1
lazy refcounts: false
[root@room9pc01 images]# vim /etc/libvirt/qemu/yxt.xml
yxt
1524000
1524000
2
hvm
destroy
restart
restart
/usr/libexec/qemu-kvm
[root@room9pc01 images]# virsh define /etc/libvirt/qemu/yxt.xml
[root@room9pc01 images]# virsh list --all
Id 名称 状态
----------------------------------------------------
2 web1 running
3 test running
4 node5 running
- db1 关闭
- tedu_node01 关闭
- win2008 关闭
- yxt 关闭
运行虚拟机yxt
[root@room9pc01 images]# virsh start yxt
域 yxt 已开始
连接虚拟机yxt
[root@room9pc01 images]# virsh console yxt
连接到域 yxt
换码符为 ^]