在 KVM 中使用云镜像 Cloud Images

我们想向您展示将 Cloud Images 与 KVM 结合使用的优势。使用 OpenStack 的优势之一是能够使用云镜像。这些云映像可以从 Distribution 网站下载,并且是其操作系统的预构建版本。无需安装。缺点是您通常需要注入 SSH 密钥才能登录。使用 OpenStack,这很容易,Horizo​​n 界面允许您选择要添加的密钥。如果您不想完全使用 OpenStack,但希望通过 QEMU 和 KVM 最有效地使用这些映像,那么您可以这样做,而且这并不困难。在本模块中,我们将学习如何下载云映像并创建一个 cloud-init 磁盘以在首次启动时自定义映像。您将看到如何在不需要 OpenStack 的情况下使用 KVM 中的云映像快速创建虚拟机。 

下载云镜像,第一步是定位您需要的云镜像。我建议使用您喜欢的搜索引擎并查找“<发行版> 云图像”:

下载后,我建议将图像保留在下载位置(例如主目录)上保持不变。稍后可以将其复制到正确的图像目录。复制文件而不是移动,因为它会给您留下一个未受影响的主图像,您可以在以后再次需要它时再次复制它。

下载最新的 Ubuntu 18.04 服务器镜像:

$ wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img

要下载最近的 CentOS 7 映像:

$ wget https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1809.qcow2

Ubuntu 上的默认用户帐户是“ ubuntu ”,CentOS 上是“ centos ”。

调整虚拟磁盘大小

虚拟磁盘大小可能非常小。在将其用于任何虚拟系统之前,我们可能会选择增加大小。我们可以查询当前的大小:

$ qemu-img info bionic-server-cloudimg-amd64.img 
image: bionic-server-cloudimg-amd64.img
file format: qcow2
virtual size: 2.2G (2361393152 bytes)
disk size: 324M
cluster_size: 65536
Format specific information:
    compat: 0.10
    refcount bits: 16

我们可以看到默认大小是 2.2 GB。我们可以将大小增加一定数量 (+5G) 或增加到目标大小 (10G)。我们将使用目标大小并制作一个 10GB 的虚拟磁盘。如果有以下情况,实际使用的大小不应有太大变化:

$ qemu-img resize bionic-server-cloudimg-amd64.img 10G
Image resized.

再次检查信息时,我们可以看到调整大小有效:

$ qemu-img info bionic-server-cloudimg-amd64.img 
image: bionic-server-cloudimg-amd64.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 324M
cluster_size: 65536
Format specific information:
    compat: 0.10
    refcount bits: 16

复制主盘

我们现在可以将磁盘文件复制到/var/lib/libvirt/images/ 以供虚拟机使用。我们也可以使用qemu-img命令来运行副本。

$ sudo qemu-img convert -f qcow2 bionic-server-cloudimg-amd64.img /var/lib/libvirt/images/proxy1.img

即使我们下载的图像是正确的 qcow2 格式,我们仍然可以使用此命令作为有效副本,并确保目标文件是 qcow2,与下载的格式无关。

创建云配置文件

我们需要在第一次启动时自定义映像。我们之前提到过,云系统通常仅限于通过 SSH 进行基于密钥的身份验证。这意味着我们不能使用用户名和密码。我们需要注入 SSH 密钥或为默认用户设置密码。我们还将借此机会设置主机名。我们将创建一个文本文件,该文件必须以#cloud-config开头

#cloud-config
password: Password1
chpasswd: { expire: False }
ssh_pwauth: True
hostname: proxy1

对于我的测试系统,我通常使用相同的密码,但您当然可以选择适合您的安全要求的密码。该文件是不言自明的,但我们需要将其复制到 ISO 文件上,以便在系统启动时使用。为此,我们将使用命令 cloud-localds。如果没有安装这个包,你可以添加它:

$ sudo apt install cloud-init-tools

安装后,我们可以从文本文件 cloud.txt 在图像目录中创建 ISO 文件 proxy1.iso:

$ sudo cloud-localds /var/lib/libvirt/images/proxy1.iso cloud.txt

我们现在有两个磁盘用于我们将要创建的虚拟机,proxy1.img 和 proxy1.iso。我们现在准备将这些磁盘导入 QEMU/KVM 虚拟机。我们可以使用 virt-install 或 virt-manager 来做到这一点。为了便于说明,我们将使用命令行和virt-install命令。

创建虚拟机

正如我们之前提到的,这些云镜像的一大特点是能够非常快速地运行虚拟机,无需安装。我们只需要导入磁盘映像并结合云配置 ISO 文件,即可自定义映像以允许密码验证。我们将使用 CLI 中的 virt-install 来执行此操作。如果需要,您可以使用以下命令安装软件包:

$ sudo apt install virtinstall

安装后,我们可以创建脚本来导入磁盘或直接从命令行运行。这是使用我之前创建的磁盘的示例:

sudo virt-install \
            --name proxy1\
            --memory 1024 \
            --disk /var/lib/libvirt/images/proxy1.img,device=disk,bus=virtio \
            --disk /var/lib/libvirt/images/proxy1.iso,device=cdrom \
            --os-type linux \
            --os-variant ubuntu16.04 \
            --virt-type kvm \
            --graphics none \
            --network network=default \
            --import

运行该命令时,将创建虚拟机元数据并启动映像。我们将连接到系统的控制台。我们可以使用提供给 cloud-config 的密码以 Ubuntu 用户身份登录。

如果您还记得,我们还增加了虚拟磁盘的大小,我们可以使用命令lsblk来查看结果

$ lsblk /dev/vda
NAME    MAJ:MINRM  SIZE RO TYPE MOUNTPOINT
vda     252:0    0  10G  0 disk 
├─vda1  252:1    0 9.9G  0 part /
├─vda14 252:14  0    4M  0 part 
└─vda15 252:15  0  106M  0 part /boot/efi

原文地址:https://blog.csdn.net/allway2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本练习的目标是下载云映像并生成 KVM - 虚拟机。云映像预装了 cloud-init,可用于将用户密钥、主机名和其他元数据注入正在生成的虚拟机中。我们不会使用 cloud-init 注入,我们将采用的方法是在云映像中烘焙一个新用户和一个密码,以访问生成的 KVM-VM。这种方法是一种 hack,它也可用于访问 VM,其中用户被锁定或用于在 Openstack 云上可用的云映像中设置后门。请注意,我在本练习中使用的是 Ubuntu 云 (Trusty - 14.04) 映像。下载云镜像文件wge
我们想向您展示将 Cloud Images 与 KVM 结合使用的优势。使用 OpenStack 的优势之一是能够使用云镜像。这些云映像可以从 Distribution 网站下载,并且是其操作系统的预构建版本。无需安装。缺点是您通常需要注入 SSH 密钥才能登录。使用 OpenStack,这很容易,Horizo​​n 界面允许您选择要添加的密钥。如果您不想完全使用 OpenStack,但希望通过 QEMU 和 KVM 最有效地使用这些映像,那么您可以这样做,而且这并不困难。在本模块中,我们将学习如何下载云映
在本分步指南中,我将引导您完成在 OpenSUSE 中安装和配置 KVM 的步骤。先决条件在安装 KVM 之前,首先要确保您的系统支持硬件虚拟化。我们在以下指南中记录了几种不同的方法来确定 Linux 系统是否支持虚拟化。如何查找 CPU 是否支持虚拟化技术 (VT)如果您的系统支持硬件虚拟化,请按照后续步骤中的说明在您的 openSUSE 系统上设置 KVM 虚拟化服务器。在 openSUSE 中安装和配置 KVM出于本指南的目的,我将使用以下系统:KVM虚拟化服
这是一个全面的 virsh 命令备忘单: virsh 是 KVM 虚拟机的命令管理用户界面。virsh 可用于创建、暂停、重新启动和关闭域。此外,virsh 可用于列出您的虚拟化管理程序平台中可用的当前域。virsh 与 Libvirt 交互,后者是一个旨在提供长期稳定的 C API 的库。目前支持 Xen、QEMU、KVM、LXC、OpenVZ、VirtualBox 和 VMware ESX。Virsh 命令备忘单在这个 virsh 命令备忘单中,我将向您展示最常用的 virsh 命令来管理在
以下是您如何使用 KVM 在本地机器上使用 Fedora 云镜像的方法。下载云图像。wget https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/35/Cloud/x86_64/images/Fedora-Cloud-Base-35-1.2.x86_64.qcow2制作一个名为 my-disk.qcow2 的新本地支持映像(这样我们就不会写入我们下载的映像)。qemu-img create -f qcow2 -b Fedor
# virsh net-dhcp-leases default# virsh net-dhcp-leases default | grep $VM | awk '{ print $5}'192.168.122.229/24
安装kvm虚拟机创建磁盘后保存镜像的地址(不可修改)qemu-img create -f qcow2 /root/kvm_qcow2/winx64_1.qcow2 30G创建虚拟机virt-install --virt-type kvm --os-type=windows --os-variant=win7 --name winx64_1.qcow2 --ram 1024 --cdrom=/root/kvm_ios/cn_windows_7_ultimate_with_sp1_x64_dvd_..
首先说说我对增量镜像的理解,增量镜像就是基本镜像的副本,拥有和基本镜像一样的环境(也就是基本镜像里面有什么,增量镜像里面就有什么)。但很神奇阿,增量镜像的占用空间非常小,却能正常使用,贴下图。king.qcow2是增量镜像,是通过ubuntu18.04.qcow2“拷贝”出来的。我目前还是没高清楚为什么增量镜像占用空间这么小,还能正常使用。有知道的望告知。下面说说怎么搭建增量镜像的。先说说镜像的陈放位置kvm镜像路径:/var/lib/libvirt/imageskvm镜像的xml配置文
检查首先检查 KVM host(宿主机/母机)上的kvm_intel模块是否打开了嵌套虚拟机功能(默认是开启的):root@localhost:~# modinfo kvm_intel | grep nestedparm: nested:boolroot@localhost:~# cat /sys/module/kvm_intel/parameters/nestedY如果上面的显示结果不是 Y 的话需要开启 nested:root@localhost:~# modprobe -r
1. 创建隔离网卡文件vim /etc/libvirt/qemu/networks/private.xml2. 填写内容&lt;network&gt;&lt;name&gt;private&lt;/name&gt;&lt;uuid&gt;d0c73469-bf25-494a-8257-abcd3c7954ae&lt;/uuid&gt;&lt;bridge name='private' stp='on' delay='0'/&gt;&lt;mac address='34:51:01:b
KVM默认安装好后,会有一个virbr0,该网卡一般只做为物理机和虚拟机之间nat使用。其默认使用的网段是192.168.122.0/24网段,这就造成对应的内部虚拟机有一个在192.168.122.0/24段的IP。而有时这并不符合我们的要求,我们可以修改该网段的地址,当然也可以删除或禁用该网卡,改用其他网卡。
查看macvirsh dumpxml win_ultimate_x64 | grep mac 查看对应mac的IP地址arp -a
禁止路由转发即可(临时)echo 0 &gt; /proc/sys/net/ipv4/ip_forward
2. 删除主机定义3. 删除KVM虚拟机文件4. 卸载yum中的kvm包安装时:卸载时:
这个命令会把磁盘镜像中的所有空闲空间释放,减少镜像的大小。
KVM虚拟机的复制分为两种情况,第一种KVM宿主机上对虚拟机直接克隆,第二种通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。第一种:直接克隆虚拟机1. 关闭要克隆的虚拟机2.语法:virt-clone –o 原虚拟机 –n 新虚拟机 –f 新虚拟机存放的路径virt-clone -o centos7.0 -n xuegod110 -f /var/lib/libvirt/images/xuegod110.img3. virt-manager启动kvm界面查看是..
【代码】KVM虚拟机获取所有IP(shell)
1. --os-variant参数支持的os可以通过如下命令查看:[root@KVM ~]# osinfo-query os2. 列出支持的操作系统参数,找到与自己要安装的iso匹配