Linux单机使用本地镜像创建KVM虚拟机实例
Posted 白-胖-子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux单机使用本地镜像创建KVM虚拟机实例相关的知识,希望对你有一定的参考价值。
环境
- Linux 内核2.6以上 2G内存以上,20G硬盘以上
- CPU需支持虚拟化,如果是虚机需在CPU选项中开启虚拟化支持
- 宿主机可以正常访问网络或者已搭建内部源仓库
- 准备安装的虚拟机镜像或介质,也可以是网络安装环境
- ssh工具支持图形化,建议使用Moba
1. 开启虚拟化引擎
- 本次实验使用VMWare Workstation
- 在虚拟机选项中,选择处理器选项,勾选虚拟化引擎第一项并确定
- 需要在虚机关闭时进行此项设置
2. 设置网桥
- KVM虚机使用网桥和宿主机使用同一网络方便访问
- 在宿主机设置网桥,相当于vmware中的虚拟交换机的作用
创建网桥文件
- 创建网桥虚拟网卡,并将宿主机IP设置在虚拟网桥上
cat >/etc/sysconfig/network-scripts/ifcfg-br0 << SUN
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=10.0.0.199
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=223.5.5.5
SUN
编辑宿主机网卡
- 将宿主机网卡桥接至网桥虚拟网卡
- 备份原宿主机网卡配置文件
mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
- 创建新的宿主机网卡配置文件
cat >/etc/sysconfig/network-scripts/ifcfg-eth0 << SUN
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
SUN
重启网络服务
- 重启网络服务使网桥配置生效
systemctl restart network.service
- 检查网络配置情况
[root@c7-199 ~]# ip a
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 00:0c:29:e6:1f:9e brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:e6:1f:9e brd ff:ff:ff:ff:ff:ff
inet 10.0.0.199/24 brd 10.0.0.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::ec28:98ff:fe31:7370/64 scope link
valid_lft forever preferred_lft forever
3. 安装KVM相关工具和依赖
- 装多了没事,装少了怕用到了缺包
yum -y install kvm qemu-kvm qemu-kvm-tools \\
libvirt libvirt-client libguestfs-tools libvirt-python \\
python-virtinst virt-manager bridge-utils virt-install
- 启动libvirt服务
systemctl enable --now libvirtd.service
- 重启服务器以生效
init 6
4. 创建虚拟机存放目录
- 单独创建虚拟机和安装系统镜像的存放目录方便管理
- 生产中通常将虚拟机存放在独立挂载的存储设备上,方便迁移
mkdir -pv /vms/{vmdisk,vmhost,vmiso}
[root@c7-199 ~]# mkdir -pv /vms/{vmdisk,vmhost,vmiso}
mkdir: created directory ‘/vms’
mkdir: created directory ‘/vms/vmdisk’
mkdir: created directory ‘/vms/vmhost’
mkdir: created directory ‘/vms/vmiso’
5. 创建虚拟磁盘
- 使用qemw-img命令创建一个qcow2格式大小为20G的稀疏格式虚拟磁盘文件
- KVM支持多种格式磁盘文件,qcow2格式磁盘并不会立即分配所有磁盘空间
qemu-img create -f qcow2 /vms/vmdisk/v1.qcow2 20G
[root@c7-199 ~]# qemu-img create -f qcow2 /vms/vmdisk/v1.qcow2 20G
Formatting '/vms/vmdisk/v1.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off
[root@c7-199 ~]# ll -h /vms/vmdisk/v1.qcow2
-rw-r--r-- 1 root root 193K Jul 8 10:44 /vms/vmdisk/v1.qcow2
6. 确保虚拟机安装介质可访问
- 可以将得到的系统安装镜像上传至宿主机本地目录
- 也可以挂载存储,并确保系统安装静静可访问
- 也可以使用本地光驱或者移动存储
- 也可以直接从互联网wget最新版的RockyLinux到本地镜像目录
wget https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso -P /vms/vmiso/
[root@c7-199 ~]# wget https://download.rockylinux.org/pub/rocky/8/isos/x86_64/R
--2021-07-08 11:18:06-- https://download.rockylinux.org/pub/rocky/8/isos/x86_6
Resolving download.rockylinux.org (download.rockylinux.org)... 151.101.230.132
Connecting to download.rockylinux.org (download.rockylinux.org)|151.101.230.132
HTTP request sent, awaiting response... 200 OK
Length: 1980760064 (1.8G) [application/octet-stream]
Saving to: ‘/vms/vmiso/Rocky-8.4-x86_64-minimal.iso’
100%[==========================================================================
2021-07-08 11:27:20 (3.43 MB/s) - ‘/vms/vmiso/Rocky-8.4-x86_64-minimal.iso’ sav
[root@c7-199 ~]# file /vms/vmiso/Rocky-8.4-x86_64-minimal.iso
/vms/vmiso/Rocky-8.4-x86_64-minimal.iso: # ISO 9660 CD-ROM filesystem data 'Rocky-8-4-x86_64-dvd' (bootable)
7. 使用系统镜像创建并启动KVM虚拟机
- 使用virt工具安装虚拟机
virt-install --virt-type kvm --name v1 --ram 1024 --vcpus 2 \\
--cdrom=/vms/vmiso/Rocky-8.4-x86_64-minimal.iso \\
--disk path=/vms/vmdisk/v1.qcow2 \\
--network bridge=br0 \\
--graphics vnc,listen=0.0.0.0 \\
--noautoconsole --autostart
参数说明
- –virt-type kvm 指定安装的虚拟机类型为KVM
- –name v1 虚拟机名叫v1,同一宿主机虚拟机不能重名,生产中建议设置为业务相关文件名
例如:sun.coWebS1-10.0.0.155-SMY-20210708 - –ram 1024 内存1G
- –vcpus 2 虚拟CPU2个
- –cdrom= 指定安装系统镜像绝对路径
- –disk path= 指定使用的虚拟磁盘文件绝对路径
- –network bridge=br0 指定网络使用桥接模式到br0
- –graphics 指定图形显示使用 vnc,并监听在宿主机所有IP,可指定端口,默认5900
- –noautoconsole 不要自动尝试连接到客户端控制台
- –autostart 随宿主机启动而启动虚拟机
[root@c7-199 ~]# virt-install --virt-type kvm --name v1 --ram 1024 --vcpus 2 \\
> --cdrom=/vms/vmiso/Rocky-8.4-x86_64-minimal.iso \\
> --disk path=/vms/vmdisk/v1.qcow2 \\
> --network bridge=br0 \\
> --graphics vnc,listen=0.0.0.0 \\
> --noautoconsole --autostart
WARNING No operating system detected, VM performance may suffer. Specify an OS with --os-variant for optimal results.
Starting install...
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
8. 图形化窗口安装虚机操作系统
- 确保本地ssh工具支持图形化,建议使用MobaXterm,Xshell需要花钱买呀!
- MobaXterm启动图形化支持,在宿主机安装图形化包
yum -y groupinstall "X Window System"
- 使用virt-manager图形化工具安装并管理虚拟机
virt-manager
- 在弹出的图形化窗口中安装虚拟机操作系统
9. 安装后进入虚机
- 设置临时IP
ip addr add 10.0.0.161/24 dev ens3
- 使用ssh连接
- 至此KVM虚拟机已安装完成呀!就像正常的操作系统用就完事了!
10. 使用初始化脚本优化虚拟机系统
- 至此新KVM虚拟机服务器上线成功
以上是关于Linux单机使用本地镜像创建KVM虚拟机实例的主要内容,如果未能解决你的问题,请参考以下文章