Changes between Initial Version and Version 1 of linux/kvmmon


Ignore:
Timestamp:
2013/06/04 14:49:34 (11 years ago)
Author:
yuna
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • linux/kvmmon

    v1 v1  
     1= qemu monitor/agent = 
     2== qemu monitor == 
     3kvm(qemu)には、QMPと呼ばれるプロトコルを使って、qemuのモニタを実行することができます。 
     4 
     5{{{ 
     6# virsh qemu-monitor-command DOMAIN '{"execute": "query-version"}'|python -mjson.tool 
     7{ 
     8    "id": "libvirt-7",  
     9    "return": { 
     10        "package": "(qemu-kvm-0.12.1.2)",  
     11        "qemu": { 
     12            "major": 0,  
     13            "micro": 1,  
     14            "minor": 12 
     15        } 
     16    } 
     17} 
     18}}} 
     19 
     20== qemu guest agent == 
     21 
     22VMのスナップショットを取得する際に、ゲストOSの状況を考慮せずにスナップショットを取得すると、ファイルシステムの整合性が取れずにファイルが消失したり、ディスクが壊れたりすることがあります。qemu guest agentをゲストOSに導入し、KVM側でqemu guest agentを利用する設定をすることにより、ホスト-ゲスト間の通信ができるようになり、fsfreezeを利用しスナップショット時にキャッシュやバッファ上のデータをディスク上に書き出してから安全にスナップショットを取ることができるようになります。 
     23 
     24qemu guest agentを利用するには、libvirt xmlファイルにguestエージェントと通信するためのunix socketを作ってやります。 
     25 
     26{{{ 
     27    <channel type='unix'> 
     28      <source mode='bind' path='/var/lib/libvirt/qemu/LIVEBKUP1_TRUNK.agent'/> 
     29      <target type='virtio' name='org.qemu.guest_agent.0'/> 
     30    </channel> 
     31}}} 
     32 
     33XMLファイルは、/etc/libvirt/qemuにあります。編集したら、 
     34 
     35{{{ 
     36# service libvirtd restart 
     37# virsh start DOMAIN 
     38}}} 
     39 
     40ゲスト側では、 
     41{{{ 
     42# yum install qemu-guest-agent 
     43# service qemu-ga start 
     44}}} 
     45 
     46などで、qemu guest agentをインストール、起動します。ホスト側から、virsh qemu-agent-commandを実行することで、guest agentを介した操作をすることができます。 
     47 
     48{{{ 
     49# virsh qemu-agent-command DOMAIN '{"execute":"guest-info"}' | python -mjson.tool 
     50{ 
     51    "return": { 
     52        "supported_commands": [ 
     53            { 
     54                "enabled": true,  
     55                "name": "guest-network-get-interfaces" 
     56            },  
     57... 
     58            { 
     59                "enabled": true,  
     60                "name": "guest-fsfreeze-thaw" 
     61            },  
     62            { 
     63                "enabled": true,  
     64                "name": "guest-fsfreeze-freeze" 
     65            },  
     66             { 
     67                "enabled": true,  
     68                "name": "guest-fsfreeze-status" 
     69            },  
     70... 
     71        ],  
     72        "version": "1.0" 
     73    } 
     74} 
     75}}} 
     76 
     77 
     78guest-network-get-interfacesコマンドを利用すると、ゲスト側のネットワーク設定を取得できます。 
     79 
     80{{{ 
     81# virsh qemu-agent-command DOMAIN '{"execute":"guest-network-get-interfaces"}' | python -mjson.tool 
     82{ 
     83    "return": [ 
     84        { 
     85            "hardware-address": "00:00:00:00:00:00",  
     86            "ip-addresses": [ 
     87                { 
     88                    "ip-address": "127.0.0.1",  
     89                    "ip-address-type": "ipv4",  
     90                    "prefix": 8 
     91                },  
     92                { 
     93                    "ip-address": "::1",  
     94                    "ip-address-type": "ipv6",  
     95                    "prefix": 128 
     96                } 
     97            ],  
     98            "name": "lo" 
     99        },  
     100        { 
     101            "hardware-address": "52:54:00:47:20:de",  
     102            "ip-addresses": [ 
     103                { 
     104                    "ip-address": "192.168.1.3",  
     105                    "ip-address-type": "ipv4",  
     106                    "prefix": 18 
     107                },  
     108                { 
     109                    "ip-address": "fe80::5054:ff:fe47:20de",  
     110                    "ip-address-type": "ipv6",  
     111                    "prefix": 64 
     112                } 
     113            ],  
     114            "name": "eth0" 
     115        } 
     116    ] 
     117} 
     118}}}