PHP로 Xen 관리 웹 응용 프로그램을 개발 중입니다. 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);
...
,536,913,632 10
새로운 크기 값은 같은 물리적 서버에 XEN 명령으로 작동합니다
xe vdi-resize uuid="91fe671c-93e1-4162-8128-96fedc3c215c" disk-size="27011707392"
32 비트 시스템을 사용하고 있습니까? '$ size = '27011707392';'casted to int는'2147483647'이 될 것입니다. –
젠 서버는 32 비트 시스템입니다. 내 웹 서버의 VPS는 64 비트입니다. 너는 내가 들어 본 적이없는 것을 말해 준다. 변환을위한 매개 변수는 무엇입니까? 한편 '2147483647'도 효과가 없었습니다. – Kemal
필자는 하이퍼 바이저가 Intel 32bit로 실행되고 웹 서버가 AMD 64bit로 실행된다는 것을 알았습니다. 그게 그렇게 중요한 건가? – Kemal