当前位置: 首页 > article >正文

安装KVM并创建虚拟机及基本使用

#环境说明:Centos7

环境准备:

CPU开启虚拟化,给宿主机的CPU和内存分配足够多的配置

安装KVM

1.安装相关软件包

yum -y install qemu-kvm libvirt   virt-manager virt-install virt-viewer

软件包简介: 

  • qemu-kvm: 为kvm提供底层仿真支持 
  • libvirt: 使用最多的KVM虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机, libvirt是KVM通用的访问API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、 virtualBox等虚拟化方案
  • virt-manager: 图形界面管理工具,其底层也是调用libvirt API来完成对虚拟机的操作,包括虚拟机的 创建、删除、启动、停止以及一些简单的监控功能等
  • virt-install: 虚拟机命令行安装工具
  • virt-viewer: 通过 VNC 和 SPICE 协议显示虚拟机器图形控制台的最小工具。该工具在其同名软件包 中:virtviewer

2.启动服务

systemctl start --now libvirtd

创建虚拟机 

下面介绍三种创建虚拟机的方法:

在创建之前需要在宿主机上先创建一个存放系统镜像的目录,然后上传至此目录下

mkidr -p /data/isos

1.使用virt-manager图形化界面进行创建

#打开图形化需要下载Xmanager,并在Xshell开启下面功能:

 #图形化界面如果乱码,修改语言为英文就能解决

输入virt-manager命令打开图形化界面

基于ISO镜像文件创建 

 

 浏览

 

选择镜像 

 

 设置虚拟机内存

 

设置磁盘大小 

 

 

 

 后面按照安装Centos7系统时进行配置即可

2.使用virt-install创建虚拟机(需要手动安装系统)

创建前,需要先利用qume-img命令创建虚拟磁盘,如下:

qemu-img create -f qcow2 /var/lib/libvirt/images/centos7.qcow2 20G

然后使用下面命令创建虚拟机:

virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 \
--cdrom=/data/isos/CentOS-7-x86_64-Minimal-2009.iso --disk \
path=/var/lib/libvirt/images/centos7.qcow2 --network=default --graphics \
vnc,listen=0.0.0.0 --noautoconsole --os-variant=centos7.0

 选项解析如下:

  • --virt-type:指定要使用的虚拟机监控程序名称(kvm, qemu, xen)
  • --name:指定kvm虚拟机的名称
  • --ram:指定kvm虚拟机的内存大小
  • --vcpus:指定kvm虚拟机的CPU核数
  • --cdrom:指定ISO镜像文件所在路径
  • --disk:指定虚拟磁盘所在路径
  • --network:指定kvm虚拟机的网络模式,default为NAT模式;桥接模式为                                --network=bridge:virbr0,model=virtio
  • --graphics:指定显示设置
  • --noautoconsole:宿主机不自动尝试连接kvm虚拟机
  • --os-variant:指定要安装的系统版本

查看启动的虚拟机:

 

3.配合kickstart实现自动化部署kvm虚拟机(无须手动安装系统)

在创建前还是需要先创建虚拟磁盘,如下:

qemu-img create -f qcow2 /var/lib/libvirt/images/centos7.qcow2 20G

编写应答文件:

#需要自行创建

vim /root/ks.cfg
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted
$6$Dx1M9/RlV5sB0KJv$19AdCxXsCbBnXSrUbYWhHQvKmtgCd0stJSHb3NrMQXZj.OpZWcNGzOROn/tg6fgxU3HYVptC35dgMcg8rpY.61
# 系统语言
#lang zh_CN.UTF-8
lang en_US

# System authorization information
auth  --useshadow  --passalgo=sha512
# Use CDROM installation media
#cdrom

# Use text mode install
# 使用字符界面安装操作系统
text

# Do not configure the X Window System
# 不配置图形界面系统
skipx

# SELinux configuration
selinux --disabled

# Firewall configuration
firewall --disabled

# 设置动态获取 IP
network  --bootproto=dhcp --device=eth0 --onboot=on
#network  --hostname=HOSNAME

# 设置静态 IP
# network  --bootproto=static --device=eth0 --gateway=192.168.122.1 --ip=192.168.122.100 --nameserver=192.168.122.1 --netmask=255.255.255.0 --activate

# 系统安装完成后 重启系统
#halt
reboot

# System timezone 系统时区
timezone Asia/Shanghai

# System services  系统启动时候自动启动的服务
services --enable="chronyd"

# System bootloader configuration
#系统启动引导方式 vda 是kvm 虚拟机时候的第块磁盘名称
bootloader --location=mbr --boot-drive=vda

# 清除主引导记录
zerombr

# 删除原来的分区和磁盘标签
clearpart --all --initlabel

# 磁盘分区信息,这里采用的是 lvm 自动分区
autopart --type=lvm

# 下面是自定义分区
#part /boot --fstype="xfs" --ondisk=vda --size=200
#part / --fstype="xfs" --ondisk=vda --size=10040
#part /var --fstype="xfs" --ondisk=vda --size=2048
#part /home --fstype="xfs" --ondisk=vda --size=2048

# 安装软件
%packages
@^minimal
@core
chrony
%end

# 禁用 kdump
%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

# 安装系统完成后执行的命令脚本
#%post --interpreter=/bin/bash
#yum install -y epel-release bash-completion vim-enhanced wget
#yum group install "Development Tools" -y
#%end

# 用户密码策略
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

#上文件中rootpw --iscrypted指定的为root账户的密码,如过想修改为其它密码可以用下面命令生成加密字符串,将其替掉即可:

python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())' 

 

运行下面命令创建虚拟机:

virt-install -v \
     --arch x86_64 --virt-type kvm \
     --name centos7 \
     --memory 1024 \
     --vcpus 2 \
     --os-type linux \
     --location /data/isos/CentOS-7-x86_64-Minimal-2009.iso \
     --network default \
     --graphics none \
     --os-variant rhel7 \
     --initrd-inject "/root/ks.cfg" \
     --extra-args     "ks=file:/ks.cfg  \
                       console=tty0 console=ttyS0,115200n8 \
                       hostname=centos7" \
     --disk /var/lib/libvirt/images/centos7.qcow2,cache=writeback,io=threads,bus=virtio

 安装完后输入账户密码即可登录kvm虚拟机:

账户:root

密码:123.com

Ctrl+}退出

 

克隆现有的虚拟机

virt-clone -o centos7 -f /var/lib/libvirt/images/centos7.qcow2 -n centos7-2

选项解析:

  • -o:指定已存在的虚拟机名称
  • -f: 指定新虚拟机磁盘文件路径
  • -n:指定新虚拟机的名称

virsh常用命令:
查看当前启动的虚拟机: virsh list
查看所有虚拟机: virsh list --all
启动虚拟机: virsh start <name>
正常关机: virsh shutdown <name/ID>
强制关机: virsh destroy <name/ID>
暂停虚拟机: virsh suspend <name/ID>
恢复虚拟机: virsh resume <name/ID>
设置虚拟机随宿主机启动而自启动: virsh autostart <name/ID>
禁用虚拟机随宿主机启动而自启动:virsh autostart <name/ID> --distable
删除虚拟机配置,但不删除磁盘文件: virsh undefine <name/ID>
删除虚拟机包括磁盘文件: virsh undefine <name/ID> --remove-all-storage


http://www.kler.cn/a/2542.html

相关文章:

  • oracle位运算、左移右移、标签算法等
  • 左神算法基础巩固--3
  • 根据docker file 编译镜像
  • 分享3个国内使用正版GPT的网站【亲测有效!2025最新】
  • Android存储方案对比(SharedPreferences 、 MMKV 、 DataStore)
  • 测试岗位的基础知识
  • vue2图片预览插件
  • KDGX-A光缆故障断点检测仪
  • 【C语言】通讯录的实现(静态版)
  • C++演讲比赛流程管理系统_黑马
  • 这些IT行业趋势,将改变2023
  • 使用Android架构模板
  • 操作系统(1.2)--引论
  • PlotNeuralNet + ChatGPT创建专业的神经网络的可视化图形
  • 【云原生】k8s集群命令行工具kubectl之集群管理命令
  • 2023年顶级编程语言趋势
  • 鸟哥的Linux私房菜 正则表示法与文件格式化处理
  • C语言—程序环境和预处理(1)
  • IOS - 某驾宝典篇
  • 举一反三学python(3)---海龟绘图
  • 嵌入式常使用的库函数
  • 【基础知识】视频监控的基础知识
  • 能把爬虫讲的这么透彻的,没有20年功夫还真不行【0基础也能看懂】
  • WuThreat身份安全云-TVD每日漏洞情报-2023-03-15
  • 网络安全文章汇总导航(持续更新)
  • 基于OpenCV的人脸识别