一、准备工作:
在安装和配置kvm虚拟机之前,首先确保kvm软件已经被正确安装,如果没有安装,请参考如下几步操作:
第一步:检查CPU是否支持vmx相关指令,如果执行结果中有vmx相关的关键字,则为支持;
cat /proc/cpuinfo |grep vmx
第二步:安装kvm配套软件
yum install qemu-kvm libvirt virt-install bridge-utils -y
第三步:检查kvm服务已经正常启动,如果执行结果有kvm_xxx(CPU系列)、kvm则说明kvm服务已经启动
lsmod | grep kvm
如果未启动,可通过如下命令启动:
systemctl start libvirtd
如果希望设置为开机自动启动,需通过如下命令添加到开机启动的服务列表中:
systemctl enable libvirtd
查看kvm服务状态,可通过如下命令:
systemctl status libvirtd
及如下命令查看是否开机启动
systemctl is-enabled libvirtd
二、为虚拟机配置桥接网卡
桥接网卡的配置参数的含义请参考链接https://www.centos.org/docs/4/html/rhel-rg-en-4/s1-networkscripts-interfaces.html
本次配置的kvm虚拟机希望采用DHCP方式获取IP地址,为此先通过vi命令在/etc/sysconfig/network-scripts下创建桥接网卡的配置文件ifcfg-br0:
vi /etc/sysconfig/network-scripts/ifcfg-br0
然后在ifcfg-br0文件中录入如下内容并保存后退出
TYPE=Bridge PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes NAME=br0 DEVICE=br0 ONBOOT=yes IPV6INIT=no
之后,对br0绑定的物理网卡需要修改配置,本次绑定的是eno1网卡(注:不同环境下绑定哪个网卡根据机器的需求,CentOS7之前的网卡名通常为eth0、eth1这样的命名,单网卡的情况下是eth0),则修改eno1的配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-eno1
在其中追加一句BRIDGE=br0:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes NAME=eno1 UUID=abeaaa94-9abc-43b8-9a15-5267f5cb2f87 DEVICE=eno1 ONBOOT=yes IPV6INIT=no BRIDGE=br0
以上配置完成后,为了保证配置生效,应当通过以下命令重启网络服务:
systemctl restart network
通过以下命令查看桥接状态
brctl show
三、开始安装虚拟机
假定所有的操作都在/var目录下,CentOS安装源为文件为/var/iso/CentOS-7-x86_64-DVD-1708.iso,虚拟机文件创建为/var/vms/centos_vm0/vm0.qcow2,网桥使用br0,相应的操作命令如下:
virt-install --virt-type=kvm --name=centos_vm0 --vcpus=2 --memory=1024 --location=/var/iso/CentOS-7-x86_64-DVD-1708.iso --disk path=/var/vms/centos_vm0/vm0.qcow2,size=64,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force
注:上述命令是在一条命令行中执行的;执行了安装后,如果遇到配置错误之类的意外退出,希望重新安装,可通过如下步骤:
第一步:查看当前运行的虚拟机:
virsh list --all
第二步:关闭当前运行的虚拟机,假定虚拟机名为centos_vm0,则操作命令为:
virsh shutdown centos_vm0
注:类似的命令格式,启动虚拟机的命令如:
virsh start centos_vm0
强制关闭虚拟机:
virsh destroy centos_vm0
设置开机启动虚拟机
virsh autostart centos_vm0
第三步:删除虚拟机:
virsh undefine centos_vm0
第四步:清除虚拟机文件
rm /var/vms/centos_vm0/vm0.qcow2
执行了virt-install安装上述命令后,系统开始安装,并之后进入如下界面时设置语言、时区、网络、管理员密码等:
================================================================================ Installation 1) [x] Language settings 2) [!] Time settings (English (United States)) (Timezone is not set.) 3) [!] Installation source 4) [!] Software selection (Processing...) (Processing...) 5) [!] Installation Destination 6) [x] Kdump (No disks selected) (Kdump is enabled) 7) [ ] Network configuration 8) [!] Root password (Not connected) (Password is not set.) 9) [!] User creation (No user will be created) Please make your choice from above ['q' to quit | 'b' to begin installation | 'r' to refresh]: [anaconda] 1:main* 2:shell 3:log 4:storage-lo> Switch tab: Alt+Tab | Help: F1
1、进入菜单2)Time settings后设置时区的步骤:
Time settings Timezone: not set