当XenServer使用基于LVM的存储池时,可能会出现磁盘空间不足的情况。此时可以通过添加虚拟磁盘扩容LVM磁盘分区来解决空间问题。下面是具体步骤:
步骤一:创建虚拟磁盘
登录到XenServer的Web管理界面,在存储中创建一个虚拟硬盘(VHD),大小与需要扩容的磁盘空间相同。假设新磁盘为/dev/sdb,现将其扩容至50G,可通过以下命令创建一个大小为50G的虚拟硬盘mydisk1.vhd:
xe vdi-create size=50GiB name-label=mydisk1 sr-uuid=<存储池UUID>
此命令会返回新虚拟磁盘的UUID,后续需要用到。
步骤二:将新的虚拟磁盘附加到虚拟机
xe vm-disk-add disk-size=50GiB vm-uuid=<虚拟机UUID> sr-uuid=<存储池UUID> vdi-uuid=<新虚拟磁盘UUID> device=sdz
其中,device参数需要指定一个未被占用的磁盘设备符号。
步骤三:在虚拟机中添加新的LVM分区
在虚拟机中执行以下命令:
fdisk /dev/sdz
输入m查看详细帮助信息,输入n创建新分区,输入w保存并退出。分区ID可以选择为Linux LVM类型。
步骤四:将新分区合并到LVM卷组中
执行以下命令将新分区添加到LVM卷组中:
pvcreate /dev/sdz1
vgextend <卷组名> /dev/sdz1
其中,<卷组名>为原本卷组的名称。
步骤五:扩容LVM逻辑卷
执行以下命令扩容逻辑卷:
lvextend -l +100%FREE <逻辑卷名>
这里-l参数指定扩容的大小,+100%FREE表示使用所有空闲空间。
步骤六:调整文件系统大小
使用以下命令调整文件系统大小:
- 对于ext3/ext4文件系统:
resize2fs <磁盘分区设备名>
- 对于XFS文件系统:
xfs_growfs <磁盘分区设备名>
示例一:向虚拟机web1扩容/dev/sdb磁盘的LVM分区
- 创建50G的虚拟磁盘
xe vdi-create size=50GiB name-label=mydisk1 sr-uuid=effe4c54-d7ee-f767-fade-7d2ece47f07f
返回的UUID:c16eabd5-0b31-4d75-8d84-962c1c6d46e0
- 将新的虚拟磁盘附加到虚拟机
xe vm-disk-add disk-size=50GiB vm-uuid=37e570ee-91a3-43ec-8861-ef0334e7b208 sr-uuid=effe4c54-d7ee-f767-fade-7d2ece47f07f vdi-uuid=c16eabd5-0b31-4d75-8d84-962c1c6d46e0 device=sdz
- 在虚拟机中添加新的LVM分区
fdisk /dev/sdz
n -> p -> 1 -> -> t -> 8e -> w
- 将新分区合并到LVM卷组中
pvcreate /dev/sdz1
vgextend vg_web /dev/sdz1
vg_web为原卷组名
- 扩容逻辑卷,并调整文件系统大小
lvextend -l +100%FREE /dev/mapper/vg_web-lv_webdata
xfs_growfs /dev/mapper/vg_web-lv_webdata
示例中假设逻辑卷名为vg_web-lv_webdata
示例二:向虚拟机db1扩容/dev/vg_db/lv_dbdata磁盘的LVM分区
- 创建200G的虚拟磁盘
xe vdi-create size=200GiB name-label=mydisk2 sr-uuid=d6ff17f0-3595-9258-e96a-550d6ac13f29
返回的UUID:1424d556-f7f9-4a2d-a4de-7cbfa8d522c4
- 将新的虚拟磁盘附加到虚拟机
xe vm-disk-add disk-size=200GiB vm-uuid=048a02d9-2d3a-46a6-8e17-834b9a5d356c sr-uuid=d6ff17f0-3595-9258-e96a-550d6ac13f29 vdi-uuid=1424d556-f7f9-4a2d-a4de-7cbfa8d522c4 device=sdz
- 在虚拟机中添加新的LVM分区
fdisk /dev/sdz
n -> p -> 1 -> -> t -> 8e -> w
- 将新分区合并到LVM卷组中
pvcreate /dev/sdz1
vgextend vg_db /dev/sdz1
vg_db为原卷组名
- 扩容逻辑卷,并调整文件系统大小
lvextend -l +100%FREE /dev/mapper/vg_db-lv_dbdata
resize2fs /dev/mapper/vg_db-lv_dbdata
示例中假设逻辑卷名为vg_db-lv_dbdata
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:XenServer 虚拟机扩容LVM磁盘分区的方法 - Python技术站