0

PhpでXen管理Webアプリを開発しています。VDI (仮想ディスク イメージ) の名前変更 API とサイズ変更 API の使用法はほとんど同じです。VDI のサイズ変更に成功していません。ここで私が間違っていると思いますか。

リネーム機能:

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"
4

1 に答える 1

0

完全を期すために、この質問は複製され(以下のリンクを参照)、正常に解決されたと報告されたため、その質問からの回答をここに貼り付けています。

質問: VDIサイズ変更APIが機能しない

回答:これをざっと見てみると:http://xen.org/files/XenCloud/ocamldoc/apidoc.html?c = VDI

「仮想サイズの設定」ではなく、「サイズ変更」または「オンラインサイズ変更」のいずれかの方法を試してみるべきだと思います。

「サイズ変更」メソッドで成功したと報告されました。

于 2013-01-22T17:19:04.513 に答える