kvm部署安装

kvm部署安装

参考自:https://www.cnblogs.com/kevingrace/p/8377645.html

系统环境

  • CentOS 7.9

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 创建和管理桥接设备的工具

安装前检查

  • 检查cpu是否支持虚拟化
grep vmx /proc/cpuinfo

如果有vmx信息输出,就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机。

  • 确保BIOS里开启虚拟化功能,即查看是否加载KVM模块

    • lsmod查看
    lsmod | grep kvm
    >>>> # 以下为回显部分
    kvm_intel             170086  0
    kvm                   566340  1 kvm_intel
    irqbypass              13503  1 kvm
    =========================================================
    
    • 如果没有加载,运行以下命令:
    modprobe kvm
    modprobe kvm-intel
    
  • 查看/dev/kvm
    内核模块导出了一个名为/dev/kvm的设备,这个设备将虚拟机的的地址空间独立于内核或者任何应用程序的地址空间。

ll /dev/kvm
crw-rw-rw-. 1 root kvm 10, 232 1月  29 11:56 /dev/kvm

桥接网络

  • 为什么要配置网桥?
    为了让虚拟机和宿主机都直接从路由器获取到独立IP,如此一来,外网的机器就可以直接访问到虚拟机中的系统。

  • 如果没有brctl命令(用来管理网桥的工具),则需要安装bridge-utils ,

yum -y install bridge-utils
systemctl restart network
  • 配置KVM的网桥模式

    • 配置br0
    cd /etc/sysconfig/network-scripts/
    # 拷贝一份现有的、在用的主要网卡的配置文件
    cp ifcfg-eno1 ifcfg-br0
    # 以下展示br0配置文件的内容,可做参考,具体需要调整
    cat ifcfg-br0
    TYPE="Bridge"                                # 这一行修改为Bridge
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="no"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="br0"                        # 修改设备名称为br0
    #UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0"         # 这一行注释
    DEVICE="br0"                             # 修改设备为br0
    ONBOOT="yes"
    IPADDR="192.168.10.210"
    PREFIX="24"
    GATEWAY="192.168.10.1"
    DNS1="8.8.8.8"
    
    • 配置原有网卡,我这里是eno1,具体需要参考系统环境
    # 可以与上面的br0配置文件形成一个对比参照
    cat ifcfg-eno1
    TYPE="Ethernet"
    BRIDGE=br0                      # 添加这一行
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="no"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="eno1"
    UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0"
    DEVICE="eno1"
    ONBOOT="yes"
    #IPADDR="192.168.10.210"             //注释掉这几行
    #PREFIX="24"
    #GATEWAY="192.168.10.1"
    #DNS1="8.8.8.8"
    
  • 重启网卡服务

systemctl restart network
  • 查看网卡
brctl show
>>>
bridge name bridge id   STP enabled interfaces
br0   8000.0894ef518b22 no    eno1
virbr0    8000.52540095d7c2 yes   virbr0-nic
  • 查看ip信息
    可以用ifconfig或者ip a查看,这里用ipconfig
ifconfig |head -20
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.10.210  netmask 255.255.255.0  broadcast 192.168.10.255
       inet6 fe80::a94:efff:fe51:8b22  prefixlen 64  scopeid 0x20<link>
       ether 08:94:ef:51:8b:22  txqueuelen 1000  (Ethernet)
       RX packets 856  bytes 52981 (51.7 KiB)
       RX errors 0  dropped 2  overruns 0  frame 0
       TX packets 120  bytes 23450 (22.9 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       ether 08:94:ef:51:8b:22  txqueuelen 1000  (Ethernet)
       RX packets 10077  bytes 793083 (774.4 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 1184  bytes 228415 (223.0 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
       device interrupt 16

eno2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
       ether 08:94:ef:51:8b:23  txqueuelen 1000  (Ethernet)
       RX packets 0  bytes 0 (0.0 B)
  • 验证网络是否正常
    ping个百度试一下
ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=2.08 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=1.80 ms

安装libvirt及kvm

  • libvirt是管理虚拟机的API库,不仅支持KVM虚拟机,也可以管理Xen等方案下的虚拟机。
yum -y install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64  libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch  libvirt-python.x86_64 libiscsi-1.7.0-5.el6.x86_64  dbus-devel  virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst
  • 由于要用virt-manager图形化安装虚拟机,所以还需要安装X-window
yum groupinstall "X Window System"
  • 安装中文字符,解决界面乱码问题
yum install -y dejavu-lgc-sans-fonts
yum groupinstall -y "Fonts"
  • libvirt启动
systemctl enable libvirtd
systemctl start libvirtd
posted @   ヾ(o◕∀◕)ノヾ  阅读(13)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示