您的位置:首页 > 其它

virsh 管​理​KVM

2016-01-21 15:38 288 查看
virsh
是​用​来​管​理​客​户​端​及​其​管​理​程​序​的​命​令​行​界​面​工​具​。​

virsh
工​具​是​构​建​在​
libvirt
管​理​
API 上​,可​作​为​ xm 命​令​和​图​形​客​户​端​管​理​程​序​(
virt-manager
)的​替​代​工​具​使​用​。​非​特​权​用​户​只​能​以​只​读​模​式​使​用​
virsh
。​您​可​使​用​
virsh
为​客​户​端​机​器​执​行​脚​本​。​


virsh 命​令​快​速​参​考​

下​表​提​供​所​有​ virsh 命​令​行​选​项​的​快​速​参​考​。​

命​令​Description
help
打​印​基​本​帮​助​信​息​。​
list
列​出​所​有​客​户​端​。​
dumpxml
输​出​客​户​端​ XML 配​置​文​件​。​
create
从​ XML 配​置​文​件​生​成​客​户​端​并​启​动​新​客​户​端​。​
start
启​动​未​激​活​的​客​户​端​。​
destroy
强​制​客​户​端​停​止​。​
define
为​客​户​端​输​出​ XML 配​置​文​件​。​
domid
显​示​客​户​端​ ID。​
domuuid
显​示​客​户​端​ UUID。​
dominfo
显​示​客​户​端​信​息​。​
domname
显​示​客​户​端​名​称​。​
domstate
显​示​客​户​端​状​态​。​
quit
退​出​这​个​互​动​终​端​。​
reboot
重​新​启​动​客​户​端​。​
restore
恢​复​以​前​保​存​在​文​件​中​的​客​户​端​。​
resume
恢​复​暂​停​的​客​户​端​。​
save
将​客​户​端​当​前​状​态​保​存​到​某​个​文​件​中​。​
shutdown
关​闭​某​个​域​。​
suspend
暂​停​客​户​端​。​
undefine
删​除​与​客​户​端​关​联​的​所​有​文​件​。​
migrate
将​客​户​端​迁​移​到​另​一​台​主​机​中​。​

表 15.1. 客​户​端​管​理​命​令​


使​用​以​下​
virsh
命​令​管​理​客​户​端​及​管​理​程​序​资​源​:

命​令​Description
setmem
为​客​户​端​设​定​分​配​的​内​存​。​
setmaxmem
为​管​理​程​序​设​定​内​存​上​限​。​
setvcpus
修​改​为​客​户​端​分​配​的​虚​拟​ CPU 数​目​。​
vcpuinfo
显​示​客​户​端​的​虚​拟​ CPU 信​息​。​
vcpupin
控​制​客​户​端​的​虚​拟​ CPU 亲​和​性​。​
domblkstat
显​示​正​在​运​行​的​客​户​端​的​块​设​备​统​计​。​
domifstat
显​示​正​在​运​行​的​客​户​端​的​网​络​接​口​统​计​。​
attach-device
使​用​ XML 文​件​中​的​设​备​定​义​在​客​户​端​中​添​加​设​备​。​
attach-disk
在​客​户​端​中​附​加​新​磁​盘​设​备​。​
attach-interface
在​客​户​端​中​附​加​新​网​络​接​口​。​
detach-device
从​客​户​端​中​分​离​设​备​,使​用​同​样​的​ XML 描​述​作​为​命​令​
attach-device
。​
detach-disk
从​客​户​端​中​分​离​磁​盘​设​备​。​
detach-interface
从​客​户​端​中​分​离​网​络​接​口​。​

表 15.2. 资​源​管​理​选​项​


这​些​是​其​它​
virsh
选​项​:

命​令​Description
version
显​示​
virsh
版​本​
nodeinfo
有​关​管​理​程​序​的​输​出​信​息​

表 15.3. 其​它​选​项​



连​接​至​管​理​程​序​

使​用​
virsh
连​接​到​管​理​程​序​会​话​:
# virsh connect <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{hostname OR URL}</code></span>


Where
<name>
is the machine name of the hypervisor. To initiate a read-only connection, append the above command
with
-readonly
.


创​建​虚​拟​机​ XML 转​储​(配​置​文​件​)

使​用​
virsh
输​出​客​户​端​ XML 配​置​文​件​:
# virsh dumpxml <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id, domain-name or domain-uuid}</code></span>


This command outputs the guest's XML configuration file to standard out (
stdout
). You can save the data by
piping the output to a file. An example of piping the output to a file called
guest.xml
:
# virsh dumpxml <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">GuestID</code></span> > <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">guest.xml</code></span>
This
file
guest.xml
can recreate the guest (refer to 编​辑​客​户​端​配​置​文​件​.
You can edit this XML configuration file to configure additional devices or to deploy additional guests. Refer to 第 18.1 节
“使​用​带​ virsh 的​ XML 配​置​文​件​” for more information on modifying files created with
virsh dumpxml
.

virsh dumpxml
输​出​示​例​:
# virsh dumpxml r5b2-mySQL01
<domain type='xen' id='13'>
<name>r5b2-mySQL01</name>
<uuid>4a4c59a7ee3fc78196e4288f2862f011</uuid>
<bootloader>/usr/bin/pygrub</bootloader>
<os>
<type>linux</type>
<kernel>/var/lib/libvirt/vmlinuz.2dgnU_</kernel>
<initrd>/var/lib/libvirt/initrd.UQafMw</initrd>
<cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet</cmdline>
</os>
<memory>512000</memory>
<vcpu>1</vcpu>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<interface type='bridge'>
<source bridge='xenbr0'/>
<mac address='00:16:3e:49:1d:11'/>
<script path='vif-bridge'/>
</interface>
<graphics type='vnc' port='5900'/>
<console tty='/dev/pts/4'/>
</devices>
</domain>



使​用​配​置​文​件​创​建​客​户​端​

Guests can be created from XML configuration files. You can copy existing XML from previously created guests or use the
dumpxml
option
(refer to 创​建​虚​拟​机​
XML 转​储​(配​置​文​件​)). To create a guest with
virsh
from an XML file:
# virsh create <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">configuration_file.xml</code></span>



编​辑​客​户​端​配​置​文​件​

Instead of using the
dumpxml
option (refer to 创​建​虚​拟​机​
XML 转​储​(配​置​文​件​)) guests can be edited either while they run or while they are offline. The
virsh edit
command
provides this functionality. For example, to edit the guest named
softwaretesting
:
# virsh edit <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">softwaretesting</code></span>


这​样​可​打​开​文​本​编​辑​器​。​默​认​文​本​编​辑​器​为​
$EDITOR
shell 参​数​(默​认​将​其​设​定​为​
vi
)。​


挂​起​客​户​端​

使​用​
virsh
挂​起​客​户​端​:
# virsh suspend<span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id, domain-name or domain-uuid}</code></span>


When a guest is in a suspended state, it consumes system RAM but not processor resources. Disk and network I/O does not occur while the guest is suspended. This operation is immediate and the guest can be restarted with the
resume
(恢​复​客​户​端​)
option.


恢​复​客​户​端​

使​用​
virsh
的​
resume
选​项​恢​复​客​户​端​:
# virsh resume<span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id, domain-name or domain-uuid}</code></span>


这​个​操​作​是​立​即​生​效​的​,客​户​端​状​态​将​处​于​
suspend
和​
resume
的​循​环​中​。​


保​存​客​户​端​

使​用​
virsh
命​令​将​客​户​端​的​当​前​状​态​保​存​到​文​件​中​:
# virsh save <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-name, domain-id or domain-uuid} filename</code></span>


This stops the guest you specify and saves the data to a file, which may take some time given the amount of memory in use by your guest. You can restore the state of the guest with the
restore
(恢​复​客​户​端​)
option. Save is similar to pause, instead of just pausing a guest the present state of the guest is saved.


恢​复​客​户​端​

Restore a guest previously saved with the
virsh save
command (保​存​客​户​端​)
using
virsh
:
# virsh restore <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">filename</code></span>


这​个​命​令​重​新​启​动​了​保​存​的​客​户​端​,这​会​需​要​一​段​时​间​。​客​户​端​名​称​和​ UUID 都​会​被​保​留​,但​会​分​配​一​个​新​的​ id。​


关​闭​客​户​端​

使​用​
virsh
命​令​关​闭​客​户​端​:
# virsh shutdown <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id, domain-name or domain-uuid}</code></span>


修​改​客​户​端​配​置​文​件​中​的​
on_shutdown
参​数​可​控​制​重​启​客​户​端​的​行​为​。​


重​新​启​动​客​户​端​

使​用​
virsh
重​启​客​户​端​:
#virsh reboot <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id, domain-name or domain-uuid}</code></span>


修​改​客​户​端​配​置​文​件​中​的​
on_reboot
参​数​控​制​重​启​客​户​端​的​行​为​。​


强​制​客​户​端​停​止​

使​用​
virsh
强​制​客​户​端​停​止​:
# virsh destroy <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id, domain-name or domain-uuid}</code></span>


This command does an immediate ungraceful shutdown and stops the specified guest. Using
virsh destroy
can
corrupt guest file systems . Use the
destroy
option only when the guest is unresponsive. For para-virtualized
guests, use the
shutdown
option(关​闭​客​户​端​)
instead.


获​得​客​户​端​域​ ID

要​获​得​客​户​端​域​ ID:
# virsh domid <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-name or domain-uuid}</code></span>



获​得​客​户​端​域​名​称​

要​获​得​客​户​端​域​名​称​:
# virsh domname <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id or domain-uuid}</code></span>



获​得​客​户​端​ UUID

要​获​得​客​户​端​全​局​唯​一​识​别​符​号​(UUID):
# virsh domuuid <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">{domain-id or domain-name}</code></span>


virsh domuuid
命​令​输​出​示​例​:
# virsh domuuid r5b2-mySQL01
4a4c59a7-ee3f-c781-96e4-288f2862f011



显​示​客​户​端​信​息​

使​用​带​客​户​端​域​ ID、​域​名​或​者​ UUID 的​
virsh
命​令​可​显​示​指​定​客​户​端​的​信​息​:
# virsh dominfo <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-id, domain-name or domain-uuid}</code></span>


以​下​是​
virsh dominfo
命​令​的​输​出​示​例​:
# virsh dominfo r5b2-mySQL01
id:             13
name:           r5b2-mysql01
uuid:           4a4c59a7-ee3f-c781-96e4-288f2862f011
os type:      	linux
state:          blocked
cpu(s):         1
cpu time:     	11.0s
max memory:     512000 kb
used memory:    512000 kb



显​示​主​机​信​息​

要​显​示​主​机​信​息​:
# virsh nodeinfo


virsh nodeinfo
命​令​输​出​示​例​:
# virsh nodeinfo
CPU model                    x86_64
CPU (s)                      8
CPU frequency                2895 Mhz
CPU socket(s)                2
Core(s) per socket           2
Threads per core:            2
Numa cell(s)                 1
Memory size:                 1046528 kb


这​显​示​了​节​点​信​息​和​支​持​虚​拟​化​进​程​的​机​器​。​


显​示​客​户​端​

使​用​
virsh
显​示​客​户​端​列​表​以​及​当​前​状​态​:
# virsh list


其​它​可​用​选​项​包​括​:

--inactive
选​项​列​出​不​活​动​的​域​(已​经​被​定​义​但​目​前​不​活​动​的​域​),以​及​

--all
选​项​列​出​所​有​客​户​端​。​例​如​:
# virsh list --all
Id Name                 State
----------------------------------
0 Domain-0             running
1 Domain202            paused
2 Domain010            inactive
3 Domain9600           crashed


将​
virsh list
输​出​结​果​分​类​成​以​下​ 6 个​状​态​之​一​(如​下​)。​

running
状​态​是​指​目​前​在​ CPU 中​活​跃​的​客​户​端​。​

列​为​
blocked
的​客​户​端​是​被​阻​断​的​,且​目​前​没​有​运​行​或​者​无​法​运​行​。​这​是​由​于​客​户​端​正​在​等​待​ I/O(传​统​的​等​待​状​态​)或​者​客​户​端​处​于​睡​眠​模​式​。​

paused
状​态​列​出​暂​停​的​域​。​如​果​管​理​员​在​
virt-manager
、​
xm
pause
或​者​
virsh suspend
中​使​用​ pause 标​记​就​会​出​现​这​种​状​态​。​当​客​户​端​处​于​暂​停​状​态​时​,它​仍​会​消​耗​内​存​和​其​它​资​源​,但​无​法​从​管​理​程​序​中​调​度​
CPU 资​源​。​

shutdown
状​态​是​用​于​处​于​关​闭​过​程​中​的​客​户​端​。​向​该​客​户​端​发​送​关​闭​信​号​并​使​其​温​和​地​停​止​操​作​。​这​可​能​不​适​用​于​所​有​客​户​端​操​作​系​统​,有​些​操​作​系​统​对​这​些​信​号​没​有​响​应​。​

处​于​
dying
状​态​的​域​是​处​于​濒​死​状​态​,即​该​域​还​没​有​完​全​关​闭​或​者​崩​溃​。​

处​于​
crashed
状​态​的​客​户​端​是​在​运​行​时​失​败​且​无​法​再​运​行​。​这​个​状​态​只​在​将​客​户​端​配​置​为​崩​溃​时​不​重​启​时​出​现​。​


显​示​虚​拟​ CPU 信​息​

使​用​
virsh
显​示​客​户​端​中​虚​拟​ CPU 的​信​息​:
# virsh vcpuinfo <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">{domain-id, domain-name or domain-uuid}</code></span>


virsh vcpuinfo
命​令​输​出​示​例​:
# virsh vcpuinfo r5b2-mySQL01
VCPU:           0
CPU:            0
State:          blocked
CPU time:       0.0s
CPU Affinity:   yy



配​置​虚​拟​ CPU 亲​和​性​

使​用​物​理​ CPU 配​置​虚​拟​ CPU 的​亲​和​性​:
# virsh vcpupin <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">{domain-id, domain-name or domain-uuid} vcpu, cpulist</code></span>


其​中​
vcpu
是​虚​拟​ VCPU 号​而​
cpulist
列​出​了​
CPU 的​物​理​序​号​。​


配​置​虚​拟​ CPU 计​数​

使​用​
virsh
修​改​分​配​给​客​户​端​的​ CPU 数​:
# virsh setvcpus <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">{domain-name, domain-id or domain-uuid} count</code></span>


新​
count
值​不​能​超​过​创​建​客​户​端​时​指​定​的​数​目​。​


配​置​内​存​分​配​

使​用​
virsh
修​改​客​户​端​内​存​分​配​:
# virsh setmem {domain-id or domain-name} count


您​必​须​以​ KB 为​单​位​指​定​ count。​新​ count 值​不​能​超​过​您​创​建​客​户​端​时​指​定​的​数​值​。​大​多​数​客​户​端​操​作​系​统​需​要​不​低​于​ 64MB 的​值​。​较​高​的​最​大​内​存​值​不​会​影​响​活​跃​的​客​户​端​,除​非​新​值​较​小​,这​会​降​低​可​用​内​存​量​。​


显​示​客​户​端​块​设​备​信​息​

使​用​
virsh domblkstat
显​示​运​行​的​客​户​端​的​块​设​备​统​计​。​
# virsh domblkstat <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">GuestName block-device</code></span>



显​示​客​户​端​网​络​设​备​信​息​

virsh domifstat
为​运​行​的​客​户​端​显​示​网​络​接​口​统​计​。​
# virsh domifstat <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">GuestName interface-device </code></span>



使​用​ virsh 迁​移​客​户​端​

可​使​用​
virsh
将​某​个​客​户​端​迁​移​到​另​一​台​主​机​中​。​将​域​迁​移​到​另​一​台​主​机​中​。​添​加​ --live 进​行​实​时​迁​移​。​
migrate
命​令​接​受​以​下​格​式​的​参​数​:
# virsh migrate --live <span class="parameter" style="font-style:italic"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; font-weight:bold; display:inline; word-wrap:break-word">GuestName DestinationURL</code></span>


--live
参​数​是​可​选​的​。​实​时​迁​移​需​要​添​加​
--live
参​数​。​

The
GuestName
parameter represents
the name of the guest which you want to migrate.

The
DestinationURL
parameter
is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have
libvirt
running.

Once the command is entered you will be prompted for the root password of the destination system.


管​理​虚​拟​网​络​

这​部​分​包​括​使​用​
virsh
管​理​虚​拟​网​络​。​要​列​出​虚​拟​网​络​:
# virsh net-list


这​个​命​令​产​生​的​输​出​类​似​如​下​:
# virsh net-list
Name                 State      Autostart
-----------------------------------------
default              active     yes
vnet1	             active     yes
vnet2	             active     yes


要​查​看​某​一​特​定​虚​拟​网​络​的​信​息​:
# virsh net-dumpxml <span class="replaceable" style="color:#444444;"><code style="font-family:'liberation mono','bitstream vera mono','dejavu mono',monospace; white-space:nowrap; font-weight:bold">NetworkName</code></span>


这​以​ XML 格​式​显​示​指​定​虚​拟​网​络​的​信​息​:
# virsh net-dumpxml vnet1
<network>
<name>vnet1</name>
<uuid>98361b46-1581-acb7-1643-85a412626e70</uuid>
<forward dev='eth0'/>
<bridge name='vnet0' stp='on' forwardDelay='0' />
<ip address='192.168.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.128' end='192.168.100.254' />
</dhcp>
</ip>
</network>


其​它​用​来​管​理​虚​拟​网​络​的​
virsh
命​令​:

virsh net-autostart network-name

自​动​启​动​指​定​为​
network-name
的​网​络​。​

virsh net-create XMLfile

使​用​现​有​ XML 文​件​创​建​并​启​动​新​网​络​。​

virsh net-define XMLfile

使​用​现​有​ XML 文​件​创​建​新​网​络​设​备​但​不​启​动​。​

virsh net-destroy network-name

销​毁​指​定​为​
network-name
的​网​络​。​

virsh net-name networkUUID

将​指​定​的​
networkUUID
转​换​为​网​络​名​称​。​

virsh net-uuid network-name

将​指​定​的​
network-name
转​换​为​网​络​
UUID。​

virsh net-start nameOfInactiveNetwork

启​动​不​活​跃​的​网​络​。​

virsh net-undefine nameOfInactiveNetwork

删​除​不​活​跃​网​络​的​定​义​。​
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: