设为首页 收藏本站
查看: 2210|回复: 2

[经验分享] KVM虚拟化配置管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-23 09:21:25 | 显示全部楼层 |阅读模式
KVM虚拟化的特性
嵌入到linux正式kernel,提供兼容性
代理级资源调用,提供性能
虚拟机就是一个进程,内存易于管理
可以实现服务器虚拟化  桌面虚拟化 应用虚拟化

下面开始安装和配置管理KVM
查看系统版本、内核版本
[iyunv@kvm ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[iyunv@kvm ~]# uname -r
3.10.0-327.el7.x86_64

查看系统是否支持KVM虚拟化
wKioL1is_PSzF9oRAABOJA_Mh5Q807.png
开启cpu虚拟化才可以查看上面支持虚拟化的标志


kvm安装
[iyunv@kvm ~]# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y
qemu-kvm是用户态的一个程序


创建一台虚拟机--磁盘
[iyunv@kvm ~]# qemu-img create -f raw /opt/CentOS-7.2-x86_64.raw 10G
Formatting '/opt/CentOS-7.2-x86_64.raw', fmt=raw size=10737418240

[iyunv@kvm ~]# lsmod |grep kvm
kvm_intel             162153  0
kvm                   525259  1 kvm_intel

添加到开机启动
[iyunv@kvm ~]# systemctl enable libvirtd.service

启动
[iyunv@kvm ~]# systemctl start libvirtd.service
[iyunv@kvm ~]# systemctl status libvirtd.service
a— libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running)


安装一台虚拟机
创建虚拟机的镜像--iso
[iyunv@kvm ~]# dd if=/dev/cdrom of=/opt/CentOS-7.2.iso
8456192+0 records in
8456192+0 records out
4329570304 bytes (4.3 GB) copied, 222.565 s, 19.5 MB/s


开始安装
[iyunv@kvm ~]# virt-install --help
[iyunv@kvm ~]# virt-install --name CentOS-7.2-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.2.iso --disk path=/opt/CentOS-7.2-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole


[iyunv@kvm ~]# ps -aux |grep kvm
root       802  0.0  0.0      0     0 ?        S<   07:16   0:00 [kvm-irqfd-clean]
qemu      3349 17.4 80.2 1490228 702752 ?      Sl   07:46   5:53 /usr/libexec/qemu-kvm


[iyunv@kvm ~]# netstat -lnptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      3349/qemu-kvm



创建虚拟机后,使用vnc链接 开始安装KVM虚拟机
192.168.1.111:5900
wKioL1is_TmB7s1gAAB-zST-idU539.png
wKiom1is_Xuz5zY4AABdWrQYz-4254.png

然后启动kvm
[iyunv@kvm ~]# virsh start CentOS-7.2-x86_64
Domain CentOS-7.2-x86_64 started

[iyunv@kvm ~]# virsh list
Id    Name                           State
----------------------------------------------------
2     CentOS-7.2-x86_64              running



KVM使用
[iyunv@kvm ~]# cd /etc/libvirt/qemu/
[iyunv@kvm qemu]# ls
CentOS-7.2-x86_64.xml  networks

CentOS-7.2-x86_64.xml #虚拟机的配置文件



[iyunv@kvm ~]# virsh list  
Id    Name                           State
----------------------------------------------------

[iyunv@kvm ~]# virsh list --all   #查看所有的虚拟机
Id    Name                           State
----------------------------------------------------
-     CentOS-7.2-x86_64              shut off


[iyunv@kvm ~]# ifconfig virbr0   安装kvm后会产生一个virbr0的网卡
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 00:00:00:00:00:00  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 42 (42.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


[iyunv@kvm ~]# iptables -t nat -nvL    这里可以看到这个虚拟机安装完后是可以通信的,通过nat上网
Chain POSTROUTING (policy ACCEPT 5 packets, 268 bytes)
pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
    0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
    0     0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24

生产是将kvm的网卡改成物理机的桥接网卡上网,跟物理机同一个网段


vnc连接进去后把他的网卡设置为开机启动,然后重启网卡,此时ping百度也是通的
ONBOOT=yes   #这样子kvm网卡就可以开机启动dhcp获取到一个ip地址

[iyunv@kvm ~]# ps -aux |grep dns   #kvm是通过dnsmasq分配的一个ip地址
nobody    2820  0.0  0.0  15544   344 ?        S    07:16   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root      2822  0.0  0.0  15516     4 ?        S    07:16   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root      7913  0.3  0.1 112648   952 pts/0    S+   09:57   0:00 grep --color=auto dns

打开dnsmasq的配置文件,可以看到他分配的ip地址
[iyunv@kvm ~]# cat /var/lib/libvirt/dnsmasq/default.conf
## dnsmasq conf file created by libvirt
strict-order
pid-file=/var/run/libvirt/network/default.pid
except-interface=lo
bind-dynamic
interface=virbr0
dhcp-range=192.168.122.2,192.168.122.254
dhcp-no-override
dhcp-lease-max=253
dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile
addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts



管理KVM的网卡
#网卡,手动设置为桥接(生产用最多)
brctl命令需要bridge-utils安装这个包

[iyunv@kvm ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.111  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe8a:4320  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8a:43:20  txqueuelen 1000  (Ethernet)
        RX packets 72557  bytes 13501818 (12.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 83261  bytes 28375563 (27.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether fe:54:00:5d:62:67  txqueuelen 0  (Ethernet)
        RX packets 2263  bytes 124594 (121.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3480  bytes 9022739 (8.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


[iyunv@kvm ~]# brctl addbr br0  #添加一个网桥
[iyunv@kvm ~]# brctl show  #查看添加的网卡
bridge name     bridge id               STP enabled     interfaces
br0             8000.000000000000       no
virbr0          8000.fe54005d6267       yes             vnet0

[iyunv@kvm ~]# brctl addif br0 eth0  #把br0加入到eth0,这样子我连接的物理本机的网络就断了如果单独执行这个操作的话

[iyunv@kvm ~]# brctl addif br0 eth0 && ip addr del dev eth0 192.168.1.111/24 && ifconfig br0 192.168.1.111/24 up && route add default gw 192.168.1.1 && iptables -F

##注释
ip addr del dev eth0 192.168.1.111/24  #删除eth0的ip
ifconfig br0 192.168.1.111/24 up   #这样子就可以连接br0这个网卡的ip了,下面需要添加路由才可以连接
route default gw 192.168.1.1 添加路由才可以连接

设置为桥接后变成
[iyunv@kvm ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.111  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe8a:4320  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8a:43:20  txqueuelen 0  (Ethernet)
        RX packets 50  bytes 3203 (3.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 75  bytes 5699 (5.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::20c:29ff:fe8a:4320  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8a:43:20  txqueuelen 1000  (Ethernet)
        RX packets 73572  bytes 13571497 (12.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 85141  bytes 28514610 (27.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether fe:54:00:5d:62:67  txqueuelen 0  (Ethernet)
        RX packets 2263  bytes 124594 (121.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3480  bytes 9022739 (8.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

kvm常用操作
virsh edit CentOS-7.2-x86_64     #编辑虚拟机配置文件
virsh start CentOS-7.2-x86_64    #启动
virsh shutdown CentOS-7.2-x86_64 #关机
virsh destroy CentOS-7.2-x86_64  #直接关闭电源
virsh suspend CentOS-7.2-x86_64  #挂起虚拟机
virsh resume CentOS-7.2-x86_64   #恢复
virsh list                         #查看
virsh undefine CentOS-7.2-x86_64 #永久删除虚拟机






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-345978-1-1.html 上篇帖子: KVM虚拟化管理平台VManagePlatform 下篇帖子: VMware vSphere基础视频
累计签到:83 天
连续签到:1 天
发表于 2017-2-23 09:59:00 | 显示全部楼层
虚拟化,云存储都很强大的样子,学无止境

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:9 天
连续签到:1 天
发表于 2017-3-1 09:17:55 | 显示全部楼层
我搭建好,已经reboot过了,但是是这个错:http://images2015.cnblogs.com/blog/1012270/201703/1012270-20170301013708345-725535934.png ,能帮忙解决一下嘛

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表