https://docs.oracle.com/zh-cn/learn/ol-kvm/index.html#introduction
注意:
此教程在 Oracle 提供的免费实验室环境中提供。
它使用 Oracle Cloud Infrastructure 身份证明、租户和区间的示例值。完成练习后,将这些值替换为特定于云环境的值。
简介
基于内核的虚拟机 (Kernel-based Virtual Machine,KVM) 是一个开源的 type-1(裸机)虚拟机管理程序。此功能允许主机系统(如 Oracle Linux 8)在受支持的硬件上运行时托管多个虚拟机 (Virtual Machine,VM) 或来宾。
本教程将部署 Oracle Linux 内核虚拟化管理器 (KVM) 来创建虚拟机。
目标
部署 KVM
为虚拟机部署 Cockpit
基于 ISO 创建虚拟机
使用 Oracle Cloud 映像创建虚拟机
先决条件
具有以下配置的任何 Oracle Linux 8 或更高版本系统:
具有 sudo 权限的非 root 用户
virtualization" style="margin: 20px 0px 10px; padding: 0px; box-sizing: border-box; color: var(--oj-heading-text-color); font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 30px; font-weight: 400; line-height: var(--oj-typography-heading-xl-line-height); text-wrap: wrap; background-color: rgb(255, 255, 255);">验证环境支持虚拟化
注意:使用免费实验室环境时,请参见 Oracle Linux Lab Basics 了解连接和其他使用说明。
如果尚未连接,请打开一个终端并通过 ssh 连接到您的实例。
复制ssh oracle@<ip_address_of_instance>
运行以下命令以确定 CPU 类型。
复制grep -e 'vendor_id' /proc/cpuinfo
输出示例:
复制[oracle@ol-node01 ~]$ grep -e 'vendor_id' /proc/cpuinfo vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel
此系统基于 Intel,由 GenuineIntel 的输出显示。
对于 Intel 系统,键入以下命令。
复制grep -e 'vmx' /proc/cpuinfo
命令输出中存在 vmx 标志表示此系统支持虚拟化。
检查装入的 KVM 模块。
复制lsmod | grep kvm
输出示例:
复制[oracle@ol-node01 ~]$ lsmod |grep kvm kvm_intel 262144 0 kvm 696320 1 kvm_intel irqbypass 16384 1 kvm
输出基于此系统的硬件显示 KVM 内核模块和 kvm_intel 处理器模块。默认情况下,这些模块应在现代 Linux 系统上加载。
安装和启动 KVM
安装与 Oracle Linux 虚拟化模块关联的软件包。
复制sudo dnf module install virt -y
此命令安装虚拟化软件包的集合,包括 libvirt、qemu-kvm 和其他依赖项。
安装
virt-install
和virt-viewer
。复制sudo dnf install virt-install virt-viewer -y
这将完成所需软件包集的安装。
验证主机是否已准备就绪并设置为运行 libvirt VM。
复制virt-host-validate
输出示例:
复制[oracle@ol-node01 ~]$ virt-host-validate QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists : PASS QEMU: Checking if device /dev/kvm is accessible : PASS 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 QEMU: Checking for device assignment IOMMU support : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform) QEMU: Checking for secure guest support : WARN (Unknown if this platform has Secure Guest support)
如果所有检查 PASS,则系统将为创建的 VM 准备。如果有任何检查失败,请按照说明更正问题。如果有任何检查返回 WARN 的值,请考虑按照说明改进虚拟化功能。
启动
libvirtd
守护进程并使其在每次引导时自动启动。然后检查其状态以确认其已启动且正在运行。复制sudo systemctl enable --now libvirtd.servicesudo systemctl status libvirtd.service
输出示例:
复制[oracle@ol-node01 ~]$ sudo systemctl enable --now libvirtd.service [oracle@ol-node01 ~]$ sudo systemctl status libvirtd.service * libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor pr> Active: active (running) since Mon 2022-06-13 21:28:19 GMT; 8s ago Docs: man:libvirtd(8) https://libvirt.org ...
输出指示服务已启用且正在运行。
设置 Cockpit Web 控制台以在 Oracle Linux 上管理 KVM
安装 cockpit-machines 扩展以基于 Libvirt 管理 VM。
复制sudo dnf install cockpit cockpit-machines –y
启动 cockpit 套接字并使其能够在系统引导时自动启动。
复制sudo systemctl enable --now cockpit.socketsudo systemctl status cockpit.socket
输出示例:
复制[oracle@ol-node01 ~]$ sudo systemctl enable --now cockpit.socket Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/lib/systemd/system/cockpit.socket. [oracle@ol-node01 ~]$ sudo systemctl status cockpit.socket * cockpit.socket - Cockpit Web Service Socket Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor pres> Active: active (listening) since Mon 2022-06-13 21:39:24 GMT; 10s ago Docs: man:cockpit-ws(8) Listen: [::]:9090 (Stream) ...
输出指示服务已启用并正在监听。
要远程访问此站点,请为 cockpit 服务启用防火墙端口并重新加载防火墙配置以应用新更改。
复制sudo firewall-cmd --add-service=cockpit --permanentsudo firewall-cmd --reload
注:从 lunabox Desktop 上的第二个终端运行下一个命令。
在 lunabox 桌面上打开第二个终端,然后输入以下命令使用 ssh 为 Cockpit 创建本地端口转发。
复制ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
在桌面上打开 Web 浏览器并浏览到 https://localhost:9090。
Cockpit Web 控制台使用自签名证书启用 HTTPS。
从浏览器收到警告后,单击 "Advanced"(高级)并接受连接。
以口令为
oracle
的oracle
用户身份登录。此时将显示 "Cockpit" 显示板。
单击“Limited Access(有限访问)”按钮获得管理权限。
关闭“Administration(管理)”访问窗口。
基于 ISO 创建虚拟机
单击左侧导航面板中的“Virtual Machines(虚拟机)”选项。
单击 "Create VM"(创建 VM)按钮。
请提供以下信息:
复制Name: OL-demo Connection: System Installation type: URL (ISO image or distro install tree) Installation source: https://yum.oracle.com/ISOS/OracleLinux/OL8/u6/x86_64/OracleLinux-R8-U6-x86_64-dvd.iso Operating system: Oracle Linux 8.6 Storage: Create new volume Size: 20 GiB Memory: 16 GiB Immediately start VM: check
单击“Create(创建)”开始。
从虚拟机列表中,单击 OL-demo 链接。
向下滚动以查看 VNC 控制台。
如果您速度足够快,您将看到包含安装 Oracle Linux 或测试此介质和安装选项的菜单。默认情况下,将在几秒钟后选择“Test(测试)”选项。安装程序将验证介质上的内容是否正确,然后启动安装程序。
安装程序引导后,会显示 "Welcome to Oracle Linux" 屏幕。通过选择安装过程的语言开始安装。
此实验不会继续执行安装过程。
注意:可以通过以下视频链接观看演示 Oracle Linux 安装过程的免费视频:安装 Oracle Linux 8
单击窗口右上角的“X”关闭 Web 浏览器。
使用 Oracle Cloud 映像创建虚拟机
注:请确保从云实例 (ol-node01) 终端窗口中输入以下命令。
转到 KVM 映像存储位置。
复制cd /var/lib/libvirt/images
下载 Oracle Linux VM 模板。
复制sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
创建元数据文件。
复制cat << 'EOF' | sudo tee ~/meta-data > /dev/null instance-id: iid-local01 local-hostname: vm-01EOF
创建用户数据文件。
复制cat << 'EOF' | sudo tee ~/user-data > /dev/null #cloud-config system_info: default_user: name: opc ssh_authorized_keys: - <paste_public_key_here>EOF
生成 SSH 密钥对
复制ssh-keygen -t rsa -b 4096
单击
Enter
可接受每个默认值。密钥对将写入用户主目录中的.ssh
目录。将公钥复制到用户数据文件中。
复制SSHKEY=$(cat ~/.ssh/id_rsa.pub)sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
生成 ISO 映像。
复制sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
创建实例。
复制sudo cp /var/lib/libvirt/images/OL8U6_x86_64-kvm-b126.qcow /var/lib/libvirt/images/vm-01.qcowsudo virt-install --name vm-01 \--memory 2048 \--vcpus 2 \--disk /var/lib/libvirt/images/vm-01.qcow,device=disk,bus=virtio \--disk /var/lib/libvirt/images/vm-01.iso,device=cdrom \--os-type linux --os-variant ol8.6 \--virt-type kvm --graphics none \--network network=default,model=virtio \--noautoconsole \--import
列出 VM。
复制sudo virsh list
检索
vm-01
虚拟机的 IP 地址。复制sudo virsh net-dhcp-leases --network default
注:根据虚拟机的启动速度,可能需要再次运行该命令以显示 IP 地址。
或者,可以基于 MAC 地址进行过滤。
复制sudo virsh domiflist vm-01
从上一个输出复制 MAC 地址并在以下命令中提供。
复制sudo virsh net-dhcp-leases --network default --mac <MAC_address>
使用
ssh
连接来验证虚拟机工作。复制ssh opc@<vm-01-ip_address>
输出示例:
复制[oracle@ol-node01 images]$ ssh opc@192.168.122.46 The authenticity of host '192.168.122.46 (192.168.122.46)' can't be established. ECDSA key fingerprint is SHA256:xcuVfQdoFDCC72i7plD0OfqDTSBG6QWhOm5ti4HIKEs. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.122.46' (ECDSA) to the list of known hosts. [opc@vm-01 ~]$ uname -a Linux vm-01 5.4.17-2136.307.3.1.el8uek.x86_64 #2 SMP Mon May 9 17:29:47 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
[可选] 从 Cockpit 仪表盘查看 VM
注:从 lunabox Desktop 上的终端运行下一个命令。
从 lunabox Desktop 终端窗口输入以下命令,以便使用 ssh 为 Cockpit 创建本地端口转发。
复制ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
在桌面上打开 Web 浏览器并浏览到 https://localhost:9090。
以口令为
oracle
的oracle
用户身份登录。此时将显示 "Cockpit" 显示板。
如有必要,请单击“Limited Access(有限访问)”按钮以获取管理权限。
单击左侧导航面板中的“Virtual Machines(虚拟机)”选项。
从虚拟机列表中,单击 vm-01 链接。
根据需要浏览“概览”部分、“磁盘”部分、“网络接口”等。
注:由于
vm-01
虚拟机是使用带有virt-install
的--graphical none
选项创建的,因此控制台在 Cockpit 中未处于活动状态。
此实验结束。
详细信息:
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle 学习资源管理器。
有关产品文档,请访问 Oracle 帮助中心。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/6297.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~