当前位置: 亚洲城ca88 > 亚洲城 > 正文

Virt相关命令计算,布置KVM虚拟化平台

时间:2019-06-22 12:05来源:亚洲城
在CentOS上边多一些命令都是有包 libguestfs-tools-c 提供,所以,首先必要设置它 总结介绍 KVM 是依赖虚拟化扩张(英特尔 VT 或许速龙-V)的 X86 硬件的开源的 Linux 原生的全虚拟消除决方案。

在CentOS上边多一些命令都是有包libguestfs-tools-c提供,所以,首先必要设置它

总结介绍

  KVM 是依赖虚拟化扩张(英特尔 VT 或许速龙-V)的 X86 硬件的开源的 Linux 原生的全虚拟消除决方案。KVM 中,虚拟机被实现为常规的 Linux 进度,由标准 Linux 调节程序举行调治;虚机的各种虚拟 CPU 被完成为一个好端端的 Linux 进程。那使得 KMV 能够运用 Linux 内核的已有效用。
  然则,KVM 本人不实践此外硬件模拟,必要客户空间程序通过 /dev/kvm 接口设置叁个客户机虚拟服务器的地点空间,向它提供模拟的 I/O,并将它的录制展现映射回宿主的显示器。目前那个应用程序是 QEMU。

图片 1

 

更详尽的介绍和使用可以参照他事他说加以考查博客:

virt-ls

virt-ls能够列出虚拟机中目录下的公文或目录,用法如下

1
2
virt-ls [--options] -d domname dir [dir ...]
virt-ls [--options] -a disk.img [-a disk.img ...] dir [dir ...]

1
virt-ls -d centos2 /etc/

能够像使用ls同等加一些参数,如-l等,具体请看virt-ls --help

安装

条件:CentOS 6.5上设置KVM所需软件

(1)最简便易行的装置形式便是在设置系统的时候,接纳桌面安装,然后选取安装虚拟化

图片 2图片 3

(2)在已部分系统基础上,安装KVM

yum -y install qemu-kvm qemu-kvm-tools qemu-img virt-manager libvirt libvirt-python libvirt-client bridge-utils virt-viewer virt-install

yum -y groupinstall "Desktop"     //安装GNOME桌面环境(在没有图形化界面的基础上)
yum -y install qemu-kvm         //KVM模块
yum -y install qemu-kvm-tools       //KVM调试工具
yum -y install qemu-img         //qeum组件,创建磁盘、启动虚拟机等
yum -y install virt-manager         //图形界面管理虚拟机
yum -y install libvirt          //虚拟机管理工具
yum -y install libvirt-python       //python组件,记录创建VM时的xml文件
yum -y install bridge-utils         //网络支持工具
yum -y install libvirt-client       
yum -y install virt-viewer      
yum -y install virt-install     

 (3)验证。重启系统后,查看CPU是不是支持虚拟化,对于intel的服务器能够通过以下命令查看,只要输出表达CPU接济虚拟化;AMD服务器可用" cat /proc/cpuinfo | grep smv "命令查看

# cat /proc/cpuinfo | grep vmx
 flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx
  pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulq
  dq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3
  dnowprefetch ida arat xsaveopt pln pts dts tpr_shadow vnmi ept vpid fsgsbase bmi1 avx2 smep bmi2 invpcid

 (4)检查KVM模块是或不是安装

# lsmod | grep kvm
 kvm_intel              54285  0 
 kvm                   333172  1 kvm_intel

 加载KVM内核

modprobe kvm

virt-what

virt-what能够用来检查评定当前系统是不是一个虚拟机,若是或不是虚拟机,实施virt-what将不会有其它输出,如果是虚拟机,它会打字与印刷一体系有关虚拟机的’facts’(如kvm)

virt-what命令由同名包提供,要命令供给先安装(yum -y install virt-what)

设置KVM网络

宿主服务器安装到位KVM,首先要设定网络,在libvirt中运营KVM互连网有三种方法:NAT和Bridge,暗中同意NAT

有关二种情势的认证:

  1) 用户方式,即NAT格局,这种情势是默许互连网,数据包有NAT方式通过主机的接口实行传递,=能够访问外网,不过力不从心从外表访问虚拟机网络;

  2) 桥接方式,这种方式允许虚拟机像一台独立的主机一样具有网络,外界的机械能够直接待上访问到虚拟机内部,但须求网卡协助,一般有线网卡都帮忙;

以下为Bridge(桥接):

(1)修改eth0网卡配置文件

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

图片 4图片 5

DEVICE=eth0
HWADDR=00:0C:29:9F:97:78
TYPE=Ethernet
ONBOOT=yes    //将yes改为no
NM_CONTROLLED=no    //将yes改为no
BOOTPROTO=dhcp
BRIDGE="br0"        //添加

ifcfg-eth0

(2)新建ifcfg-br0文件

# vim /etc/sysconfig/network-scripts/ifcfg-br0

图片 6图片 7

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
PBOOTPROTO=static
IPADDR=192.168.10.10
NETMASK=255.255.255.0

ifcfg-br0

(3)关闭网卡守护进度

/etc/init.d/NetworkManager stop

(4)重启network服务

service network restart

(5)确认IP地址音讯

# ifconfig

图片 8图片 9

br0       Link encap:Ethernet  HWaddr 00:0C:29:34:4E:DE  
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe34:4ede/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:229 (229.0 b)  TX bytes:1272 (1.2 KiB)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:34:4E:DE  
          inet6 addr: fe80::20c:29ff:fe34:4ede/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3885 (3.7 KiB)  TX bytes:21228 (20.7 KiB)
          Interrupt:19 Base address:0x2024 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:478 errors:0 dropped:0 overruns:0 frame:0
          TX packets:478 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:40146 (39.2 KiB)  TX bytes:40146 (39.2 KiB)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:DB:2E:AD  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

ifconfig

翻开网桥

# brctl show
  bridge name    bridge id        STP enabled    interfaces
  br0        8000.000c29344ede    no        eth1
  virbr0        8000.525400db2ead    yes        virbr0-nic

virt-host-validate

其一命令能够用来检查实验本机是不是正确配置以运营虚拟化,假诺未有加参数,它会检查它所知晓的具备的虚拟化驱动,可选的能够加qemulxc做限制

1
virt-host-validate

出口临近那样

1
2
3
4
5
  QEMU: Checking for hardware virtualization                       : PASS
  QEMU: Checking for device /dev/kvm                               : PASS
  QEMU: Checking for device /dev/vhost-net                         : PASS
  QEMU: Checking for device /dev/net/tun                           : PASS
   LXC: Checking for Linux >= 2.6.26                               : PASS

KVM管理

virt-manager是基于libvirt的图形化虚拟机管理软件;

virt-manager

一声令下方式

翻开命令协理

virsh -h

KVM的安顿文件爱你存放目录(.xml后缀文件)

/etc/libvirt/qemu/

翻看虚拟机状态

virsh list        //查看正在运行的虚拟机实例
virsh list --all    //查看所有的虚拟机实例

虚拟机的关机于开机

virsh start 虚拟机实例名称        //开启虚拟机实例
virsh shutdown 虚拟机实例名称    //关闭虚拟机实例

强制实例系统关闭电源

virsh destroy 虚拟机实例名称

通过布置文件运行虚拟机系统实例

virsh create 虚拟机实例配置文件路径
virsh create /etc/libvirt/qemu/test.xml

挂起虚拟机

virsh suspend 虚拟机实例名称

回复虚拟机

virsh resume 虚拟机实例名称

安排虚拟机实例伴随宿主机自动运行,会创造/etc/libvirt/qemu/autostat/ 目录,目录内容为开机自运转的种类

virsh autostart 虚拟机实例名称

删去虚拟机实例(删除前需求先关闭该虚拟机实例)

virsh undefine 虚拟机实例的名称

经过备份的配置文件再一次定义虚拟主机实例

cd /etc/libvirsh/qemu
mv test02.xml test01.xml

virsh define test01.xml

修改虚拟机实例的安排文件

vim /etc/libvirt/qemu/test.xml        //直接使用vim修改配置文件

virsh edit test                //通过virsh命令修改

更加的多利用格局能够仿照效法:

virt-top

virt-top命令由同名软件包提供,和top命令相似,只是经过换成了虚拟机

1
2
yum -y install virt-top
virt-top

输出

1
2
3
4
5
6
7
8
9
virt-top 16:58:01 - x86_64 8/8CPU 2127MHz 7854MB 12.2% 12.0% 12.8% 12.0% 12.1% 12.0% 12.0% 12.0%
4 domains, 3 active, 3 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0
CPU: 12.7% Mem: 2048 MB (2048 MB by guests)
  ID S RDRQ WRRQ RXBY TXBY %CPU %MEM    TIME   NAME
  40 R    0    0   52    0 12.5  6.0  66:38.82 centos2
  32 R    0    3   22  38K 13.5 16.0  26:28.82 win2003
  40 R    2    0   52    0 12.5  8.0  36:18.82 test
   -                                           (centos3)

KVM虚拟机实例的创导

(1)图形化创建略

(2)命令方式开创

virt-install --name=haha --ram=2048 --vcpus=1 --file=/var/lib/libvirthaha.img --file-size=30 --location=/tmp/rhel6.5.iso --force &

参数表达:

图片 10图片 11

--name 指定KVM虚拟机的名字
--ram 内存大小
--file 磁盘文件的路径
--vcpus 指定虚拟机的 CPU 数量
--file-size=30(默认单位是G) 设置硬盘大小
--cdrom 光驱提供boot.iso 镜像 
--location 本地提供boot.iso 镜像
--network network:default 设置网卡(使用默认)
--vnc --vncport=5911 连接桌面环境的vnc端口

参数表明

virt-cat

virt-cat能够虚拟机汉语件的源委,用法如下

1
2
virt-cat [--options] -d domname file [file ...]
virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]

1
virt-cat -d centos2 /etc/passwd

domname能够因而virsh list得到

也能够对虚拟机的磁盘文件操作

1
virt-cat  -a /opt/images/centos2.img /etc/passwd

KVM文件管理

通过文件管理能够一贯查看、修改、复制虚拟机的中间文件。比如当系统因为安顿难题不能运行时,能够平素退换虚拟机的公文。虚拟机磁盘文件有raw与qcow2格式,KVM虚拟机暗中认可使用raw格式,raw格式质量最佳,速度最快,其症结是不协理部分新的功能,如镜像、Zlib磁盘压缩、AES加密等,针对三种格式的公文有例外的工具可供选用。

这里介绍本地YUM安装libguestfs-tools后发出的命令行工具(那几个工具得以间接读取qcow2格式的磁盘文件,因而必要将raw格式的磁盘文件调换到qcow2的格式)

安装 libguestfs-tools 工具(须要配备好地点YUM源)

yum -y install libguestfs-tools

更换磁盘格式

(1)调换raw格式磁盘至qcow2格式

    查看当前磁盘格式

#qemu-img info /var/lib/libvirttest.img 
  image: /var/lib/libvirttest.img
  file format: raw
  virtual size: 15G (16106127360 bytes)
  disk size: 1.1G

    关闭虚拟机实例

virsh destroy test

    调换磁盘文件格式

qemu-img convert -f raw -O(大写o) qcow2 原img文件路径 转换后qcow2文件路径

#qemu-img convert -f raw -O qcow2 /var/lib/libvirttest.img /var/lib/libvirttest.qcow2

    查看调换后的磁盘格式

#qemu-img info /var/lib/libvirttest.qcow2 
  image: /var/lib/libvirttest.qcow2
  file format: qcow2
  virtual size: 15G (16106127360 bytes)
  disk size: 804M
  cluster_size: 65536

(2)修改 test 实例的xml配置文件

#virsh edit test

......        //部分内容省略
<disk type='file' device='disk'>
   <driver name='qemu' type='qcow2' cache='none'/>        //将type中的raw修改为qcow2
   <source file='/var/lib/libvirttest.qcow2'/>        //将file中的路径修改为转换后磁盘文件路径
   <target dev='vda' bus='virtio'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
......        //部分内容省略

(3)重启系统使其收效

reboot

(4)virt-cat命令,类似与cat命令

# virt-cat -a /var/lib/libvirttest.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  HWADDR=52:54:00:D5:32:CF
  TYPE=Ethernet
  UUID=0270d54a-1141-475a-9876-b71edc2a8c2c
  ONBOOT=no
  NM_CONTROLLED=yes
  BOOTPROTO=dhcp

(5)virt-edit命令,用于编辑文件,用法与vim基本一致

virt-edit -a /var/lib/libvirttest.qcow2 /etc/sysctl.conf

(6)virt-df命令用于查看虚拟机磁盘信息

#virt-df -h test
  Filesystem                                Size       Used  Available  Use%
  test:/dev/sda1                            787M        38M       710M    5%
  test:/dev/sda3                             12G       727M        11G    6%

virt-edit

其一命令能够修改

1
2
virt-edit [--options] -d domname file [file ...]
virt-edit [--options] -a disk.img [-a disk.img ...] file [file ...]

例如

1
virt-edit -d centos2 /etc/passwd

在作者的体系中它会用vim张开文件,编辑完保存就可以修改虚拟机内的公文内容

也足以向来对虚拟机的磁盘文件实行操作

1
virt-edit -a /opt/images/centos2.img /etc/passwd

Note: 假设虚拟机正在运营,使用第一种文件修改它的文书会有上边包车型客车报错

1
2
3
4
5
Libguestfs: error: error: domain is a live virtual machine.
Writing to the disks of a running virtual machine ca cause disk corruption.
Either use read-only access, or if the guest is running the guestfsd daemon
specify live access. In most libguestfs tools these options are --ro or
--live respectively. Consult the documentation for further information.

但一向对虚拟机磁盘镜像文件操作不会有那个提醒,并且能够修改成功,会不会出难点本身就不驾驭了

虚拟机克隆

 从test克隆test01

virt-clone -o test -n test01 -f /var/lib/libvirttest01.qcow2

翻看虚拟机状态

#virsh list --all
   Id    名称                         状态
  ----------------------------------------------------
   1     test01                         running
   -     test                           关闭

virt-copy-out

virt-copy-out这些命令能够把虚拟机里的文本复制出来, 用法如下

1
2
virt-copy-out -d domname file|dir [file|dir ...] localdir
virt-copy-out -a disk.img file|dir [file|dir ...] localdir

例子

1
virt-copy-out -d centos2 /etc/passwd .

能够是多少个文件或目录

1
2
mkdir tmp
virt-copy-out -d centos2 /etc /home /root/.bashrc tmp

也能够一向对虚拟机磁盘文件操作,只须求将-d domname换成-a path_of_disk_file

虚拟机快速照相

1)对test成立快速照相

#virsh snapshot-create test
  Domain snapshot 1505821946 created

2)查看虚拟机快速照相版本新闻

# virsh snapshot-current test
   <domainsnapshot>
      <name>1505821946</name>        //快照版本号
      <state>shutoff</state>
    ......       //部分内容省略

3)查看快照音讯

# virsh snapshot-list test
   名称               Creation Time             状态
  ------------------------------------------------------------
   1505821946           2017-09-19 19:52:26  0800 shutoff

4)恢复虚拟机状态至150582一九五零

virsh snapshot-revert test 1505821946

5)删除快速照相

#virsh snapshot-delete test 1505821946
   Domain snapshot 1505821946 deleted

 

virt-copy-in

virt-copy-in是将文件复制到虚拟机里面,用法和virt-copy-out基本同样,这里只举叁个事例

1
virt-copy-in -d centos2 test.txt /opt/

不出你的所料,即使虚拟机正在运营,上面包车型地铁通令也会报错

愈来愈多实际情况见请继续读书下一页的杰出内容: http://www.linuxidc.com/Linux/2014-08/105140p2.htm

图片 12

编辑:亚洲城 本文来源:Virt相关命令计算,布置KVM虚拟化平台

关键词: 亚洲城ca88