第一节:Linux 环境下使用KVM创建虚拟机
VM1:
virt-install -n obmc-build –memory 131072 –vcpus=96 –os-variant=ubuntu22.04 –accelerate –cdrom /home/ubuntu-22.04.5-live-server-amd64.iso –disk /home/vmsets/obmc-build.vm,format=qcow2,bus=virtio,size=786 –network network=default –vnc –vncport=5996 –vnclisten=0.0.0.0
VM2:
virt-install -n g-server –memory 32768 –vcpus=16 –os-variant=ubuntu22.04 –accelerate –cdrom /home/ubuntu-22.04.5-live-server-amd64.iso –disk /home/vmsets/g-server.vm,format=qcow2,bus=virtio,size=786 –network network=default –vnc –vncport=5997 –vnclisten=0.0.0.0
参数解析:
指定虚拟机的名称 |
指定虚拟机分配的内存大小(以 MB 为单位) |
指定虚拟机分配的虚拟 CPU 数量 |
指定操作系统的变体,以优化虚拟机的配置。这里指定为 ubuntu20.04,表示虚拟机将运行 Ubuntu 20.04。 |
启用加速功能(如 KVM 加速),以提高虚拟机的性能。 |
指定用于安装操作系统的 ISO 镜像文件路径。 |
指定虚拟机的磁盘配置。 |
生成磁盘文件的路径。 |
磁盘文件的格式为qcow2,这是一种支持动态分配和快照的磁盘格式。支持稀疏文件(动态分配),这意味着磁盘文件的实际大小会随着数据写入而增长,而不是一次性分配全部空间。 |
磁盘总线类型为virtio,这是一种高性能的虚拟化设备接口。 |
磁盘的大小(单位GB) |
指定虚拟机的网络配置。 1. bridge=br0;虚拟机将连接到名为 br0 的网桥,通常用于桥接网络。 2. network=default;使用 libvirt 的默认 NAT 网络(通常名为 default)。 |
启用 VNC(Virtual Network Computing)来远程访问虚拟机的图形界面。 |
指定 VNC 服务的端口号。同时存在多个虚拟机时,端口号需要区分。 |
指定 VNC 服务监听的 IP 地址。0.0.0.0 表示监听所有网络接口,允许从任何 IP 地址连接。127.0.0.1表示这样只允许本地访问。 |
第二节:常用的虚拟机管理命令
附加一个磁盘到虚拟机 |
拆除虚拟机上附加的磁盘 |
输出虚拟机的信息,XML格式 |
编辑虚拟机的信息,XML格式 |
重启虚拟机 |
重置虚拟机(通过保存的镜像) |
恢复虚拟机 |
创建虚拟机镜像 |
修改虚拟机最大内存限制 |
修改虚拟机内存分配 |
修改虚拟机虚拟CPU核心的数量 |
优雅地关闭一个虚拟机 |
启动一个不活动的虚拟机 |
挂起一个虚拟机 |
查询虚拟机vCPU核心数量 |
详细的虚拟机vCPU信息 |
添加或者拆除虚拟机vCPU核心 |
查询正在运行虚拟机的网络信息 |
查询所有虚拟机的虚拟接口 |
查询虚拟机网络接口的状态 |
查询虚拟机信息 |
查询虚拟机内存统计信息 |
查询虚拟机状态 |
查询一个或者多个虚拟机的统计信息 |
列出所有的虚拟机 |
第三节:图形化访问工具virt-viewer
virt-viewer <虚拟机名称>
第四节:虚拟网络控制台访问工具vnc
1. 查询虚拟机的VNC端口(输出是1,表示端口为5901,2对应 5902,以此类推)
virsh vncdisplay <虚拟机名称>
2. 使用VNC 客户端连接到虚拟机
- 如果 VNC 监听地址是127.0.0.1,可以在物理主机上运行: vncviewer 127.0.0.1:5901
- 如果 VNC 监听地址是0.0.0.0,可以从远程机器运行: vncviewer <物理主机IP>:5901
第五节:Linux环境下使用mdadm创建RAID
输入n创建新分区。
选择分区类型(通常选择主分区p)。
设置分区大小(默认使用整个硬盘)。
输入w保存并退出。
使用mkfs命令格式化分区
sudo mkfs.ext4 /dev/nvme1n1p1
sudo mkfs.ext4 /dev/nvme2n1p1
创建RAID1阵列
sudo mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/nvme1n1p1 /dev/nvme2n1p1
参数含义: –create:指定待创建RAID设备的名称。 –level=1:指定创建RAID的类型,RAID1。 –raid-devices=2:指定使用两块硬盘。
在RAID设备上创建文件系统
sudo mkfs.ext4 /dev/md0
挂载RAID设备
sudo mkdir /mnt/raid1
sudo mount /dev/md0 /mnt/raid1
设置系统启动自动挂载RAID设备 a. 为了在系统重启后自动挂载RAID设备,需要更新 /etc/fstab 文件,首先获取RAID设备
sudo blkid /dev/md0
b. 然后在 /etc/fstab 中添加一行
UUID=36a3a564-7575-4a62-b6af-e5b5ab3a4209 /mnt/data-raid1 ext4 defaults 0 0
c. 保存RAID配置以便系统重启后自动加载
sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf
验证RAID状态

第六节:创建虚拟磁盘
根据前几节,在宿主机上已经创建了RAID1设备/dev/md0(已挂载在 /mnt/data/raid1),现在需要将其容量分为三份,分别分配给宿主机以及两个虚拟机。
sudo qemu-img create -f qcow2 /mnt/data-raid1/g-server-vmdisk.qcow2 1T
/mnt/data-raid1/vmdisk/obmc-build-vmdisk.qcow2 vdb \\
–persistent \\
–subdriver qcow2 \\
–targetbus virtio \\
–cache none
virsh attach-disk g-server \\
/mnt/data-raid1/vmdisk/g-server-vmdisk.qcow2 vdb \\
–persistent \\
–subdriver qcow2 \\
–targetbus virtio \\
–cache none
评论前必须登录!
注册