0
点赞
收藏
分享

微信扫一扫

虚拟机管理工具KVM

兽怪海北 03-10 20:15 阅读 1

1.KVM安装

virt-install命令安装

命令选项 作用 用例
--name 定义虚拟机名字 --name myvm
--memory 选项后面跟的是以 KiB、MiB 或 GiB 为单位的内存大小, --memory 2048MiB
--ram 选项后面跟的是以 MB 为单位的内存大小 --ram 2048
--vcpus 用于指定虚拟机分配的虚拟CPU数量,它的值可以是一个整数,也可以是一个范围(例如2-4)。这个选项的作用是告诉KVM为虚拟机分配多少虚拟CPU,每个虚拟CPU通常对应于一个物理CPU核心或线程。 --vcpus 4
--cpu 选项用于指定虚拟机的CPU类型和特性。这个选项通常需要指定一个CPU模型,例如“host”表示使用宿主机的CPU类型,或者指定一个特定的CPU型号(如“qemu64”、“core2duo”等)。此外,--cpu选项还可以指定一些CPU特性,例如SSE4、AVX等。这些特性可以提高虚拟机的性能,但是需要确保宿主机和虚拟机的CPU支持这些特性。 --cpu host
--disk 用于指定磁盘设备的类型、路径和参数。例如,“--disk path=/var/lib/libvirt/images/myvm.qcow2,size=20,bus=virtio,format=qcow2”表示为虚拟机创建一个大小为20GB的qcow2格式的磁盘文件,使用virtio总线连接,并挂载到虚拟机的/dev/vda设备上。 --disk path=/var/lib/libvirt/images/myvm.qcow2,size=20,bus=virtio,format=qcow2
--cdrom 用于指定虚拟机的光盘设备,可以将ISO镜像挂载到虚拟机中进行安装或更新操作。 --cdrom /var/lib/libvirt/images/myiso.iso
--boot 用于指定虚拟机启动时使用的磁盘设备和启动顺序。例如,“--boot hd”表示优先从虚拟机的磁盘设备启动,而“--boot cdrom”表示优先从虚拟机的光盘设备启动。 --boot hd
--noautoconsole 当使用 virt-install 命令创建和启动新虚拟机时,该命令通常会自动连接到虚拟机的控制台,以便能够直接观察安装过程并与虚拟机进行交互。

但是,在某些情况下,可能不希望在安装过程中自动连接到虚拟机的控制台。例如,当使用脚本或其他自动化工具来创建虚拟机时,或者只想通过其他方式(例如VNC或SPICE客户端)连接到虚拟机时。在这些情况下,可以使用 --noautoconsole 选项来告诉 virt-install 不要自动连接到控制台。 如果使用了 --noautoconsole 选项,可以稍后使用其他工具(如 virsh console 命令、VNC 客户端或 SPICE 客户端)手动连接到虚拟机的控制台。 | --noautoconsole | | --import | 跳过安装过程,直接从已有磁盘映像文件启动虚拟机 | --import | | --dry-run | 检查命令行参数的有效性,但不实际创建虚拟机。 | --dry-run |

2.KVM扩容

1.kvm 单存储文件扩容

  1. 关闭虚拟机:确保在进行操作之前关闭您要扩容的虚拟机,以防止数据损坏。
  2. 备份qcow2文件:在对qcow2文件进行任何操作之前,建议您创建一份备份,以便在出现问题时能恢复到原始状态。
cp vm.qcow2 vm.qcow2.backup
  1. 使用qemu-img工具扩容qcow2文件:您需要使用qemu-img工具扩展qcow2文件的大小。以下命令将增加50GB的空间:
qemu-img resize your_vm.qcow2 +50G
  1. 启动虚拟机:在此步骤中,启动虚拟机并登录。
  2. 检查新的磁盘空间:使用以下命令检查新分配的磁盘空间:
sudo fdisk -l
  1. 创建新分区:使用fdisk工具来创建一个新分区。替换**/dev/vda**为查出来的磁盘名称。
sudo fdisk /dev/vda

fdisk命令行界面中,按照以下步骤操作:

  • 输入n,然后按回车,以创建一个新分区。
  • 输入p,然后按回车,以创建一个主分区。
  • 输入分区号,如果没有指定,它将默认选择可用的分区号。
  • 接受默认的起始扇区。
  • 接受默认的结束扇区,以使用所有可用空间。
  • 输入w,然后按回车,将更改写入磁盘。
  1. 创建文件系统:为新分区创建文件系统。替换**/dev/vdaX为刚刚创建的分区名称(如/dev/vda2**)。
sudo mkfs.ext4 /dev/vdaX
  1. 挂载新分区:创建一个挂载点并将新分区挂载到该目录。
sudo mkdir /mnt/new_partition
sudo mount /dev/vdaX /mnt/new_partition
  1. 更新**/etc/fstab文件:为了确保每次启动时新分区都能自动挂载,需要更新/etc/fstab**文件。首先,获取新分区的UUID:
sudo blkid /dev/vdaX

然后,将以下内容添加到**/etc/fstab文件中,替换UUID/mnt/new_partition**为实际值:

UUID=your_partition_uuid /mnt/new_partition ext4 defaults 0 0
  1. 重新挂载所有分区:执行以下命令以应用**/etc/fstab**中的更改:
sudo mount -a

2.KVM 通过加载外部文件方式扩容

#用qemu-img命令创建文件
qemu-img create -f qcow2 /var/lib/libvirt/images/slh07_extend.qcow2 2G
#关闭虚拟机
virsh shutdown centos-slh07
#修改虚拟机配置文件
virsh edit centos-slh07
#在<disk></disk>对的后面再加一个disk
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none'/>
      <source file='/var/lib/libvirt/images/slh07_extend.qcow2'/>
      <target dev='vdb' bus='virtio'/>
    </disk>
#开启虚拟机
virsh start centos-slh07
查看硬盘是否挂载成功
fdisk -l

image.png

#格式化新硬盘
fdisk /dev/vdb

image.png

#格式化硬盘
mkfs.ext4 /dev/vdb1 

image.png

#挂载硬盘
mkdir /data
mount /dev/vdb1 /data/

2.kvm多网卡扩容

  1. 关闭虚拟机:确保在进行操作之前关闭要添加网卡的虚拟机。
  2. 创建新的虚拟网络:如果需要,可以在宿主机上创建一个新的虚拟网络。以下命令将创建一个名为new_virtual_network的新虚拟网络:
sudo virsh net-define /usr/share/libvirt/networks/new_virtual_network.xml
sudo virsh net-start new_virtual_network
sudo virsh net-autostart new_virtual_network

请注意,这里使用的是示例XML配置文件。您需要根据自己的网络需求创建或修改相应的XML文件。

  1. 添加新网卡:要在虚拟机上添加新网卡,使用virsh attach-interface命令。确保替换your_vm_namenew_virtual_networkmac_address为实际值。可以使用virsh list --all命令查看虚拟机的名称。
sudo virsh attach-interface --domain your_vm_name --type network \
--source new_virtual_network --model virtio --config --mac mac_address

这里,--model virtio表示网卡使用VirtIO驱动,--config选项表示将此更改写入虚拟机的配置文件。

  1. 重复步骤3以添加更多网卡:如果需要添加多块网卡,可以多次运行步骤3中的命令,为每个新网卡指定不同的new_virtual_networkmac_address
  2. 启动虚拟机:启动虚拟机以应用更改。
sudo virsh start your_vm_name
  1. 配置虚拟机内的网络接口:登录到虚拟机,并为新添加的网卡配置网络接口。
sudo ip addr add 192.168.1.2/24 dev eth1
sudo ip link set eth1 up
  1. 为了使这些更改在虚拟机重启时生效,需要更新虚拟机内的网络配置文件**/etc/sysconfig/network-scripts/ifcfg-eth1**

3.kvm cpu扩容

  1. 关闭虚拟机
  2. 修改虚拟机的配置文件
#先备份配置文件
virsh dumpxml [虚拟机名] > [虚拟机名].xml.backup
#修改虚拟机配置
virsh dumpxml [虚拟机名] > [虚拟机名].xml
#然后,使用文本编辑器打开该文件,并找到 <vcpu> 标签。
#修改此标签以更改虚拟机的 CPU 数量。例如,将 CPU 数量更改为 4:
<vcpu placement='static'>4</vcpu>

保存并关闭文件。

  1. 应用新配置:使用以下命令将修改后的 XML 配置文件应用到虚拟机:
#应用虚拟机配置
virsh define [虚拟机名].xml
#启动虚拟机
virsh start [虚拟机名]
#查看cpu信息
virsh vcpuinfo [虚拟机名]

3.用qemu管理KVM

创建虚拟磁盘
qemu-img create -f qcow2 virtual_disk.qcow2 20G

这将创建一个20GB的 qcow2 格式的虚拟磁盘。2

安装操作系统
qemu-system-x86_64 -enable-kvm -m 2048 \
-cdrom /path/to/your/install-media.iso -boot d -hda virtual_disk.qcow2 \
-smp 2 -net nic -net user

在这个命令中,我们创建一个带有2GB RAM(-m 2048)和2个CPU核心(-smp 2)的虚拟机。使用ISO镜像(-cdrom /path/to/your/install-media.iso)启动虚拟机。网络配置为用户模式(-net nic -net user)。

启动虚拟机
qemu-system-x86_64 -enable-kvm -m 2048 \
-hda virtual_disk.qcow2 -smp 2 -net nic -net user
  1. qemu-system-x86_64: 这是 QEMU 的主程序,用于模拟 x86_64 架构的硬件。
  2. -enable-kvm: 开启 KVM 支持,这将允许虚拟机利用硬件虚拟化技术,从而获得更好的性能。
  3. -m 2048: 这个参数设置虚拟机的内存大小,单位是兆字节 (MB)。在这里,我们为虚拟机分配了 2048MB(2GB)内存。
  4. -hda virtual_disk.qcow2: 这个参数指定虚拟磁盘文件。这里我们使用之前创建的 qcow2 格式的虚拟磁盘文件 virtual_disk.qcow2 作为虚拟机的第一个硬盘。
  5. -smp 2: 这个参数指定虚拟机的 CPU 核心数量。在这里,我们为虚拟机分配了 2 个 CPU 核心。
  6. -net nic: 这个参数用于创建一个虚拟网络接口卡(NIC)。这允许虚拟机连接到虚拟网络。
  7. -net user: 这个参数指定虚拟网络的类型。在这里,我们使用了用户模式网络,这是 QEMU 默认提供的一个简单的虚拟网络实现。它允许虚拟机访问外部网络,但是性能相对较低,且无法与宿主机或其他虚拟机通信。对于更高级的网络需求,可以考虑使用 -net tap 或其他虚拟网络选项。

这些参数只是 QEMU 提供的众多选项中的一部分。你可以根据你的需求调整这些参数,或者查阅 QEMU 官方文档了解更多选项:https://www.qemu.org/docs/master/

保存虚拟机快照
qemu-img snapshot -c snapshot_name virtual_disk.qcow2

这将为虚拟磁盘创建一个名为 "snapshot_name" 的快照。

恢复虚拟机快照
qemu-img snapshot -a snapshot_name virtual_disk.qcow2
举报

相关推荐

0 条评论