首页 > 其他分享 >服务器虚拟化安装配置及使用

服务器虚拟化安装配置及使用

时间:2023-11-23 11:11:35浏览次数:61  
标签:快照 虚拟化 -- qcow2 虚拟机 virsh qemu 服务器 安装

Top

[TOC]

安装

安装依赖包

yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer -y

启动服务

systemctl start libvirtd
systemctl enable libvirtd
# KVM的管理工具栈:qemu:qemu-kvm,qemu-img 和libvirt
# CLI: virt-install, virsh
退出这个控制台,按住 ctrl键 和 ]键 即可退出

创建虚拟机

# 创建基本的虚拟机
virt-install --name=kvm2 --vcpus=2 --memory=2048 --location=/data/iso/CentOS-7-x86_64-DVD-2009.iso --disk path=/var/lib/libvirt/images/kvm2.qcow2 --network network=default --graphics none --extra-args='console=ttyS0'
	--name=kvm2     # 表示为创建的虚拟机命名为kvm2。
    --vcpus=2       # 表示设置虚拟机cpu有2个核心。
    --memory=2048   # 表示设置内存为2G。单位默认为 MB 
    --location=/data/iso/CentOS-7-x86_64-DVD-2009.iso   # 表示使用本地iso镜像安装虚拟机。
    --disk path=/var/lib/libvirt/images/kvm2.qcow2      # 表示指定虚拟机的磁盘镜像的路径
    # 在创建时,可提前准备好磁盘,然后直接指定,或者是使用参数 "--disk size=50G" 当下创建,并且磁盘的前缀名和虚拟机名相同,并且是预分配所有磁盘空间。
    # 默认的创建保存目录为: /var/lib/libvirt/images/
	--network network=default  # 表示使用kvm的默认网络
	--graphics none   # 表示我们安装的过程中,需要使用的图形化控制台, none 表示不使用图形化控制台安装虚拟机
	--extra-args='console=ttyS0'  # 表示为创建的虚拟机指定内核启动时的内核参数
	# 在通过命令行的方式安装虚拟机时最好给其分配一个虚拟终端,以便我们执行安装操作和安装完成后的登录、控制虚拟机等操作 
	# 默认使用"全虚拟化"的方式创建虚拟硬件. 
# "全虚拟化"是指以纯软件的方式来模拟硬件设备的,如果虚拟机系统(客户机)支持virtio驱动,则可以使用”半虚拟化”的方式创建虚拟机硬件,virtio的”半虚拟化”省去了”全虚拟化”中异常捕获的环节,可以理解为操作路径更短了,所以在IO性能上有所提升。
# 控制虚拟机,与其交互,就像在物理机的命令行控制台中一样可控制机器。
virsh console <name>   # 前提是虚拟机存在配置 tty 虚拟终端, 
	# 配置命令: grubby --update-kernel=ALL --args="console=ttyS0"

# 使用 virtio 驱动创建半虚拟化的虚拟机 
virt-install --name=kvm2 --vcpus=2 --memory=2048 --location=/data/iso/CentOS-7-x86_64-DVD-2009.iso --disk path=/var/lib/libvirt/images/kvm2.qcow2,bus=virtio --network network=default,model=virtio --graphics none --extra-args='console=ttyS0'

点我回顶部

导入虚拟机

# 通过虚拟机磁盘镜像文件导入虚拟机
virt-install --import --name kvm2import --ram 4096 --vcpus=4 --cpu host-model --disk path=/var/lib/libvirt/images/kvm2.qcow2,bus=virtio --network network=default,model=virtio --nographics
	--nographics     # 使用命令行的方式导入虚拟机
 	--noautoconsole  # 导入虚拟机时不连入控制台

# 通过虚拟机 xml 配置文件和 磁盘镜像文件导入(还原)虚拟机	
virsh define /etc/libvirt/qemu/kvm2.xml 	

virsh domblklist <VMName>      # 显示 VM 当前连接的块设备

克隆虚拟机

# 通过kvm1虚拟机自动克隆出kvm2虚拟机
virt-clone --auto-clone -o kvm1 -n kvm2  # -o 表示克隆源,-n 表示新克隆出的虚拟机。

删除虚拟机

# 删除虚拟机
virsh undefine <name> 
	# 本质上只是在目录 /etc/libvirt/qemu 下删除了虚拟机的 xml 配置文件,但目录下 /var/lib/libvirt/images/ 的虚拟机的 镜像文件依然还是存在的。可手动删除,此为风险操作,
# 彻底删除,包括镜像文件
virsh undefine --remove-all-storage <name>
点我回顶部

磁盘镜像 -- qemu-img

# 创建一个磁盘,
qemu-img create ubuntu.img 10G   # 默认磁盘映像格式为 raw 映像
qemu-img create -f qcow2 testdisk1.qcow2 50G  # 默认创建到当前目录, 并且默认为动态分配空间
qemu-img create -f qcow2 -o size=10G ubuntu.img
qemu-img create -f vmdk -o size=20G ubuntu.img  # 创建 vmdk 格式的 磁盘镜像
# 转换镜像文件格式
qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw
	-f  表示源镜像文件的格式。
	-O(必须是大写)表示目标镜像格式 、源镜像文件名称和目标文件名称。
# 查看 磁盘镜像的详细信息 
root@R4900G3_44 /e/qemu# qemu-img info test001.qcow2
image: test001.qcow2      # 显示了磁盘映像文件名
file format: qcow2
virtual size: 10G (10737418240 bytes)  # 显示虚拟机将读取的映像的磁盘大小
disk size: 196K            # 显示保存在主机文件系统中的实际大小
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
# 压缩磁盘映像
qemu-img convert -O qcow2 -c  ubuntu.qcow2 ubuntu_c.qcow2
# 检查磁盘映像是否有错误
qemu-img check ubuntu.qcow2
# 增加磁盘映像大小
qemu-img resize ubuntu.qcow2 +5GB
# 缩小磁盘映像大小
qemu-img resize ubuntu.qcow2 -5GB
# qemu-img 支持的格式 
qemu-img -h  | grep Supported


点我回顶部

其他

# 判断机器是否支持硬件虚拟化
lscpu | grep -oE 'vmx|svm'

# 查看处于运行状态或暂停状态的的虚拟机列表
virsh list 
# 查看所有虚拟机,无论虚拟机处于什么状态
virsh list --all 
# 停止虚拟机
virsh shutdown <name>
# 启动虚拟机
virsh start <name>
# 暂停虚拟机: 暂停虚拟机任然占用宿主机的资源,只是不被继续调度使用
virsh suspend <name>
# 恢复虚拟机 让处于暂停状态的虚拟机继续运行
virsh resume <name>
# 如果有图形界面的话,可以进入虚拟机的界面  
virt-viewer <name>
# 查看虚拟机的状态
virsh domstate <name>
# 强制关闭 虚拟机 
virsh destroy  suosuo02

# 重命名虚拟机
virsh domrename kvm2import kvm2
# 查看虚拟机基本的概览信息, 比如cpu数量,内存大小,是否自动启动等信息
virsh dominfo <name>  # 可以理解成domaininfo的缩写
# 设置虚拟机跟随物理机自动启动
virsh autostart <name>
# 取消虚拟机自启
virsh autostart --disable <name>
# 修改虚拟机的配置 
virsh edit <name>
# 通过命令的方式查看虚拟机的详细配置信息
virsh dumpxml <name>

# 虚拟机的默认配置文件所在的目录 
root@R4900G3_44 ~# ll /etc/libvirt/qemu
-rw-------. 1 root root 5.8K Jun 13 21:01 ba001.xml    # 虚拟机的详细配置文件
drwx------. 3 root root 4.0K Oct 11  2021 networks
	# 注意不可直接手动修改虚拟机的详细配置 xml 文件, 要通过专业的方式
# 虚拟机的默认镜像文件所在目录: /var/lib/libvirt/images
root@R4900G3_44 /v/l/l/images# ll /var/lib/libvirt/images
-rw-------. 1 root root 51G Jun 13 21:22 ba001.qcow2    # 以 'qcow2' 结尾
-rw-------. 1 root root 41G Mar 21 06:11 rhel82_45.qcow2
	# 使用 virt-manager 命令创建默认为 非动态分配磁盘空间 
	# 直接分配所有磁盘空间的磁盘效率更高,动态分配磁盘空间的方式效率稍低
	# Vmware 机器默认的磁盘格式为 vmdk文件
	# Qcow2是针对Vmdk和Vdi开发的开源格式。 Qcow2提供压缩,快照,备份文件等功能。它在Kvm,Qemu社区中很流行

点我回顶部

虚拟机快照

# 创建快照
virsh snapshot-create kvm1  # 默认生成的快照的名字是 一串时间戳数字
virsh snapshot-create-as kvm1 snap2   # 指定快照名字 
virsh snapshot-create-as --domain kvm1 --name snap3 --description 'test snapshot3'  # 添加快照描述
# 快照配置文件的默认目录为/var/lib/libvirt/qemu/snapshot/
# 查看某一个虚拟机的某一个快照的配置信息
virsh snapshot-dumpxml kvm1 snap3
# 修改快照的名字 
virsh snapshot-edit kvm1 --rename aaa bbb   # 危险 

# 如果需要做快照的虚拟机有多个qcow2文件组成(不同的qcow2对应的不同的磁盘挂载),那么,在创建快照时,应该加上–atomic参数,以便保证创建快照操作的原子性
virsh snapshot-create kvm1 --atomic
	# 或者
virsh snapshot-create-as kvm1 snap5 --atomic

# 查看快照概览信息  
virsh snapshot-info kvm1 snap2
# 查看虚拟机快照树
virsh snapshot-list kvm1 --tree
# 查看某个快照的父快照
virsh snapshot-parent kvm1 snap3

# 查看虚拟机的状态在哪个快照状态之后
virsh snapshot-current  kvm1  # 默认显示其快照详细信息 ,  --name  参数只显示名字 
# 指定恢复到某个快照的状态
virsh snapshot-revert kvm1 --snapshotname snap2
# 默认恢复到最近的快照 
virsh snapshot-revert kvm1 --current

# 单独只删除某一个快照 
virsh snapshot-delete kvm1 snap7
# 删除某一个快照的同时,将其所有后裔快照一并删除 
virsh snapshot-delete kvm1 snap6 --children
# 删除某一个快照的所有后裔快照,但不删除快照本身 
virsh snapshot-delete kvm1 snap2 --children-only



网络

# 查看网络信息
virsh net-list

虚拟机系统自动化安装脚本

待更新...

点我回顶部

标签:快照,虚拟化,--,qcow2,虚拟机,virsh,qemu,服务器,安装
From: https://www.cnblogs.com/shiwei1930/p/17851119.html

相关文章

  • 安装python连接eureka并且vector search milvus centos7
    先安装python到centos7第一步:安装必要的软件包,使用root权限:yumgroupinstall-y"Developmenttools"yuminstall-yncurses-develgdbm-develxz-develsqlite-develtk-develuuid-develreadline-develbzip2-devellibffi-devel第二步:Python官方地址:WelcometoPyth......
  • SketchUp2020-2023官方中文语言包安装问题修复
    在2020以后的版本里,官方出的中文语言包如果不是在安装SketchUp本体而是本体安装完毕后单独安装的,那么这个语言包安装后的文件路径和注册表会默认是2020的版本,也就是说SketchUp官方对于中文社区的态度就是反正很多人都是用盗版,随便糊弄一下就可以了.因此,这个中文语言包......
  • pnpm安装使用
    1.安装npminstallpnpm-g安装完成后若出现pnpm:无法加载文件C:\Users\hp\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本在系统中搜索框输入WindosPowerShell点击[管理员身份运行]#以管理员身份运行powershellset-executionpolicyremotesigned......
  • SLES12sp4安装软件
    像SLES这样的商业版系统,其实是很依赖初始安装镜像的,我也是后来才知道这件事情,要不然也不会在之前格式化安装镜像的U盘了。为什么这么说的,因为商业版系统它不是Ubuntu,如果没有订阅码的话,软件源就只能依赖初始镜像。新系统的yast里面很多功能都是未安装的,至少在我这里没装上,我又把......
  • centos7安装MySQL—以MySQL5.7.30为例
    centos7安装MySQL—以MySQL5.7.30为例本文以MySQL5.7.30为例。官网下载进入MySQL官网:https://www.mysql.com/点击DOWNLOADS点击链接;点击如上链接:选择对应版本:点击下载。安装将下载后的安装包上传到/usr/local下。卸载删除原有的mariadb,否则可能会报异常查询原有......
  • Win11 SQL Server 安装程序无法通过 Windows Update 服务搜索更新。
    SQLServer安装提示安装程序无法通过windowsupdate服务搜索更新SQLServer安装提示安装程序无法通过windowsupdate服务搜索更新_sqlserver安装程序无法通过windowsupdate-CSDN博客解决方法:手动创建DefaultSetup.ini放置到安装程序文件夹里的x64或者x86目录中,如果De......
  • 2023.11.22值得推荐的一款服务器空间
    ,已经体验一个月咯,非常不错的免费资源,适合大家去了解了解~!他们家的免费空间,免费服务器,非常稳定,非常靠谱,值得拥有,价格厚道~!免备案服务,域名管理等等服务,应有尽有,2023年你值得了解,他们家的免费云服务器还是独立IP的哦,非常非常好,非常NICE~!官网地址:https://www.sanfengyun.com......
  • RHEL8新特性介绍及安装
    ......
  • TeraCloud国外WebDav服务器免费25GB空间 同步文档 同步数据
    TeraCloud简介:TeraCloud是日本老牌网盘,速度挺快的,此文包含设置打开TeraCloud的WebDav以及如何配置Zotero软件.速度高达200Mbps,注册即送20GB,叠加邀请码WRBUA,再送5GB,共25GB。WebDAV是一组基于超文本传输协议的技术集合,有利于用户间协同编辑和管理存储在万维网服务器文档。很......
  • 高斯数据库HCNA之单机数据库安装
    一、单机数据库安装1、以root用户身份登录GaussDB100所在服务器2、创建安装用户和用户组,其权限为0750groupadddbgrpuseradd-gdbgrp-d/home/omm-m-s/bin/bashomm3、为用户omm添加密码passwdomm4、按规划创建存放安装包的目录/opt/software/gaussdb,并上传安装包......