VDI调整api大小不起作用
问题描述:
我正在用Php开发Xen管理web应用程序。 VDI(虚拟磁盘映像)重命名API和调整API使用情况非常相似。我还没有设法成功调整VDI的大小。你认为我在这里做错了吗?VDI调整api大小不起作用
重命名功能:
function xenapi_set_vdi_name($session, $ref, $name)
{
$conn = $session[0];
$sess = new xmlrpcval($session[1]);
$vdi = new xmlrpcval($ref);
$name = new xmlrpcval($name);
$msg = new xmlrpcmsg("VDI.set_name_label", array($sess, $vdi, $name));
$res = $conn->send($msg);
if ($res->faultcode())
return false;
$val = $res->value();
$status = $val->structmem("Status");
if ($status->scalarval() != "Success")
return false;
$value = $val->structmem("Value");
return $value->scalarval();
}
重命名工作用法:
...
xenapi_set_vdi_name($session, $vdi, "NewNameToMyVDI");
...
调整大小功能:
function xenapi_set_vdi_virtual_size($session, $ref, $size)
{
$conn = $session[0];
$sess = new xmlrpcval($session[1]);
$vdi = new xmlrpcval($ref);
$size = new xmlrpcval($size);
$msg = new xmlrpcmsg("VDI.set_virtual_size", array($sess, $vdi, $size));
$res = $conn->send($msg);
if ($res->faultcode())
return false;
$val = $res->value();
$status = $val->structmem("Status");
if ($status->scalarval() != "Success")
return false;
$value = $val->structmem("Value");
return $value->scalarval();
}
不工作调整用法:
...
$size = '27011707392';
settype($size, "integer");
xenapi_set_vdi_virtual_size($session, $vdi, $size);
...
新的大小值与XEN命令物理服务器上的工作原理为:
xe vdi-resize uuid="91fe671c-93e1-4162-8128-96fedc3c215c" disk-size="27011707392"
答
只是为了完整性:这个问题是重复的(见下面的链接),并报告为成功解决,所以我从粘贴我的回答问题在这里。
问: VDI resizing api does not work
答: 从快看看这个:http://xen.org/files/XenCloud/ocamldoc/apidoc.html?c=VDI
我认为你应该尝试使用或者“调整”或“调整在线”的方法,而不是“设置虚拟大小”。
用“调整大小”方法报告成功。
+0
我知道。我的serverfault问题与*合并。所以...再次感谢你。 – Kemal
您使用的是32位系统吗? '$ size ='27011707392';'铸造到int将是'2147483647'。 –
Xen服务器是一个32位系统。我的网络服务器的VPS是64位。你告诉我一些我从未听过的话。什么是转换参数。同时'2147483647'也不起作用。 – Kemal
我只是发现我的虚拟机管理程序作为英特尔32位运行,网络服务器作为AMD 64位运行。有关系吗? – Kemal