linux下配置和安装KVM虚拟机的步骤
python虚拟机最近要在外⽹搞⼀套监控系统,正好有⼀台服务器配置⽐较⾼,也没跑什么重要的业务,就拿来划了⼀个KVM虚拟机,可能是平时各种虚拟机⽤的⽐较多,配置起来感觉⽐想象中简单的多,简单记录下过程
准备⼯作
宿主机为centos 6.8 64位,检查宿主机CPU是否⽀持虚拟化:
cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l;
结果⼤于0表⽰⽀持
安装kvm
KVM核⼼软件包:
复制代码代码如下:
yum install kvm libvirt python-virtinst qemu-kvm virt-viewer bridge-utils
如果服务器上有桌⾯环境,想使⽤图形界⾯管理器virt-manager,可以安装完整的KVM环境:
复制代码代码如下:
yum groupinstall Virtualization 'Virtualization Client' 'Virtualization Platform' 'Virtualization Tools'
验证内核模块是否加载:
lsmod | grep kvm
启动虚拟机管理接⼝服务:
/etc/init.d/libvirtd start
设置开机启动:
chkconfig libvirtd on
启动libvirtd后,会⾃动创建了⼀个⽹卡,并启动dnsmasq服务,⽤来为虚拟机分配IP地址
创建虚拟机
下载虚拟机要安装的ISO系统镜像⽂件,之后需创建存储池,指定在宿主机上虚拟机磁盘的存储位置,创建存储⽬录:
mkdir -p /opt/kvm
定义⼀个储存池和绑定⽬录:
virsh pool-define-as vmspool --type dir --target /opt/kvm
建⽴并激活存储池:
virsh pool-build vmspool
virsh pool-start vmspool
使⽤存储池创建虚拟机,并通过vnc连接:
virt-install \
--hvm \ #全虚拟化
--name=zabbix \#虚拟机名字
--ram=4096 \ #分配内存
-
-vcpus=4 \ #分配CPU数
--cdrom=/opt/kvm/iso/CentOS-7-x86_64-DVD-1511.iso \ #使⽤的ISO
--virt-type=kvm \ #虚拟机类型
--disk path=/opt/kvm/zabbix.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=100 \ #磁盘⼤⼩,格式
--network netwrok=default \ #⽹络设置,defalut为NAT模式
--accelerate \ #KVM内核加速
--graphics vnc,listen=0.0.0.0,port=5922,password=123123\ #vnc配置
--force \
--autostart
之后使⽤vnc客户端连接宿主机IP:5922,即可使⽤图形安装系统;也可以选择nographics模式,⽆需vnc在命令⾏下安装,建议使⽤vnc
安装完成后会⽣成:
虚拟机的配置⽂件:/etc/libvirt/l
虚拟硬盘⽂件:/opt/kvm/zabbix.qcow2
NAT⽹络配置⽂件:/etc/libvirt/qemu/l
配置⽹络
KVM可以配置两种:
NAT⽹络: 虚拟机使⽤宿主机的⽹络访问公⽹,宿主机和虚拟机能互相访问,但不⽀持外部访问虚拟机
桥接⽹络:虚拟机复⽤宿主机物理⽹卡,虚拟机与宿主机在⽹络中⾓⾊完全相同,⽀持外部访问
配置NAT⽹络
默认会有⼀个叫default的NAT虚拟⽹络,查看NAT⽹络:
virsh net-list --all
如果要创建或者修改NAT⽹络,要先编辑l:
virsh net-edit default
重新加载和激活配置:
virsh net-define /etc/libvirt/qemu/l
启动NAT⽹络:
virsh net-start default
virsh net-autostart default
启动NAT后会⾃动⽣成⼀个虚拟桥接设备virbr0,并分配IP地址,查看状态:
brctl show
正常情况下libirtd启动后就会启动virbr0,并⾃动添加IPtables规则来实现NAT,要保证打开ip_forward,在/f中:
net.ipv4.ip_forward = 1
sysctl -p
启动虚机并设置⾃动获取IP即可,如果想⼿动指定虚拟机IP,要注意配置的IP需在NAT⽹段内
配置桥接⽹络
系统如果安装了桌⾯环境,⽹络会由NetworkManager进⾏管理,NetworkManager不⽀持桥接,需要关闭NetworkManger:
chkconfig NetworkManager off
chkconfig network on
service NetworkManager stop
service network start
不想关闭NetworkManager,也可以在ifcfg-br0中⼿动添加参数"NM_CONTROLLED=no"
创建⽹桥:
virsh iface-bridge eth0 br0
创建完后ifconfig会看到br0⽹桥,如果eth0上有多个IP,更改下相应的⽂件名,如:ifcfg-eth0:1改为ifcfg-br0:1
编辑虚拟机的配置⽂件,使⽤新的⽹桥:
virsh edit zabbix
到⽹卡配置,改为:
<interface type='bridge'>
<mac address='52:54:00:7a:f4:9b'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
我是⽤的br0,为虚拟机添加多块⽹卡只需复制多个interface,并确保mac address和PCI地址不同即可
重新加载配置:
virsh define /etc/libvirt/l
重启虚拟机:
virsh shutdown zabbix
virsh start zabbix
之后使⽤VNC连接虚拟机并设置下⽹络即可
常⽤操作
KVM相关操作都通过vish命令完成,参数虽然多,但是功能⼀⽬了然,很直观
创建虚拟机快照:
virsh snapshot-create-as --domain zabbix --name init_snap_1
也可以简写成:
virsh snapshot-create-as zabbix init_snap_1
快照创建后配置⽂件在/var/lib/libvirt/qemu/snapshot/zabbix/init_l
查看快照:
snapshot-list zabbix
删除快照:
snapshot-delete zabbix init_snap_1
排错
1、ERROR Format cannot be specified for unmanaged storage.
virt-manager 没有到存储池,创建储存池即可
2、KVM VNC客户端连接闪退
使⽤real vnc或者其它vnc客户端连接kvm闪退,把客户端设置中的ColourLevel值设置为rgb222或full即可3、virsh shutdown ⽆法关闭虚拟机
使⽤该命令关闭虚拟机时,KVM是向虚拟机发送⼀个ACPI的指令,需要虚拟机安装acpid服务:
yum -y install acpid && /etc/init.d/acpid start
否则只能使⽤virsh destroy 强制关闭虚拟机
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论