KVM NAT与桥接虚机创建

 

安装软件

yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager
yum install gcc gcc-c++ autoconf automake  libtool  glib*  zlib* -y
yum install epel-release net-tools vim unzip zip wget -y
yum install qemu-kvm libvirt virt-install bridge-utils openssl -y

验证安装结果

复制代码
[root@kafka-1 network-scripts]#  lsmod | grep kvm
kvm_intel             188688  0
kvm                   636969  1 kvm_intel
irqbypass              13503  1 kvm

[root@kafka-1 kvm]# grep -E --color=auto "(vmx|svm)" /proc/cpuinfo   |wc -l
4
[root@kafka-1 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo
4
复制代码

开启kvm服务,并且设置其开机自动启动

systemctl start libvirtd
systemctl status libvirtd
systemctl enable libvirtd

升级内核

复制代码
uname -a
cat /etc/redhat-release
去http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/下载
yum -y install kernel-lt-5.4.86-1.el7.elrepo.x86_64.rpm
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
uname -a
复制代码

安装网桥管理器

yum -y install  bridge-utils

[root@kafka-1 ~]# brctl  show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c29a9fe2f       no              ens33        # ens33接口插入br0虚拟交换机中
virbr0          8000.525400f24e67       yes             virbr0-nic

创建虚拟机磁盘

   raw:1.磁盘创建指定大小立即占用磁盘空间 2. io快 3. 不支持快照,克隆,扩容
  qcow2: 2.根据使用量增长占用磁盘空间 2. io慢 3. 支持快照 4. 虚拟机克隆 5. 支持扩容

创建一个raw格式的磁盘

[root@kafka-1 kvm]# qemu-img create -f raw /opt/kvm/vm/test-nat-network.row 8G
Formatting '/opt/kvm/vm/test-nat-network.row', fmt=raw size=8589934592

[root@kafka-1 kvm]# ll -h vm 
总用量 0
-rw-r--r-- 1 root root 8.0G 7月  22 22:07 test-nat-network.row

创建一个NAT模式的虚拟机

virt-install --name=test-nat-network-2 \
--memory=1024,maxmemory=4096 --vcpus=2,maxvcpus=4 \
--disk=/opt/kvm/vm/test-nat-network.qcow2,size=10 \
--cdrom=/opt/kvm/iso/CentOS-7-x86_64-Minimal-2009.iso \
--os-variant=rhel7 --noautoconsole --autostart \
--network network=default \
--graphics vnc,listen=0.0.0.0,port=30002

也可以创建qcow2格式的磁盘

qemu-img create -f qcow2 /opt/kvm/vm/test-nat-network.qcow2 8G

创建qcow2格式的虚机

virt-install --name=test-nat-network-2 \
--memory=1024,maxmemory=4096 --vcpus=2,maxvcpus=4 \
--disk=/opt/kvm/vm/test-nat-network.qcow2,size=10 \   # size 10指定磁盘大小,可以不用提前创建磁盘
--cdrom=/opt/kvm/iso/CentOS-7-x86_64-Minimal-2009.iso \
--os-variant=rhel7 --noautoconsole --autostart \
--network network=default \
--graphics vnc,listen=0.0.0.0,port=30002

创建桥接模式的虚机

创建二层虚拟交换机

复制代码
[root@kafka-1 kvm]# cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.64.14
GATEWAY=192.168.64.2
NETMASK=255.255.255.0
NM_CONTROLLED=yes

[root@kafka-1 kvm]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
DEVICE=ens33
NAME=ens33
ONBOOT=yes
BRIDGE=br0
BOOTPROTO=none
NM_CONTRLLED=no
复制代码

创建虚机

复制代码
# 创建磁盘
[root@kafka-1 kvm]#  qemu-img create -f qcow2 /opt/kvm/vm/web02-br0.qcow2 10G
Formatting '/opt/kvm/vm/web01-br0.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
# 安装虚机
virt-install --virt-type kvm --name web02-bridge \
--memory=1024,maxmemory=4096 --vcpus=2,maxvcpus=4 \
--cdrom=/opt/kvm/iso/CentOS-7-x86_64-Minimal-2009.iso \
--disk path=/opt/kvm/vm/web02-br0.qcow2 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole  --autostart 
复制代码

不提前创建磁盘创建虚机

复制代码
[root@kafka-1 kvm]# virt-install --name=test-bridge-vm \
--memory=1024,maxmemory=4096 --vcpus=2,maxvcpus=4 \
--disk path=/opt/kvm/vm/web02-br0.qcow2,size=10 \
--cdrom=/opt/kvm/iso/CentOS-7-x86_64-Minimal-2009.iso \
--os-variant=rhel7 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0,port=30005 \
--noautoconsole --autostart

Starting install...
Allocating 'web02-br0.qcow2'                                                                                                      |  10 GB  00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

[root@kafka-1 kvm]# netstat -ntpl
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:111             0.0.0.0:*               LISTEN      792/rpcbind
tcp        0      0 0.0.0.0:30005           0.0.0.0:*               LISTEN      19876/qemu-kvm
复制代码

网桥查看

[root@kafka-1 kvm]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c29a9fe2f       no              ens33
                                                        vnet0
                                                        vnet2
virbr0          8000.525400f24e67       yes             virbr0-nic
                                                        vnet1

问题解决

1. 打开console界面报错

报错:
    libGL error: unable to load driver: swrast_dri.so
    libGL error: failed to load driver: swrast
解决:
    yum -y install mesa-libGLES-devel.x86_64 mesa-dri-drivers

2. virt-manager 乱码

解决:
    vim /etc/profile
    export LANG="en_US.UTF-8"
    source /etc/profile

3.创建的NAT和网桥主机不能分配ip

解决:
网卡文件
ONBOOT=yes

systemctl restart network

4. 桥接主机设置了ONBOOT=yes也不能获取ip,并且network服务启动失败

解决: 安装dhcp服务,实际公司中路由器由网管已设置好,这里实验环境需要安装

复制代码
 yum install dhcp

[root@kafka-1 kvm]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.64.0 netmask 255.255.255.0 {
  range 192.168.64.3 192.168.64.253;
  option routers 192.168.64.2;
  option broadcast-address 192.168.64.255;
  option domain-name-servers 8.8.8.8, 114.114.114.114;
}

sudo systemctl enable dhcpd
sudo systemctl start dhcpd
复制代码

4.2 验证

 mobaxterm连接

需要关闭防火墙和selinux

 4.3 随后设置好基础环境后,根据模板机clone即可,需要提前设置网卡开机启动ONBOOT=yes与关闭NetworkManager.

 

posted @   不会跳舞的胖子  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示