Centos7KVM的安装与配置及创建虚拟机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7KVM的安装与配置及创建虚拟机相关的知识,希望对你有一定的参考价值。
我是在VMware Workation上做的实验
进入到系统后,关闭iptables或者firewalld,关闭selinux。并且检查cpu参数是否支持虚拟化:
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl stop iptables
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# systemctl disable iptables
[[email protected] ~]# getenforce
Disabled
首先查看VMware Workation是否支持虚拟化
把红框内打钩即可。
虚拟化开启并安装centos系统,建议centos安装64bit。我的环境用的是centos7。进入系统,首先查看服务器版本以及是否支持虚拟化,可以使用如下命令:
查看系统版本
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
查看服务器是否支持虚拟化
[[email protected] ~]# cat /proc/cpuinfo |grep vmx
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat
出现该信息证明服务器支持虚拟化
安装kvm以及需要的依赖包,使用如下命令:
yum install -y qemu-kvm qemu-key-tools virt-manager libvirt virt-install python-virtinst bridge-utils
以上安装完毕后,我们检测kvm模块是否安装,可以使用如下命令:
[[email protected] ~]# lsmod |grep kvm
kvm_intel 174841 0
kvm 578558 1 kvm_intel
irqbypass 13503 1 kvm
证明kvm模块已安装成功
kvm只是Linux内核的一个模块,不需要安装,只需要加载,加载命令如下:
modprobe kvm
modprobe kvm_intel
也可以如下加载kvm模块,可以使用如下命令:
virsh -c qemu:///system list 此命令需要重启服务器后使用,否则会报错
error: failed to connect to the hypervisor
error: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock‘: No such file or directory
reboot 重启系统
virsh -c qemu:///system list
Id Name State
---------------------------------------------------- 证明kvm安装成功
以上是KVM的安装,下面我们开始来配置KVM并安装一个虚拟机。
因为虚拟机中网络,我们一般都是和公司的其他服务器是同一个网段,所以我们需要把KVM服务器的网卡配置成桥接模式。这样的话KVM的虚拟机就可以通过该桥接网卡和公司内部分其他服务器处于同一网段。
有关网卡的桥接模式,查找相关资料如下:
其实我们在虚拟机搭建的时候,我们最终关心的网卡是: eth0, br0, vnet0,vnet1…
其中eth0是我们服务器原来的物理网卡,而br0是我们虚拟出来的网桥设备,而vnetXXX就是桥接映射到虚拟机里面用到的网卡。
当配置完毕之后,我们使用ifconfig命令查看起来的话,会发现eth0是没有IP地址,而br0仿佛是虚拟出来的一个原来eth0的访问接口,它具有IP地址,可以代替原来的eth0被访问。
而vnetXX的地址可以在建立虚拟机之后在虚拟机里面配置,桥接后可以被外部访问。
注意:将已有的物理网卡添加到网桥,此时物理网卡eth0工作于混杂模式,所以不需要IP地址,因为网桥是工作在链路层的。br0就提供了IP地址,用来模拟原来的物理网卡的访问接口.
关于混杂模式:
根据以太网的原理,包是在整个子网里面广播发送的,当网卡发现这个数据帧不是发给自己的也不是广播包的时候,就直接把它丢掉,而不传送到上层内核去处理;
而当网卡处于混杂模式的时候,网卡就不会丢掉帧,而是全部向上提交到内核,让内核处理这些帧结构。通常的,混杂模式使用来进行网络调试的,不是正常的工作状态。
配置桥接网卡,我们可以通过现在服务器的网卡eth0来配置。把eth0网卡的配置文件复制一份并命令为br0,可以通过如下命令进行。
安装完KVM之后,需要配置一下网卡,增加一个桥接网卡:
编辑网卡:
拷贝当前的网卡文件之后配置
cd /etc/sysconfig/network-scripts
cp ifcfg-ens32 ifcfg-br0
分别配置两个网卡
[[email protected] network-scripts]# vi ifcfg-ens32
BOOTPROTO="static"
DEVICE="ens32"
ONBOOT="yes"
IPADDR=192.168.254.133
GATEWAY=192.168.254.2
DNS1=114.114.114.114
DNS2=8.8.8.8
BRIDGE=br0
TYPE=Ethernet
[[email protected] network-scripts]# vi ifcfg-br0
TYPE=Bridge
BOOTPROTO="static"
DEVICE="br0"
ONBOOT="yes"
IPADDR=192.168.254.133
GATEWAY=192.168.254.2
DNS1=114.114.114.114
DNS2=8.8.8.8
重启网卡使之生效。
systemctl restart network.service
重启完服务后,执行ip add命令可以看到此时网卡ens32的IP到br0网卡上了,这样我们的网卡就配置完成了:
[[email protected] network-scripts]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 00:0c:29:9a:86:d2 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:32:07:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:32:07:69 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:9a:86:d2 brd ff:ff:ff:ff:ff:ff
inet 192.168.254.133/24 brd 192.168.254.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::18bc:24ff:fe2a:f4bc/64 scope link
valid_lft forever preferred_lft forever
可以看到两个网卡
[[email protected] ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c299a86d2 no ens32 我们配置的桥接网卡
virbr0 8000.525400320769 yes virbr0-nic NAT模式的网卡
检查服务进程
systemctl start libvirtd # 启动libvirtd服务
[[email protected] ~]# ps aux |grep libvirtd
root 968 0.0 0.3 1220292 14664 ? Ssl 16:20 0:00 /usr/sbin/libvirtd
root 2587 0.0 0.0 112720 984 pts/0 R+ 16:52 0:00 grep --color=auto libvirtd
开启转发功能并修改ulimit参数
echo 1 > /proc/sys/net/ipv4/ip_forward
/bin/echo " soft nproc 65500" >>/etc/security/limits.conf
/bin/echo " hard nproc 65500" >>/etc/security/limits.conf
/bin/echo " soft nofile 65500" >>/etc/security/limits.conf
/bin/echo " hard nofile 65500" >>/etc/security/limits.conf
接下来就可以创建镜像和虚拟机
将服务成功启动后,我们就可以使用KVM安装虚拟机了,首先需要准备一个操作系统的ios镜像文件:
创建ISO镜像:
dd if=/dev/cdrom of=/opt/CentOS-7.1.iso
[[email protected] ~]# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso
记录了1855488+0 的读入
记录了1855488+0 的写出
950009856字节(950 MB)已复制,28.0536 秒,33.9 MB/秒
[[email protected] ~]# cd /opt/
[[email protected] opt]# ll
总用量 1861932
-rw-r--r-- 1 root root 9858504 6月 21 02:29 apache-tomcat-9.0.10.tar.gz
-rw-r--r-- 1 root root 950009856 8月 22 17:01 CentOS-7.1.iso
也可以创建不同的镜像
[roo[email protected] ~]# dd if=/dev/cdrom of=/opt/CentOS-7.3.iso
记录了1855488+0 的读入
记录了1855488+0 的写出
950009856字节(950 MB)已复制,23.4732 秒,40.5 MB/秒
[[email protected] kvmdir]# cd /opt/
[[email protected] opt]# ls |grep CentOS
CentOS-7.1.iso
CentOS-7.3.iso
创建虚拟机:
virt-install --name Centos --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/kvmdir/test.img --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
Starting install...
Creating domain... | 0 B 00:00:07
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
各参数说明:
--name Centos ###虚拟机名字
--virt-type kvm ###虚拟机类型
--ram 1024 ###虚拟机内存
--cdrom=/opt/CentOS-7.1.iso ###镜像地址
--disk path=/kvmdir/test.img ###虚拟机安装位置
--network=default ###默认网络配置
--graphics vnc,listen=0.0.0.0 ###监听所有IP
--vcpus 5 ###可以使用cpu个数
--vcpus 5,maxcpus=10 ###可以使用5颗cpu,最大支持10颗cpu
打开VNC客户端,输入本机ip:5900(第一个默认就是5900,第二个是5901,以此类推),可连接到所通过vmvare创建的kvm虚拟机上,然后就是安装Centos7的过程。
参考文档(里面包括配置及管理)
https://www.cnblogs.com/xiaoren112/p/8270048.html
以上是关于Centos7KVM的安装与配置及创建虚拟机的主要内容,如果未能解决你的问题,请参考以下文章