KVM(Kernel-based Virtual Machine)是支持虚拟化扩展(Intel VT 或 AMD-V技术)x86硬件的Linux完全虚拟化解决方案。它包括了一个可加载的内核模块kvm.ko,提供了核心的虚拟化架构以及一个处理器特定模块(kvm-intel.ko或kvm-amd.ko)。
使用KVM,用户可以运行多个无需修改的Linux或Windows虚拟机。每个虚拟机有自己私有的虚拟硬件:网卡、磁盘、显卡等等。
系统化境
iptables off
selinux disabled
安装kvm虚拟化
查看cpu是否支持全虚拟化
1 | grep -E '(vmx|svm)' /proc/cpuinfo |
安装虚拟化组件
1 | yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils |
启动并设置开机自启动虚拟化服务
1 | systemctl start libvirtd |
检查虚拟化模块是否加载
1 | lsmod | grep kvm |
安装图形界面
1 | yum -y groupinstall "GNOME Desktop" |
图形化管理工具
1 | virt-manager |
配置桥接网络
拷贝一个br0网络配置文件
cd /etc/sysconfig/network-scripts/
cp ifcfg-em1 ifcfg-br0
配置ifcfg-em1
1 | TYPE=Ethernet |
配置ifcfg-br0
1 | TYPE=Bridge |
重启网络
1 | systemctl restart network |
查看br0状态
1 | ip addr show br0 |
创建一个存储池
centos7操作系统安装的时候,自动分区时,大部分空间划分给/home分区了,默认的存储在/var/lib/libvirt/images目录下,在创建虚拟机之前我需要创建一个存储池;规划在/home/kvm/images 目录下
新建目录并设置权限
1 | mkdir -p /home/kvm/images;chown root:root /home/kvm/images;chmod 755 /home/kvm/images; |
创建存储池
1 | #定义一个存储池绑定目录 |
创建一个数据卷
1 | virsh vol-create-as --pool StoragePool --name sql_server_2012.qcow2 100G --format qcow2 |
查看存储卷信息
1 | virsh vol-info --pool StoragePool sql_server_2012.qcow2 |
删除一个数据卷
1 | virsh vol-delete --pool StoragePool sql_server_2012.qcow2 |
创建虚拟机
命令行创建虚拟机
1 | virt-install --name sql_server_2012 --memory 4096 --vcpus sockets=1,cores=2,threads=2 --disk device=cdrom,path=/home/cn_windows_server_2012_r2_x64_dvd_2707961.iso --disk path=/home/kvm/images/sql_server_2012.qcow2 --network bridge=br0,model=e1000 --noautoconsole --accelerate --hvm --graphics vnc,listen=0.0.0.0,password=123456,port=20007 --cpu host-passthrough --autostart |
图形界面创建安虚拟机
1 | virt-manager |
(过程略)
virtsh 常用指令
1)virsh list 列出当前虚拟机列表,不包括未启动的
2)virsh list –all 列出所有虚拟机,包括所有已经定义的虚拟机
3)virsh destroy vm-name 关闭虚拟机
4)virsh start vm-name 启动虚拟机
5)virsh edit vm-name 编辑虚拟机xml文件
6)virsh undefine vm-name 删除虚拟机
7)virsh shutdown vm-name 停止虚拟机
8)virsh reboot vm-name 重启虚拟机
9)virsh autostart vm-name 虚拟机随宿主机启动
virsh pool与vol命令帮助
1 | Storage Pool (help keyword 'pool') |
参考:
http://www.linuxtechi.com/install-kvm-hypervisor-on-centos-7-and-rhel-7/
http://wangying.sinaapp.com/archives/1893
http://wangying.sinaapp.com/archives/1914