Linux下KVM虚拟化安装

本文详细介绍了如何通过yum安装KVM及其相关组件,包括qemu、libvirt、virt-manager等,涉及默认安装路径、配置更改、启动与服务管理,以及网络配置(如桥接、VEPA和passthrough模式)和虚拟机的创建过程。
摘要由CSDN通过智能技术生成

KVM安装:

yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst

虚拟机安装后,默认安装位置:/var/lib/libvirt/images
/etc/libvirt/storage/default.xml   这个是默认的存放路径配置文件,需要使用
    # virsh pool-edit default   (直接使用vi编辑是不生效的,另外服务重启才生效)
     找到  /var/lib/libvirt/images  修改成你的路径
虚拟机安装完毕后,启动报错: 
cd /var/lib/libvirt/qemu/channel/target/
mkdir domain-centos7.0
chown qemu:qemu /var/lib/libvirt/qemu/channel/target/domain-centos7.0

检查kvm模块是否安装
  [root@localhost ~]# lsmod |grep kvm
  kvm_intel              55496  32
  kvm                  337772  1 kvm_intel

启动服务并开机启动
  /etc/init.d/libvirtd
  chkconfig libvirtd on

PRE-INSTALL
=============================================================
kvm相关安装包及其作用
qemu-kvm 主要的KVM程序包
python-virtinst 创建虚拟机所需要的命令行工具和程序库
virt-manager GUI虚拟机管理工具
virt-top 虚拟机统计命令
virt-viewer GUI连接程序,连接到已配置好的虚拟机
libvirt C语言工具包,提供libvirt服务
libvirt-client 为虚拟客户机提供的C语言工具包
virt-install 基于libvirt服务的虚拟机创建命令
bridge-utils 创建和管理桥接设备的工具
 
INSTALL
=============================================================
 
 
 VEPA (Virtual Ethernet Port Aggregator)
默认模式。多个虚拟机指定同一个接口(例如 eth0),通过该接口连接到外部的物理网络。但虚机之间的访问需要先绕到外部的物理(也可以配置为软交换机)交换机,然后由外部交换机进行转发,再绕回来。

需要外部交换机支持 Reflective Relay,或者发夹(Hairpin)模式,即从一个接口发上来的流量还能扔回去。

bridge
跟 VEPA 模式类似,但绑到同一接口上(不确定同一主机上多个网卡之间是否可以)上的多个虚机之间直接本地就转发到对应的 macvtap 设备上了,不需要到外面再绕回来。当然,要求源和目的虚机都配置为 bridge 模式。

private
虚拟机之间不能相互访问,即使外部交换机支持 Reflective Relay 也不成。除非虚机处在不同的子网,经过外面网关的转发再绕回来。要求源和目的虚机都配置为 private 模式。这种模式是不是很眼熟?多租户的公有云里面应该用处挺大。

passthrough
直接将虚拟机跟外面联通起来,一个网卡上只允许绑定一个 MacVlan 设备。如果本地物理网卡支持 SRIOV,那虚机可以直接绑定到不同的 VF 上。这种模式支持虚机迁移。
 
 
 
 
[root@localhost ~]# yum install qemu-kvm libvirt virt-install bridge-utils
 
#查看是否加载kvm模块
[root@kvm ~]# lsmod|grep kvm
kvm_intel             138567  0
kvm                   441119  1 kvm_intel
#如果没有这两条,可以用"modprobe kvm"加载;
#相关命令"insmod;rmmod;modinfo"
 
#启动libvirtd
[root@localhost ~]# systemctl start libvirtd;systemctl enable libvirtd
[root@localhost ~]# systemctl list-unit-files|grep libvirtd
libvirtd.service                            enabled
 
 
NETWORK CONFIGURATION
=============================================================
 
#修改网卡文件eno16777736
[root@kvm ~]# cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# echo "BRIDGE=br0" >> ifcfg-eno16777736   #在ifcfg-e**原网卡文件中增加"BRIDGE=br0"
 
#新建网桥文件ifcfg-br0(网桥名称),增加内容如下
[root@kvm network-scripts]# vi ifcfg-br0
*************************************************
DEVICE=br0                                           
TYPE="Bridge"                                       #大小写敏感,所以必须是Bridge
BOOTPROTO="dhcp"
ONBOOT="yes"
DELAY="0"
STP="yes"                                                #这一行是来启动STP,和brctl命令行出来的结果有关
*************************************************
 
#重启NetworkManager及network服务:
[root@kvm network-scripts]# systemctl restart NetworkManager
#当你手动修改了网卡文件后,需要重启NetworkManager服务来重新接管网络配置
#网卡配置文件和NetworkManager配置冲突时,解决方案:{1、重启NetworkManager;2、关闭NetworkManager}
 
[root@kvm network-scripts]# systemctl restart network
[root@kvm network-scripts]# ip a                                                   #ip命令用来查看和管理ip信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 00:0c:29:61:5c:1d brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether 52:54:00:b6:45:5b 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 qlen 500
    link/ether 52:54:00:b6:45:5b brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:0c:29:61:5c:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.32/24 brd 192.168.0.255 scope global dynamic br0
       valid_lft 11979sec preferred_lft 11979sec
    inet6 fe80::20c:29ff:fe61:5c1d/64 scope link
       valid_lft forever preferred_lft forever
7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
    link/ether fe:54:00:cb:63:b2 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fecb:63b2/64 scope link
       valid_lft forever preferred_lft forever
 
#查看网桥连接
[root@kvm network-scripts]# brctl show                                               #brctl是一个网桥连接管理命令
bridge name     bridge id               STP enabled     interfaces  #如果上面不设置STP=yes,这里就会显示no
br0             8000.000c29615c1d       yes             eno16777736
                                                                                 vnet0
virbr0          8000.525400b6455b       yes             virbr0-nic
 
 
CLOSE SELINUX
=============================================================
 
[root@kvm network-scripts]# setenforce 0
[root@kvm network-scripts]# getenforce
Permissive
[root@kvm network-scripts]#vi /etc/selinux/config
******************************************
SELINUX=permissive                                           #修改配置文件使其永久生效
******************************************
 
 
CREATE A VM
=============================================================
 
[root@kvm ~]# mkdir -p /var/kvm/images
[root@kvm ~]# virt-install \
--network bridge:br0 \
--name vm1 \
--ram=1024 \
--vcpus=1 \
--disk path=/var/kvm/images/vm1.img,size=10 \
--graphics none \
--location 'http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/' \
--extra-args="console=tty0 console=ttyS0,115200"
#详细每个参数的意义可以查看扩展资料
#安装过程会让你选择textmode 还是vnc,选择textmode继续安装吧
#如果网络会有问题的话,尽量选择用--cdrom /path/to/centos7.iso
#virt-install --name vm1 --ram=1024 --vcpus=1 --network bridge:br0 --disk path=/var/kvm/images/centos7.img,size=10 --graphics none --location=http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/ --extra-args="console=tty0 console=ttyS0,115200"
#virt-install --name vm1 --ram=1024 --vcpus=1 --network bridge:br0 --disk path=/var/kvm/images/centos7.img,size=10 --graphics none --location=http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/ --extra-args="console=tty0 console=ttyS0,115200"

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值