linux单机使用本地镜像创建kvm虚拟机实例(代码片段)

白-胖-子 白-胖-子     2022-12-03     294

关键词:

环境

  • 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
  • 在弹出的图形化窗口中安装虚拟机操作系统

启动virt-manager
安装虚拟机系统

9. 安装后进入虚机

  • 设置临时IP
    ip addr add 10.0.0.161/24 dev ens3
    设置IP
  • 使用ssh连接
    ssh连接
  • 至此KVM虚拟机已安装完成呀!就像正常的操作系统用就完事了!

10. 使用初始化脚本优化虚拟机系统

初始化系统

  • 至此新KVM虚拟机服务器上线成功
    新服务器上线

linux命令行冷迁移kvm虚拟机(代码片段)

创建KVM虚拟机Linux单机使用本地镜像创建KVM虚拟机实例复制KVM虚拟机Linux使用已有KVM硬盘文件快速创建虚拟机迁移KVM虚拟机迁徙虚拟机的方法有很多,什么冷迁移(静态)、热迁移(动态)、完全迁移、部分迁... 查看详情

webvirtmgr新建kvm虚拟机(代码片段)

...器的默认网络三、创建网络1.关闭NetworkManager2.创建网桥3.使用命令行创建网桥4.创建网络池四、创建存储池1.创建本地存储目录2.检查本地存储和共享存储五、创建虚拟磁盘文件六、创建虚拟机1.进入实例模块2.创建规格3.启动虚拟... 查看详情

kvm创建新虚拟机

...理界面yuminstallvirt-manager-y安装好之后 新建虚拟机,我使用的方法是使用ISO镜像文件安装 选择镜像  设置内存如此,一步一步走下去即可,不再截图 创建好之后,在kvm那里会出现新创建的虚拟机,右键选择打开... 查看详情

kvm快速创建虚拟机(代码片段)

...部分提取出来,只保存那些与公共部分不同的东西,这样镜像大小下去了,空间变多了,管理也方便了。派生镜像就是用来干这事的!在这里用派生镜像来创建虚拟机.首先我们创建一个虚拟机,此虚拟机镜像(web01.img)将会作为基... 查看详情

部署kvm虚拟化平台(代码片段)

...kdir/data#挂载硬盘mount/dev/sdb1/data#远程挂载微软宿主机上的镜像,后面再用mount.cifs//192.168.142.1/ISO/mnt第三步:安装KVM#安装桌面环境组件包yumgroupinstall"GNOMEDesktop"-y#安装KVM模块yuminstallqemu-kvm-y#安装KVM调试工具yuminstallqemu-kvm-tools-y#安装构... 查看详情

如何在kvm服务器上创建虚拟机

...为镜像里面没有任何内容,所以提示找不到可引导设备。使用qemu-img管理镜像qemu-img基本命令上节介绍了使用qemu-img创建镜像,这一节将会介绍qemu-img在镜像管理上的强大功能。qemu-img有很多命令,包括下面常用的,当然qemu-img-h你... 查看详情

kvm之八:快照创建恢复与删除

kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。要使用镜像功能,磁盘格式必须为qcow2。下面开始kvm虚拟机快照备份的过程,这里以虚拟机snal... 查看详情

挂载kvm虚拟机windows虚拟机镜像文件

...虚拟机文件losetup-f命令可以查看目前空闲的loop设备,使用losetup-a命令可以查看使用的loop设备的关联情况关联命令为losetup/dev/loop0/root/win2003.img关闭关联命令为losetup-d/dev/loop02使用kpartx命令将映射分区kpartx 查看详情

使用字符界面qemu-kvm创建虚拟机

qemu-kvm的基本用法:指定系统类型,CPU运行模式,NUMA(NonUniformMemoryAccessArchitecture),软驱设备,光驱设备,硬件设备 #查看qemu-kvm的帮助  #查看支持的系统类型qemu-kvm-M? #下载磁盘镜像文件wgethttp://download.cirros-cloud.net/0... 查看详情

在创建kvm虚拟机之前,需要先创建一个存储池

...,存储池(Storagepools)是放置虚拟机的存储位置,可以是本地的,也可以是网络存储,具体的虚拟机实例是放置在卷(Volume)上,操作存储卷的命令行是virsh。下面的过程为开始创建1.1、创建一个文件夹,等会用来存储虚拟机用#... 查看详情

centos6.5安装kvm虚拟化

...的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡 查看详情

kvm虚拟机管理(代码片段)

...开虚拟系统管理器  2>新建虚拟机 3>选择本地介质安装此处需要先将镜像文件导入图形化服务器的/var/lib/libvirt.images/目录下[root@localhostimages]#cd/var/lib/libvirt/images/[root@localhostimages 查看详情

云计算与虚拟机kvm(代码片段)

什么是云计算?资源使用和交付模式,并不是技术,分为公有云,私有云,混合云,依赖虚拟化技术,从而实现弹性扩展云计算iaaspasssaas图层Iaas(基础设施即服务InfrastructureasaServic)Paas(平台即服务Platform-as-a-Service)Saas(软件... 查看详情

修改kvm虚拟机镜像大小(代码片段)

修改虚拟机镜像大小(qcow2/rawresize)创建一个镜像文件,大小1G taw[email protected]/tmp$qemu-imgcreate-frawt.raw1GFormatting‘t.raw‘,fmt=rawsize=1073741824[email protected]/tmp$qemu-imginfot.rawimage:t.rawfile 查看详情

在本地kvm中使用cloud-init

在本地KVM中使用cloud-init cloud-init是一个Linux虚拟机的初始化工具,被广泛应用在AWS和OpenStack等云平台中,用于在新建的虚拟机中进行时间设置、密码设置、扩展分区、安装软件包等初始化设置。本文主要研究在本地KVM虚拟机... 查看详情

linux系统kvm虚拟机实战lvm逻辑卷之扩展swap交换分区(代码片段)

...是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。二、检查本地系统环境1.检查系统版本[root@server001~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"ID="centos... 查看详情

各位大神,我用kvm创建了一个windows2012的qcow2镜像,上传到openstack云环境后,

...OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack。不过如果是为生产环境进行部署的话,您一定需要构建含有定制软件或配置的镜像文件。本章将引领您完成几种较为流行的Linux发行版镜像,... 查看详情

kvm虚拟机快照基本用法

...ail protected]~]#clone-vm7.4请输入虚拟机号码:100正在创建镜像........[ok]正在创建虚拟机.......[ok][[email prot 查看详情