Storage Pool は libvirt が操作可能な記憶領域です。
例えば、 Akatsuki による VM 貸し出しのフローは
- テンプレート用のVMイメージをテンプレートのストレージプールから読み取る
- 貸し出し用ストレージプールにテンプレートのVMイメージをコピー
- 貸し出しインスタンスとしてコピーされたものを起動する
といった形式になっています。
状況
- ストレージプール a と b がある
- ストレージプール a に hoge.img がある
- hoge.img をストレージプール b に fuga.img として複製したい
状況を再現するコマンド
とりあえず前提条件のストレージプール a と b を作ります。
今回のストレージプールはディレクトリタイプ。
他にも特定のデバイスをプールにするタイプなどいろいろあります。
- # virsh pool-define-as a dir - - - - /path/to/a
- # virsh pool-build a
- # virsh pool-start a
- # virsh pool-autostart a
- # virsh pool-define-as b dir - - - - /path/to/b
- # virsh pool-build b
- # virsh pool-start b
- # virsh pool-autostart b
そして a に hoge.img を作ります。
- # virsh vol-create-as --pool a hoge.img 10G
イメージができました。vol-list で確認します。
この hoge.img を b にコピーしたい。
やり方はいくつかありますが、今回は vol-create-from を使う方針でいきます。
その場合は xml が必要なので dumpxml で作っておきます。
- # virsh vol-dumpxml --pool a hoge.img > fuga.xml
fuga.xml の key や path を hoge の情報から、所望の情報に変更しましょう。
今回は /path/to/b/fuga.img になるように書き換えます。
そして vol-create-from でコピー。
- # virsh vol-create-from --inputpool a --vol hoge.img --pool b --file fuga.xml
再度 vol-list で確認します。
fuga.img が作成できていることが分かります。やったね。
環境
- OS: CentOS Linux release 7.4.1708 (Core)
- Kernel: 3.10.0-693.2.2.el7.x86_64
- virsh: 3.2.0
0 件のコメント:
コメントを投稿