RHCE(KVM——虚拟化入门)

25 篇文章 0 订阅

1、启用虚拟化

要在 RHEL 8 中使用虚拟化,您必须启用虚拟化模块,安装虚拟化软件包,并确保将您的系统配置为运行虚拟机(VM)的主机。

# 挂载
[root@kittod ~]#mount /dev/sr0 /mnt

# 安装如下模块和软件 
[root@kittod ~]# dnf module install virt -y
[root@kittod ~]# dnf install virt-install virt-viewer -y 

# 启动服务 
[root@kittod ~]# systemctl start libvirtd 

# 检查是否支持 
[root@kittod ~]# virt-host-validate
  QEMU: Checking for hardware virtualization                                 : FAIL (Only emulated CPUs are available, performance will be significantly limited)
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
WARN (Unknown if this platform has IOMMU support)
  QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)

2、创建虚拟机

2.1、使用命令行界面创建虚拟机

要使用 virt-install 工具在 RHEL 8 主机上创建虚拟机(VM),请按照以下步骤操作。
要创建虚拟机并启动操作系统安装,使用 virt-install 命令以及以下强制参数:

新机器的名称
分配的内存量
分配的虚拟 CPU(vCPU)数量
分配的存储的类型和大小
操作系统安装源的类型和位置

下面创建一个名为 demo-guest1 的虚拟机,它使用文本模式安装 RHEL8.iso 镜像文件,无需图形。它将客户端控制台连接到串行控制台。虚拟机有 6384 MiB 内存、2个 vCPU 和 20 GiB 磁盘。
当通过慢速网络连接连接到主机时这种安装很有用。

[root@kittod ~]# virt-install --name demo-guest1 --memory 6384 --vcpus 2 --disk size=20 --os-variant rhel8.0 --location RHEL8.iso --graphics none --extra- args='console=ttyS0'

**注:**
virt-install——安装指令
--name——虚拟机名称,为demo-guest1
--memory——运行内存,为6384MB
--vcpus——CPU数量,为2个
--disk size=磁盘大小,为20GB
--os-variant——操作系统,为rhel8.0
--location——镜像,为RHEL8.iso
--graphics——图形,none
--extra- args='console=ttyS0'——把虚拟机安装传递到当前窗口画面

在这里插入图片描述

[x]——已经配置好
[!]——必须配置
[ ]——需要配置

配置完之后,跳转到以下页面,完成配置
在这里插入图片描述
登录,进入虚拟机里面的虚拟机
在这里插入图片描述
按 “ctrl+]” 退出里面的虚拟机

如果 virt-install 失败并显示 cannot find default network 错误:
确定安装了 libvirt-daemon-config-network 软件包:

[root@kittod ~]#  dnf info libvirt-daemon-config-network
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Repository baseos is listed more than once in the configuration
Repository appstream is listed more than once in the configuration
Last metadata expiration check: 0:13:05 ago on Thu 02 Dec 2021 02:40:26 PM CST.
Installed Packages
Name         : libvirt-daemon-config-network
Version      : 6.0.0
Release      : 28.module+el8.3.0+7827+5e65edd7
Architecture : x86_64
Size         : 508  
Source       : libvirt-6.0.0-28.module+el8.3.0+7827+5e65edd7.src.rpm
Repository   : @System
From repo    : appstream
Summary      : Default configuration files for the libvirtd daemon
URL          : https://libvirt.org/
License      : LGPLv2+
Description  : Default configuration files for setting up NAT based networking

验证 libvirt 默认网络是否活跃,并配置为自动启动:

[root@kittod ~]# virsh net-list --all
 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   yes         yes
# 如果没有,激活默认网络并将其设置为 auto-start:
[root@kittod ~]# virsh net-autostart default 
Network default marked as autostarted 

[root@kittod ~]# virsh net-start default

2.2、使用 web 控制台创建虚拟机

# 安装cockpit和虚拟机组件 
[root@kittod ~]# dnf install cockpit cockpit-machines -y 

# 启用cockpit服务 
[root@kittod ~]# systemctl start cockpit 

# 访问地址(本机IP地址)为 
http://ip:9090

登录后,进入以下页面
在这里插入图片描述
使用该组件创建虚拟机
在这里插入图片描述
在这里插入图片描述
然后根据正常顺序安装
参考:Linux虚拟机安装

2.3、启动虚拟机

2.3.1、本地虚拟机启动

[root@kittod ~]# virsh start demo-guest1 
Domain demo-guest1 started

2.3.2、远程虚拟机启动

[root@xixi ~]# dnf install virt-install virt-viewer -y 
[root@xixi ~]# virsh -c qemu+ssh://root@192.168.226.130/system start demo-guest1 root@192.168.226.130's password: 
Domain demo-guest1 started 

# 可在主机上查看: 
[root@kittod ~]# virsh list 
Id	Name	State 
----------------------------- 
4	test	running 
6	demo-guest1	running

2.4、连接至虚拟机

要在 RHEL 8 中与虚拟机(VM)交互,您需要通过以下方法之一连接它:
· 使用web控制台
· 使用virt viewer应用程序和虚拟机图形界面交互
· 如果不需要图形显示,请使用ssh终端连接
· 当使用网络无法从系统连接到虚拟机,使用virsh控制台

2.4.1、使用web控制台

在这里插入图片描述

2.4.2、使用ssh终端

[root@kittod ~]# ssh root@192.168.122.207 
root@192.168.122.207's password: 
Activate the web console with: systemctl enable --now cockpit.socket 

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/ To register this system, run: insights-client --register 

Last login: Wed Oct 27 15:25:28 2021
[root@bogon ~]# ip ad 
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: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP 
group default qlen 1000 
	link/ether 52:54:00:cd:a4:33 brd ff:ff:ff:ff:ff:ff 
	inet 192.168.122.207/24 brd 192.168.122.255 scope global dynamic 
noprefixroute enp1s0 
		valid_lft 3384sec preferred_lft 3384sec 
	inet6 fe80::5054:ff:fecd:a433/64 scope link noprefixroute 
		valid_lft forever preferred_lft forever 
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 
	link/ether 52:54:00:d2:b5:fc brd ff:ff:ff:ff:ff:ff 
	inet 192.168.124.1/24 brd 192.168.124.255 scope global virbr0 
		valid_lft forever preferred_lft forever 
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 
	link/ether 52:54:00:d2:b5:fc brd ff:ff:ff:ff:ff:ff

2.4.3、使用串口终端

使用 virsh console 命令,可以连接到虚拟机(VM)的串行控制台。
但虚拟机有以下情况时很有用:
没有提供 VNC 或 SPICE 协议,因此没有为 GUI 工具提供视频显示。
没有网络连接,因此无法使用 SSH 进行交互。
虚拟机必须在内核命令行中配置串口控制台。要验证这一点,虚拟机的 cat /proc/cmdline 命令输出应该包含 console=ttyS0。例如:

[root@localhost ~]# cat /proc/cmdline 
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-305.el8.x86_64 root=/dev/mapper/rhel-root 
ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root 
rd.lvm.lv=rhel/swap console=ttyS0 rhgb quiet

如果没有在虚拟机中正确设置串口控制台,请使用 virsh 控制台连接到虚拟机,请将您连接到无响应的客户端控制台。然而,您仍然可以使用 Ctrl+] 快捷键退出无响应控制台。

要在虚拟机上设置串行控制台,请执行以下操作:
1、在虚拟机上,编辑 /etc/default/grub 文件并将 console=ttyS0 添加到以
GRUB_CMDLINE_LINUX 开头的行中。

[root@localhost ~]# vim /etc/default/grub 
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rhel-swap 
rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap console=ttyS0 rhgb quiet"

2、清除可能会阻止您更改生效的内核选项。

[root@localhost ~]# grub2-editenv - unset kernelopts

3、重新载入 Grub 配置:

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ... 
done

4、重启虚拟机查看

[root@localhost ~]# reboot 
[root@localhost ~]# cat /proc/cmdline 
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-305.el8.x86_64 root=/dev/mapper/rhel-root 
ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root 
rd.lvm.lv=rhel/swap console=ttyS0 rhgb quiet

至此,就可以使用串口终端连接到虚拟机了

[root@kittod ~]# virsh console demo-guest1 --safe 
Connected to domain demo-guest1 
Escape character is ^] 

Red Hat Enterprise Linux 8.4 (Ootpa) 
Kernel 4.18.0-305.el8.x86_64 on an x86_64 

Activate the web console with: systemctl enable --now cockpit.socket 

bogon login: root 
Password: 
Last login: Wed Oct 27 15:22:38 from 192.168.122.1 
[root@bogon ~]#

# 可使用ctrl + ] 来退出串口终端

2.4.4、连接远程虚拟机

[root@xixi ~]# virsh -c qemu+ssh://root@192.168.226.128/system list

# 也可以定义以下别名方便执行指令 
[root@xixi ~]# cat /etc/libvirt/libvirt.conf 
uri_aliases = [ 
	"demo-guest1=qemu+ssh://root@192.168.226.128/system" 
]
uri_default = "demo-guest1" 

# 执行命令 
[root@xixi ~]# virsh list 
root@192.168.226.128's password: 
Id	Name		State 
----------------------------- 
2	demo-guest1		running

2.5、关闭虚拟机

要关闭响应的虚拟机(VM),请执行以下操作之一:
· 在连接到客户端时,使用适合客户端操作系统的 shutdown 命令
· 在主机上使用 virsh shutdown 命令:
如果虚拟机位于本地主机上:

[root@kittod ~]# virsh shutdown demo-guest1 
Domain demo-guest1 is being shutdown
如果虚拟机位于远程主机上:
[root@xixi ~]# virsh shutdown demo-guest1 
root@192.168.226.128's password: 
Domain demo-guest1 is being shutdown

当然也可以使用Web控制台。
要强制客户端关闭(例如,如果它已经变得不响应),请在主机中使用 virsh destroy 命令:

[root@kittod ~]# virsh destroy demo-guest1 
Domain demo-guest1 destroyed

virsh destroy 命令并不实际删虚拟机配置或磁盘镜像。它只会销毁正在运行的虚拟机实 例。然而,在个别情况下,这个命令可能会导致虚拟机文件系统崩溃,因此只有在其它所 有关闭方法都失败时才建议使用 virsh destroy。

2.6、删除虚拟机

要删除虚拟机(VM),您可以使用命令行从主机中删除它的 XML 配置和相关存储文件。按照以下步骤操作:

先决条件:
备份虚拟机中的重要数据。
	关闭虚拟机。
	确保没有其他虚拟机使用相同的关联的存储。
使用 virsh undefine 工具。
	例如:以下命令删除 demo-guest1 虚拟机、与其关联的存储卷
	
	[root@kittod ~]# virsh undefine demo-guest1 --remove-all-storage --nvram
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值