首页 > 系统相关 >Rocky Linux 系列3 --- KVM

Rocky Linux 系列3 --- KVM

时间:2023-03-06 22:23:20浏览次数:72  
标签:sudo Rocky -- virt 虚拟机 KVM libvirt --- install

一、概要

1. 环境

Rocky Linux 9.1

2. KVM

KVM是Kernel-based Virtual Machine的简称,这是一个开源的针对Linux内核的虚拟化解决方案。它同时支持Intel和AMD的CPUs并且允许用户在Linux下创建和管理虚拟机。

Linux内核作为一个虚拟程序,允许用户虚拟化整个服务器并创建多个虚拟机。

3. 检查虚拟化支持

lscpu | grep Virtualization

4. 检查KVM模块是否已加载

lsmod | grep kvm

二、安装与配置

1. 更新仓库

sudo dnf update -y

2. 安装

(1) 安装virt-install和virt-viewer

sudo dnf install virt-install virt-viewer -y

a. virt-install是一个用于创建虚拟机的命令行工具;

b. virt-viewer是一个轻量的UI接口,它允许用户通过VNC或者SPICE协议与KVM虚拟机交互;

(2) 安装libvirt守护进程

sudo dnf install -y libvirt

(3) 安装virt-manager

sudo dnf install virt-manager -y

(4) 安装其他必要应用

sudo dnf install -y virt-top libguestfs-tools

3. 启动libvirt守护进程

(1) 启动并设置开机启动

sudo systemctl enable --now libvirtd
or
sudo systemctl start libvirtd
sudo systemctl enable libvirtd

(2) 检查状态

systemctl status libvirtd

(3) 验证安装结果

sudo virt-host-validate

4. 配置KVM的网桥

如果需要再KVM管理程序之外访问KVM虚拟机,则需要配置网桥。在这里我们把这个网桥命名为“kvmbridge0”。

(1) 添加网桥kvmbridge0

nmcli connection show
sudo nmcli connection add type bridge autoconnect yes con-name kvmbridge0 ifname kvmbridge0

(2) 查看网桥状态

nmcli device status

(3) 使用物理网卡管理新建的网桥

sudo nmcli connection modify enp0s31f6 master kvmbridge0

(4) 配置IP地址

sudo nmcli connection modify kvmbridge0 ipv4.addresses '192.168.28.66/24' --- 宿主机所在局域网的地址
sudo nmcli connection modify kvmbridge0 ipv4.gateway '192.168.28.1'
sudo nmcli connection modify kvmbridge0 ipv4.dns '192.168.28.1'
sudo nmcli connection modify kvmbridge0 ipv4.method manual

(5) 启动网桥

sudo nmcli connection up kvmbridge0
sudo nmcli connection modify kvmbridge0 connection.autoconnect-slaves 1

(6) 确认状态

nmcli device
ifconfig

此时,查看kvmbridge0的状态,它已被分配我们制定的IP地址。

三、创建虚拟机

1. 命令格式

virt-install [OPTION]

2. 参数类型 https://linux.die.net/man/1/virt-install

(1) --name: 虚拟机的名称,对于同一个libvirt守护进程管理的虚拟机群,名称务必保持唯一;

(2) --ram: 虚拟机内存,单位为MB;

(3) --vcpus: 给虚拟机分配的虚拟CPU数量;

(4) --cpuset: 给虚拟机分配的物理CPU,多个CPU使用逗号分割,如下:

0,2,3,5: 使用处理器0,2,3,5;
1-5,^3,8: 使用处理器1,2,4,5,8。

(5) --cdrom: 安装源,可以是CD-ROM或者指向ISO文件的本地目录;

如果需要在同一台宿主机安装多个虚拟机,建议使用该种方式制定安装源。例如,对于Rocky Linux 9,我们这样指定安装源:

--cdrom=/var/lib/libvirt/boot/Rocky-9.1-x86_64-minimal.iso

(6) --location: 安装源,支持以下格式:

a. 包含安装镜像的本地目录;

b. nfs:host:/path或者nfs://host/path,安装镜像的NFS目录;

c. http://host/path,安装镜像的http目录;

d. ftp://host/path,安装镜像的FTP目录;

对于Rocky Linux 9来说,可以制定它的location参数为:

--location "https://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/"

(7) --import: 导入现有的虚拟机镜像文件,而不是安装新的虚拟机操作系统;

(8) --os-variant: 该配置可以指定当前安装的虚拟机的操作系统类型,据此信息virt可以优化虚拟机的配置。可以通过下面的命令来查看libvirt支持的所有操作系统类型:

virt-install --os-variant list

对于Rocky Linux 9.1,我们可以配置该参数值为:rocky9

(9) --disk: 指定存储当前虚拟机的媒介,该参数的格式如下:

--disk opt1=val1,opt2=val2,..

它的子配置项如下:

a. path: 存储媒介的路径,可以是一个文件或者块设备,如果文件不存在需要同时提供size参数,系统将自动创建该存储媒介文件;

b. size: 存储媒介的大小,以GB为单位。

(10) --network: 虚拟机的网络配置,该参数的格式如下:

--network=NETWORK,opt1=val1,opt2=val2

NETWORK的取值如下:

a. bridge=网桥名称,虚拟机使用指定的网桥来访问局域网;

b. network=NAME,使用名称为NAME的虚拟网络来配置虚拟机的网络;

c. user, 使用SLIRP来访问局域网;

其他参数:

a. model=[Model], 网络设备的model;

b. mac=[52:54:00:**:**],为虚拟机制定固定的Mac地址;该参数默认为RANDOM,对于Xen虚拟机,Mac地址的前三部分应该为'00:16:3e' ,对于QEMU或者KVM虚拟机,前三部分应该为'52:54:00';

(11) --nonetworks: 虚拟机不需要网络配置;

3. 源镜像

(1) 创建目录

sudo mkdir -p /var/lib/libvirt/iso

(2) 设置权限

sudo chown root /var/lib/libvirt/iso

校验:

sudo getfacl -e /var/lib/libvirt/iso

(3) 下载镜像

wget https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.1-x86_64-minimal.iso

4. 安装

sudo virt-install --name <虚拟机名> \
--ram 8192 \
--vcpus 2 \
--disk path="/var/lib/libvirt/images/<虚拟机名>.img",size=40 \
--os-variant rocky9 \
--location "/var/lib/libvirt/iso/Rocky-9.1-x86_64-minimal.iso" \
--graphics none \
--extra-args="console=ttyS0"

5. Cockpit安装

四、参考

1. 官方

https://libvirt.org/docs.html

2. 其他

https://www.cyberciti.biz/faq/how-to-install-kvm-on-centos-7-rhel-7-headless-server/

https://www.linuxtechi.com/how-to-install-kvm-on-rhel-9/

https://technixleo.com/install-kvm-on-centos-alma-rhel-9/

https://www.centlinux.com/2022/08/setup-kvm-virtualization-host-on-rocky-linux-9.html

标签:sudo,Rocky,--,virt,虚拟机,KVM,libvirt,---,install
From: https://www.cnblogs.com/eagle6688/p/17179316.html

相关文章

  • 面试复习总结-tcp三次握手四次挥手
    1.TCP/IP协议:应用层:HTTPFTPTFTPHTTPS会话层表达层传输层:TCPUDP网络层:IPICMPARP 数据链路层:PPP,PPTP物理层:帧 tcp三次握手四次挥手: 1.客户端发送连接......
  • 33. CF-Divisor Paths
    链接求从\(x\)到\(y\)的最短路径的数量。显然应该从\(x\)走到\(\gcd(x,y)\)再走到\(y\),容易证明这样走是最优的。那么现在只需要把两段的最短路径数量分别求出......
  • 2-高级特性
    Dubbo高级特性dubbo-admin管理平台Monitor就是管理中心,但是官方宣布此组件并不完整正在维护中,所以一般采用dubbo-admin组件来进行服务的监控和管理。dubbo-admin管理......
  • 【THM】Hacking with PowerShell(Powershell脚本基础)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/powershell通过学习相关知识点:了解PowerShell攻击和PowerShell脚本的基础知识。PowerShell教程参考链......
  • nginx部署前端项目-location root与 alias区别
    1、locationroot:/path/uri(把匹配的路径追加到配置的路径:/demoProject追加到/usr/local/nginx/front/apps/demo)/demoProject{root/usr/local/nginx......
  • Github-Actions使用release-please实现自动发版
    ​releaseplease​是一个来自于Google​的自动发版工具,基于GithubActions可实现全自动发版。官网:https://github.com/googleapis/release-please上手在项目根目......
  • 性能测试-网络数据
    1、网络我们通常说的网络,都是在TCP/IP协议族的基础上运作的,HTTP协议,只是这个协议族中的一个TCP协议:通过数据发送者和接收者相互回应对方发来的确认信息,可靠的进行数据传......
  • 每天一个linux命令 -- 系列教程
    Linux学习笔记Linux应用总结(1):自动删除n天前日志每天一个linux命令(61):wget命令每天一个linux命令(60):scp命令每天一个linux命令(59):rcp命令每天一个linux命令......
  • 73-企业级云服务阿里云-ECS建立网站案例
    云计算定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快......
  • 10,docker基础之---Harbor+阿里云+本地镜像仓库
    什么是镜像仓库?存放着很多镜像的仓库。为什么要使用镜像仓库?例如我们之前使用的pull下载mysql镜像的时候下载的镜像就是存放在他人的镜像仓库之上,公司内部部署镜像仓库即可......