openSUSE 快速虚拟化指南(上)—— QEMU/KVM
相关内容已经添加至:
https://zh.opensuse.org/KVM
本文是……
- 一篇教你如何在 openSUSE 上使用 KVM 的简易教程;
- [wiki] openSUSE 15.3 维基编辑讨论贴 的扩展内容之一;
- 本文内容上可能缺失了某些重要内容,欢迎补充;
- 本作品采用 知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议 进行许可 (CC BY-NC-SA 4.0)。
笔者的话:
实际上,KVM 的配置和使用并没有像 Arch Wiki 描述的那么繁琐(使用大量指令),SUSE 为 openSUSE 用户提供了一整套完善的虚拟化解决方案和详尽的文档,即使你对于终端不怎么熟悉,也能愉快地使用 KVM ,这应该也是 openSUSE 被 Arch Wiki 认定为对新手友好的原因。
既满足了非技术的用户的易用需求,又能满足技术用户的专业需求。
注意:
- VirtualBox 也是一个不错的虚拟机解决方案 ;
- 你应当具备一定的英语阅读理解能力以便于出现问题的时候可以翻阅官方的虚拟化手册以寻求解决方案;
- 不推荐使用 Xen 。
参考:
推荐阅读:
- https://www.linux-kvm.org/page/Documents
- https://www.linux-kvm.org/page/FAQ
- https://wiki.archlinux.org/index.php/KVM
准备
1. 检查可用性
打开终端,运行如下指令:sudo LC_ALL=C lscpu | grep Virtualization
检查输出结果,例如:Virtualization: VT-x
对于 Intel 处理器来说是 VT-x ,对于 AMD 处理器来说是 AMD-V ;否则你的机器不支持虚拟化。
2. 安装必要的包
- 运行
sudo zypper in libvirt
,安装libvirt
; - 打开 YaST ,点击虚拟化,然后点击 “安装 Hypervisor 和工具” 。勾选 KVM 工具 和 KVM 服务器,然后等到 YaST 自动安装并校验所有包;
如果你已经安装了 KVM 相关组件,那相应的选项会变成不可点击的灰色。
3. 准备安装镜像
略
4. 新建虚拟机
首先,打开开始菜单,搜索 KVM,找到 “虚拟系统管理器”,(你可以将其添加到收藏夹以便于使用。)点击启动该程序(需要 root 权限);
然后,点击 “文件” 下方的电脑小图标,创建虚拟机:
然后,勾选本地安装介质(计算机架构默认是 x86_64),你也可以选择网络安装,但是你必须保证 ISO 文件的镜像下载地址是正确无误的。
在步骤 2 中,点击 “浏览” ,在弹出的 “定位 ISO 介质卷” 窗口中,点击 “本地浏览” ,在文件管理器中找到你下载的镜像。然后点击 “前进” ,进入步骤 3
在步骤 3 中,你可以调整虚拟机可以使用的内存大小和 CPU 数(你可以使用默认值),点击 “前进” ,进入步骤 4
在步骤 4 中,你可以调整虚拟机的存储空间,你可以使用默认值(KVM 创建的储存类似于 VirtualBox 的动态分配的 VDI),点击 “前进” ,进入步骤 5,然后点击完成(KVM 会在配置完成后自动启动虚拟机的安装,但你可以在步骤 5 勾选默认未勾选的配置选项,在自动启动安装前进行对虚拟机的自定义配置)。
接下来的操作步骤请参考具体的系统安装教程。
4.1 自定义虚拟机位置
KVM 虚拟机文件默认的存放位置是 /var/lib/libvirt/images
在新建虚拟机的步骤 4 中,勾选 “选择或创建自定义储存”,然后点击下方的 “管理”,
在弹出的 “定位或创建储存卷” 窗口中,点击左下角的 “+” ,进行添加池,
再在又弹出的 “添加新储存池” 窗口中,将目标路径更改为你所希望虚拟机存放的文件夹的路径,池的类型默认是文件系统目录,你应当命名一个可以和其他池区分彼此的名称,然后点击保存。
点击右侧的池列表,选择你刚刚创建的池,然后点击 “详情” 页中的 “+”,创建新卷,名称自选,容量调节为你认为合适的值或默认值。点击完成。
然后选择你新建的卷,进入下一步。
5. 关闭虚拟机
注意,如果你直接点击虚拟机页面的关闭按钮,KVM 是不会关闭虚拟机的,它只会认为你关闭了远程连接(VNC);直接关闭虚拟系统管理器也不会关闭虚拟机(你只是关闭了 KVM 的前端页面)。
假设你上面两个操作都做了(Virtualbox 的逻辑),你得重新打开虚拟机管理器,右键点击正在运行虚拟机,然后选择 “关机” ,如果关不掉(可以考虑强制关机,但是会丢失数据),你应当用鼠标双击正在运行的虚拟机,打开虚拟机的虚拟屏幕,在虚拟机内执行关机操作。
5.1 保存/重载虚拟机
如果你需要保存当前虚拟机的进度以便于下次启动虚拟机的时候继续工作,你应当点击菜单栏中 关闭虚拟机 按钮右侧的倒三角符号,展开菜单,然后选择 “保存” 。这样 KVM 会把虚拟机的内存保存到储存中,并自动关闭虚拟机。
- 注意,在保存虚拟机后,请勿重启虚拟机或者启动虚拟机,以免发生因为同步错误而导致重载失败。
点击打开虚拟系统管理器,双击你之前保存的虚拟机,在弹出的窗口中(显示客户机未运行),点击左上方的 “虚拟机”,在展开的菜单中,点击恢复,进行虚拟机的重载。
5.2 删除虚拟机
右键点击所要删除的虚拟机,默认删除的只有虚拟机的文件,用于安装系统的源镜像默认不会删除。
6. 其他
6.1 虚拟网络未激活
如果默认的虚拟网络丢失之后,可以采用下面的方法重新加载和激活:
virsh net-define /usr/share/libvirt/networks/default.xml
标记默认网络自动启动:
virsh net-autostart default
启动默认网络:
sudo virsh net-start default
6.2 USB 设备重定向错误
如果你参照网上教程或者官方手册后,依旧无法使用 USB 重定向把 U 盘重定向到虚拟机中。你可以采取如下操作,将 USB 设备直接装入虚拟机:
首先,打开虚拟机页面,点击左上方小电脑图标(显示图形控制台)右侧的感叹号(显示虚拟硬件详情)
然后,点击左下角的 “添加硬件",在弹出的 “添加新虚拟硬件” 窗口的左侧列表中选择 USB 主机设备,接着在右侧列表中点击你的 U 盘(例如:002:002 SanDisk. Ultra Flair,这些 USB 主机设备的名称都可以很容易地和你的物理硬件一一对应。),点击完成。
然后你就可以在虚拟机中看到新添加的可移动储存设备。
- 该操作无需重启虚拟机
- 官方手册与之不同之处在于选择设备的时候是选择 ” USB 重定向 “
- 在虚拟机硬件详情页面右键删除你新添加的 USB 主机设备即可将 USB 设备从虚拟机中释放出来。
可参考的其他解决方案:
6.3 鼠标捕获
KVM 虚拟机会自动捕获点击虚拟屏幕的鼠标光标,如果你需要取消该操作,可以使用 L-Ctrl
+ L-Alt
快捷键组合取消鼠标捕获。
7. 为虚拟机扩充存储空间 —— KVM 虚拟机存储管理简单实例
- 现有一个虚拟磁盘空间为 20 GB 的虚拟机,需要将存储空间增加 100 GB。
打开虚拟机的连接详情,在存储页面找到空闲空间大于 100 GB 的池,创建新卷。
在虚拟机的硬件详情中,使用刚刚创建的新卷添加新的存储硬件,其余值设置为默认值。
启动系统后,可以在文件管理器中看到新添加的存储硬件,但是不能直接使用。
打开 YaST ,启动磁盘分区模块 ,选中新添加的 100 GB 磁盘,执行格式化操作(分区角色选择为数据和 ISV 应用程序,文件系统为 XFS)。
打开终端,执行如下的指令:
sudo chown -R 用户名:用户组 目录
,例如 sudo chown -R bh:users /run/media/bh
用户名为非 root 用户名,用户组通常是 users ,目录则具体取决于磁盘挂载在哪个目录之下。