proxmox虚拟机中添加外部硬盘

  使用了proxmox也有一段时间了,以前一直对proxmox虚拟机的硬盘导入概念比较模糊,今天趁有时间总结一下。

  按照我个人理解,虚拟机建立完成后,可以在web gui中直接手动添加硬盘,硬盘可以添加在diretory中,也可以添加在local-lvm中 ,proxmox安装完成后,默认存在lvm的thin-pool,即local-lvm对应/dev/pve/data,默认存在local目录,对应/var/lib/vz。实际操作时,在datacenter层级手动新建diretory,名称为test,对应目录/okok,允许存放disk image,如下图所示:

 

1) 在web gui中操作为vmid为300的虚拟机添加新的磁盘(默认磁盘的大小为32G,磁盘格式为qcow2),如下:

以上实际的文件位置在/okok/images/300/vm-300-disk-0.qcow2

对以上文件进行文件信息的查询,如下:

 

 

 

对应命令行qemu-img -f qcow2 /okok/imges/300/vm-300-disk-0.qcow2   使用qemu-img创建qcow2文件请参考我的博文

然后qm set 300 -virtio1 (或者-ide1、 -sata1 、-scsi1) test:300/vm-300-disk-0.qcow2 

 

2)web gui添加lvm thin类型的磁盘

 以上web gui对应命令行方式:lvcreate -V 32G -T pve/data -n vm-300-disk-1

lvs命令查看是否创建成功

mkfs.ext4 /dev/data/vm-300-disk-1 这一步不确定是否需要

qm set 300 -virtio1 local-lvm:vm-300-disk-1,size=32G(size参数是否需要待确定)

 

3)自己在本机上创建img等文件,作为虚拟机的硬盘

dd if=/dev/zero of=/root/test.img count=100 bs=1M  创建100M的test.img文件

qm importdisk 300 /root/test.img local-lvm --format raw(format参数可以省略)或者qm importdisk 300 /root/test.img local(这里的local目录需要有存放disk image的权限)

qm importdisk命令的使用如下: vmid指虚拟机id,source指img文件的位置,storge指pve的本机可以存储disk image的位置 --format指定要转换成的目标格式

 

3)从外部导入ovf或者ova

3.1)比较典型的应用场景,通过ovf(通常一个ovf文件附带几个vmdk文件,vmdk文件通常代表vm的磁盘)导入routeros虚拟机 或者 通过ova文件方式虚拟机

实际上ova格式的文件可以理解为一个打包文件(该ova文件可以在linux下直接使用tar xvf test.ova直接解包),其中包括ovf和vmdk文件,ovf文件其中就包含虚拟机的内存,网卡等硬件配置。此时pve导入ovf文件时时不需要提前创建虚拟机的,直接在命令中通过ovf的mainfest信息导入虚拟机的硬件配置,如下:

qm importovf 300 /root/ros.ovf local-lvm --format qcow2 

以上添加ros.ovf文件后,需要在gui后者cli命令行中将磁盘attch为ide,然后还需要降入mode以及serial参数,如下:

,model=VMware%20Virtual%20IDE%20Hard%20Drive,serial=00000000000000000001  这样做的目的是为了破解ros

 

 qm importovf命令格式:(看下面的option中存在--dryrun表示不创建vm,只是查看mainfest配置)

  3.2)如果只有vmdk文件没有ovf文件,那么只能先创建虚拟机,然后通过qm importdisk 300 /root/test.vmdk local-lvm来将vmdk磁盘导入到虚拟机中。qm importdisk后,在/etc/pve/qemu-server/vmidx.conf配置文件下-unused0:local-lvm:vm-300-disk-4这样的方式呈现,需要在web gui中attach下,或者干脆在命令行中直接指定qm set 300 -virtio3:local-lvm/vm-300-disk-4,size=100M 

 

总结一下:

proxmox可以添加2种外部硬盘:

1)把外部硬盘硬塞给proxmox,主要是把外来硬盘文件放置 相应虚拟机的硬盘默认位置,参考这里的文档(https://foxi.buduanwang.vip/virtualization/372.html/)中的方法1,这种方法在实际启动虚拟机的时候可能容易出现pve链接克隆报错Linked clone feature is not supported for drive 'scsi0' 当出现这种错误时请参考https://foxi.buduanwang.vip/virtualization/pve/525.html/

2)先将外部硬盘 通过importdisk导入到虚拟中,参考文档https://foxi.buduanwang.vip/virtualization/372.html/中的 方法2

 

posted @ 2020-09-23 12:36  helloweifa  阅读(11722)  评论(1编辑  收藏  举报