以下使用都基于Centos7.2进行的操作
流程:
1、开启虚拟化技术
2、下载KVM相关组件
3、建立(系统安装)磁盘
4、安装系统
5、安装完毕后,查看配置
6、进入管理台,查看虚拟机状态及网络状态。
7、进入虚机,并查看网络,及配置网络
8、复制虚拟机
重要提示:
1、Centos7以上环境需要关闭NetworkManager服务,不让将会出现不明错误
#systemctl stop NetworkManager
#systemctl disable NetworkManager
2、启动起来的虚拟机是否可正常上网需观察route表。
一、宿主机开启虚拟技术
使用kvm前提:CPU支持虚拟技术,且在BIOS上开启该项功能。
#grep -E '(vmx|svm)' /proc/cpuinfo
使用以上命令,如果其中输出有VMX或SVM,既表明支持虚拟化技术。
备注:进入BIOS中选择Intel VirtualTechnology这一项,默认disabled(关闭),选择enabled(开启)就可以了
验证方法:在完成第2、3的基础上,第4步安装系统时不出现异常提示
二、下载KVM相关组件
yum安装KVM及所需组件
#yum -y install libvir kvm virt-manager virt-install bridge-utils libvirt qemu-kvm virt-viewer
#systemctl start libvirtd
验证方式:#virsh 可以进入虚机控制台
三、建立(系统安装)磁盘
#qemu-img create /opt/kvm/centos7.img 50G
#qemu-img create -f qcow2 -o preallocation=metadata /opt/kvm/centos7.qcow2 50G (支持快照)
以上两条命令都表示在/opt/kvm下创建50G系统盘。
第一是以默认格式img创建一个50G系统盘,测试使用时推荐使用。
第二条以qcow2格式创建一个50G系统盘,推荐在正式环境中使用,支持快照等高级功能,该功能将在拓展篇中记录。
验证方法:#ls -lh /opt/kvm/centos7.img 看是否显示占用空间与输入的一致
四、安装操作系统
#virt-install -n Centos --ram=1024 --disk centos7.img --location CentOS-6.7-x86_64-bin-DVD1.iso --graphics none --check all=off --network network=default --vcpus=1 --extra-args='console=tty0 console=ttyS0'
注:
以上命令在当前/opt/kvm目录下操作,所有文件都为使用绝对路径-n --指定系统名称
--ram --指定内存大小
--disk --指定系统盘
--location --指定安装的镜像盘路径、名称
--network network=default --指定使用的网卡
--vcpus=1 --指定CPU核实
--check all=off --可删除
--check path_in_use=off 或 --check all=off 选项覆盖
--extra-args='console=tty0 console=ttyS0' 这串表示可以通过console的方式连接已经创建的虚拟机。
--graphics none这一串是表示在把图形化输出到命令行终端上。
另外一种把图形化输出到命令行操作终端的方法是修改系统上的/boot/grub/grub.conf文件,在kernel后面加上console ttyS0,vim /etc/securetty,添加ttyS0,然后重启系统。
验证方法:
1)安装过程无报错、输入#virsh list --all可以查看到已安装的系统信息。
2)virsh start Centos
3)virsh console Centos
4)成功进入虚拟系统
五、查看配置
/etc/libvirt/qemu下的Centos.xml为虚机配置。(1个虚机对应1个该配置文件)
主要:第9、10、41、74、75、76行信息
/etc/libvirt/qemu/networks/default.xml为默认网络配置文件。(1张虚拟网卡对应一个该配置文件)
主要:第9、10、13、14、16行信息
六、进入管理台,查看虚拟机状态及网络状态
#virsh 进入KVM虚机管理台 quit/exit则退出
#list --all 查看所有虚拟及状态
#net-list --all 查看所有虚拟网卡及状态
#start centos7.0 开启虚机
#virsh net-start default 启动默认虚拟网卡
#console centos7.0 进入虚机
七、进入虚机,并查看网络,及配置网络
详情请查看网络章
八、复制虚拟机
1、拷贝系统文件(硬盘)并更改名称,如 #cp 1.img 2.img
2、拷贝系统配合文件并更改名称,及修改重要变量。
#cp /etc/libvirt/qemu/holle1.xml /etc/libvirt/qemu/holle2.xml
#vi /etc/libvirt/qemu/holle2.xml
删除第10、71行。 修改9、41行对应信息。
备注:重点为更改名称、删除UUID这一类唯一标识信息。UUID删除后将自动生产一个新的,也可以使用脚本生产并替换。
3、进入virsh
#define /etc/libvirt/qemu/holle2.xml #添加虚拟机
#list --all #查看是否添加成功
#start holle2 #启动虚拟机
#console holle2 #进入虚拟机
4、修改网络
ifconfig -a 看获取到的网卡名
#cd /etc/sysconfig/network-scripts/
#mv ifcfg-eth2 ifcfg-eth3 #网卡名更改为对应名称
#vi ifcfg-eth3 #修改对应名称,清楚UUID等唯一标识
#ifup ifcfg-eth3 #重启单个网卡
常用命令:
vm表示虚拟机名,进入虚拟控制台可以使用Tab补全命令,在bash中不支持。
查看所有已定义虚机:list --all
查看所有已定义网卡:net-list --all
进入已开启的虚机:console vm
开机:virsh start vm
关机:virsh shutdown vm 如果不生效,需要在 vm 中执行:yum install -y acpid
强关:virsh destroy vm
删除:virsh undefine vm
定义:virsh define vm
挂起:virsh suspend vm
恢复:virsh resume vm
参考资料:
1、kvm使用入门详解
http://www.cnblogs.com/liwei0526vip/archive/2016/12/20/6201582.html
2、使用KVM虚拟win系统
http://www.cnblogs.com/nulige/articles/6602963.html
3、Linux中使用KVM
http://lvmy.iteye.com/blog/1297409
4、KVM虚拟机网络配置
http://blog.csdn.net/hzhsan/article/details/44098537/