我的主机上有以下设置
[root@fake ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 32G 30G 785M 98% /
tmpfs 12G 76K 12G 1% /dev/shm
/dev/sda1 504M 103M 376M 22% /boot
/dev/sda4 1.6T 63G 1.5T 5% /project
/dev/sr0 3.0G 3.0G 0 100% /media/UDF Volume
由于 上的空间不足/root
,我想将虚拟机移至/project
(如果可能),并从那里创建所有新虚拟机。一旦解决了第二个问题,移动它们应该不是什么大问题——我无法弄清楚如何指示 KVM 将使用新 VM 创建的虚拟机映像存储在 上,/project
而不是/root
KVM 安装的位置。
有没有办法将虚拟机映像存储在与 KVM 本身不同的分区上?
答案1
将磁盘添加到 KVM 存储池。我使用 virt-manager,但我猜 virsh 也可以做到这一点。通过 virt-manager,对于新 VM,编辑,选择“连接详细信息”。打开存储选项卡。单击 + 按钮添加存储池,然后选择存储类型。我相信你想要文件系统。
答案2
将 KVM 中的虚拟机移动到另一个磁盘的过程需要几个步骤。您需要做的第一件事是在第二个磁盘上设置一个新的存储池。这可以在 virsh 或 virt-manager 中完成。要在 virsh 中执行此操作,您首先需要创建一个 XML 文件,该文件将在创建存储池期间引用。这是一个示例 XML 文件,您可以针对特定系统进行修改。
<pool type='disk'>
<name>newpool</name>
<source>
<device path='/dev/sdb'/>
<format type='gpt'/>
</source>
<target>
<path>/dev</path>
</target>
</pool>
创建 XML 文件后,用于virsh pool-define /dir/to/newpool.xml
创建 KVM 存储池。
接下来使用virsh pool-start
命令初始化您刚刚创建的新池。您可以使用来验证它是否已成功创建virsh pool-list --all
。您应该得到类似以下内容:
# virsh pool-list --all
Name State Autostart
-----------------------------------------
default active yes
newpool active no
您需要做的最后一件事是使用 为新池打开自动启动virsh pool-autostart newpool
。这会将 libvirtd 服务配置为在服务启动时自动启动磁盘。您可以virsh pool-list --all
再次运行,现在您应该会看到“自动启动”列下显示“是”。您可以做的最后一件事是检查 KVM 是否报告了新存储池的正确大小和其他信息。可以使用此命令找到此信息virsh pool-info newpool
。
创建新池后,您可以开始在不同的磁盘上创建虚拟机。希望这能解答您的问题。